Repository navigation
Remove the stale uv.lock and git-ignore it - #1420
Merged
Merged
Conversation
No workflow, script or documented install step reads uv.lock: CI and the Modal image install with pip, the README with `uv pip`, and the dashboard docs with `uv tool`. The file was added once, in #699, and never updated. It pinned policyengine-us 1.550.2, below the >=1.711.0 minimum in pyproject.toml, and `uv sync --frozen` still installs that version. A committed lock also records this package's version, which the release job bumps, so `uv lock --check` would fail after every release unless that job re-locked too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
MaxGhenis
added a commit
that referenced
this pull request
Oct 10, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
Merge audit (US + core hub, on Fleet ops' green-PR sweep), #1420 at
|
This branch was successfully deployed
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.
Summary
Deletes
uv.lock, adds it to.gitignore, and adds achangedchangelog fragment. I chose deleting it over regenerating it; the evidence is below.Why delete it
Nothing reads it. At 549bead,
git grepover the tracked files (the lock itself excluded) finds nouv.lock,uv sync,uv run,uv lock,uv_sync,--lockedor--frozen(bun's--frozen-lockfileaside). Theuvcommands that do appear do not use the lock:README.mduv venv,uv pip install -e .,uv pip install -e . --upgrade,uv pip install git+https://…dashboard/src/components/LandingContent.jsx,DocumentationContent.jsxuv tool install,uv tool upgrade,uv tool dir,uv pip install policyengine-us==2.25.2docs/dashboard-refresh.md,scripts/dashboard-refresh-requirements.txtuv pip compile pyproject.toml scripts/dashboard-refresh.inEvery automated install uses pip.
ci.ymlrunspip install -e ..refresh-dashboard.ymlandscorp-e2e.ymlrunpip install -r scripts/dashboard-refresh-requirements.txt. The Modal image inpolicyengine_taxsim/api.pyusespip_install("policyengine-taxsim @ git+…@main").dashboard/vercel.jsonbuilds with bun.It was never updated.
git log -- uv.lockhas one commit: #699 ("Add landing page to cps-dashboard", 2026-02-25). The lock recordspolicyengine-taxsim2.6.1; the project is at 3.1.1.It installs a wrong environment. On main:
uv lock --checkanduv sync --lockedfail: "The lockfile atuv.lockneeds to be updated".uv sync --frozen(fresh cache, Python 3.11) succeeds. It installs policyengine-us 1.550.2 and policyengine-core 3.23.6 next to policyengine-taxsim 3.1.1, which is below thepolicyengine-us>=1.711.0minimum inpyproject.toml. The CLI runs in that environment and returns results.Keeping it would take more than a lint step. I regenerated the lock in a scratch copy: 112 packages, with policyengine-us 1.783.0 for Python 3.10 and 2.38.4 for 3.11 and later, and
uv lock --checkpassed. I then made the edit theversioningjob makes on each release (version = "3.1.1"to"3.1.2"inpyproject.toml).uv lock --checkexits 1, because the lock records this package's version. Auv lock --checkstep inlintwould therefore fail on every pull request after the next release, unlessversioningalso ranuv lockand committed the result. A regenerated lock would also pin policyengine-us while CI tests whateverpip install -e .resolves that day, souv syncwould give a developer a model CI had not tested..gitignorenow listsuv.lock, so a lock generated locally stays out of commits.README install instructions
The three install commands in the README resolve the same packages with and without the file. I ran each as
uv pip install --dry-runagainst one existing environment:uv pip install -e .uv.lockand one withoutuv pip install -e . --upgradeuv pip install git+https://github.com/PolicyEngine/policyengine-taxsim.git@mainand@remove-stale-uv-lockThese are dry runs: they resolve and install nothing. The machine I ran them on was under a resource hold, so I did not build new environments there. The real installs are the
pip install -e .steps in this pull request's CI (sixtestjobs and twoscorp-validationjobs).Packaging
The published 3.1.1 sdist contains
uv.lock. The 3.1.1 wheel does not (43 entries, none nameduv.lock). With the file gone from the checkout, later sdists will not contain it.Related: #1419
#1419 adds
docs/security-and-deployment.md, whose first draft said the repository'suv.lockwas out of date. #1419 has since removed that sentence (48ecd63, "Drop the uv.lock note; #1420 removes the file"). None of #1419's added lines mentionuv.lock; its generator callsuv pip compileonpyproject.toml. Neither pull request needs the other to merge first.axiom: n/a: repository infrastructure, no policy change
🤖 Generated with Claude Code