From 8dd63e1ce33d7fe9506e8c8a169cda2fcb13bc46 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 9 Oct 2026 07:11:35 +0000 Subject: [PATCH] Build the changelog from news/ fragments with towncrier The changelog check already requires a news/ fragment per PR, but nothing built them: CHANGELOG.rst was edited by hand, so #429 ended up listed in both places. Configure towncrier, move the pending #380 entry into a fragment, drop the duplicate #429 entry and document the build step in RELEASING.rst. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01MiQ7iUinBNk9vMp1sGqZv1 --- CHANGELOG.rst | 7 +------ RELEASING.rst | 8 +++++--- news/380.feature.rst | 1 + pyproject.toml | 7 +++++++ 4 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 news/380.feature.rst diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 4c2c37ad..2525314d 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,9 +1,4 @@ -2.2.0 (UNRELEASED) ------------------- - -* `#380 `__: Add support for Python 3.13 and 3.14, and drop EOL 3.8 and 3.9. - -* `#429 `__: ``safe_terminate`` now waits for a terminated worker once more after the kill attempt, so a released worker is joined instead of abandoned, and returns whether all workers finished within the bounds instead of discarding the wait result. ``Group.terminate()`` now propagates that result to its callers. +.. towncrier release notes start 2.1.2 (2025-11-11) ------------------ diff --git a/RELEASING.rst b/RELEASING.rst index a10991ec..08f9d9df 100644 --- a/RELEASING.rst +++ b/RELEASING.rst @@ -9,9 +9,9 @@ Version ``main`` should always be green and a potential release candidate. ``execnet`` follows semantic versioning, so given that the current version is ``X.Y.Z``, to find the next version number -one needs to look at the ``CHANGELOG.rst`` file: +one needs to look at the fragments in the ``news/`` directory: -- If there any new feature, then we must make a new **minor** release: next +- If there any new feature (``news/*.feature.rst``), then we must make a new **minor** release: next release will be ``X.Y+1.0``. - Otherwise it is just a **bug fix** release: ``X.Y.Z+1``. @@ -24,7 +24,9 @@ To publish a new release ``X.Y.Z``, the steps are as follows: #. Create a new branch named ``release-X.Y.Z`` from the latest ``main``. -#. Update the ``CHANGELOG.rst`` file with the new release information. +#. Build the changelog from the ``news/`` fragments, which also removes them:: + + uvx towncrier build --yes --version X.Y.Z #. Commit and push the branch to ``upstream`` and open a PR. diff --git a/news/380.feature.rst b/news/380.feature.rst new file mode 100644 index 00000000..ca7c45bc --- /dev/null +++ b/news/380.feature.rst @@ -0,0 +1 @@ +Add support for Python 3.13 and 3.14, and drop EOL 3.8 and 3.9. diff --git a/pyproject.toml b/pyproject.toml index 97245491..c7cec8ed 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -127,3 +127,10 @@ module = [ "gevent.thread.*", ] ignore_missing_imports = true + +[tool.towncrier] +directory = "news/" +filename = "CHANGELOG.rst" +title_format = "{version} ({project_date})" +issue_format = "`#{issue} `__" +underlines = ["-", "~"]