doc: Add a commands snippet to workflow about what to do in the 1st phase

What we should do when creating stabilization branch from the master.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
This commit is contained in:
Donatas Abraitis 2022-02-01 22:25:22 +02:00
parent 3d1ff4bfdb
commit 5568f9d12b
2 changed files with 53 additions and 20 deletions

View File

@ -95,8 +95,8 @@ March/July/November. Walking backwards from this date:
are considered lowest priority (regardless of when they were opened.)
- 4 weeks earlier, the stable branch separates from master (named
``dev/MAJOR.MINOR`` at this point) and a ``rc1`` release candidate is
tagged. Master is unfrozen and new features may again proceed.
``dev/MAJOR.MINOR`` at this point) and tagged as ```base_X.Y``.
Master is unfrozen and new features may again proceed.
Part of unfreezing master is editing the ``AC_INIT`` statement in
:file:`configure.ac` to reflect the new development version that master
@ -108,7 +108,38 @@ March/July/November. Walking backwards from this date:
(The :file:`configure.ac` edit and tag push are considered git housekeeping
and are pushed directly to ``master``, not through a PR.)
- 2 weeks earlier, a ``rc2`` release candidate is tagged.
Below is the snippet of the commands to use in this step.
.. code-block:: console
% git remote --verbose
upstream git@github.com:frrouting/frr (fetch)
upstream git@github.com:frrouting/frr (push)
% git checkout master
% git pull upstream master
% git checkout -b dev/8.2
% git tag base_8.2
% git push upstream base_8.2
% git push upstream dev/8.2
% git checkout master
% sed -i 's/8.2-dev/8.3-dev/' configure.ac
% git tag -a frr-8.3-dev -m "frr-8.3-dev"
% git push upstream frr-8.3-dev
% git add configure.ac
% git commit -s -m "build: FRR 8.3 development version"
% git push upstream master
In this step, we also have to update package versions to reflect
the development version. Versions need to be updated using
a standard way of development (Pull Requests) based on master branch.
Only change the version number with no other changes. This will produce
packages with the a version number that is higher than any previous
version. Once the release is done, whatever updates we make to changelog
files on the release branch need to be cherry-picked to the master branch.
- 2 weeks earlier, a ``frr-X.Y-rc`` release candidate is tagged.
- on release date, the branch is renamed to ``stable/MAJOR.MINOR``.
@ -121,15 +152,15 @@ as early as possible, i.e. the first 2-week window.
For reference, the expected release schedule according to the above is:
+------------+------------+------------+------------+------------+------------+
| Release | 2021-11-02 | 2022-03-01 | 2022-07-05 | 2022-11-01 | 2023-03-07 |
+------------+------------+------------+------------+------------+------------+
| rc2 | 2021-10-19 | 2022-02-15 | 2022-06-21 | 2022-10-18 | 2023-02-21 |
+------------+------------+------------+------------+------------+------------+
| rc1/branch | 2021-10-05 | 2022-02-01 | 2022-06-07 | 2022-10-04 | 2023-02-07 |
+------------+------------+------------+------------+------------+------------+
| freeze | 2021-09-21 | 2022-01-18 | 2022-05-24 | 2022-09-20 | 2023-01-24 |
+------------+------------+------------+------------+------------+------------+
+---------+------------+------------+------------+------------+------------+
| Release | 2021-11-02 | 2022-03-01 | 2022-07-05 | 2022-11-01 | 2023-03-07 |
+---------+------------+------------+------------+------------+------------+
| RC | 2021-10-19 | 2022-02-15 | 2022-06-21 | 2022-10-18 | 2023-02-21 |
+---------+------------+------------+------------+------------+------------+
| dev/X.Y | 2021-10-05 | 2022-02-01 | 2022-06-07 | 2022-10-04 | 2023-02-07 |
+---------+------------+------------+------------+------------+------------+
| freeze | 2021-09-21 | 2022-01-18 | 2022-05-24 | 2022-09-20 | 2023-01-24 |
+---------+------------+------------+------------+------------+------------+
Each release is managed by one or more volunteer release managers from the FRR
community. To spread and distribute this workload, this should be rotated for

View File

@ -36,21 +36,23 @@ if __name__ == "__main__":
print("Last release was (scheduled) on %s" % last.isoformat())
rel = upcoming.pop(0)
freeze, rc1, rc2 = rel - w2 * 3, rel - w2 * 2, rel - w2
freeze, stabilization, rc = rel - w2 * 3, rel - w2 * 2, rel - w2
if now == rel:
print("It's release day! 🎉")
elif now >= rc2:
elif now >= rc:
print(
"%d days until release! (rc2 since %s)"
% ((rel - now).days, rc2.isoformat())
"%d days until release! (RC since %s)" % ((rel - now).days, rc.isoformat())
)
elif now >= stabilization:
print(
"%d days until RC. (stabilization branch created since %s)"
% ((rc - now).days, stabilization.isoformat())
)
elif now >= rc1:
print("%d days until rc2. (rc1 since %s)" % ((rc2 - now).days, rc1.isoformat()))
elif now >= freeze:
print(
"%d days until rc1, master is frozen since %s"
% ((rc1 - now).days, freeze.isoformat())
"%d days until stabilization branch, master is frozen since %s"
% ((stabilization - now).days, freeze.isoformat())
)
else:
print(