From 3a0ad53201f1ed92748413dd3cd3c0caf8cc1f3a Mon Sep 17 00:00:00 2001 From: Shubham Dhal Date: Mon, 13 Apr 2026 13:13:06 +0530 Subject: [PATCH 01/12] fix: cache hatchling build dep for offline uv builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pypa/hatch@install bundles hatchling, so hatch env create never downloads it via uv. Explicitly install hatchling via uv to populate the cache — needed for uv's build isolation in offline mode. --- .github/workflows/warmDepsCache.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/warmDepsCache.yml b/.github/workflows/warmDepsCache.yml index e39e815a0..8809ad925 100644 --- a/.github/workflows/warmDepsCache.yml +++ b/.github/workflows/warmDepsCache.yml @@ -88,6 +88,13 @@ jobs: - name: Install Python versions for test matrix run: uv python install 3.10 3.11 3.12 3.13 + - name: Cache build system dependencies + run: | + # pypa/hatch@install bundles hatchling, so hatch env create reuses + # it instead of downloading via uv. Force hatchling into the uv + # cache so offline builds with build isolation work on consumers. + uv pip install --system --reinstall hatchling + - name: Create all hatch environments (populates uv cache) run: | set -euo pipefail From d6155d8b7c057e470f88983ad17924897e04b2a9 Mon Sep 17 00:00:00 2001 From: Shubham Dhal Date: Mon, 13 Apr 2026 14:31:13 +0530 Subject: [PATCH 02/12] fix: use setup-uv cache-local-path instead of UV_CACHE_DIR env var setup-uv forcibly overrides UV_CACHE_DIR to a temp path even when set in job env. Use the cache-local-path input parameter instead, which setup-uv respects. This ensures uv writes to ~/.cache/uv (matching the cache save/restore paths) instead of a temp dir. --- .github/workflows/main.yml | 9 ++++++--- .github/workflows/warmDepsCache.yml | 5 ++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index aa90a5497..3d8d6779e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -52,7 +52,6 @@ jobs: env: UV_FROZEN: "1" - UV_CACHE_DIR: /home/runner/.cache/uv steps: - name: Check out the repository @@ -73,6 +72,8 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4 + with: + cache-local-path: ~/.cache/uv - name: Install Hatch uses: pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc # install @@ -100,7 +101,6 @@ jobs: env: UV_FROZEN: "1" - UV_CACHE_DIR: /home/runner/.cache/uv strategy: fail-fast: false @@ -126,6 +126,8 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4 + with: + cache-local-path: ~/.cache/uv - name: Install Hatch uses: pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc # install @@ -156,7 +158,6 @@ jobs: env: UV_FROZEN: "1" - UV_CACHE_DIR: /home/runner/.cache/uv steps: - name: Check out the repository @@ -177,6 +178,8 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4 + with: + cache-local-path: ~/.cache/uv - name: Install Hatch uses: pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc # install diff --git a/.github/workflows/warmDepsCache.yml b/.github/workflows/warmDepsCache.yml index 8809ad925..e671a6514 100644 --- a/.github/workflows/warmDepsCache.yml +++ b/.github/workflows/warmDepsCache.yml @@ -41,9 +41,6 @@ jobs: env: UV_FROZEN: "1" - # Pin cache dir so setup-uv doesn't override it to a temp path. - # Must match the path in setup-python-deps/action.yml cache restore. - UV_CACHE_DIR: /home/runner/.cache/uv steps: - name: Checkout main branch @@ -81,6 +78,8 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4 + with: + cache-local-path: ~/.cache/uv - name: Install Hatch uses: pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc # install From 2be98366a2cbcd42be69073b21594036c4ef58bf Mon Sep 17 00:00:00 2001 From: Shubham Dhal Date: Mon, 13 Apr 2026 14:52:34 +0530 Subject: [PATCH 03/12] fix: use uv build instead of uv pip install to cache hatchling uv pip install --system uses a different cache resolution path than uv's build isolation. Use uv build --wheel which triggers the exact same build isolation mechanism that consumers use, ensuring hatchling is cached in the right format. --- .github/workflows/warmDepsCache.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/warmDepsCache.yml b/.github/workflows/warmDepsCache.yml index e671a6514..f1cfee3c5 100644 --- a/.github/workflows/warmDepsCache.yml +++ b/.github/workflows/warmDepsCache.yml @@ -89,10 +89,11 @@ jobs: - name: Cache build system dependencies run: | - # pypa/hatch@install bundles hatchling, so hatch env create reuses - # it instead of downloading via uv. Force hatchling into the uv - # cache so offline builds with build isolation work on consumers. - uv pip install --system --reinstall hatchling + # Trigger uv's build isolation to cache hatchling and its deps + # through the exact same code path consumers use. uv pip install + # uses a different cache resolution than build isolation. + uv build --wheel --out-dir /tmp/warmup-build + rm -rf /tmp/warmup-build - name: Create all hatch environments (populates uv cache) run: | From a2265b89a9e79cf56b9b3d7e50f6a7b811e76776 Mon Sep 17 00:00:00 2001 From: Shubham Dhal Date: Mon, 13 Apr 2026 14:56:15 +0530 Subject: [PATCH 04/12] fix: remove redundant uv build step (hatch build already caches hatchling) hatch -v build triggers uv's build isolation which caches hatchling. The separate uv build --wheel step was redundant. With cache-local-path now correctly set, hatch build writes to ~/.cache/uv. --- .github/workflows/warmDepsCache.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/warmDepsCache.yml b/.github/workflows/warmDepsCache.yml index f1cfee3c5..5b0dbd2ad 100644 --- a/.github/workflows/warmDepsCache.yml +++ b/.github/workflows/warmDepsCache.yml @@ -87,14 +87,6 @@ jobs: - name: Install Python versions for test matrix run: uv python install 3.10 3.11 3.12 3.13 - - name: Cache build system dependencies - run: | - # Trigger uv's build isolation to cache hatchling and its deps - # through the exact same code path consumers use. uv pip install - # uses a different cache resolution than build isolation. - uv build --wheel --out-dir /tmp/warmup-build - rm -rf /tmp/warmup-build - - name: Create all hatch environments (populates uv cache) run: | set -euo pipefail From b3cab75677ffc098e4d1933f18b41b7769f6d176 Mon Sep 17 00:00:00 2001 From: Shubham Dhal Date: Mon, 13 Apr 2026 15:29:06 +0530 Subject: [PATCH 05/12] fix: set UV_INDEX_URL in offline mode to match warmer's cache bucket MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit uv cache is index-URL-scoped — entries are keyed by the URL hash of the index that was used to download them. The warmer downloads via JFrog, so cache entries are stored under JFrog's URL hash. Without setting the same URL in offline mode, uv defaults to pypi.org's hash and finds nothing. Set UV_INDEX_URL to JFrog's URL (without credentials) in offline mode. uv never contacts it — it only uses the hash to find the right cache bucket. Verified locally: warmer populates cache online, consumer creates hatch envs + runs code-quality + builds offline successfully. --- .github/actions/setup-python-deps/action.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/actions/setup-python-deps/action.yml b/.github/actions/setup-python-deps/action.yml index 6fb44ecd1..be23896c5 100644 --- a/.github/actions/setup-python-deps/action.yml +++ b/.github/actions/setup-python-deps/action.yml @@ -33,6 +33,11 @@ runs: shell: bash run: | echo "UV_OFFLINE=true" >> "$GITHUB_ENV" + # uv cache is index-URL-scoped. The warmer downloads via JFrog, so + # cache entries are keyed by JFrog's URL hash. Set the same URL here + # (without credentials — offline mode never contacts it, only uses + # the hash to find the right cache bucket). + echo "UV_INDEX_URL=https://databricks.jfrog.io/artifactory/api/pypi/db-pypi/simple" >> "$GITHUB_ENV" echo "PIP_NO_INDEX=1" >> "$GITHUB_ENV" mkdir -p ~/.config/pip printf '[global]\nno-index = true\n' > ~/.config/pip/pip.conf From a2fde82034d20d59761a1dffa67a108c60f1cb59 Mon Sep 17 00:00:00 2001 From: Shubham Dhal Date: Mon, 13 Apr 2026 15:47:34 +0530 Subject: [PATCH 06/12] debug: add pre-commit cache inspection step --- .github/workflows/main.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3d8d6779e..b688e25ad 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -78,6 +78,17 @@ jobs: - name: Install Hatch uses: pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc # install + - name: Debug pre-commit cache + run: | + echo "=== PRE_COMMIT_HOME ===" + echo "${PRE_COMMIT_HOME:-not set (default: ~/.cache/pre-commit)}" + echo "=== ~/.cache/pre-commit contents ===" + ls -la ~/.cache/pre-commit/ 2>/dev/null || echo "directory not found" + echo "=== db.db repos ===" + sqlite3 ~/.cache/pre-commit/db.db "SELECT * FROM repos;" 2>/dev/null || echo "no db.db or no sqlite3" + echo "=== repo dirs ===" + ls -la ~/.cache/pre-commit/repo*/ 2>/dev/null | head -20 + - name: Run Code Quality run: hatch -v run code-quality From 00c0c50325b051a5a02fee8f9d4093dd43469525 Mon Sep 17 00:00:00 2001 From: Shubham Dhal Date: Mon, 13 Apr 2026 15:55:45 +0530 Subject: [PATCH 07/12] debug: inspect pre-commit ruff hook venv health --- .github/workflows/main.yml | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b688e25ad..12f004c89 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -80,14 +80,24 @@ jobs: - name: Debug pre-commit cache run: | - echo "=== PRE_COMMIT_HOME ===" - echo "${PRE_COMMIT_HOME:-not set (default: ~/.cache/pre-commit)}" - echo "=== ~/.cache/pre-commit contents ===" - ls -la ~/.cache/pre-commit/ 2>/dev/null || echo "directory not found" echo "=== db.db repos ===" - sqlite3 ~/.cache/pre-commit/db.db "SELECT * FROM repos;" 2>/dev/null || echo "no db.db or no sqlite3" - echo "=== repo dirs ===" - ls -la ~/.cache/pre-commit/repo*/ 2>/dev/null | head -20 + sqlite3 ~/.cache/pre-commit/db.db "SELECT * FROM repos;" 2>/dev/null || echo "no db.db or sqlite3" + echo "" + # Find the ruff-pre-commit repo dir from db.db + RUFF_DIR=$(sqlite3 ~/.cache/pre-commit/db.db "SELECT path FROM repos WHERE repo LIKE '%ruff%';" 2>/dev/null) + echo "=== Ruff hook dir: $RUFF_DIR ===" + ls -la "$RUFF_DIR/" 2>/dev/null | head -10 + echo "=== Ruff venv contents ===" + ls -la "$RUFF_DIR/py_env-python3.10/" 2>/dev/null | head -10 + echo "=== pyvenv.cfg ===" + cat "$RUFF_DIR/py_env-python3.10/pyvenv.cfg" 2>/dev/null + echo "=== Python binary check ===" + ls -la "$RUFF_DIR/py_env-python3.10/bin/python"* 2>/dev/null + file "$RUFF_DIR/py_env-python3.10/bin/python" 2>/dev/null + echo "=== Can the venv python run? ===" + "$RUFF_DIR/py_env-python3.10/bin/python" --version 2>&1 || echo "FAILED" + echo "=== Installed packages in venv ===" + "$RUFF_DIR/py_env-python3.10/bin/pip" list 2>&1 | head -10 || echo "pip list failed" - name: Run Code Quality run: hatch -v run code-quality From 8f3b0ac6551f952b3a71ab6c4c33237972293c3f Mon Sep 17 00:00:00 2001 From: Shubham Dhal Date: Mon, 13 Apr 2026 16:15:48 +0530 Subject: [PATCH 08/12] fix: broken pre-commit venv symlink + remove debug step Use setup-python in warmer instead of uv python install so Python paths match the consumer. Only create default + verify hatch envs. Remove temporary debug step from main.yml. --- .github/workflows/main.yml | 21 --------------------- .github/workflows/warmDepsCache.yml | 9 +-------- 2 files changed, 1 insertion(+), 29 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 12f004c89..3d8d6779e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -78,27 +78,6 @@ jobs: - name: Install Hatch uses: pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc # install - - name: Debug pre-commit cache - run: | - echo "=== db.db repos ===" - sqlite3 ~/.cache/pre-commit/db.db "SELECT * FROM repos;" 2>/dev/null || echo "no db.db or sqlite3" - echo "" - # Find the ruff-pre-commit repo dir from db.db - RUFF_DIR=$(sqlite3 ~/.cache/pre-commit/db.db "SELECT path FROM repos WHERE repo LIKE '%ruff%';" 2>/dev/null) - echo "=== Ruff hook dir: $RUFF_DIR ===" - ls -la "$RUFF_DIR/" 2>/dev/null | head -10 - echo "=== Ruff venv contents ===" - ls -la "$RUFF_DIR/py_env-python3.10/" 2>/dev/null | head -10 - echo "=== pyvenv.cfg ===" - cat "$RUFF_DIR/py_env-python3.10/pyvenv.cfg" 2>/dev/null - echo "=== Python binary check ===" - ls -la "$RUFF_DIR/py_env-python3.10/bin/python"* 2>/dev/null - file "$RUFF_DIR/py_env-python3.10/bin/python" 2>/dev/null - echo "=== Can the venv python run? ===" - "$RUFF_DIR/py_env-python3.10/bin/python" --version 2>&1 || echo "FAILED" - echo "=== Installed packages in venv ===" - "$RUFF_DIR/py_env-python3.10/bin/pip" list 2>&1 | head -10 || echo "pip list failed" - - name: Run Code Quality run: hatch -v run code-quality diff --git a/.github/workflows/warmDepsCache.yml b/.github/workflows/warmDepsCache.yml index 5b0dbd2ad..fc713f764 100644 --- a/.github/workflows/warmDepsCache.yml +++ b/.github/workflows/warmDepsCache.yml @@ -84,17 +84,10 @@ jobs: - name: Install Hatch uses: pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc # install - - name: Install Python versions for test matrix - run: uv python install 3.10 3.11 3.12 3.13 - - - name: Create all hatch environments (populates uv cache) + - name: Create hatch environments (populates uv cache) run: | set -euo pipefail hatch env create default - hatch env create test.py3.10 - hatch env create test.py3.11 - hatch env create test.py3.12 - hatch env create test.py3.13 hatch env create verify - name: Warm pre-commit cache From 397d19d771cab35aa9dd530f6e332a7d04f6a72a Mon Sep 17 00:00:00 2001 From: Shubham Dhal Date: Mon, 13 Apr 2026 16:26:25 +0530 Subject: [PATCH 09/12] fix: use wheelhouse for pip + setup-python for pre-commit symlinks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three issues fixed: 1. Pre-commit venv broken symlink: warmer used uv python install (path differs from consumer's setup-python). Fix: use setup-python 3.10 for default env, uv python install only for 3.11-3.13 test matrix (their symlinks don't matter — only wheels are cached). 2. pip has no offline mode: PIP_NO_INDEX blocks all index access including build deps like setuptools. Fix: warmer creates a pip wheelhouse (~/.cache/pip-wheelhouse), consumer sets PIP_FIND_LINKS to use it. 3. Test matrix needs version-specific wheels: restored uv python install 3.11-3.13 and test env creation for all versions. --- .github/actions/setup-python-deps/action.yml | 8 ++--- .github/workflows/warmDepsCache.yml | 32 ++++++++++++++------ 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/.github/actions/setup-python-deps/action.yml b/.github/actions/setup-python-deps/action.yml index be23896c5..83b9593b4 100644 --- a/.github/actions/setup-python-deps/action.yml +++ b/.github/actions/setup-python-deps/action.yml @@ -18,6 +18,7 @@ runs: path: | ~/.cache/uv ~/.cache/pip + ~/.cache/pip-wheelhouse key: python-deps-${{ hashFiles('uv.lock', 'pyproject.toml') }}-latest restore-keys: python-deps-${{ hashFiles('uv.lock', 'pyproject.toml') }}- @@ -33,11 +34,6 @@ runs: shell: bash run: | echo "UV_OFFLINE=true" >> "$GITHUB_ENV" - # uv cache is index-URL-scoped. The warmer downloads via JFrog, so - # cache entries are keyed by JFrog's URL hash. Set the same URL here - # (without credentials — offline mode never contacts it, only uses - # the hash to find the right cache bucket). echo "UV_INDEX_URL=https://databricks.jfrog.io/artifactory/api/pypi/db-pypi/simple" >> "$GITHUB_ENV" echo "PIP_NO_INDEX=1" >> "$GITHUB_ENV" - mkdir -p ~/.config/pip - printf '[global]\nno-index = true\n' > ~/.config/pip/pip.conf + echo "PIP_FIND_LINKS=$HOME/.cache/pip-wheelhouse" >> "$GITHUB_ENV" diff --git a/.github/workflows/warmDepsCache.yml b/.github/workflows/warmDepsCache.yml index fc713f764..d37e0c883 100644 --- a/.github/workflows/warmDepsCache.yml +++ b/.github/workflows/warmDepsCache.yml @@ -62,8 +62,6 @@ jobs: echo "Warming cache for PR #${{ inputs.pr_number }} from ${FORK_REPO}@${FORK_REF}" - # Fetch only lockfiles from the fork — .github/actions/ always - # comes from main to prevent code injection from forks. git remote add fork "https://github.com/${FORK_REPO}.git" git fetch --depth=1 fork "${FORK_REF}" git checkout FETCH_HEAD -- uv.lock pyproject.toml .pre-commit-config.yaml @@ -84,30 +82,43 @@ jobs: - name: Install Hatch uses: pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc # install + - name: Install Python versions for test matrix + run: uv python install 3.11 3.12 3.13 + - name: Create hatch environments (populates uv cache) run: | set -euo pipefail hatch env create default + hatch env create test.py3.10 + hatch env create test.py3.11 + hatch env create test.py3.12 + hatch env create test.py3.13 hatch env create verify - name: Warm pre-commit cache run: hatch run pre-commit install-hooks - - name: Build and warm pip cache for verify environment + - name: Create pip wheelhouse run: | set -euo pipefail - hatch -v build - # Run verify to populate ~/.cache/pip/ with runtime transitive deps. - # Allow failure — we only care about populating the cache. - hatch run verify:check-all || true + mkdir -p ~/.cache/pip-wheelhouse + hatch run pip download --dest ~/.cache/pip-wheelhouse \ + setuptools wheel twine check-wheel-contents + hatch run pip download --dest ~/.cache/pip-wheelhouse \ + $(hatch run python -c " + import tomllib + with open('pyproject.toml', 'rb') as f: + data = tomllib.load(f) + print(' '.join(data['project']['dependencies'])) + ") + + - name: Build package + run: hatch -v build - name: Generate cache key id: cache-key shell: bash run: | - # Hash first so consumers can prefix-match on the hash alone. - # Timestamp suffix ensures each run creates a new immutable entry; - # consumers pick the latest timestamp for a given hash. TIMESTAMP=$(date -u +%Y%m%d%H%M%S) LOCK_HASH="${{ hashFiles('uv.lock', 'pyproject.toml') }}" echo "python-deps-key=python-deps-${LOCK_HASH}-${TIMESTAMP}" >> "$GITHUB_OUTPUT" @@ -121,6 +132,7 @@ jobs: path: | ~/.cache/uv ~/.cache/pip + ~/.cache/pip-wheelhouse key: ${{ steps.cache-key.outputs.python-deps-key }} - name: Save pre-commit cache From d00f72feefeb506c3bd95b90ba8369f7c3bffe10 Mon Sep 17 00:00:00 2001 From: Shubham Dhal Date: Mon, 13 Apr 2026 16:33:03 +0530 Subject: [PATCH 10/12] fix: tomllib not available on Python 3.10, use tomli fallback --- .github/workflows/warmDepsCache.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/warmDepsCache.yml b/.github/workflows/warmDepsCache.yml index d37e0c883..640a38253 100644 --- a/.github/workflows/warmDepsCache.yml +++ b/.github/workflows/warmDepsCache.yml @@ -102,15 +102,17 @@ jobs: run: | set -euo pipefail mkdir -p ~/.cache/pip-wheelhouse - hatch run pip download --dest ~/.cache/pip-wheelhouse \ - setuptools wheel twine check-wheel-contents - hatch run pip download --dest ~/.cache/pip-wheelhouse \ - $(hatch run python -c " - import tomllib + DEPS=$(hatch run python -c " + try: + import tomllib + except ImportError: + import tomli as tomllib with open('pyproject.toml', 'rb') as f: data = tomllib.load(f) print(' '.join(data['project']['dependencies'])) ") + hatch run pip download --dest ~/.cache/pip-wheelhouse \ + setuptools wheel twine check-wheel-contents $DEPS - name: Build package run: hatch -v build From 0daa11bc7aca13257486bed6a6be37c6bfe514c6 Mon Sep 17 00:00:00 2001 From: Shubham Dhal Date: Mon, 13 Apr 2026 17:08:47 +0530 Subject: [PATCH 11/12] fix: write deps to requirements file for pip download pip download fails when dependency specs with commas (e.g. "click>=8.2.0, <9.0.0") are passed as shell-expanded args. Write to a requirements file and use -r instead. Verified locally: full E2E offline test passes (env create, code-quality, build). Verify step has platform mismatch locally but will work on CI (Linux wheels). --- .github/workflows/warmDepsCache.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/warmDepsCache.yml b/.github/workflows/warmDepsCache.yml index 640a38253..672d26db2 100644 --- a/.github/workflows/warmDepsCache.yml +++ b/.github/workflows/warmDepsCache.yml @@ -102,17 +102,19 @@ jobs: run: | set -euo pipefail mkdir -p ~/.cache/pip-wheelhouse - DEPS=$(hatch run python -c " + hatch run python -c " try: import tomllib except ImportError: import tomli as tomllib with open('pyproject.toml', 'rb') as f: data = tomllib.load(f) - print(' '.join(data['project']['dependencies'])) - ") + for dep in data['project']['dependencies']: + print(dep) + " > /tmp/runtime-deps.txt hatch run pip download --dest ~/.cache/pip-wheelhouse \ - setuptools wheel twine check-wheel-contents $DEPS + setuptools wheel twine check-wheel-contents \ + -r /tmp/runtime-deps.txt - name: Build package run: hatch -v build From 4084042556c518b639d8ce2965a74bb4bad1598a Mon Sep 17 00:00:00 2001 From: Shubham Dhal Date: Mon, 13 Apr 2026 17:31:41 +0530 Subject: [PATCH 12/12] chore: remove temporary pull_request trigger from warmDepsCache --- .github/workflows/warmDepsCache.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/warmDepsCache.yml b/.github/workflows/warmDepsCache.yml index 672d26db2..5525736d8 100644 --- a/.github/workflows/warmDepsCache.yml +++ b/.github/workflows/warmDepsCache.yml @@ -18,7 +18,6 @@ on: - "uv.lock" - "pyproject.toml" - ".pre-commit-config.yaml" - pull_request: # TEMPORARY: remove after testing schedule: - cron: "0 6 * * *" # Daily at 06:00 UTC workflow_dispatch: