From 90ec5a693d4ee142b276b4d34e5b2412b20b60ca Mon Sep 17 00:00:00 2001
From: Walter Lozano <walter.lozano@collabora.com>
Date: Mon, 20 Jan 2025 13:57:07 -0300
Subject: [PATCH] rebasing: Update guide

After the initial work in the rebase, update the documentation to show the
approach taken.

Signed-off-by: Walter Lozano <walter.lozano@collabora.com>
---
 content/guides/maintenance/rebasing.md | 44 ++++++++++++++------------
 1 file changed, 24 insertions(+), 20 deletions(-)

diff --git a/content/guides/maintenance/rebasing.md b/content/guides/maintenance/rebasing.md
index 60a8c2bb..c27ae3e2 100644
--- a/content/guides/maintenance/rebasing.md
+++ b/content/guides/maintenance/rebasing.md
@@ -22,7 +22,7 @@ more information about this policy.
 
 The following terms will be used here:
 
-- `CUR_DEV_RELEASE`: The existing Apertis release on which the new release will
+- `CUR_DEV_RELEASE`: The current Apertis release on which the new release will
   be based.
 - `NEW_DEV_RELEASE`: The new Apertis development release that we are creating
   during the rebasing process.
@@ -37,8 +37,18 @@ Q1.
 
 ## A. Test Rebase Workflow
 
-1. Follow the rebase plan, but with a limited set of packages from target using
-   `NEW_DEV_RELEASE` set to `rebase-test`.
+1. Follow the rebase plan, but with a limited set of packages from target, forking
+   them in a new namespace, such as `pkg-rebase-trixie`.
+1. Create a MR `wip/xxx/rebase-preparation` in `apertis-docker-images` to draft the changes to be used during
+   the rebase.
+1. Tweak the `package-source-builder` dockerfile in the `NEW_DEV_RELEASE`
+   release to enable Debian `NEW_DEBIAN_RELEASE`
+1. Enable apertis `CUR_DEV_RELEASE` repositories in dockerfile, to allow
+   the installation of Apertis specific packages, such as `apertis-dev-tools`
+1. Temporarily disable other docker images as they won't be needed
+1. Create new OBS projects for `pkg-rebase-trixie`
+1. Disable publish of `pkg-rebase-trixie` on OBS projects
+1. Add `NEW_DEBIAN_RELEASE` DoD on `pkg-rebase-trixie` OBS repositories
 1. Check that pipelines run as expected
 1. Check that the scripts used to check status work as expected
 
@@ -47,7 +57,7 @@ It is not required to merge all the changes, focus on ensuring that the
 workflow is working as expected.
 {{% /notice %}}
 
-## B. Test Debian Sources
+## B. Prepare package lists
 
 If sufficient time is available early in Q1, it is advantageous to ensure that
 we have a relatively accurate seed list and have already imported new
@@ -57,10 +67,8 @@ flagged by OBS. The aim here is to reduce the time required when rebasing.
 
 1. Use [germinate](https://gitlab.apertis.org/infrastructure/germinate) to
    generate seeds for `NEW_DEBIAN_RELEASE`.
-1. Compare "existing-packages" lists generated for `NEW_DEBIAN_RELEASE` with
-   the list of packages in the current Apertis release. Review differences and
-   update the new seed list as required.
-1. Review packages listed in "new-packages" lists for addition to Apertis
+1. Follow the instructions in the repository to update the seed list and blacklist
+   to allow smoother rebase process with fewer iterations.
 
 # Preparing for Rebase
 
@@ -70,20 +78,16 @@ During the rebase `NEW_DEV_RELEASE` will be unstable as many packages will be
 updated and images will not be generated. To allow development work during this
 time, `CUR_DEV_RELEASE` will be used as development branch. For that reason,
 after `CUR_DEV_RELEASE` freeze ends, it will be used for development.
+
 {{% notice note %}}
 For repositories that diverge during the rebase cycle, after the rebase is
 completed, changes will need forward porting to `NEW_DEV_RELEASE`.
 {{% /notice %}}
 
-
 ## D. Prepare Infrastructure
 
-1. Create `NEW_DEV_RELEASE` branch for `apertis-docker-images`
-1. Tweak the `package-source-builder` dockerfile in the `NEW_DEV_RELEASE`
-   release to enable Debian `NEW_DEBIAN_RELEASE`
-1. Enable apertis `CUR_DEV_RELEASE` repositories in dockerfile, to allow
-   the installation of Apertis specific packages, such as `apertis-dev-tools`
-1. Temporarily disable other docker images as they won't be needed
+1. Merge the changes in `wip/xxx/rebase-preparation` into `NEW_DEV_RELEASE` branch
+   for `apertis-docker-images`
 1. Create new OBS projects for `NEW_DEV_RELEASE`
 1. Disable publish of `NEW_DEV_RELEASE` on OBS projects
 1. Add `NEW_DEBIAN_RELEASE` DoD on `NEW_DEV_RELEASE` OBS repositories
@@ -125,10 +129,10 @@ It is better to process the list of packages in batches, starting with a small n
    ```
 
 1. Trigger the pipeline on the `debian/NEW_DEBIAN_RELEASE` branches using the
-   [`trigger-pipeline`](https://gitlab.apertis.org/infrastructure/apertis-infrastructure/-/blob/main/release-scripts/gitlab/trigger-pipeline)
+   `trigger-pipeline` function from [manage-repo]](https://gitlab.apertis.org/infrastructure/apertis-infrastructure/-/blob/main/release-scripts/manage-repo)
    script:
    ```
-   $ ./trigger-pipeline ${pkg} debian/${NEW_DEBIAN_RELEASE}
+   $ ./release-scripts/manage-repo trigger-pipeline ${pkg} debian/${NEW_DEBIAN_RELEASE}
    ```
    This will trigger a chain of pipelines that will sync with the branch with
    the required Debian release and attempt to merge with the `NEW_DEV_RELEASE`
@@ -152,7 +156,7 @@ should be checked in the following order:
 - Other packages, such as those in `development` and `sdk`.
 
 The
-[analise-rebases.py](https://gitlab.apertis.org/infrastructure/apertis-infrastructure/-/blob/main/release-scripts/analyse-rebases.py)
+[analyse-rebases.py](https://gitlab.apertis.org/infrastructure/apertis-infrastructure/-/blob/main/rebase-scripts/analyse-rebases.py)
 script can be used to aid with this process.
 
 There will be different scenarios depending on the package:
@@ -205,8 +209,8 @@ Keep track of delta introduced as this will need to be documented, rectified or
    [analyse-missing.py](https://gitlab.apertis.org/infrastructure/apertis-infrastructure/-/blob/main/release-scripts/analyse-missing-packages.py)
 1. Check if all build statuses are green on OBS
 1. Check that OBS is NOT using Debian DoD to build packages using the
-   [`check-for-dod`](https://gitlab.apertis.org/infrastructure/apertis-infrastructure/-/blob/main/release-scripts/check-for-dod) script.
-1. Drop Bookworm DoD repositories from OBS
+   [`check-for-dod`](https://gitlab.apertis.org/infrastructure/apertis-infrastructure/-/blob/main/rebase-scripts/check-for-dod) script.
+1. Drop Debian DoD repositories from OBS
 1. Fix any leftover cracks:
    * New package imports
    * Build dependency trimming
-- 
GitLab