From 5ddb01c76038278187d6b892a8bf38e4cc25ac2e Mon Sep 17 00:00:00 2001 From: Natalia <124304+nessita@users.noreply.github.com> Date: Wed, 17 Sep 2025 18:19:42 -0300 Subject: [PATCH] Clarified feature freeze and alpha release steps in docs/internals/howto-release-django.txt. --- docs/internals/howto-release-django.txt | 40 ++++++++++++++++--------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/docs/internals/howto-release-django.txt b/docs/internals/howto-release-django.txt index bb5e197fd4..f6d2c1aff8 100644 --- a/docs/internals/howto-release-django.txt +++ b/docs/internals/howto-release-django.txt @@ -340,11 +340,12 @@ Feature freeze tasks to improve flow or fix grammar (:commit:`example commit <435bdab93889dae01e71c79598edab10627cc1f9>`). -#. Create a new stable branch from ``main``. For example, when feature freezing - Django 5.2: +#. Create a new stable branch from ``main``. Be sure to fetch and update + ``upstream`` to latest. For example, when feature freezing Django 5.2: .. code-block:: shell + $ git fetch upstream $ git checkout -b stable/5.2.x upstream/main $ git push upstream -u stable/5.2.x:stable/5.2.x @@ -355,9 +356,9 @@ Feature freeze tasks (:commit:`example commit <1eb62e5b622ef7fd6e0123d8bbf6662d893d5d08>`). #. Go to the `Add release page in the admin`__, create a ``Release`` object for - the *final* release, ensuring that the *Release date* field is blank, thus + the *final* release, ensuring that the *is active* field is unset, thus marking it as *unreleased*. For example, when creating ``stable/5.2.x``, - create ``5.2`` with the Release date field blank. If the release is part of + create ``5.2`` with the active field unset. If the release is part of an LTS branch, mark it so. __ https://www.djangoproject.com/admin/releases/release/add/ @@ -370,14 +371,14 @@ Feature freeze tasks #. Add the new branch to `Read the Docs `_. Since the automatically - generated version names ("stable-A.B.x") differ from the version names - used in Read the Docs ("A.B.x"), `create a ticket - `_ requesting - the new version. + generated version names ("stable-A.B.x") differ from the version names used + in Read the Docs ("A.B.x"), update the Read the Docs config for the version + to point to the slug ``A.B.x`` and set it as active. `See more details + `__. -#. `Request the new classifier on PyPI - `_. For example - ``Framework :: Django :: 5.2``. +#. `Create a PR on PyPI proposing the new Trove classifier + `_. + For example ``Framework :: Django :: 5.2``. #. Create a `roadmap page `_ for the next @@ -667,7 +668,20 @@ You're almost done! All that's left to do now is: ``VERSION = (4, 1, 2, 'alpha', 0)`` (:commit:`example commit `). -#. If this was an alpha release, add the release in `Trac's versions list`_. +#. If this was an alpha release: + + #. Add the feature release version in `Trac's versions list + `__. + + #. Create a new security branch from the freshly cut stable branch. Be sure + to fetch and update ``upstream`` to latest. For example, after the 5.2 + alpha release: + + .. code-block:: shell + + $ git fetch upstream + $ git checkout -b security/5.2.x upstream/stable/5.2.x + $ git push origin -u security/5.2.x:security/5.2.x #. If this was a final release: @@ -717,8 +731,6 @@ You're almost done! All that's left to do now is: release in the `Django Forum - Internationalization category `_. -.. _Trac's versions list: https://code.djangoproject.com/admin/ticket/versions - Notes on setting the VERSION tuple ==================================