Branching for upstream GitLab v16.8
Information
- New release version (
x.y
): 1.2 (won't actually be released) - Upstream GitLab minor version (
g.h
):: 16.8 - New development version (
n.w
): 1.3
Because we intend only to flush things and leave anchors behind, the stable branch shifts are removed in the procedure below (of course nothing prevents doing them way before the actual Heptapod 1.3 release)
Preliminary for new development cycle
- Not needed: oldstable branches shift
-
Make sure that HGitaly protocol files in default
branch are up to date with Gitalyg.h
and that heptapod/ci-images/heptapod-gitaly> uses Gitalyg.h
in itsdefault
branch.
Branching point
-
Omnibus: make sure that the first commit of the upstream release branch for g.h
is merged in theheptapod
branch and builds:hg merge "tag('g.h.0+rc42.ce.0')~1"
(we do not use the true branching point (
~2
) because all the GitLab component versions are set to development branches, hence not relevant in catchup times. To be revisited when we have at most a few days of lag). -
Rails, branch heptapod
: tag the chosen branching point asheptapod-x.y.0a0
. Push. -
wait for Omnibus and Heptapod Tests pipelines to confirm.
Release branch
Not to be created for 1.2, only if releasing a posteriori on GitLab 16.8 for data migrations turns out to be necessary.
Opening the new development cycle
-
Not neded: stable branches shift.
-
Heptapod Tests, branch default: change the base image to n-w-testing
-
Omnibus, branch
heptapod
:-
change HEPTAPOD_VERSION
toheptapod-n.w.0.pre
-
CI/CD: change cache key in heptapod-ci.yml
-
Tag as heptapod-n.w.0.pre-1
. Caution: do not forget the-1
suffix. -
Pipeline fails because the pkg
jobs get a 404 in[Netfetcher: gitlab-rails]
(there is indeed no tarball forheptapod-n.w.0.pre
)
-
-
Rails, branch
heptapod
:-
change HEPTAPOD_VERSION
toheptapod.n.w.0.pre
-
CI/CD change cache key in heptapod-ci-yml
-
Commit, push, open regular MR. -
Pipeline succeeds. This ensures that subsequent MRs will not be polluted by problems introduced in this opening. - Not needed, there was no branches shift: rebase existing topics on the current
heptapod
branch, notably theupstream-merge
topic if present. -
Resume upstream conversion (e.g., solve existing Upstream merge issues).
-
Wrapping it up
- Ommitted: Rails, release branch: create a tag
heptapod-x.y.0a1
. This validates that release builds will work for thex.y
series