Release Heptapod 0.21.0rc1
### Main reason driving the release New GitLab upstream version 13.10. Sadly couldn't finish the feature flags for the fully native mode without any impact if not activated, but it's close! ### Task list - py-heptapod: if there are changes to include in the relevant branch (`default`, `stable` or `oldstable`). Don't forget changesets from stabler branches. + [x] merge stabler branches into the branch to release and run a pipeline to check them (fast) + [x] set the version in `setup.py`, commit + [x] run `$python setup.py sdist and `push to PyPI with [twine](https://twine.readthedocs.io/en/latest/) + [x] tag accordingly to the pushed version + [x] set a new development version in `setup.py`, commit + [x] push and publish these three changesets - HGitaly: if there are changes to include in the relevant branch (`default`, `stable` or `oldstable`). All changes in the default branch are about the fully native mode, we don't need to release them for this rc1. - Heptapod Shell: again, if needed which is more than likely of Heptapod x.y.0 and not so common for further versions of the x.y series. No new upstream version to merge. - Omnibus + [x] merge stabler branches into the relevant branch if needed + [x] if new upstream GitLab version, merge the corresponding CE tag, typically `x+y+z+ce.0` into the relevant branch. Leave as draft but **not in a topic**, commit and push - Rails application The release branch is e.g., `heptapod-0-20` while the development branch is `heptapod`, `heptapod-stable` or `heptapod-oldstable`. + [x] merge stabler development branches into the development branch (pipelines not really needed). + [x] start a topic from the head of the release branch (e.g, `heptapod-0-20`) + [x] merge the `heptapod` branch into the release branch if needed. Commit. + [x] fill in [HEPTAPOD_CHANGELOG](HEPTAPOD_CHANGELOG.md) Be sure to include the changes related to the stable branches. If needed copy them from the stable *release* branches, as these won't get merged. + [x] set HEPTAPOD_VERSION + [x] update HEPTAPOD_SHELL_VERSION if needed + [x] update the requirements files in the [python](python) subdirectory if needed + [x] commit those changes and push the topic + [x] pipelines. There are two cases - if the upstream GitLab version is changed in the release, run a pipeline from the Web UI, with the variable `UPDATE_GITLAB_PREBUILDS=yes`. Publish the topic once it passes (expected time 1h). - if the upstream GitLab version stays unchanged, create a Merge Request for the topic, select auto-merge on success (expected time 0.5h) + [ ] once the topic is published, maybe pull + [ ] create a tag on the release branch head **without a topic** (run `hg topic --clear if needed` before) + [ ] push the tag, don't publish it yet. The tag pipeline will push the source tarball to download.h.n and push a commit to reference it and a tag in Omnibus. The resulting pipeline in Omnibus will build the package for Ubuntu, then the Docker image, then trigger a full run of the functional tests on it, as a pipeline on heptapod-tests. + Docker image: - [ ] double check that the heptapod-tests CI jobs did run for the image built in the Omnibus pipeline. - [ ] retrieve the image built by the Omnibus pipeline from registry.h.n, retag it as `octobus/heptapod:x.y.z` and `octobus/heptapod:latest` - [ ] Docker push for those two image tags. ### Finalisations - [ ] announce the release at least on Twitter and Mastodon - [ ] publish the changesets in all repositories made during the process (don't forget Omnibus)
issue