-
Notifications
You must be signed in to change notification settings - Fork 13
Open
Description
Let's try to assemble and refine the steps for doing a release of Fifechan.
We need this document, because maintainers might change and we need to transfer the knowledge of "how to do a release properly" to the next person having the maintainer role.
In the end, it should from a checklist guide for the maintainer.
The content of this ticket is later moved into the developer manual.
Fifechan Release Steps
Release Requirements
- you need to be maintainer (with push-access to the repository)
- you need to have access to Travis and Appveyor
- so that you can delete and re-trigger builds manually, when things go bust, while building and releasing automatically
- the auth keys tokens of CI services must be update to date
- Travis CI must be able to deploy to Github Releases
- Appveyor must be able to deploy to Github Releases
Release Preparation
- pick new version number
- update to new version number
- update
CMakeLists.txt - update
fifechan.cpp - update
doxygen.conf
- update
- update AUTHORS
- update CHANGELOG
- roll changelog data from the "unreleased" section to the new version number section
- link the new header (by adding a new reference at the end of the changelog)
- fix link to unreleased (by updating the old version number with the new version number)
-
git commit+git push- add changes until everything is updated and ready - pick release commit
- this is the golden commit = the base for the release tag
- check that the commit message doesn't contain
[skip ci] - check that the builds of this commit are all green on CI services
Release
-
git tag -a <tagname=version> <git-hash of release commit>- e.g.
git tag -a 1.2.3 9fceb02: you are tagging the commit 9fceb02 as version 1.2.3.
- e.g.
-
git push origin <tagname=version>- e.g.
git push origin 1.2.3: this pushes the single tag "0.1.3" to "origin"
- e.g.
- wait for CI services to complete the build
- wait for CI services to deploy the release to Github Releases
Note: If things go bust, delete the tags locally and then manually via the Github Interface, before you try to release the same tag.
Post Release
- announce new release in IRC
Metadata
Metadata
Assignees
Labels
No labels