diff --git a/RELEASING.md b/RELEASING.md index eb463742b..ace76bfeb 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -2,11 +2,12 @@ ## Main Release -Released quarterly. +Released quarterly on the first day of January, April, July, October. +* [ ] Open a release ticket e.g. https://github.com/python-pillow/Pillow/issues/1174 * [ ] Develop and prepare release in ``master`` branch. * [ ] Check [Travis CI](https://travis-ci.org/python-pillow/Pillow) to confirm passing tests in ``master`` branch. -* [ ] Update version in: +* [ ] In compliance with https://www.python.org/dev/peps/pep-0440/, update version identifier in: ``` PIL/__init__.py setup.py _imaging.c ``` @@ -23,28 +24,39 @@ Released quarterly. ``` $ make sdistup ``` -* [ ] Create and upload binary distributions (see below). +* [ ] Create and upload [binary distributions](#binary-distributions) ## Point Release -Released as required for security, installation or critical bug fixes. - -* [ ] Make necessary changes in master. -* [ ] Cherry pick individual commits. -* [ ] Update version in: +Released as needed for security, installation or critical bug fixes. +* [ ] Make necessary changes in ``master`` branch. +* [ ] Update `CHANGES.rst`. +* [ ] Cherry pick individual commits from ``master`` branch to release branch e.g. ``2.9.x``. +* [ ] Check [Travis CI](https://travis-ci.org/python-pillow/Pillow) to confirm passing tests in release branch e.g. ``2.9.x``. +* [ ] Checkout release branch e.g.: +``` + git checkout -t remotes/origin/2.9.x +``` +* [ ] In compliance with https://www.python.org/dev/peps/pep-0440/, update version identifier in: ``` PIL/__init__.py setup.py _imaging.c ``` -* [ ] Update `CHANGES.rst`. -* [ ] Run pre-release check via `make pre` -* [ ] Push to release branch in personal repo. Let Travis run cleanly. -* [ ] Tag and push to release branch in python-pillow repo. -* [ ] Upload source and binary distributions. +* [ ] Run pre-release check via `make pre`. +* [ ] Create tag for release e.g.: +``` + $ git tag 2.9.1 + $ git push --tags +``` +* [ ] Create and upload source distributions e.g.: +``` + $ make sdistup +``` +* [ ] Create and upload [binary distributions](#binary-distributions) ## Embargoed Release -Security fixes that need to be pushed to the distros prior to public release. +Released as needed privately to individual vendors for critical security-related bug fixes. * [ ] Prepare patch for all versions that will get a fix. Test against local installations. * [ ] Commit against master, cherry pick to affected release branches. @@ -54,27 +66,39 @@ Security fixes that need to be pushed to the distros prior to public release. * [ ] Amend any commits with the CVE # * [ ] On release date, tag and push to GitHub. ``` -git checkout 2.5.x -git tag 2.5.3 -git push origin 2.5.x -git push origin --tags + git checkout 2.5.x + git tag 2.5.3 + git push origin 2.5.x + git push origin --tags ``` -* [ ] Upload source and binary distributions. +* [ ] Create and upload source distributions e.g.: +``` + $ make sdistup +``` +* [ ] Create and upload [binary distributions](#binary-distributions) +## Binary Distributions -## Upload Process +### Windows +* [ ] Contact @cgohlke for Windows binaries via release ticket e.g. https://github.com/python-pillow/Pillow/issues/1174. +* [ ] Download and extract tarball from @cgohlke and ``twine upload *``. -* [ ] Contact @cgohlke for Windows binaries. -* [ ] From a clean source directory with no extra temp files: +### OS X +* [ ] Use the [Pillow OS X Wheel Builder](https://github.com/python-pillow/pillow-wheels): ``` -python setup.py sdist --format=zip upload + $ git checkout https://github.com/python-pillow/pillow-wheels + $ cd pillow-wheels + $ git submodule init + $ git submodule update + $ cd Pillow + $ git fetch --all + $ git commit -a -m "Pillow -> 2.9.0" + $ git push ``` -Or -``` -make sdistup -``` -(Debian requests a tarball, everyone else would just prefer that we choose one and stick to it. So both it is) -* [ ] Push a commit to https://github.com/python-pillow/pillow-wheels to build OSX versions (UNDONE latest tag or specific release???) -* [ ] Retrieve the OS X Wheels from Rackspace files, upload to PyPi (Twine?) -* [ ] Grab Windows binaries, `twine upload dist/*.[whl|egg]`. Manually upload .exe installers. +* [ ] Download distributions from the [Pillow OS X Wheel Builder container](http://cdf58691c5cf45771290-6a3b6a0f5f6ab91aadc447b2a897dd9a.r50.cf2.rackcdn.com/) and ``twine upload *``. + +### Linux + +## Publicize Release + * [ ] Announce release availability. [Twitter](https://twitter.com/pythonpillow), web.