Skip to content
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

pip 20.2 release (Q3 2020) #8511

Closed
pradyunsg opened this issue Jul 1, 2020 · 48 comments
Closed

pip 20.2 release (Q3 2020) #8511

pradyunsg opened this issue Jul 1, 2020 · 48 comments
Assignees
Labels
type: maintenance Related to Development and Maintenance Processes

Comments

@pradyunsg
Copy link
Member

Another quarter! Another release!

There has definitely been enough work done to justify a release (we have had funded developer time!).

@pradyunsg pradyunsg added this to the 20.2 milestone Jul 1, 2020
@triage-new-issues triage-new-issues bot added the S: needs triage Issues/PRs that need to be triaged label Jul 1, 2020
@pradyunsg pradyunsg added the type: maintenance Related to Development and Maintenance Processes label Jul 1, 2020
@triage-new-issues triage-new-issues bot removed the S: needs triage Issues/PRs that need to be triaged label Jul 1, 2020
@pradyunsg
Copy link
Member Author

As always, we need a release manager for this release, from @pypa/pip-committers.

As has been the case for the past few releases (#7531 (comment)), I'd happy to be the release manager for this release as well. I'll be a bit more preemptive this time and self-assign myself as the RM for pip 20.2. Holler here if you're opposed to me being the RM. 😉

@pradyunsg
Copy link
Member Author

pradyunsg commented Jul 17, 2020

Mapping the path from status quo, to where we want to be for the release:

Other than that, looking at the new resolver work that's due for pip 20.2:

(I think that's all?)

Right now, I think #6998 and the changelog entry are the only items that need to be done and haven't had someone take them up. @pypa/pip-team Any takers?

@sbidoul
Copy link
Member

sbidoul commented Jul 17, 2020

@pradyunsg we could add #8369 which is the easiest of the setup.py install deprecations. The others need more work.

@pradyunsg
Copy link
Member Author

Sounds good to me!

@rouge8
Copy link
Contributor

rouge8 commented Jul 18, 2020

I'm hoping #8601 (or something similar) can be included to make it easier to use the new resolver 🤞

@pradyunsg
Copy link
Member Author

Just did another pass with help from @brainwane. Looks like we should be on track for a release on Monday. :)

In terms of TODOs before the release, there's:

@pradyunsg
Copy link
Member Author

Thinking that I'd work over the weekend was a bad idea, especially since #8594 needed a lot more wrangling with the test suite than I had expected.

Once that and #8491 are merged, I'll make the release.

@brainwane
Copy link
Contributor

@pradyunsg here's a draft release announcement for email/Discourse - what do you think? In particular, if you think the highlights are off, please speak up.


On behalf of the PyPA, I am pleased to announce that we have just released pip 20.2, a new version of pip. You can install it by running python -m pip install --upgrade pip.

The highlights for this release are:

  • Implement PEP 376, REQUESTED metadata, so it can be easier to
    discover which distributions were installed by the user and which
    distributions were installed as dependencies

  • Parallelize the networking operations done by pip list --outdated
    and pip list --uptodate

  • Log debugging information about pip in pip install --verbose, and
    add a subcommand debug to pip config

  • Allow specifying --prefer-binary option in a requirements file

  • Install wheel files directly instead of extracting them to a temp
    directory

  • Support --use-feature in requirements files

  • The beta version of pip's next-generation dependency resolver

The new resolver is off by default because it is not yet ready for everyday use. Please test it with the --use-feature=2020-resolver flag. The new resolver is significantly stricter and more consistent when it receives incompatible instructions, and reduces support for certain kinds of constraints files, so some workarounds and workflows may break. Please see our guide on how to test and migrate, and how to report issues. We are preparing to release pip 20.3, with the new resolver on by default, in October.

You can find more details (including deprecations and removals) in the changelog.

As with all pip releases, a significant amount of the work was contributed by pip's user community. Huge thanks to all who have contributed, whether through code, documentation, issue reports and/or discussion. Your help keeps pip improving, and is hugely appreciated.

Specific thanks go to Mozilla (through its Mozilla Open Source Support Awards) and to the Chan Zuckerberg Initiative DAF, an advised fund of Silicon Valley Community Foundation, for their funding that enabled substantial work on the new resolver.

@xavfernandez
Copy link
Member

Do we want to also ask for feedback on --use-feature=fast-deps that can be combined with --use-feature=2020-resolver ?

@pradyunsg
Copy link
Member Author

Do we want to also ask for feedback on --use-feature=fast-deps that can be combined with --use-feature=2020-resolver ?

I think so. Let's add a couple of sentences about it. :)

@pradyunsg
Copy link
Member Author

pradyunsg commented Jul 29, 2020

@brainwane and I collaborated on the email here. I think we're good to go -- now for me to make the release... after I eat breakfast. :)

@pradyunsg
Copy link
Member Author

pradyunsg commented Jul 29, 2020

Made the release!

  • Uploaded to PyPI
  • Updated get-pip.py
  • Posted on discuss.python.org
  • Posted on distutils-sig

@pradyunsg
Copy link
Member Author

pradyunsg commented Jul 29, 2020

And, because I'm thinking of automating this process everytime I go through it, I wrote a script and used that for making this release.

# make-release.sh

tag=$1

# be on latest master
nox -s prepare-release -- $tag
git push origin HEAD

echo "File the PR and merge it."
read -n 1

git pull upstream master --ff-only
git push origin $tag --no-verify
git push upstream $tag --no-verify

rm -r build/ dist/ || true
nox -s build-release -- $tag
nox -s upload-release -- $tag

cd ../get-pip

git checkout master
git reset --hard HEAD
git pull upstream master
pip install -r requirements.txt
curl -X PURGE https://pypi.org/simple/pip/
invoke generate
git add .
git commit -m "Update to $tag"
git tag $tag  # this should change to `git tag -s -m "$tag" $tag` in the future

git push origin master $tag
git push upstream master $tag

@pradyunsg
Copy link
Member Author

@pypa/pip-committers There's no "embargo" on master -- it's open for merging PRs as usual. I'll cherry-pick bugfixes as needed.

@brainwane
Copy link
Contributor

brainwane commented Jul 29, 2020

I just tweeted; also today I'll send a bunch of announcement emails and do other publicity.

Edited later to add -- some other time-sensitive stuff came up, so more announcements will be tomorrow.

@brainwane
Copy link
Contributor

Pradyun already announced on Discourse and distutils-sig.

I've now announced:

I still need to do devpi-dev, python-dev, the psf-community & psf-volunteers lists, Carpentries-discuss, and the newsletters (Import Python, Python Weekly, and Pycoders weekly). I'll do those today.

There are many other venues I'd also like to hit but I think they'll have to wait till next week because I have other commitments today & tomorrow.

@pradyunsg
Copy link
Member Author

Looks like we have at least a few reasons to make a bugfix release:

I'd like to wait over the weekend to give some more time for bug reports / PRs / reviews to roll in. Let me know if there's anything else I've missed that should be included in a bugfix release. If everything works out, I'll make a bugfix release on Monday. :)

