-
Notifications
You must be signed in to change notification settings - Fork 1
Migrate Python CLI template to uv #21
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
base: main
Are you sure you want to change the base?
Conversation
Why these changes are being introduced: This is the first pass in migrating to uv from pipenv. How this addresses that need: * Removes Pipfile and Pipfile.lock * Updates pyproject.toml to be a valid uv project * All dependencies handled via 'uv add' and exist in pyproject.toml * Makefile and pre-commits updated to use uv syntax * Github actions *temporarily* hardcoded in local workflows, with a TODO to move these to a shared workflow when things settle down * Bumps python to 3.13 Side effects of this change: * Many! Hard pivot from Pipenv installation and running of the application. At this time, the largest side effect is the loss of 'pipenv run <appname>'. A future commit will apply a new strategy, but that is not present now. A workaround is 'uv run my_app/cli.py`. Relevant ticket(s): * https://mitlibraries.atlassian.net/browse/IN-1425
Why these changes are being introduced: As we continue to slowly build out this uv driven version of the CLI template, finding little things to update along the way. How this addresses that need: * Updated Dockerfile to use uv in image build * Add convenience docker methods in Makefile, unassociated with AWS ECR (helpful for local testing) * Update dependencies Side effects of this change: * None Relevant ticket(s): * None
95fceb3 to
8331067
Compare
Pull Request Test Coverage Report for Build 21072504558Details
💛 - Coveralls |
ehanson8
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.
Looking good but a few questions and comments
|
|
||
| COPY Pipfile* / | ||
| RUN pipenv install | ||
| # Install package into system python, includes "marimo-launcher" script |
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.
This docstring probably shouldn't have the marimo-launcher reference
| # Docker | ||
| #################################### | ||
| docker-build: # Build local image for testing | ||
| docker build -t python-cli-template:latest . |
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.
Is there a reason this is python-cli-template rather than my-app? It would simplify the find/replace if they were the same
| # https://mitlibraries.atlassian.net/wiki/spaces/IN/pages/3432415247/Python+Project+Linters#Template-for-pyproject.toml | ||
|
|
||
| [project] | ||
| name = "python-cli-template" |
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.
Again, could this be my-app?
| [project] | ||
| name = "python-cli-template" | ||
| version = "2.0.0" | ||
| requires-python = ">=3.12" |
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.
I think we want ~=3.12.0 rather than >=3.12 to avoid inadvertently upgrading to 3.13, ~=3.12.0 keeps it in 3.12 but gets the newest patch version
Purpose and background context
Migrate Python CLI template to uv
How can a reviewer manually see the effects of these changes?
The
uv-based GitHub CI workflow has been tested in MITLibraries/timdex-embeddings#33Includes new or updated dependencies?
YES
Changes expectations for external applications?
NO
What are the relevant tickets?
Code review