Update repository handling document

Sometime it is confusing whether to merge the
repo retirement/deprecation in governance and then
start the code/infra cleanup or other way around.
Usually all code/infra cleanup patches check if
there is patch submitted in governance or not.

If there is objection by TC or by any reasonTC decided
not to approve the repo retirement/deprecation then code/infra
cleanup including the project rename revert will be very costly.

To make it the process clear and in right sequence, updating the
document to merge the governance patch first and then start the
other steps.

Change-Id: I5c911f9dde8e4244156ad79898299dc3f0a11460
This commit is contained in:
Ghanshyam Mann 2022-03-31 22:12:59 -05:00
parent 0e28af9708
commit b1d1a63742
1 changed files with 43 additions and 35 deletions

View File

@ -42,25 +42,38 @@ down a project gracefully.
explained below and in the OpenDev Manual. We recommend to link
these changes with "Depends-On:" and "Needed-By:" headers.
Step 1: Stop requirements syncing (if set up)
Step 1: Retire Repository from the Governance Repository
--------------------------------------------------------
First step is to get the agreement in the Technical Committee by
retiring the repository from the ``reference/projects.yaml`` file and
add it to the file ``reference/legacy.yaml`` in the ``openstack/governance``
repository. Note that if the project was recently active, this may have
implications for automatic detection of ATCs.
Step 2: Stop requirements syncing (if set up)
---------------------------------------------
Submit a review to the ``openstack/requirements`` project removing the
project from ``projects.txt``. This needs to happen for stable
branches as well.
Steps 2-4: Follow all three steps from OpenDev Manual
Use Depends-On on ``governance`` patch submitted in Step 1.
Steps 3-5: Follow all three steps from OpenDev Manual
-----------------------------------------------------
Follow the steps about `Retiring a Project
<https://docs.opendev.org/opendev/infra-manual/latest/drivers.html#retiring-a-project>`_
in the OpenDev Manual.
In step 1, keep the template ``official-openstack-repo-jobs`` besides
``noop-jobs``, this is needed to sync changes to GitHub. It will be
removed in step 3.
In step 1 of OpenDev Manual, keep the template ``official-openstack-repo-jobs``
besides ``noop-jobs``, this is needed to sync changes to GitHub. It will be
removed in step 3 of OpenDev Manual.
Step 5: Remove docs.openstack.org content
In all the patches, use Depends-On on ``governance`` patch submitted in Step 1.
Step 6: Remove docs.openstack.org content
-----------------------------------------
Inform users that reach the ``docs.openstack.org`` page of your
@ -72,7 +85,9 @@ list in the file ``tools/www-generator.py`` in the
the URL ``https://docs.openstack.org/openstack/<projectname>/latest``
will redirect to the repositories' ``README.rst`` file.
Step 6: Mark the deliverables as retired
Use Depends-On on ``governance`` patch submitted in Step 1.
Step 7: Mark the deliverables as retired
----------------------------------------
For maintained openstack series, on ``openstack/releases``, amend the related
@ -95,18 +110,7 @@ Even if a project is retired, stable branches will continue to follow the
existing series life cycle and this flag will allow us to ignore this
deliverable in some specific cases.
Step 7: Remove Repository from the Governance Repository
--------------------------------------------------------
Remove the repository from the ``reference/projects.yaml`` file and
add it to the file ``reference/legacy.yaml`` in the
``openstack/governance`` repository. Note that if the project was
recently active, this may have implications for automatic detection of
ATCs.
Use Depends-On on ``project-config`` `final step patch
<https://docs.opendev.org/opendev/infra-manual/latest/drivers.html#step-3-remove-project-from-infrastructure-systems>`_.
Use Depends-On on ``governance`` patch submitted in Step 1.
Deprecating a Repository
========================
@ -122,16 +126,27 @@ must be marked as deprecated. If project has no stable branch or does not
follow the stable policy tag then you have option to go with removal process
directly.
Step 1: Stop requirements syncing (if set up)
Step 1: Mark the Repository as Deprecated in the Governance Repository
-----------------------------------------------------------------------
Mark the repository in the ``reference/projects.yaml`` file as
deprecated with adding a line::
deprecated: <deprecated-cycle-name>
release-management: deprecated
Step 2: Stop requirements syncing (if set up)
---------------------------------------------
Submit a review to the ``openstack/requirements`` project removing the
project from ``projects.txt``.
Step 2: Retire master branch
Use Depends-On on ``governance`` patch submitted in Step 1.
Step 3: Retire master branch
----------------------------
Step 2a: Use only noop jobs
Step 3a: Use only noop jobs
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Add ``noop`` jobs for master only in ``project-config`` repository and
@ -161,14 +176,14 @@ prefix it with ``DEPRECATED,`` like this::
description: DEPRECATED, existing project description
Step 2b: Remove project content
Step 3b: Remove project content
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Follow step 2 about `Removing project content
<https://docs.opendev.org/opendev/infra-manual/latest/drivers.html#step-2-remove-project-content>`__
in the OpenDev Manual.
Step 2c: Remove noop jobs
Step 3c: Remove noop jobs
~~~~~~~~~~~~~~~~~~~~~~~~~
Once the project content is retired, partially revert the change you merged
@ -177,7 +192,9 @@ need so that you can merge content on stable branches.
Please ensure you keep the ``DEPRECATED,`` prefix you added to project
description in step 2a.
Step 3: Remove docs.openstack.org content
In all the patches, use Depends-On on ``governance`` patch submitted in Step 1.
Step 4: Remove docs.openstack.org content
-----------------------------------------
Inform users that reach the ``docs.openstack.org`` page of your
@ -193,13 +210,4 @@ Also, remove the project from the list in the ``www/project-data/latest.yaml``
in the ``openstack/openstack-manuals`` repository if present. That will remove
the project from the list of new releases.
Step 4: Mark the Repository as Deprecated in the Governance Repository
-----------------------------------------------------------------------
Mark the repository in the ``reference/projects.yaml`` file as
deprecated with adding a line::
deprecated: <deprecated-cycle-name>
release-management: deprecated
Use Depends-On on ``project-config`` final step patch done in Step 2c.
Use Depends-On on ``governance`` patch submitted in Step 1.