Skip to content

ci: gate on lockfile drift and regenerate uv.lock for 1.10.1 - #129

Merged
Bre77 merged 1 commit into
mainfrom
fm/pytfa-lockfile-ci-gate
Aug 22, 2026
Merged

ci: gate on lockfile drift and regenerate uv.lock for 1.10.1#129
Bre77 merged 1 commit into
mainfrom
fm/pytfa-lockfile-ci-gate

Conversation

@Bre77

@Bre77 Bre77 commented Aug 22, 2026

Copy link
Copy Markdown
Member

Intent

  • uv.lock's root package version had drifted behind pyproject.toml (1.10.0 vs the current 1.10.1), and this has happened twice in the last four releases (also v1.9.0 vs a v1.8.2 lock)
    • No workflow ever asserts the lockfile against pyproject.tomlci.yml and release.yml all run plain uv sync, which silently regenerates the lock in the runner and continues green
    • PyPI is unaffected: the wheel builds from pyproject.toml, not uv.lock. The risk is to contributors running uv sync --locked, who get rejected against a drifted checkout
  • Fix: add --locked to the existing uv sync steps in ci.yml (lint + test jobs) and release.yml (gate job), rather than adding a separate uv lock --check step or a parallel job — it reuses the sync call every job already makes instead of growing new CI machinery
  • Regenerated uv.lock via uv lock so the root package reads 1.10.1
  • Documented the uv lock regeneration step in AGENTS.md's Release Process section, alongside the existing version-bump instructions

Tested the gate: reverted uv.lock's root package version to 1.10.0 locally and ran uv sync --locked — it failed with error: The lockfile at uv.lock needs to be updated, but --locked was provided. Restored the correct lock and reran; it passed cleanly.

uv.lock's root package version had drifted behind pyproject.toml
(1.10.0 vs 1.10.1), and no workflow ever asserted the lockfile against
pyproject.toml, so drift shipped silently. Add --locked to the
existing uv sync steps in ci.yml and release.yml so a stale lock fails
the build, and document the uv lock regeneration step in the release
process.
@Bre77 Bre77 added the fm Opened by a Firstmate crewmate label Aug 22, 2026
@Bre77
Bre77 merged commit 9dbe42d into main Aug 22, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fm Opened by a Firstmate crewmate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant