From 5e7c9f85a7d3fd656d5853f13d9b65a7501f702f Mon Sep 17 00:00:00 2001 From: Adi Roiban Date: Sat, 30 Aug 2025 12:21:46 +0100 Subject: [PATCH 1/3] Update docs. --- RELEASE.rst | 16 ++++++++++------ src/towncrier/newsfragments/719.misc | 0 2 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 src/towncrier/newsfragments/719.misc diff --git a/RELEASE.rst b/RELEASE.rst index 6ea705b5..d5f22ebd 100644 --- a/RELEASE.rst +++ b/RELEASE.rst @@ -69,17 +69,21 @@ Release candidate publish failures The PyPI publish process is automatically triggered when a tag is created. -The publish is skipped for PRs, so we can check that the automated process works only a release time. +The publish is skipped for PRs, so we can **only check** that the automated process works at release time. It can happen for the automated publish process to fail. -As long as the package was not published to PyPI, do the followings: +As long as the package was not published to PyPI, we will only "yank" it from GitHub, as there is nothing to yank on PyPI. -* Manually delete the candidate release from GitHub releases -* Manually delete the tag for the release candidate +To yank from GitHub release, keep the release title, and tag, +but remove the description and replace it with this content. -Try to fix the issue and trigger the same release candidate again. + > [!CAUTION] + > This tag corresponds to a release that never made it to PyPI. -Once the package is published on PyPI, do not delete the release or the tag. +Try to fix the issue and trigger the a new release candidate with a new tag. + +Once the package is published on PyPI, +**do not delete** the release or the tag. Proceed with create a new release candidate instead. diff --git a/src/towncrier/newsfragments/719.misc b/src/towncrier/newsfragments/719.misc new file mode 100644 index 00000000..e69de29b From d26fe243455c0e9f0c3a1a6f2e67badd786e9477 Mon Sep 17 00:00:00 2001 From: Adi Roiban Date: Sat, 30 Aug 2025 12:46:23 +0100 Subject: [PATCH 2/3] Add separate section for the merge. --- RELEASE.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/RELEASE.rst b/RELEASE.rst index d5f22ebd..e7e91298 100644 --- a/RELEASE.rst +++ b/RELEASE.rst @@ -123,6 +123,12 @@ Similar to the release candidate, with the difference: No need for another review request. + +Merge the release branch +------------------------ + +Once the release is done, we can prepare for a new development cycle and merge the release branch. + Update the version to the development version. In ``pyproject.toml`` the version is set using a PEP440 compliant string: From e02a2094dce7d8baa55e1694a139647a4ff81b95 Mon Sep 17 00:00:00 2001 From: Adi Roiban Date: Sun, 23 Nov 2025 13:34:59 +0000 Subject: [PATCH 3/3] Apply suggestion from @twm Co-authored-by: Tom Most --- RELEASE.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE.rst b/RELEASE.rst index e7e91298..c71d45d7 100644 --- a/RELEASE.rst +++ b/RELEASE.rst @@ -77,6 +77,8 @@ As long as the package was not published to PyPI, we will only "yank" it from Gi To yank from GitHub release, keep the release title, and tag, but remove the description and replace it with this content. +.. :: + > [!CAUTION] > This tag corresponds to a release that never made it to PyPI.