-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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 pip 19 #833
Upgrade to pip 19 #833
Conversation
pip just released 19.2.3. |
9caf1c3
to
02a0b7b
Compare
02a0b7b
to
ee6c6fb
Compare
Limitations on merging this? |
ee6c6fb
to
baa90b3
Compare
Rebased onto master ( |
Thanks for the PR series @cjolowicz! This looks good, but updating pip for pipenv users or requiring them to update without a heads up won't be a good experience (our version is old enough that they'll need to uninstall and reinstall pipenv locally to successfully update). If you can refactor this to stay pinned to current version for pipenv users only, I should be able to accept this (and the related project updates) 👍 |
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.
See comment for details - but for now, pipenv users should still get the old version of pip
also relevant: I'm going to extract the package manager detection parts from #816 as well, contributor willing. I can make sure it all plays nicely together after the fact, but all I'm looking for here is a separate |
This addresses an issue raised by @CaseyFeist during code review: Updating pip for pipenv users or requiring them to update without a heads up won't be a good experience (our version is old enough that they'll need to uninstall and reinstall pipenv locally to successfully update). If you can refactor this to stay pinned to current version for pipenv users only, I should be able to accept this (and the related project updates). heroku#833 (comment)
This addresses an issue raised by @CaseyFeist during code review: Updating pip for pipenv users or requiring them to update without a heads up won't be a good experience (our version is old enough that they'll need to uninstall and reinstall pipenv locally to successfully update). If you can refactor this to stay pinned to current version for pipenv users only, I should be able to accept this (and the related project updates). heroku#833 (comment)
baa90b3
to
8408e34
Compare
|
Hey @CaseyFaist, thanks for your feedback! Here's a new commit to keep pip pinned to the current version for pipenv users: 8408e34. Does this address your concerns? I like the approach of #816 to modularize the buildpack by package manager, so great! Here's a comment explaining the changes to The branch was also rebased to the tip of master. |
@cjolowicz thanks for your work! Looking over it now, I'll add comments as I have them ❤️ |
What is the status of this PR? I see this as a high-priority fix, given that Currently, only option for building apps with such wheels seems to be forking this repo, modifying |
Current pip release is now 19.3.1, released on October 17, 2019. |
Bump PIP_UPDATE from 9.0.2 to 19.2.3. This variable is used in bin/steps/python to determine which pip version to install or upgrade to.
Python 3.4 support was dropped in pip >= 19.2. For projects still on this Python version, use pip 19.1.1 instead of pip 19.2.1.
The pip-diff and pip-grep tools from the vendorized `pip-pop` package import internal modules from pip. In pip >= 10, internal modules were moved under `pip._internal`, breaking the imports. Use `try...except ImportError` to handle both import paths. Also, the interface of the `PackageFinder` class from one of these modules changed. Provide a wrapper function to allow creating objects of this type using the old interface.
This addresses an issue raised by @CaseyFeist during code review: Updating pip for pipenv users or requiring them to update without a heads up won't be a good experience (our version is old enough that they'll need to uninstall and reinstall pipenv locally to successfully update). If you can refactor this to stay pinned to current version for pipenv users only, I should be able to accept this (and the related project updates). heroku#833 (comment)
8408e34
to
40ec196
Compare
Update: Retracted the upgrade to pip 19.3.1. This is now merely a rebase onto master, without additional changes. Background: The upgrade to pip 19.3.1 caused |
@CaseyFaist : This PR is marked "changes requested", but I'm not sure which changes are requested. |
This addresses an issue raised by @CaseyFeist during code review: Updating pip for pipenv users or requiring them to update without a heads up won't be a good experience (our version is old enough that they'll need to uninstall and reinstall pipenv locally to successfully update). If you can refactor this to stay pinned to current version for pipenv users only, I should be able to accept this (and the related project updates). heroku#833 (comment)
40ec196
to
8eb2954
Compare
Did it fail checks just because changelog.md wasn't modified? Do we just need to add an entry to said changelog for this PR? |
@helioseven, the checks here do not work for external contributions. See the mirror PR in my fork: Tests over there pass, with the exception of the changelog. |
This PR upgrades pip to version 19.x. This upgrade is the first step to provide support for
pyproject.toml
-based projects (PEP 517), such as those managed by poetry and flit.19.2.3
, for projects using Python 2.7 and >= 3.5.19.1.1
, for Python 3.4 projects.Note that pip 19.2 dropped Python 3.4 support, hence the version difference.
Patch the vendorized
pip-pop
package, which is used by thepip-uninstall
,gdal
, andpylibmc
steps. It relies on internal pip modules changed by the update.Closes #740
See #804
Follow-ups:
CI is broken for PRs from another repository, see this comment. Please check the corresponding PR in my fork to verify CI: