Release 18.10.4
### Information about the release
#### Relevant series
<!--
Since the introduction of the automated upstream merge process, the releasable
series are `stable` and`oldstable`.
-->
#### Main reason driving the release
<!---
It can be interesting to state what was important enough to trigger
the release.
One does not need to repeat the changelog, just a few
words, can be wording such as "new upstream GitLab version"
or "first version with xx feature" or "stated goals for %"some milestone"
reached".
--->
### Preflight checks
<!-- As of version 17.3, Heptapod Shell and py-heptapod have independent
development cycles, with appropriate version bumps in the development branches
of the Rails application
-->
- [x] make sure that HGitaly is released
- [x] make sure that Heptapod Shell is released
- [x] make sure that the development branch has correct
`RHGITALY_SERVER_VERSION` and `HEPTAPOD_SHELL_VERSION`.
### Task list
For Omnibus and the Rails application,
the release branch is e.g., `heptapod-18-8` while the development branch
is `heptapod`, `heptapod-stable` or `heptapod-oldstable`.
- Omnibus
+ [x] merge stabler branches into the development branch if needed
(create a MR if changes are non trivial)
+ [x] merge the development branch into the release branch if needed,
commit without topic/push and leave as draft.
+ [x] if new upstream GitLab version, merge the corresponding CE tag,
typically `x+y+z+ce.0` into the release branch. Leave as draft but **not
in a topic**, commit and push
- Rails application
+ [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, from `heptapod-0-20`)
+ [x] merge the development branch into the release branch if needed.
Check `RHGITALY_SERVER_VERSION` and `HEPTAPOD_SHELL_VERSION` again.
Commit.
+ [x] Merge new upstream GitLab version if needed. Commit.
+ [x] fill in [HEPTAPOD_CHANGELOG](HEPTAPOD_CHANGELOG.md)
Be sure to include the changes related to the stabler branches. If needed
copy them from the stabler *release* branches, as these won't get merged.
+ [x] set HEPTAPOD_VERSION
+ [x] commit the changes in version files, push the topic and create a Merge
Request targeting the release branch, with automatic merge upon
pipeline completion (expect about 90 minutes of running time)
+ [x] once the topic is published by CI, pull
+ [x] create a tag on the release branch head **without a topic** (run
`hg topic --clear if needed` before)
+ [x] 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 [Omnibus pipeline](https://foss.heptapod.net/heptapod/omnibus-heptapod/-/pipelines) 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:
- [ ] take note of the Docker image ID that the heptapod-tests CI jobs
ran for
- [ ] retrieve the image built in the Omnibus pipeline, checking the
Mercurial tag and the Docker image ID, and push it to Docker Hub,
using the `release-full` script of heptapod/heptapod-docker>.
### Finalisations
- [x] announce the release at least on Twitter and Mastodon
- [x] publish the changesets in all repositories made during the process
(don't forget Omnibus)
- [ ] (Final minor versions only): close group milestone for this minor
version (`x.y`), moving all remaining issues to the next one.
task