From fedecd69c414fb3931a4e64384ac6f7e388aa32c Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Fri, 9 Oct 2026 12:33:20 +0200 Subject: [PATCH 1/2] Allow gh-issue 0 for "no changes" release entries --- src/blurb/_blurb_file.py | 6 +++++- tests/test_blurb_file.py | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/blurb/_blurb_file.py b/src/blurb/_blurb_file.py index b0015b9..f6c90c8 100644 --- a/src/blurb/_blurb_file.py +++ b/src/blurb/_blurb_file.py @@ -151,7 +151,11 @@ def finish_entry() -> None: except (TypeError, ValueError): throw(f'Invalid {issue_keys[key]} number: {value!r}') - if key == 'gh-issue' and int(value) < lowest_possible_gh_issue_number: + if ( + key == 'gh-issue' + and not no_changes + and int(value) < lowest_possible_gh_issue_number + ): throw( f'Invalid gh-issue number: {value!r} (must be >= {lowest_possible_gh_issue_number})' ) diff --git a/tests/test_blurb_file.py b/tests/test_blurb_file.py index fccfcb4..fc52699 100644 --- a/tests/test_blurb_file.py +++ b/tests/test_blurb_file.py @@ -97,6 +97,26 @@ def test_parse(): assert body == 'Hello world!\n' +def test_parse_no_changes(): + # Arrange + contents = ( + '.. gh-issue: 0\n' + '.. no changes: True\n' + '.. section: Library\n' + 'There were no new changes in version 3.15.0.' + ) + blurbs = Blurbs() + + # Act + blurbs.parse(contents) + + # Assert + metadata, body = blurbs[0] + assert metadata['gh-issue'] == '0' + assert metadata['no changes'] == 'True' + assert body == 'There were no new changes in version 3.15.0.\n' + + @pytest.mark.parametrize( 'contents, expected_error', ( From bf584efac3329cb9f89915122fde9658ba6311d5 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Fri, 9 Oct 2026 12:39:57 +0200 Subject: [PATCH 2/2] Add changelog entry --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d047a9f..f5e64c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.3.0 + +* Allow `gh-issue 0` for "no changes" release entries by @hugovk in https://github.com/python/blurb/pull/92 + ## 2.2.0 * Add support for Python 3.15 by @hugovk in https://github.com/python/blurb/pull/74