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

Release Pillow 8.2.0 on April 1, 2021 #5287

Closed
25 tasks done
radarhere opened this issue Feb 26, 2021 · 19 comments
Closed
25 tasks done

Release Pillow 8.2.0 on April 1, 2021 #5287

radarhere opened this issue Feb 26, 2021 · 19 comments
Assignees
Labels
Milestone

Comments

@radarhere
Copy link
Member

radarhere commented Feb 26, 2021

Some things to check before release:

Main Release

Released quarterly on January 2nd, April 1st, July 1st and October 15th.

  • Open a release ticket e.g. Release Pillow 5.2.0 on July 1, 2018 #3154
  • Develop and prepare release in master branch.
  • Check GitHub Actions and AppVeyor to confirm passing tests in master branch.
  • Check that all of the wheel builds Pillow Wheel Builder pass the tests in Travis CI and GitHub Actions.
  • In compliance with PEP 440, update version identifier in src/PIL/_version.py
  • Update CHANGES.rst.
  • Run pre-release check via make release-test in a freshly cloned repo.
  • Create branch and tag for release e.g.:
    git branch 5.2.x
    git tag 5.2.0
    git push --all
    git push --tags
  • Create and check source distribution:
    make sdist
    twine check dist/*
  • Create binary distributions
  • Check and upload all binaries and source distributions e.g.:
    twine check dist/*
    twine upload dist/Pillow-5.2.0*
  • Publish the release on GitHub
  • In compliance with PEP 440, increment and append .dev0 to version identifier in src/PIL/_version.py

Binary Distributions

Windows

Mac and Linux

Publicize Release

Documentation

Docker Images

  • Update Pillow in the Docker Images repository
    git clone https://github.com/python-pillow/docker-images
    cd docker-images
    ./update-pillow-tag.sh [[release tag]]
@hugovk hugovk self-assigned this Feb 26, 2021
@hugovk hugovk added this to the 8.2.0 milestone Mar 1, 2021
@radarhere radarhere pinned this issue Mar 3, 2021
@radarhere radarhere unpinned this issue Mar 22, 2021
@radarhere radarhere pinned this issue Mar 22, 2021
@hugovk
Copy link
Member

hugovk commented Mar 31, 2021

Release day tomorrow!

If there are any PRs you'd especially like including, please mention them and we can review and hopefully include them. Thanks!

@nulano
Copy link
Contributor

nulano commented Mar 31, 2021

@wiredfool
Copy link
Member

I'm running the fuzzers overnight to see if anything else is caught quickly. If they come up with anything, I'll try to get it fixed in the morning. I'd rather hold up a release rather than do another one in a few days.

@wiredfool
Copy link
Member

python-pillow/pillow-wheels#181 has been merged

@hugovk
Copy link
Member

hugovk commented Mar 31, 2021

I'm running the fuzzers overnight to see if anything else is caught quickly. If they come up with anything, I'll try to get it fixed in the morning. I'd rather hold up a release rather than do another one in a few days.

Sure, will hold off until you give the all clear. Should we also hold off merging PRs with C changes until after the fuzzing/release?

@wiredfool
Copy link
Member

Fuzzers are good.

I'm not averse to C changes, but perhaps not in any of the modules that have pending security issues. (e.g., the quantize thing). OTOH, I don't think any of them are critical, and having a merge party after a release is preferable to one just before a release.

@hugovk
Copy link
Member

hugovk commented Apr 1, 2021

@cgohlke Please could we have Windows binaries for 8.2.0? Thank you!

@nulano

This comment has been minimized.

@cgohlke
Copy link
Contributor

cgohlke commented Apr 1, 2021

Here you go.

FWIW, I had to rebuild libtiff with USE_WIN32_FILEIO=ON and disable feature.raqm (otherwise setup.py would link to the DLL found on my system).

@nulano
Copy link
Contributor

nulano commented Apr 1, 2021

disable feature.raqm (otherwise setup.py would link to the DLL found on my system).

The idea is to build wheels with --global-option --vendor-raqm --global-option --vendor-fribidi which should link with HarfBuzz only: python-pillow/pillow-wheels#181 (comment)

@nulano
Copy link
Contributor

nulano commented Apr 1, 2021

I had to rebuild libtiff with USE_WIN32_FILEIO=ON

Discussed in #5243 / #5359

@hugovk
Copy link
Member

hugovk commented Apr 1, 2021

I restarted the pillow-wheels build after the timeout.

Now, because the wheel builder on the main repo doesn't have access to macos-11.0 runners, the main step is failing so it doesn't upload the wheels.

https://github.com/python-pillow/pillow-wheels/actions/runs/709421322

I'm going to untag 8.2.0 on that repo, then comment out the macos-11.0 job, then retag and push again.

@nulano
Copy link
Contributor

nulano commented Apr 1, 2021

Now, because the wheel builder on the main repo doesn't have access to macos-11.0 runners, the main step is failing so it doesn't upload the wheels.

You can download a zip of all wheels directly from the summary page at the bottom, if it is ok not to make a release on the wheel repo.

@hugovk
Copy link
Member

hugovk commented Apr 1, 2021

Ah yes, that can be plan C :) Which may be needed as the last job isn't expanding:

@nulano
Copy link
Contributor

nulano commented Apr 1, 2021

Which may be needed as the last job isn't expanding

That is the disabled "latest" job (disabled for tagged builds).

@hugovk
Copy link
Member

hugovk commented Apr 1, 2021

@hugovk
Copy link
Member

hugovk commented Apr 1, 2021

And released!

Thanks @cgohlke and everyone else!

@radarhere Please could you do the macOS 11 wheel in your repo?

@radarhere
Copy link
Member Author

radarhere commented Apr 2, 2021

Ok, uploaded to PyPI now, along with the Travis jobs (although the Travis jobs weren't detecting raqm/harfbuzz/fribidi for some reason).

@nulano
Copy link
Contributor

nulano commented Apr 2, 2021

(although the Travis jobs weren't detecting raqm/harfbuzz/fribidi for some reason).

Oops, I don't think anyone actually tested the PR on Travis. Disabling the check on Travis should be fine as the build is done with the --enable-raqm setup flag which ensures Raqm support was built, even if the tests fail to find FriBiDi after installation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants