Commit graph

2 commits

Author SHA1 Message Date
somaz
3faa3174e6
feat: support uv.lock as a version-file source (#918)
Adds `uv.lock` as a supported `version-file` source. When `uv` is locked
as a
dependency in `uv.lock`, the action now installs the exact pinned
version,
closing the gap reported in #682.

This is useful for deterministic CI: the same uv version is used until
the
lockfile is updated, which avoids "CI worked yesterday, fails today"
drift and
reduces supply-chain exposure from auto-installing the latest release.

The implementation mirrors the existing `version-file` parsers — a new
`uv.lock`
entry in the parser registry reads the `[[package]]` whose `name = "uv"`
and
returns its locked `version`. Scoped to explicit `version-file:
uv.lock`;
workspace auto-detection is left as a possible follow-up to avoid
precedence
ambiguity with `uv.toml` / `pyproject.toml`.

Validation (local, Node 23; dist build is esbuild-deterministic):
- `npm run all` → build clean, biome clean, package clean, jest 77/77
- New tests: 3 unit (`uv-lock-file.test.ts`) + 1 integration — exact pin
resolves
  through the full pipeline (`uv.lock` → `0.8.17`)
- dist rebuilt + committed (single bundle, no spurious churn)

related: #682
2026-06-19 07:08:57 +02:00
Kevin Stillhammer
cdfb2ee6dd
Refactor version resolving (#852)
Some checks failed
test / test-setup-cache-save-cache-false (push) Has been cancelled
test / test-setup-cache-restore-cache-false (push) Has been cancelled
test / test-cache-local (map[expected-cache-dir:/home/runner/work/_temp/setup-uv-cache os:ubuntu-latest]) (push) Has been cancelled
test / test-cache-local (map[expected-cache-dir:D:\a\_temp\setup-uv-cache os:windows-latest]) (push) Has been cancelled
test / test-cache-local-cache-disabled (push) Has been cancelled
test / test-cache-local-cache-disabled-but-explicit-path (push) Has been cancelled
test / test-no-python-version (push) Has been cancelled
test / test-custom-manifest-file (push) Has been cancelled
test / test-absolute-path (push) Has been cancelled
test / test-relative-path (push) Has been cancelled
test / test-cache-prune-force (push) Has been cancelled
test / test-cache-dir-from-file (push) Has been cancelled
test / test-cache-python-missing-managed-install-dir (push) Has been cancelled
test / test-cache-python-installs (push) Has been cancelled
test / test-python-install-dir (map[expected-python-dir:/home/runner/work/_temp/uv-python-dir os:ubuntu-latest]) (push) Has been cancelled
test / test-python-install-dir (map[expected-python-dir:D:\a\_temp\uv-python-dir os:windows-latest]) (push) Has been cancelled
test / test-act (push) Has been cancelled
test / validate-typings (push) Has been cancelled
test / test-restore-cache (auto, ubuntu-latest) (push) Has been cancelled
test / test-restore-cache (auto, windows-latest) (push) Has been cancelled
test / test-restore-cache (false, ubuntu-latest) (push) Has been cancelled
test / test-restore-cache (false, windows-latest) (push) Has been cancelled
test / test-restore-cache (true, ubuntu-latest) (push) Has been cancelled
test / test-restore-cache (true, windows-latest) (push) Has been cancelled
test / test-restore-cache-requirements-txt (push) Has been cancelled
test / test-restore-cache-dependency-glob (push) Has been cancelled
test / test-restore-cache-save-cache-false (push) Has been cancelled
test / test-restore-cache-restore-cache-false (push) Has been cancelled
test / test-restore-python-installs (push) Has been cancelled
test / all-tests-passed (push) Has been cancelled
2026-04-11 11:38:41 +02:00