|
|
Release Process Overview
|
|
|
------------------------
|
|
|
|
|
|
After a release of Spot we expect: the release to be tagged in the git repository, the tarball to be available, Debian packages for both stable and unstable distributions to be available, the web site to be updated with the correct links and documentation, a mail to be have been sent to spot-announce,
|
|
|
the next branch of the git repository to be ready to continue development with a different version number.
|
|
|
|
|
|
Part of the above process it automated. In particular the web pages are automatically constructed from the stable Debian packages. But a large part of the work is still done manually. Use the following check list.
|
|
|
|
|
|
Release Procedure
|
|
|
-----------------
|
|
|
|
|
|
A couple of days before the release:
|
|
|
|
|
|
- If `master` is not already included in `next`, merge it.
|
|
|
- Check locally that the online translator page in `wrap/python/ajax/` is still working: it's not part of the test suite, but it will be installed on the web server.
|
|
|
- Check that the [third-party tools](https://github.com/adl/spot-docker/blob/master/debuild/install.sh) installed in the docker containers are up-to-date.
|
|
|
- Rebuild the docker containers ([gadl/spot-debuild](https://hub.docker.com/r/gadl/spot-debuild/) & [gadl/spot-debuild-i386](https://hub.docker.com/r/gadl/spot-debuild-i386/)) by triggering new builds on dockerhub. This will ensure that our Debian packages are built against the most recent version of all the other Debian packages they depend upon.
|
|
|
- Make sure `next` compiles with the new container for unstable (this is done every night after a new commit on `next`)
|
|
|
- Make sure `next` compiles with the new container for stable (you need to trigger this build by hand)
|
|
|
|
|
|
The day of the release:
|
|
|
|
|
|
- Make sure `next` is fully green on the build farm.
|
|
|
- Read, complete, and clean up `NEWS`
|
|
|
- update the version number and release date in `configure.ac`, `NEWS`, and `doc/org/setup.org`. Beware about this last file: some of the macros are links that have to be updated with `C-c C-l` (review your diff carefully).
|
|
|
- commit the above version change locally
|
|
|
- tag the above commit with `git tag -a spot-X-Y-Z` where X-Y-Z corresponds to version X.Y.Z.
|
|
|
- hard reset master and stable to the current commit (or merge next into these two branches, it should have the same effect)
|
|
|
- push master, stable, and next on the server, using the `--tags` option to send the tag as well (the tag must be in the repository *before* you attempt to build the Debian packages)
|
|
|
- trigger a build of the Debian packages for both stable on unstable.
|
|
|
- while the packages are built, prepare the announcement mail for spot-announce
|
|
|
- once the Debian packages are built, login as doc@master, run the following with the correct version number
|
|
|
```sh
|
|
|
wget http://teamcity.lrde.epita.fr/guestAuth/repository/download/Spot_DebianPackages/.lastSuccessful/spot-$VERSION.tar.gz?branch=next -o /lrde/dload/spot/spot-$VERSION.tar.gz
|
|
|
```
|
|
|
- trigger a build of spot-www to update the docker containing the web-server
|
|
|
- wait for the next hour (the web server is updated by a crontab that runs in the first minute of every hour)
|
|
|
- check that the new web server is running well
|
|
|
- send the announcement email
|
|
|
- add `a` to the version number in `configure.ac`, and add an empty entry at the top of `NEWS` with this version number
|
|
|
- commit and push this change on branch next
|
|
|
- update this page with for any step that you found incorrect or missing |