-
-
Notifications
You must be signed in to change notification settings - Fork 31.5k
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
Upgrade to newer Python pip>=21.0 #59769
Conversation
b4b87a8
to
c90bcd8
Compare
Updated missing statuses in the list, filed a few PR's. The only fixable one without a PR or issue report at the moment is pyicloud ( |
Since we can still use the legacy resolver with the latest pip, can we update to this PR, add command line flag for legacy resolver and make sure we block any 22+ versions? |
That would work. According to the documentation, the old resolver hasn't yet been removed. Although there are no guarantees that it will continue to work for each new release. It might be removed even in the next minor release. I do think however that the original intent for this PR was to track the issues which need to be addressed for the resolver change. Adding the legacy flag will only push that down the line. There is another reason to use |
Yeah regular rebase and see what it spits out and try to resolve.
That is not blocking at this point. That said, yeah using the legacy flag will do for now. I Will index all the locations that need updating (wheels, Dev containers, CI and a couple of spots more). |
True. Although it's much more convenient to use prebuild wheels.
👍🏻 One issue we should be aware of. Using the flag on
|
Something more for the Todo list. Pip |
c90bcd8
to
9708bea
Compare
Github doesn't work, I can't leave review comments it seems 😞 Some notes here instead:
pip>=21.0,<21.1
|
Agreed but let's make it
I skipped that one, as that prevents e.g., custom integrations to make a mess? |
I wasn't sure about that myself. AFAIK and if it hasn't changed since, the dependency resolver doesn't take the installed packages into account. So it would not even change much.? To have a fully deterministic build, we would probably need to add every requirement to the constraints file, but that will surely impact custom integrations. For the full distribution, I agree. There it's necessary. -- |
Yeah, that has crossed my mind a couple of times as well, but that is kinda "meh". Nevertheless, it doesn't have to be problematic if a custom integration replaces a dependency of an integration that isn't used by the end-user either... So a choice between evils probably? 🙈 🙉 🙊 PS: Let's not put these things in this upgrade path 😉 |
True. We could also argue that if a custom integration breaks Home Assistant, it's the responsibility of the integration author to fix it. So maybe we don't need to change anything for the time being.
😄 |
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!
Proposed change
We currently lock
pip
to <20.3.This will work for a while and doesn't cause problems right now. But in the long run, will become problematic. This PR serves as a draft to monitor progress towards getting it upgraded.
ℹ️ We now have a pip-check script in CI in place to protect us against creating more conflicts.
We are currently down to 11 conflicts (some have a PR open, others will probably end up being disabled as an integration).
Todo:
Type of change
Additional information
Checklist
black --fast homeassistant tests
)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest
.requirements_all.txt
.Updated by running
python3 -m script.gen_requirements_all
..coveragerc
.The integration reached or maintains the following Integration Quality Scale:
To help with the load of incoming pull requests: