-
Notifications
You must be signed in to change notification settings - Fork 372
HowToRelease
Some developer notes on how to do a release. These instuctions are
intended for a new major or minor version. For a micro version some
instructions must be ignored or adapted. Replace vX.Y.Z
with the
appropriate version number.
-
Search for all TODOs, FIXMEs, and XXXs in the code to make sure that nothing important slips in.
-
Do a run of pydocchecker to fix the type annotations.
-
Send a call for translations when strings are stable, like http://www.freelists.org/post/contestms/Call-for-translations
FIXME: Change the documentation to link to the attached .tar.gz archive instead of the autogenerated one.
-
Checkout the master branch:
git checkout master
-
Update the version number in the source files (there's one occurrence in
cms/__init__.py
and one indocs/conf.py
) and commit these changes with a message like:Version X.Y.Z https://github.com/cms-dev/cms/wiki/CMS-X.Y.Z-RELEASE-NOTES
-
Create a new page in the wiki containing the release notes, and update the history page to link to that page.
-
Create a branch for the new version (without the micro):
git branch vX.Y
-
Push both the
master
and thevX.Y
branches:git push origin master vX.Y
-
Open https://github.com/cms-dev/cms/releases, click on "Draft a new release", insert
vX.Y.Z
as tag name and select thevX.Y
branch as target. Write some release notes (with some sensible content!). Manually create a .tar.gz archive with the sources and attach it (this is needed because the archive autogenerated by GitHub will not include isolate since it's a git submodule, thus be sure to make the archive with a clean and complete checkout). That is:git clone https://github.com/cms-dev/cms.git cd cms git submodule update --init rm -rf .git isolate/.git cd .. tar zcf vX.Y.Z.tar.gz cms
Publish the release.
-
Wait for the new branch (the branch, not the tag!) to pop up in the ReadTheDocs control panel (it takes a bit for RTD to realize that a new branch has been pushed; I did not find any way to force it). Then activate it in the Version page and make it default in the Admin page.
-
Check that all the relevant automatic links have been created by GitHub, so that there are no 404 errors around (in the wiki and in the docs). Also check that the documentation has been compiled correctly.
-
Push the new version numbers for the stable and the development versions on the website (for the stable version, update also the URLs of the links).
-
Send the release notes to the mailing list (for reference: http://www.freelists.org/post/contestms/CMS-100-RELEASE-NOTES).
-
Set the version numbers in the source files to the next version (there's one occurrence in
cms/__init__.py
and two indocs/conf.py
, and remember to append adev
!) -
Close the milestone on GitHub.
-
It is now a good time to do all those things that should be done at the beginning of the release: upgrade the python dependencies (e.g., to the versions in the most recent Ubuntu LTS), merge large PRs, ...