@brainwane
Copy link
Contributor

I've now announced on/to:

@pradyunsg
Copy link
Member Author

I just merged #8702 right now, so that leaves on #8687. :)

@jessecooper
Copy link

#8687 appears to be out of scope for a hotfix version and would be more qualified for a minor release.

@pradyunsg
Copy link
Member Author

@jessecooper as I noted in #8687 (comment), it's a substantial enough improvement that I don't think it should wait for 3 months until 20.3.

@pradyunsg
Copy link
Member Author

The discussion over at #8687 reached a concensus/conclusion. We're ready to go for 20.2.2. I'll cut the release in a bit. :)

@pradyunsg
Copy link
Member Author

pip 20.2.2 has been released (#8746 for the release PR).

@jessecooper
Copy link

@pradyunsg I can understand not wanting to wait 3 months to get something out but regardless of how substantial the improvement I don't think it should delay the release of a hotfix for a regression as that has a larger impact to the overall Python community. Either way, thank you guys for getting this release out it is greatly appreciated.

@pradyunsg pradyunsg modified the milestones: 20.2.2, 20.2.3 Aug 13, 2020
@pradyunsg pradyunsg changed the title pip 20.2 release (July 2020) pip 20.2 release (Q3 2020) Aug 13, 2020
@pradyunsg
Copy link
Member Author

#8752 is a PR in line for a 20.2.3 release. I'll cut the release sometime tomorrow for it. Holler here if there's more stuff for the 20.2.3 bugfix. :)

@hugovk
Copy link
Contributor

hugovk commented Aug 18, 2020

Something to consider for 20.2.3, but not urgent: #8778.

@pradyunsg
Copy link
Member Author

I'mma cut 20.2.3 with #8778 and #8752 later tonight/early tomorrow. Let me know if anyone has any concerns with that. :)

@pradyunsg
Copy link
Member Author

No one hollered, and I missed my reminder again. Oops.

@pradyunsg pradyunsg unpinned this issue Sep 8, 2020
@pradyunsg pradyunsg removed this from the 20.2.3 milestone Sep 8, 2020
@pradyunsg
Copy link
Member Author

With #8853, I reckon this release cycle has run long enough and we can wrap it up now! Onward to 20.3!

@brainwane
Copy link
Contributor

@pradyunsg this is my own fault for doing things in the wrong order, but per https://discuss.python.org/t/an-update-on-pip-and-dependency-resolution/1898/11 would it be easy to make a 20.2.4 point release, mostly for the sake of updating the front page of pip.pypa.io?

@pradyunsg
Copy link
Member Author

pradyunsg commented Sep 30, 2020

Can do! Let me know which PRs you'd want to include on top of 20.2.3 (likely all documentation-only?) and I'll cut the 20.2.4 release with those updates. :)

@brainwane
Copy link
Contributor

@pradyunsg Right - #8942 (not yet merged), #8807, and #8933. And if you've made any improvements to performance related to #8664 it's probably worth including those as well.

Or you could just merge #8942 and cut a release of master!

@brainwane
Copy link
Contributor

In today's meeting @pradyunsg and I decided that

@brainwane brainwane reopened this Oct 7, 2020
@pradyunsg
Copy link
Member Author

#8990 is the 20.2.4 release PR. Some changes listed in the previous comment were already part of other 20.2 releases. The exact list for the 20.2.4 release is available in the PR.

@pradyunsg
Copy link
Member Author

Alrighty! pip 20.2.4 has been out for 3 hours now, and seems to have been well received so far (i.e. no new bug reports). As mentioned, the changelog has the list of exact changed included in the bugfix, and so does #8990. :)

Gonna wrap this up proper, and focus on getting to out 20.3 later this month!

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 9, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
type: maintenance Related to Development and Maintenance Processes
Projects
None yet
Development

No branches or pull requests

8 participants