Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use uv for dependency management and versioning #553

Merged
merged 23 commits into from
Nov 13, 2024

Conversation

pederhan
Copy link
Member

@pederhan pederhan commented Nov 10, 2024

This PR adds dependency management backed by a uv lockfile. Building, installing and running the project has been fully migrated to uv in CI as well.

Development dependencies

Development dependencies are now specified as PEP 735 dependency groups. Dependency groups are not yet supported by pip, so for now, this means the development environment can only be installed with uv. Mreg itself does not require uv.

Docker image

Since uv does not support the pip wheel interface, we still have to install pip in the build stage of the dockerfile to build wheels for all of the project's dependencies. This complicates the build stage somewhat.

Versioning

The project is now versioned with setuptools-scm, which uses git tags to determine the project version. This necessitates git being installed wherever the project is built (such as in the build stage of the dockerfile).

The project's version can be accessed via mreg_cli.__about__.__version__ (or the short-hand import mreg_cli.__version__).


Why not use uv python install in the Dockerfile?

https://docs.astral.sh/uv/guides/integration/docker/#installing-python-in-musl-based-images

Copy link
Collaborator

@terjekv terjekv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

entrypoint-test.sh Show resolved Hide resolved
entrypoint.sh Show resolved Hide resolved
Dockerfile Show resolved Hide resolved
pyproject.toml Outdated Show resolved Hide resolved
@pederhan
Copy link
Member Author

django-rest-framework is still locked to 3.14.0, which has its own set of issues, but we will not resolve that in this PR. The container image unit tests will remain broken until we can fix that in a different PR.

@coveralls
Copy link
Collaborator

Coverage Status

coverage: 98.659%. remained the same
when pulling 8fd1108 on pederhan:uv-pyproject-versioning
into 8c8b07c on unioslo:master.

@pederhan pederhan merged commit be40459 into unioslo:master Nov 13, 2024
16 checks passed
@pederhan pederhan deleted the uv-pyproject-versioning branch November 13, 2024 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants