From 9a9f9ed237ba1d255e17d5edbba8b2cb6040ec48 Mon Sep 17 00:00:00 2001 From: edknv Date: Tue, 3 Mar 2026 12:22:00 -0800 Subject: [PATCH 1/2] Fix pip install race condition by persisting build timestamp --- .gitignore | 3 +++ nemo_retriever/src/nemo_retriever/version.py | 25 +++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9cd91af5c..0e1c5f227 100644 --- a/.gitignore +++ b/.gitignore @@ -249,3 +249,6 @@ outputs/ models/ nemo_retriever/run_results/ + +# Ephemeral stamp file used to keep version deterministic across pip build subprocesses +.build_stamp diff --git a/nemo_retriever/src/nemo_retriever/version.py b/nemo_retriever/src/nemo_retriever/version.py index 81c099013..13ec2bd3b 100644 --- a/nemo_retriever/src/nemo_retriever/version.py +++ b/nemo_retriever/src/nemo_retriever/version.py @@ -12,6 +12,7 @@ from pathlib import Path import os import subprocess +import tempfile try: from ._build_info import BUILD_DATE as _PACKAGE_BUILD_DATE @@ -23,6 +24,7 @@ _PKG_NAME = "nemo-retriever" _UNKNOWN = "unknown" +_BUILD_STAMP = Path(tempfile.gettempdir()) / ".nemo_retriever_build_stamp" def _utc_now() -> datetime: @@ -57,7 +59,28 @@ def _build_datetime() -> datetime: except ValueError: pass - return _utc_now() + # Stamp file in the system temp dir makes the timestamp deterministic + # across the two separate subprocesses pip spawns during a PEP 517 build + # (metadata + wheel). We use tempdir rather than the source tree because + # pip may copy the source to different locations for each step. + if _BUILD_STAMP.exists(): + try: + cached = _BUILD_STAMP.read_text().strip() + if cached: + ts = float(cached) + # Only reuse if less than 60 s old to avoid stale stamps. + if abs(_utc_now().timestamp() - ts) < 60: + return datetime.fromtimestamp(ts, tz=timezone.utc) + _BUILD_STAMP.unlink(missing_ok=True) + except (OSError, ValueError): + pass + + now = _utc_now() + try: + _BUILD_STAMP.write_text(str(now.timestamp())) + except OSError: + pass + return now @lru_cache(maxsize=1) From b8abc21ad69cbec0987ca6a165001b98869ac46f Mon Sep 17 00:00:00 2001 From: edknv Date: Tue, 3 Mar 2026 12:23:31 -0800 Subject: [PATCH 2/2] Fix pip install race condition by persisting build timestamp --- .gitignore | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitignore b/.gitignore index 0e1c5f227..9cd91af5c 100644 --- a/.gitignore +++ b/.gitignore @@ -249,6 +249,3 @@ outputs/ models/ nemo_retriever/run_results/ - -# Ephemeral stamp file used to keep version deterministic across pip build subprocesses -.build_stamp