Repository navigation
Conversation
fgmacedo
force-pushed
the
fgmacedo/ci-677-uv-locked
branch
2 times, most recently
from
October 13, 2026 20:23
f6e8c10 to
56ff13f
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #681 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 53 53
Lines 5787 5787
Branches 918 918
=========================================
Hits 5787 5787
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
CI ran `uv sync --all-extras --dev` without `--locked`, so a stale or inconsistent uv.lock never failed and the release build could test versions other than the pinned ones. Both workflows now sync with `--locked` and set `UV_LOCKED=1` so later `uv run` steps do not re-lock. The committed lock records a 7-day `exclude-newer` span that only existed in a contributor's global uv config, so `--locked` would fail in CI. Declaring the cooldown in `[tool.uv]` makes the lock reproducible from the project alone. Fixes #677 Signed-off-by: Fernando Macedo <fgmacedo@gmail.com>
fgmacedo
force-pushed
the
fgmacedo/ci-677-uv-locked
branch
from
October 13, 2026 20:25
56ff13f to
4072311
Compare
|
| cache-suffix: "python${{ matrix.python-version }}" | ||
| - name: Install the project | ||
| run: uv sync --all-extras --dev | ||
| run: uv sync --locked --all-extras --dev |
|
|
||
| - name: Install the project | ||
| run: uv sync --all-extras --dev | ||
| run: uv sync --locked --all-extras --dev |
Owner
Author
|
Closing: SonarCloud requires |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




Why
CI ran
uv sync --all-extras --devwithout--locked(python-package.yml:37,release.yml:30), so a staleuv.locknever failed and the release build could test versions other than the pinned ones. Fixes #677.What changes
--lockedand setUV_LOCKED: 1at job level, so everyuv runstep also fails instead of re-locking whenuv.lockdisagrees withpyproject.toml.exclude-newercooldown moves into[tool.uv]inpyproject.toml. The committed lock recordsexclude-newer-span = "P7D", which until now came only from a contributor's global uv config; without the project setting,--lockedfails in CI on the current lock (see Evidence), so this is required, not optional.docs/contributing.mdstates the minimum uv (0.9.17; older releases fail to parseexclude-newer = "7 days", drop[tool.uv]and rewrite the lock) and theexclude-newer-packageescape hatch for releases younger than 7 days.Evidence
CI-like environment:
XDG_CONFIG_HOMEpointed at an empty dir, so the global uv config is not read (--no-configis not a faithful stand-in: it also ignores[tool.uv]). uv 0.12.21.Committed lock,
main'spyproject.toml(no[tool.uv]):Committed lock, this branch:
Deliberately stale lock (scratch copy,
"tomli-w >=1.0"added to the dev group without relocking):Adversarial review (separate agent):
uvx uv@0.13.0 lock --checkpasses (latest, whatsetup-uv@v10.2.0installs by default); a user config withexclude-newer = "3 days"still passes (project setting wins);UV_LOCKED=1 uv buildleavesuv.lockbyte-identical;actionlintclean on both workflows.Not verified
uv synclines with S8541 ("omitting--no-buildcan lead to the execution of setup scripts").--no-buildwas tried and breaks the 3.15 job:pyyaml==6.0.3has no 3.15 wheel (can't be installed because it is marked as --no-build but has no binary distribution). The finding needs a maintainer decision on SonarCloud; the risk is unchanged frommain, which ran the sameuv syncwithout--no-build.release.ymlwas not run; only the shareduv sync --locked/UV_LOCKEDpath was exercised throughpython-package.ymlon this PR.uv buildstill resolves the build backend (hatchling, unpinned in[build-system]) outside the lock; out of scope here..readthedocs.yamlkeeps--frozen(installs the lock without validating it), as accepted in CI re-resolves uv.lock instead of installing it as committed #677.--locked.