-
Notifications
You must be signed in to change notification settings - Fork 44
Migrate to uv for python package management #590
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
Conversation
- Replace setup.py with pyproject.toml using hatchling build backend - Consolidate requirements.txt and dev-requirements.txt into pyproject.toml - Update Makefile to use uv commands instead of venv/pip - Update GitHub Actions workflows to use astral-sh/setup-uv@v4 - Remove MANIFEST.in (handled by hatch) - Update .gitignore for uv artifacts
pdames
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Impressive - thanks for picking this work up and getting the CI/CD workflows passing so quickly!
Before merging this, I also wanted to get some other eyes on the proposed shift of DeltaCAT 2.X to UV (DeltaCAT 1.X will remain as-is for now).
@pfaraone, @Zyiqin-Miranda, @yankevn, @IvanPartsunev - any concerns related to continuing to support your existing dev, build, and deploy workflows?
IMO, unless there's a hard blocker, I'd prefer to just merge this PR and transition to UV now vs. continuing to support the legacy build & deploy process side-by-side for future DeltaCAT 2.X work.
|
Thanks for the review @pdames, the documentation should be updated. One nit I noticed is a reference in the dev README to a No rush at all on merging this. |
pdames
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
|
Regarding the |
Hmmm, good catch on the missing |
Sounds reasonable as a separate PR. |
Zyiqin-Miranda
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thanks for getting DeltaCAT set up with uv!
yankevn
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
Merged - thanks @JayThomason! |
Summary
Migrate from setup.py to uv for python package management.
Rationale
uv has recently become the de-facto standard for python package management due to its speed and ease of use.
This change should improve the developer experience and speed up builds, especially in fresh environments.
It should also become easier to open up some of the dependencies to a wider set of versions since uv is so much faster at resolving dependencies.
Changes
Impact
This change should not affect the underlying code or dependencies (with the one exception noted above). The impact should primarily be an improved developer experience.
Testing
I have set up a local environment and verified I can run unit tests, pre-commit, etc.
I have tested CI in my own fork and it is passing.
I have not tested every command in the Makefile that changed, though I have manually run most of the same commands.
Regression Risk
Does not apply.
Checklist
Additional Notes
This change was loosely suggested here #588 but I am curious if there is any reason not to switch to uv.
Note that this change only seems large due to the uv.lock file which has been committed; other than that it's roughly +160/-240