Skip to content

feat: Make use of the uv.lock file #65

Description

@johnslavik

In bf3c328, uv.lock was added to the .gitignore template.

I'd like to propose we always store the lock file in the repo.

In griffe, I was scratching my head figuring out why CI shows no mypy errors while my fresh installation of the project reported a number of them. Only then did I run make allrun uv sync --upgrade && make allrun check-types and saw it pass. The upgrade bumped my mypy version. A lockfile would eliminate that scenario in the first place and be a source of truth regarding what versions of tools are used by everybody.

Having a lockfile will work with our tests against different resolutions and even potentially speed up CI by not re-resolving already resolved deps. Of course, uv sync will ignore the lockfile when explicitly given a different resolution than the one used to produce the lockfile, showing a message like

Ignoring existing lockfile due to change in resolution mode: `highest` vs. `lowest-direct`

As a bonus, we may want to set --exclude-newer in sync in CI to the datetime of the examined git revision to fully make sure the runs are roughly reproducible at all times. But we'd still want to see CI without --exclude-newer to catch stuff.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions