Need release notes:
master branch.master branch.src/PIL/_version.pyCHANGES.rst.make release-test in a freshly cloned repo. $ git branch 5.4.x
$ git tag 5.4.0
$ git push --all
$ git push --tags
$ make sdist
twine upload dist/Pillow-5.4.0-*.dev0 to version identifier in src/PIL/_version.py@cgohlke for Windows binaries via release ticket e.g. https://github.com/python-pillow/Pillow/issues/1174.@cgohlke and twine upload *. $ git clone https://github.com/python-pillow/pillow-wheels
$ cd pillow-wheels
$ git submodule init
$ git submodule update Pillow
$ cd Pillow
$ git fetch --all
$ git checkout [[release tag]]
$ cd ..
$ git commit -m "Pillow -> 5.2.0" Pillow
$ git push
5.4.0 rather than latest e.g. https://pillow.readthedocs.io/en/5.4.x/When I go to the Zenodo badge URL - https://zenodo.org/badge/latestdoi/17549/python-pillow/Pillow - I see Pillow 3.1.0. Do we need to add updating Zenodo to the release checklist?
I think it should be automatic after the first release.
Please could someone check the settings here? I don't have permission.
https://zenodo.org/account/settings/github/repository/python-pillow/Pillow
For example, at https://zenodo.org/account/settings/github/repository/hugovk/Pillow I see:

Anything in particular that needs adding to the release notes?
https://github.com/python-pillow/Pillow/blob/master/CHANGES.rst#540-unreleased
We're down to a single page of PRs! I'll start the release.
I've excluded the new .readthedocs.yml from MANIFEST.in, so check-manifest passes (part of make release-test): https://github.com/python-pillow/Pillow/commit/d2d438794cdd80bdbc852c884f0473c86fb72ab3.
@cgohlke Please could we have Windows binaries for 5.4.0?
Please could we have Windows binaries for 5.4.0?
Here you go.
@cgohlke Thank you! Downloaded, and uploaded! https://pypi.org/project/Pillow/5.4.0/
@aclark4life or @wiredfool, I accidentally uploaded one old dev .egg file, please could you delete/unpublish/hide 5.4.0.dev0 from PyPI: https://pypi.org/project/Pillow/5.4.0.dev0/
Release mostly done, just docs and Twitter to do:
Make sure the default version for Read the Docs is the latest release version, i.e.
5.4.0rather thanlateste.g. https://pillow.readthedocs.io/en/5.4.x/
I don't see where to do this.
At https://readthedocs.org/dashboard/pillow/versions/ (and https://readthedocs.org/dashboard/pillow/advanced/) it's possible to set the default version, but there's only "latest", "stable" and "5.3.x" in the dropdown.
At https://readthedocs.org/projects/pillow/versions/, there's all the old versions but no 5.4.x (or 5.4.0).
At https://readthedocs.org/projects/pillow/builds/, it says the last build was 6 days ago. There should have been some since then, and today.
Any ideas?
Thanks @hugovk @radarhere et al! HNY
Source code didn't make it to PyPI. Please, upload.
@moubctez Source is now uploaded, sorry for the delay!
@aclark4life Please could you check https://github.com/python-pillow/Pillow/issues/3391#issuecomment-450747992?
@python-pillow/pillow-team Should we make a point release to fix this PNG/APNG regression discovered by Django?
https://github.com/python-pillow/Pillow/pull/3501#issuecomment-450764968
We have a fix PR: https://github.com/python-pillow/Pillow/pull/3525.
If we do make a point release, I'd suggest we only fix the PNG/APNG regression, and the other Jpeg2K/SGI fixes in https://github.com/python-pillow/Pillow/pull/3525 can wait until 5.5.0. Thoughts?
@hugovk Reviewing things I missed now and will get back to you shortly. Is it OK from a "good practice" POV to delete that egg? I've been out of the loop, but I still have "never delete from PyPI!!!" deeply ingrained … as such, I might be leaning towards a 5.4.1.
I'd say that the install on termux might qualify as well (#3526).
We should go with 5.4.1, but I'd wait a few days to catch any other reasonably immediate things.
Sounds good, will wait a bit. Yes, I was going to suggest including https://github.com/python-pillow/Pillow/issues/3526 too (fix or revert).
I think 5.4.0.dev0 egg can be deleted completely, it's a dev build from November I accidentally uploaded from my build, instead of the clean environment build. It's a distinct "release" from the official 5.4.0 release on PyPI. But unpublish if you prefer.
Thanks!
@hugovk The new PyPI does not have "hide" as far as I can tell … and there is a giant warning as you'd expect:

I say we leave it up as a social experiment … unless someone from the public complains along the lines of "For God's sake, please delete that egg!"
In general, even though I'm fuzzy on the details now, it's clearly coming back to me that the "morally right" thing to do is leave it (even though practically speaking, it probably doesn't matter one way or another in this case.)
I manually triggered a latest build at https://readthedocs.org/projects/pillow/builds/, and after that I could see the 5.4.x branch. So ReadTheDocs now redirects correctly for 5.4.x.
However, I found that if I deactivated 5.3.x, https://pillow.readthedocs.io/en/5.3.x/ would stop working. I presume this isn't our plan, and that we would like old documentation links to keep working. Scrolling down https://readthedocs.org/projects/pillow/versions/, I find that whether there is 'clean' or not describes if an old branch works or not - https://pillow.readthedocs.io/en/5.1.x/ vs https://pillow.readthedocs.io/en/5.0.x/

Should we just activate all old branches, or does someone have a better understanding of this situation?
@radarhere Looking …
@python-pillow/pillow-team Actually let's try defaulting to stable again.

There's no version number in the URL, but you can tell the version from the PyPI badge. No one needs to see the old versions as far as I'm concerned. This also requires no RTD updates on release, because RTD tracks latest and stable for us automatically:
Also, closing this one because we have #3535 now.
Most helpful comment
@moubctez Source is now uploaded, sorry for the delay!
@aclark4life Please could you check https://github.com/python-pillow/Pillow/issues/3391#issuecomment-450747992?