Make Heptapod 0.35 the new stable
Description
Allow to climb further the upstream ladder in the heptapod branch
Bumped series: stable Shifted series: default
Merging
Most tasks The goal is to merge the shifted branch into the bumped branch.
Unless explicitely stated, the branch names coincide with the series name as
defined above, hence for example a simple merge/commit with the bumped series
being oldstable
(and the shifted series being stable
) would be done with:
hg update oldstable
hg merge stable
hg commit
CI Images
-
heptapod-base
-
merge, check/fix assets/install_pythonlibs
-
commit, push -
pipeline ok
-
-
heptapod-gitaly
-
merge, commit, push -
pipeline ok
-
-
mercurial/hg-current
-
merge, check Mercurial version in the hg_current
job -
commit, push -
pipeline ok (check resulting Mercurial version)
-
Components that are forked from upstream GitLab
For these ones, the mapping from series to branch names is:
default: heptapod
stable: heptapod-stable
oldstable: heptapod-oldstable
-
Heptapod Shell
-
merge, commit in a topic -
push and create a Merge Request so that a pipeline runs -
pipeline ok
-
-
Heptapod Rails:
-
merge, don't commit -
Important check general base image in heptapod-ci.yml
, it should match the bumped series. Release scripts will read this to know for which series they are working. A wrong value here gives rise to wildly inconsistent binary builds (Omnibus etc.). -
commit in a topic, push, open MR -
pipeline ok
-
Python components
-
py-heptapod
-
merge, commit, push -
pipeline ok (check it's been running on the expected "current" Mercurial version for the bumped branch)
-
-
HGitaly
-
merge, commit, push -
pipeline ok
-
Development, build and release tooling
-
-
merge and check the base image name in .gitlab-ci.yml
: it should be the target Heptapod version, e.g,0-21-testing
. -
commit in a topic, push, open MR. -
check that the pipeline uses the appropriate image. -
pipeline ok
-
-
HDK: update the release-stable
orrelease-oldstable
entry inlib/gdk/config.rb
on theheptapod
branch (we have one single branch to rule all series as of this writing but that can change in face of big future structural changes). -
-
merge the bumped branch into the release branch (e.g., 'heptapod-0-21', 'heptapod-0-22' etc). The diff should be almost empty, especially if the shifted branch was fully merged in the release branch. -
check that the base image is correct in heptapod-ci.yml
(it is not if it was done in the same changeset as the merge ofheptapod
intoheptapod-stable
). -
commit/push -
if diff was more than just the change of base CI image, trigger the tarball
job related to previous push on the release branch. In the job log, check that target Omnibus branch for automatic release is the bumped branch of Omnibus, take note of changeset node ID (part of tarball name) and SHA256 of the tarball.
-
-
-
update the gdk-*.yml
files for the affected series (commit/push) -
signal other developers that they must run ./heptapod-switch-new-stable
in their workspaces.
-
-
Omnibus Heptapod (branch naming is like all forks,
heptapod
,heptapod-stable
etc.)-
start a topic on the bumped branch, merge the shifted branch, commit -
if change on Heptapod Rails release branch was non-trivial, create a changeset with -
HEPTAPOD_VERSION
:x.y-NODE
whereNODE
is the node ID just noted (past example0.21-a99e86a76ee462e720bcb80c7feb080f06bb9b7d
) -
HEPTAPOD_RAILS_SHA256
: the SHA256 of the tarball
-
-
push, create a MR -
pipeline passes and creates the proper x-y-testing
image -
downstream pipeline in heptapod-tests passes on the created image (addressed by its hash-based tag)
-