-
Notifications
You must be signed in to change notification settings - Fork 33
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
Migrate Python library to uv #345
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
2 Skipped Deployments
|
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.
No issues flagged.
Standard Input can make mistakes. Check important info.
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.
👍 Looks good to me! Reviewed everything up to 5eb05c3 in 5 seconds
More details
- Looked at
33
lines of code in1
files - Skipped
0
files when reviewing. - Skipped posting
1
drafted comments based on config settings.
1. python/pyproject.toml:34
- Draft comment:
The 'dev' dependency group is missing some dependencies that were present in the original 'dev' section, such as 'build', 'twine', and 'ruff'. Consider adding them back to ensure the development environment is fully equipped. - Reason this comment was not posted:
Comment did not seem useful.
Workflow ID: wflow_HiJqvxN8P7H0VNAp
You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
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.
❌ Changes requested. Incremental review on de5891c in 1 minute and 11 seconds
More details
- Looked at
540
lines of code in9
files - Skipped
0
files when reviewing. - Skipped posting
0
drafted comments based on config settings.
Workflow ID: wflow_O8LfDGw1xqxZZcZe
Want Ellipsis to fix these issues? Tag @ellipsis-dev
in a comment. You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
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.
👍 Looks good to me! Incremental review on 9c273b3 in 4 seconds
More details
- Looked at
37
lines of code in1
files - Skipped
0
files when reviewing. - Skipped posting
1
drafted comments based on config settings.
1. .github/workflows/python-tests.yml:19
- Draft comment:
The versionactions/checkout@v4
does not exist. Consider usingactions/checkout@v3
. - Reason this comment was not posted:
Comment did not seem useful.
Workflow ID: wflow_c9Da1djJxzmpTGyz
You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
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.
👍 Looks good to me! Incremental review on 6d2048a in 9 seconds
More details
- Looked at
37
lines of code in2
files - Skipped
0
files when reviewing. - Skipped posting
1
drafted comments based on config settings.
1. python/tests/server.py:14
- Draft comment:
self.connection_string
should be initialized toNone
to avoid potentialAttributeError
. - Reason this comment was not posted:
Comment was not on a valid diff hunk.
Workflow ID: wflow_gRtLBKLMTpsx9uER
You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
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’m a fan of all of it sans migrating to uv. It’s a good tool and seems to be having a moment, but I’m a fan of using boring technologies. I don’t see a need to change build tooling right now. From what I can see, the rest of this PR adds useful functionality, independent of build system
I generally agree, but IMHO there are no “boring” package managers for Python, instead there's a mishmash of tools that have never worked well for me. Prior to introducing |
This is how Python development has been done for a decade, I’m honestly confused why suddenly it’s an issue. I’m happy to sit down and help get you setup if you’re running into issues, but here’s a very quick reference. On the flip side, I see wasted time in migrating and learning a new tool. (EDIT: In case you’re following the guide, note that M-series Macs use /opt/homebrew instead of /usr/local — you can copy my config here) |
It's not that it's suddenly an issue; Python dependency management has always been a mess, there's no “boring” track to fall back on. If we are going to be running tests in CI, I want to use lockfiles, which |
I see, this makes sense. I think the Python ecosystem really screwed itself with the recent move to pyproject.toml, as previously with setup.py there was a straightforward way to manage a requirements.txt file alongside. Let’s move forward with uv then. To ease the transition, can you write in a README how someone can setup their local environment, compile and contribute to this project? I think the appropriate background to expect from a reader is someone who’s used virtual environments but has no familiarity with uv. I want to avoid getting tripped up or having to learn a new tool from scratch; a guide like this will definitely pay off. |
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.
👍 Looks good to me! Incremental review on b5b972b in 2 seconds
More details
- Looked at
67
lines of code in2
files - Skipped
0
files when reviewing. - Skipped posting
1
drafted comments based on config settings.
1. python/README.md:43
- Draft comment:
Typo: 'Liunux' should be 'Linux'.
To install it on Mac or Linux, run:
- Reason this comment was not posted:
Confidence changes required:10%
The README.md file contains a typo in the word 'Linux'.
Workflow ID: wflow_5kxxH2Um23kxDybl
You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
Sounds good, I've fleshed out the readme a bit more to include installing
I think |
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.
Everything looks great, thanks for the super helpful README!
It's fast and seems to be the direction Python projects are going. We also now spin up a server for each test, for better isolation. This required some changes to the piping on the server side, to allow us to use port
0
to get the OS to assign an available port. This means we need to compute the connection string after we have bound the port, so that the connection string contains the actual bound port and not port0
.This also sets up Python tests to run in CI/CD, but only when the Python code changes (at least for now).