Repository navigation
Closed
Description
Highlights:
TODO
- Merge Updated zlib to 1.3 pillow-wheels#400 before release
- Add support for Python 3.12 #6941
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
mainbranch. - Check GitHub Actions and AppVeyor to confirm passing tests in
mainbranch. - Check that all of the wheel builds pass the tests in the GitHub Actions "Wheels" workflow and Travis CI jobs by manually triggering them.
- 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 --tags
- Create and check source distribution:
make sdist
- Create binary distributions
- Check and upload all binaries and source distributions e.g.:
python3 -m twine check --strict dist/* python3 -m twine upload dist/Pillow-5.2.0*
- Publish the release on GitHub
- In compliance with PEP 440,
increment and append.dev0to version identifier insrc/PIL/_version.pyand then:git push --all
Binary Distributions
macOS and Linux
- Download wheels from the GitHub Actions "Wheels" workflow
and copy intodist/. For example using GitHub CLI:gh run download --dir dist # select dist-x.y.z - Download the Linux aarch64 wheels created by Travis CI from GitHub releases
and copy intodist.
Windows
- Download the artifacts from the GitHub Actions "Test Windows" workflow
and copy intodist/. For example using GitHub CLI:gh run download --dir dist # select dist-x.y.z
Publicize Release
- Announce release availability via Twitter and Mastodon 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]]
Activity
bsekachev commentedon Sep 11, 2023
Hello,
May I ask if you are going to include #7383 to the October Release?
Or it is already too late, and it will be postponed till the next one?
hugovk commentedon Sep 11, 2023
Yes, #7383 will be in the October release.
Everything merged to
mainbefore the release is started will be included.homm commentedon Oct 1, 2023
For the record: release is delayed from common 1st October to 15th October due to Python 3.12 support which will be released at 15th October.
aclark4life commentedon Oct 1, 2023
Right, and the aforementioned record on release schedule is here: https://pillow.readthedocs.io/en/stable/releasenotes/index.html#release-notes
hugovk commentedon Oct 15, 2023
It's release day!
About PR #7307. I merged it, but now I'm having second thoughts. Sorry for raising this last minute, but rather before the release.
The release notes call it a breaking change:
https://pillow.readthedocs.io/en/latest/releasenotes/10.1.0.html#backwards-incompatible-changes
We use SemVer and 10.1.0 is not a major release that would allow breaking changes.
Options:
@python-pillow/pillow-team Thoughts?
radarhere commentedon Oct 15, 2023
I don't think it should be a breaking change for the normal user - I find it hard to think of a safe practical use for this, and we released #3203 for
sizein Pillow 5.3.0.It is a breaking change if you are writing your own plugins for Pillow, e.g. bigcat88/pillow_heif#122, but I don't think we consider that when creating releases.
I've created #7465 to move it to a different section of the release notes, and improve the documentation about writing your own plugin.
Edit: Also fdintino/pillow-avif-plugin@1853be2
hugovk commentedon Oct 15, 2023
Hmm, on the one hand, SemVer doesn't distinguish between normal users and plugins users, it's all part of the public API. But the exposure is clearly smaller, plugins do things a bit differently, and in this case it's fine to set an internal
mode_.Thanks for the PR, let's go with it, and if there are other plugins we can give a heads-up to, let's do that.
hugovk commentedon Oct 15, 2023
I've started the release. So far the GH wheel building is very nice and smooth!
Travis CI build failed to upload the wheels to the GH release:
https://app.travis-ci.com/github/python-pillow/pillow/builds/266593993
hugovk commentedon Oct 15, 2023
I think this is because the token was originally generated against the https://github.com/python-pillow/pillow-wheels/ repo:
python-pillow/pillow-wheels#156 (comment)
So we need to update it for this https://github.com/python-pillow/Pillow repo and add it to https://app.travis-ci.com/github/python-pillow/pillow/settings.
I'll try that.
hugovk commentedon Oct 15, 2023
I need to pop out for an hour or so, to be continued...
aclark4life commentedon Oct 15, 2023
Not related to this release but wondering do we still need Travis to build wheels? Thinking of this as potential replacement: https://github.com/pypa/cibuildwheel
radarhere commentedon Oct 15, 2023
If you're interested in a quick fix for this release, here are aarch64 wheels. As I have sometimes before, I generated them by adjusting the Travis script to upload the wheels to https://www.file.io/
aarch64-Python38-39.zip
aarch64-Python310-311.zip
aarch64-Python312.zip
hugovk commentedon Oct 15, 2023
I would very much like to move from multibuild to cibuildwheel. Both are fantastic projects, multibuild came first, and cibuildwheel learnt a lot from multibuild (see https://github.com/pypa/cibuildwheel#credits).
We're using Travis CI to build aarch64 wheels because of the available hardware. We can already build them on GHA, but it's sloooow due to emulation. See python-pillow/pillow-wheels#367.
I expect cibuildwheel would be about as slow with cibuildwheel.
And when we have the automation of #7390 full in place, perhaps the slowness will be acceptable. Definitely something to evaluate when the time comes.
hugovk commentedon Oct 15, 2023
Thanks, I'll probably use those if
travisisn't a trivially fixable!hugovk commentedon Oct 15, 2023
It wasn't trivially fixable, so I used those. Thanks!
Looks like we need to create a GitHub API token, then use that to login to
travis, then create the new release token and save it asGITHUB_RELEASE_TOKENat https://app.travis-ci.com/github/python-pillow/pillow/settings.@aclark4life The GitHub token should be scoped against this repo, and I'm not an admin here so can't do that, so can I delegate this to you? :) No rush on this, and we can create a new issue for it.
hugovk commentedon Oct 15, 2023
All released, announcements to follow soon!
Thanks everyone!
hugovk commentedon Oct 15, 2023
🚀 https://fosstodon.org/@pillow/111239876043326065
radarhere commentedon Oct 23, 2023
Twitter announcement: https://twitter.com/PythonPillow/status/1713600484248842255
hugovk commentedon Oct 23, 2023
Issue for this: #7485
radarhere commentedon Dec 2, 2023
Thanks to #7552, we are now using cibuildwheel.