123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- openMSX Release Process
- =======================
- This is a kind of recipe for doing releases. Having it written down
- decreases the chance of forgetting a small but crucial step during the
- hectic work of getting a release out.
- Preparing for a release
- -----------------------
- - Tell all developers to commit only fixes.
- - Sync with most recent C-BIOS release.
- - Check that the "staticbindist" build still works, in particular on win32 and
- Mac OS X.
- - Verify the documentation is up-to-date.
- Currently most documentation is in "doc/manual".
- - Write release notes in "doc/release-notes.txt".
- - Add the change list to "doc/release-history.txt".
- Note: An alternative approach would be to create a branch dedicated to the
- release and continue accepting any kind of commit on "master".
- To put the development focus on bug fixing, we haven't done this,
- but it is an approach that might be useful at some point.
- Creating a release candidate
- ----------------------------
- - If you're creating the very first release candidate for this release, use a
- version number that ends with -rc1, so 1.2.3-rc1. Only the final release will
- be without the -rc suffix (in both tag and version numbers.)
- - Update the copyright year in src/resource/openmsx.rc
- - Edit the version number in build/version.py:
- packageVersionNumber = '1.2.3'
- And set releaseFlag to True.
- Additionally, increase the androidReleaseVersionCode with 1.
- - Update the release date in "doc/release-notes.txt" and
- "doc/release-history.txt".
- - Don't forget to commit and push all these last changes before tagging!
- - Tag the git archive:
- git tag -a RELEASE_1_2_3 -m "Tagging release 1.2.3."
- git push --tags
- - Create the distribution tar.gz file based on the new tag:
- build/gitdist.py RELEASE_1_2_3
- - Save the created file somewhere you can find it again:
- mv derived/dist/openmsx-1.2.3.tar.gz <some_dir>/
- This is the release candidate.
- - NOTE: for a Windows build, you also need a RC of Catapult!
- Sanity check on release candidate
- ---------------------------------
- This is a small check to be performed by the release coordinator.
- - Test build:
- * Compile and check for warnings:
- unset OPENMSX_FLAVOUR (and any other OPENMSX_ flags you have set)
- make
- * Test installation:
- su
- make install
- - Start openmsx with your usual config.
- - Verify the version number in the title bar.
- If the sanity check is passed, distribute tar.gz to fellow developers and
- testers.
- Full test of release candidate
- ------------------------------
- - Check behaviour with empty ~/.openMSX dir.
- - Check that the default config (C-BIOS_MSX2+) works.
- - Check random other configs.
- - Do extensive testing with things that are known to work and likely to give
- problems (like Unknown Reality, Metal Limit).
- - Do some valgrind runs to make sure there are no hidden problems.
- TODO: More standard tests?
- Repeat until release worthy
- ---------------------------
- Create and test release candidates until a satisfactory release candidate
- is made, which will become the release.
- If there are any last-minute patches, don't forget to set a new release tag,
- such that the released code is based on exactly the tagged code.
- Make the release public
- -----------------------
- Put the release on GitHub (refer to
- https://help.github.com/articles/creating-releases/):
- - Make sure you're logged in
- - Go to https://github.com/openMSX/openMSX/releases. Click "Draft a new release"
- - Select the tag version you made above: RELEASE_1_2_3
- - Type 'openMSX' and the release number of the new release at "Release title":
- openMSX 1.2.3
- - At the "Describe this release" box, describe the release, e.g. take the first
- few paragraphs of the release notes (before the list of changes starts).
- - At "Attach binaries" select the files to upload, including our own tarballs.
- In short: all the files we used to upload for an SF.net release.
- - Note: GitHub also generates a tarball and a zip file. Just ignore it for
- now. Do not use these in any links on our website or somewhere else. They
- contain a lot of unnecessary stuff.
- Announce:
- - Post change list to msx.org.
- - Post news item on web site.
- - Post news item on our Facebook page.
- - Post news and/or change list to openmsx-devel and openmsx-user mailinglists
- (at least one packager uses it to get a trigger)
- Finally:
- - Update web site to point to new downloads.
- - On the openMSX home page, update the lists "features of current release"
- and "features in development".
- - Set releaseFlag to False in build/version.py
- - Update libraries in the 3rd party build system to latest versions, so that
- next release will profit from this and you won't forget it. Just before the
- release is too late (unless it's some minor security fix)!
|