From b34e102801ae7624f3f08ee474d46b4313595f22 Mon Sep 17 00:00:00 2001
From: Boris Kolpackov <boris@codesynthesis.com>
Date: Fri, 29 Jul 2022 09:09:58 +0200
Subject: Updates for 0.15.0 release

---
 doc/release.cli | 57 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 49 insertions(+), 8 deletions(-)

(limited to 'doc')

diff --git a/doc/release.cli b/doc/release.cli
index 7a12889..ce19557 100644
--- a/doc/release.cli
+++ b/doc/release.cli
@@ -133,6 +133,27 @@ distribution from \c{etc/stage} and add the pre-distributed packages
   etc/upgrade
   \
 
+  Or, if released ODB on the previous step, update \c{libodb*} version
+  constraint using \c{etc/version}, commit, and then:
+
+  \
+  etc/upgrade -c
+
+  # Trigger header regeneration (ignore ODB version mismatch errors).
+  #
+  BDEP_SYNC=0 b --match-only ~/work/build2/builds/gcc7/
+
+  # Make sure the ODB compiler is up-to-date and run in all the relevant
+  # projects (bpkg, bdep, brep):
+  #
+  ./odb.sh ~/work/build2/builds/gcc7/
+
+  BDEP_SYNC=0 b build2/ bpkg/ bdep/
+  b build2/ bpkg/ bdep/ # Should be noop.
+  \
+
+  Then push \c{build2} repositories.
+
 
 \h#hello|Update \c{hello/} projects|
 
@@ -151,8 +172,9 @@ distribution from \c{etc/stage} and add the pre-distributed packages
   git push ...
   \
 
-  Once done, run the \c{intro} scripts and review any changes in the output
-  (this information will be helpful on the next step):
+  Once done, make sure the latest \c{libhello} revision is on stage, run the
+  \c{intro} scripts, and review any changes in the output (this information
+  will be helpful on the next step):
 
   \
   cd etc
@@ -275,6 +297,12 @@ distribution from \c{etc/stage} and add the pre-distributed packages
       etc/stage -b
       \
 
+      Consider restaging queue for good measure.
+
+      \
+      etc/stage-queue
+      \
+
   |
 
   \li|While build machines are bootstrapping, upgrade \c{brep} on \c{stage},
@@ -298,12 +326,15 @@ distribution from \c{etc/stage} and add the pre-distributed packages
 
   Test \c{cxx20-modules-examples} (see \c{test} script).
 
+  Test any third-party/demos (\c{build2-dynamic-module-demo},
+  \c{boost-dependency}).
+
   Test on ARM Mac (run tests for \c{libbutl/build2/bpkg/bdep}.
 
   Test build system modules (especially standard pre-installed).
 
-  Test old toolchain version (can fetch and build old pckages from
-  queue.stage).
+  Test old toolchain version (can fetch and build old packages from
+  \c{queue.stage}; add dummy package if all require to be released toolchain).
 
 
 \h#install-stage|Test install scripts|
@@ -407,6 +438,9 @@ distribution from \c{etc/stage} and add the pre-distributed packages
         bdep release --no-open --show-push
         \
 
+        Also release \c{libbuild2-hello} (it's not standard pre-installed
+        but it gets published).
+
         |
 
     \li|Regenerate documentation in each package (including standard
@@ -509,7 +543,8 @@ distribution from \c{etc/stage} and add the pre-distributed packages
   \ul|
 
     \li|Regenerate documentation in each package inside as well as in
-        \c{build2-toolchain} itself.|
+        \c{build2-toolchain} itself. @@ \c{libbuild-kconfig} not configured
+        out of tree? Or maybe it gets updated automatically during dist?|
 
     \li|Update ODB by copying relevant files from the previous step (trust me,
         this is the easy way for now). Make sure all \c{*-odb.*} are copied!|
@@ -621,6 +656,8 @@ distribution from \c{etc/stage} and add the pre-distributed packages
   replacements. We can only proceed further once we have a \"resolution\"
   for every (newly) broken package.
 
+  \N|If public has been built with the staged toolchain, rebuilding of the
+     public repository (which takes days) can be omitted.|
 
 \h#stop-queue|Stop \c{queue} builds|
 
@@ -658,8 +695,9 @@ distribution from \c{etc/stage} and add the pre-distributed packages
   (effectively making it a no-toolchain configuration), regenerate, and power
   on the new set of \c{public} build hosts.
 
-  Review deployed machines against the updated \c{public} \c{buildtab} and
-  remove those that are no longer used:
+
+  @@ See new sync scripts for this step: Review deployed machines against the
+  updated \c{public} \c{buildtab} and remove those that are no longer used:
 
   \
   cd private/buildos/
@@ -703,7 +741,7 @@ distribution from \c{etc/stage} and add the pre-distributed packages
 
 \h#pub-dist|Publish distribution|
 
-  Change \c{BUILD2_REPO} in \c{build2-toolchain} build scripts to \c{public},
+  Change \c{build2_repo} in \c{build2-toolchain} \c{buildfile} to \c{public},
   commit, and publish the distribution (this also cleans/disables the
   \c{queue} toolchain):
 
@@ -741,6 +779,9 @@ distribution from \c{etc/stage} and add the pre-distributed packages
   we just smoke-test each script on its \"primary\" platform and make sure
   \c{public} URLs/repositories are used.
 
+  Also test building an old package with the previous version of the
+  toolchain.
+
 \h#web|Update web|
 
   \ul|
-- 
cgit v1.1