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

Define developer environment through uv #404

Closed
Tracked by #333
redeboer opened this issue Oct 4, 2024 · 0 comments · Fixed by #424
Closed
Tracked by #333

Define developer environment through uv #404

redeboer opened this issue Oct 4, 2024 · 0 comments · Fixed by #424
Assignees
Labels
🖱️ DX Improvements to the Developer Experience Epic Collection of issues
Milestone

Comments

@redeboer
Copy link
Member

redeboer commented Oct 4, 2024

This is a tracking issue

Currently, ComPWA repositories attempt to support development through several virtual environment managers, like Conda, venv, uv, and pixi. See Help developing. This has resulted in a complicated setup, such as the use of dev optional dependencies for defining developer dependencies (see also this Stackoverflow), and a larger number of constraint files that are updated through update-pip-constraints.

For managing project with Python dependencies only, it seems that uv is the way to go forward, as it allows to pin and bootstrap specific Python versions, can generate universal lock files, and provides a standard for developer dependencies.
Edit: Support for dependency groups (PEP 735) has been accepted and will be available in uv as well.

A problem remains non-Python dependencies, in particular graphviz. This is currently assumed to be installed on the system, or it is provided in the Conda/Pixi environment. Some thoughts:

What would also be great is to ditch the .constraints/ folder and switch to a uv.lock (and/or pixi.lock) file. The lock files are fast enough that you can have direnv update the pinned dependencies without noticable speed, which would remove the hassle of syncing dependencies by hand.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🖱️ DX Improvements to the Developer Experience Epic Collection of issues
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant