From ddb27ec8450dc0c3d1ee10f84beaebadf8e7e17f Mon Sep 17 00:00:00 2001 From: Omar Al-Ithawi Date: Sat, 6 Jan 2024 23:00:59 +0300 Subject: [PATCH] docs: add 0003-release-management.rst decision --- docs/decisions/0003-release-management.rst | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 docs/decisions/0003-release-management.rst diff --git a/docs/decisions/0003-release-management.rst b/docs/decisions/0003-release-management.rst new file mode 100644 index 00000000000..f777a21bbdb --- /dev/null +++ b/docs/decisions/0003-release-management.rst @@ -0,0 +1,67 @@ +Translation Releses branches and tags +##################################### + +Status +****** + +Pending. + +Context +******* +Open edX platform uses release branches and tags to make reproducible builds. +Branching and versioning strategy varies between repos such as ``edx-platform``, ``tutor`` +and other repositories with `Named Releases `_ +being the common theme across all repositories. + +Problem +******* +With `OEP-58`, translations are de-coupled from code and lives in its own versioned repository -- this ``openedx/openedx-translations`` repository. + +Therefore, translations are constantly updated even after releases are cut e.g. ``open-release/quince.master`` +and tagged ``open-release/quince.1``. + +Tutor and other build systems encourage tagging to create reproducible builds. + +This repository needs an automated release management workflow which +don't need an engineer to manually cut a translations release. + + +Release branches +**************** + +On every release cut, we propose to to create a branch in this repository in the following format: + +- ``open-release/quince.master`` for Quince release only. +- ``release/redwood`` for Redwood and other releases if the Build Test Release Working Group decides on the shorter naming. + + +For each new named-release a new Transifex project is created by creating a copy from the +`openedx-translations Transifex project`_ to a new one e.g. + +``https://app.transifex.com/open-edx/``**``openedx-translations-quince``**``/content/`` to capture a point-in-time source translations and +set up sync with the `Transifex GitHub App`_ for the specific `open-release/quince.master`` branch on the +https://github.com/openedx/openedx-translations repository. + +Daily release tags +****************** + +Set up automated daily workflow to create tags for both +``main`` and release branches (e.g. ``release/redwood``) to capture +a point-in-time translations content. + +The proposed naming for those branches is the following: + +- ``main`` is tagged daily on the following tag format: ``release/main/2024-01-24`` +- ``release/redwood`` is tagged daily with the following tag format: ``release/redwood/2024-01-24`` + +Release end of life +******************* + +Both of the release automated and Transifex projects are maintained for the last 5 of named releases. +After that the automated is ceased for the unsupported releases and the Transifex projects are deleted. + +Operators of older releases are asked to maintain their own forks of this repository. + +.. _OEP-58: https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0058-arch-translations-management.html +.. _Transifex GitHub App: https://github.com/apps/transifex-integration +.. _openedx-translations Transifex project: https://app.transifex.com/open-edx/openedx-translations/content