Repository navigation
Closed
Description
A major bump because the next release will drop EOL Python 3.5 (#4746). Will also be the first version to support Python 3.9.
Needs release notes:
- Implemented another ellipse drawing algorithm #4523
- Add support for CBDT and COLR fonts #4955
- Add getlength and getbbox functions for TrueType fonts #4959
- Drop support for PyPy3 < 7.2.0 #4964
Release Checklist
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
masterbranch. - Check GitHub Actions,
Travis CI and
AppVeyor to confirm
passing tests inmasterbranch. - Check that all of the wheel builds Pillow Wheel Builder pass the tests in Travis CI.
- In compliance with PEP 440, update version identifier in
src/PIL/_version.py - Update
CHANGES.rst. - Run pre-release check via
make release-testin 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 source distributions e.g.:
make sdist
- Create binary distributions
- Upload all binaries and source distributions e.g.
twine upload dist/Pillow-5.2.0* - Create a new release on GitHub
- In compliance with PEP 440, increment and append
.dev0to version identifier insrc/PIL/_version.py
Binary Distributions
Windows
- Contact
@cgohlkefor Windows binaries via release ticket e.g. Release 2.9.0 on July 1, 2015 #1174. - Download and extract tarball from
@cgohlkeandtwine upload *.
Mac and Linux
- Use the Pillow Wheel Builder:
git clone https://github.com/python-pillow/pillow-wheels cd pillow-wheels ./update-pillow-tag.sh [[release tag]] - Download wheels from the Pillow Wheel Builder release.
Publicize Release
- Announce release availability via Twitter e.g. https://twitter.com/PythonPillow/status/1013789184354603010
Documentation
- Make sure the default version for Read the Docs is up-to-date with the release changes
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]]
Reacted by Zhiwei Liang, null and grant-glutgut
Activity
hugovk commentedon Jul 9, 2020
Review of deprecations:
Image.showcommand parameterNot long enough to remove.
Image._showxvNot long enough to remove.
ImageFile.raise_ioerrorNot long enough to remove.
PILLOW_VERSIONconstantIt was initially removed in Pillow 7.0.0, but brought back in 7.1.0 to give projects more time to upgrade.
Deprecation warnings since 7.1.0 (April 2020).
Not long enough to remove.
ImageCms.CmsProfileattributesDeprecation warnings since 6.0.0 (April 2019).
Can be removed: PR #4768.
hugovk commentedon Oct 14, 2020
Will begin the release process a bit later this evening so we're ready to release later tonight or tomorrow morning.
hugovk commentedon Oct 14, 2020
@cgohlke Please could we have Windows binaries for 8.0.0?
cgohlke commentedon Oct 14, 2020
Here you go.
hugovk commentedon Oct 14, 2020
Thanks!
Release is out!
Misc. notes:
The Travis wheel builder took ages, there are meant to be 5 parallel jobs but there were only 2 or 4 running. Other accounts I checked on https://travis-ci.org/ only had 4 parallel.
It took 1 hr 42 min 52 sec (tag). The last
master, 3 days ago, took 1 hr 44 min 59 sec, and that ran twice as much (tag + latest).I downloaded wheels from https://github.com/python-pillow/pillow-wheels/releases/tag/8.0.0 with:
nulano commentedon Oct 14, 2020
Travis has been running at almost full capacity the last few days. There was a large uptick in the queue length just before the release started: https://www.traviscistatus.com#system-metrics
hugovk commentedon Oct 14, 2020
Yeah, sure that didn't help. But it's dropped quite a lot, and again only 2 jobs are running.
nulano commentedon Oct 14, 2020
True, I don't think I've seen 5 concurrent jobs on my repo at all this week.
nulano commentedon Oct 14, 2020
Can you pin the new tweet (and maybe update the release checklist)? The 7.2.0 release is still pinned on Twitter.
hugovk commentedon Oct 14, 2020
I can't pin via TweetDeck, @aclark4life please could you do it? ^
aclark4life commentedon Oct 14, 2020
Done! Thanks all ❤️
12 remaining items
wiredfool commentedon Oct 22, 2020
Is there the potential that any older releases are affected, or is this something that got enabled with the color font support?
We should have a list of potentially vulnerable releases, and specifically mention the last python 2 release.
nulano commentedon Oct 22, 2020
Before #4955 bitmap fonts were disabled with
FT_LOAD_NO_BITMAP, but it is not clear to me whether this prevents the exploit. The FreeType documentation states:Other than that, it is sufficient for FreeType to be compiled with libpng enabled. I do not see any changes specific to colour font support in the git blame of
config.shwhich makes me think this was enabled automatically by the FreeType build based on libpng being present.nulano commentedon Oct 22, 2020
It would be nice to actually add libpng / CBDT font support to the Windows wheels, but it is obviously not necessary. This requires
@cgohlkeadding the library to the build and maybe release notes.hugovk commentedon Oct 22, 2020
Feedback welcome on release notes: #5000
hugovk commentedon Oct 22, 2020
Release Checklist
Point Release
Released as needed for security, installation or critical bug fixes.
Make necessary changes in
masterbranch.Update
CHANGES.rst.Check out release branch e.g.:
Cherry pick individual commits from
masterbranch to release branch e.g.5.2.x.Check GitHub Actions,
Travis CI and
AppVeyor to confirm
passing tests in release branch e.g.
5.2.x.In compliance with PEP 440, update version identifier in
src/PIL/_version.pyRun pre-release check via
make release-test.Create tag for release e.g.:
Create source distributions e.g.:
Create binary distributions
Upload all binaries and source distributions e.g.
twine upload dist/Pillow-5.2.1*Create a new release on GitHub
Binary Distributions
Windows
@cgohlkefor Windows binaries via release ticket e.g. Release 2.9.0 on July 1, 2015 #1174.@cgohlkeandtwine upload *.Mac and Linux
git clone https://github.com/python-pillow/pillow-wheels cd pillow-wheels ./update-pillow-tag.sh [[release tag]]Publicize Release
Documentation
Docker Images
git clone https://github.com/python-pillow/docker-images cd docker-images ./update-pillow-tag.sh [[release tag]]hugovk commentedon Oct 22, 2020
Cherry picked these:
GHA Window CI failed with "Overwrite D:\a\Pillow\Pillow\Tests\images\string_dimension.tiff (Yes/No/All)?", will be because of #4993 / python-pillow/pillow-depends#34, so will include that too: f886bc9.
Edit: passing now 👍
nulano commentedon Oct 22, 2020
See #5001 to avoid this in the future.
hugovk commentedon Oct 22, 2020
The Mac and Linux wheel builder is running, currently with one "parallel" job, so it's going to take a long time.
@cgohlke Please could you make Windows binaries for Pillow 8.0.1, making sure to first update to FreeType 2.10.4 to include the security fix? Thank you!
cgohlke commentedon Oct 22, 2020
Here you go.
hugovk commentedon Oct 22, 2020
Thank you!
Travis CI only had 0-3 parallel jobs and took 3.5 hours instead of the usual 5 parallel jobs and half an hour.
Released!
Thanks all!
aclark4life commentedon Oct 22, 2020
Pinned!