Skip to content

Commit

Permalink
docs: add 0003-release-management.rst decision
Browse files Browse the repository at this point in the history
  • Loading branch information
OmarIthawi committed Jan 6, 2024
1 parent da59e72 commit ddb27ec
Showing 1 changed file with 67 additions and 0 deletions.
67 changes: 67 additions & 0 deletions docs/decisions/0003-release-management.rst
Original file line number Diff line number Diff line change
@@ -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 <https://docs.openedx.org/en/latest/community/release_notes/named_release_branches_and_tags.html>`_
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

0 comments on commit ddb27ec

Please sign in to comment.