-
Notifications
You must be signed in to change notification settings - Fork 179
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
Unpin Python requirements #11912
Unpin Python requirements #11912
Conversation
This is a really good idea and I'd like to get it in. For it to completely remove conflicts like what you're describing, we'll also have to do it for opentrons/shared-data/python/setup.py Lines 133 to 137 in aadcb1c
opentrons depends on shared-data.
|
Codecov Report
@@ Coverage Diff @@
## edge #11912 +/- ##
=======================================
Coverage 74.33% 74.33%
=======================================
Files 2158 2158
Lines 59492 59492
Branches 6225 6225
=======================================
Hits 44224 44224
Misses 13800 13800
Partials 1468 1468
Flags with carried forward coverage won't be shown. Click here to find out more. |
Thank you for the PR. Lines 60 to 71 in c21cd55
opentrons/shared-data/python/setup.py Lines 133 to 137 in c21cd55
|
Thanks! Feel free to close this PR as necessary. |
@y3rsh #11682 was closed without merge: #11682 (comment) Can you revisit this MR? We still have the need to unpin requirements. |
It is almost a year! |
Hey @ecederstrand , I'm sorry, I know it's been forever, but we're doing a big upgrade of a bunch of our dependencies now. Do version ranges like this: https://github.com/Opentrons/opentrons/pull/14420/files#diff-7bac1606de7de80231cd062b4bee4ba9e7874be65ce0dbdbfc20f31e4cc0dc31 work for you? |
Yeah, any dependency that is a range instead of pinned would work for me. |
This is a PRs to update python dependencies to modern versions. This one stops at the major breaking change point of pydantic 2.0. While Pydantic 2.0 is apparently much much faster (it's written in rust if you can believe it) it also makes a bunch of breaking api changes and in theory provides back-compat patches. Similarly, fastapi 0.100.0 switches internally to depend on pydantic 2, with similarly theoretical back compat patches. So, we've updated to, Dependency Version Changes In prod, major deps (full list is essentially entirely in the robot-server pipfile, see below for why): - fastapi 0.99.0 (from 0.68.1) - pydantic 1.10.12 (from 1.9.2) - uvicorn 0.27.0 (from 0.14.0) - sqlalchemy 1.4.51 (from 1.4.32 - bigger change than you think, and breaking changes above this) In dev tooling, - mypy 1.8.0 (from 0.981) - flake8 7 (from like 3 or something we never updated this) - mock 5 (from 4) - decoy 2 (from 1) - pytest 7.4.4 except robot-server, which is limited by tavern to 7.3 (from various) - tavern 2.9.1 (from 1.6) Version Definition Changes Some people want to use our python libraries that are published on pypi. The problem with this is that our libraries - opentrons and opentrons_shared_data have explicit version pinning in their setup.py install_requires, which makes it incredibly hard for them to coexist with other python packages that aren't comaintained by us (see #11912 , #12839 ). One way to fix this would be version ranges in the setup.py and explicit versions (that are contained within those ranges, and that match or define what's present on the robot) in the pipfiles. We couldn't do this because pipenv had problems with it. Now, however, we've upgraded pipenv, and that strategy works! And since I was going around bumping all the deps anyway, I could figure out what the actual functional dependency version boundaries were. So as part of this, opentrons (api/setup.py) and opentrons_shared_data (shared-data/python/setup.py) now have version ranges for all of their install_requires that aren't other opentrons packages, and I'm pretty sure about those version ranges. They may be smaller than would be ideal, but they're real.
Okay, we've merged #14420 and it will be released in 7.2.0 - I'm going to close this PR. Thank you for bringing this to our attention, and sorry it took so long to fix it. |
Overview
Fixes #11905
Changelog