Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-specfile for openSUSE:Factory
checked in at 2026-02-26 18:58:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-specfile (Old)
and /work/SRC/openSUSE:Factory/.python-specfile.new.29461 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-specfile"
Thu Feb 26 18:58:53 2026 rev:39 rq:1335239 version:0.39.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-specfile/python-specfile.changes
2026-01-13 21:35:44.494913254 +0100
+++
/work/SRC/openSUSE:Factory/.python-specfile.new.29461/python-specfile.changes
2026-02-26 18:59:21.052297631 +0100
@@ -1,0 +2,9 @@
+Wed Feb 25 11:16:06 UTC 2026 - John Paul Adrian Glaubitz
<[email protected]>
+
+- Update to 0.39.1
+ * Fixed whitespace padding of day of month in changelog entries. (#511)
+- from version 0.39.0
+ * Changelog entries that have incorrect padding set for a day of
+ a month are now fixed if possible or ignored. (#508)
+
+-------------------------------------------------------------------
Old:
----
specfile-0.38.0.tar.gz
New:
----
specfile-0.39.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-specfile.spec ++++++
--- /var/tmp/diff_new_pack.WZTx0d/_old 2026-02-26 18:59:21.956335352 +0100
+++ /var/tmp/diff_new_pack.WZTx0d/_new 2026-02-26 18:59:21.964335686 +0100
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-specfile
-Version: 0.38.0
+Version: 0.39.1
Release: 0
Summary: A library for parsing and manipulating RPM spec files
License: MIT
++++++ specfile-0.38.0.tar.gz -> specfile-0.39.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/specfile-0.38.0/.github/workflows/opened-issues-to-the-board.yml
new/specfile-0.39.1/.github/workflows/opened-issues-to-the-board.yml
--- old/specfile-0.38.0/.github/workflows/opened-issues-to-the-board.yml
2026-01-08 14:44:07.000000000 +0100
+++ new/specfile-0.39.1/.github/workflows/opened-issues-to-the-board.yml
1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-name: Move new issues into the Kanban board
-
-on:
- issues:
- types: [opened]
-
-jobs:
- add-new-issue-to-the-kanban-board:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/[email protected]
- with:
- project-url: https://github.com/orgs/packit/projects/7
- github-token: ${{ secrets.RELEASEBOT_GITHUB_TOKEN }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/specfile-0.38.0/.github/workflows/opened-prs-to-the-board.yml
new/specfile-0.39.1/.github/workflows/opened-prs-to-the-board.yml
--- old/specfile-0.38.0/.github/workflows/opened-prs-to-the-board.yml
2026-01-08 14:44:07.000000000 +0100
+++ new/specfile-0.39.1/.github/workflows/opened-prs-to-the-board.yml
2026-02-14 10:20:54.000000000 +0100
@@ -1,14 +1,14 @@
-name: Move PRs into the Kanban board
+name: Move PRs into the PRs board
on:
pull_request_target:
jobs:
- add-pr-to-the-kanban-board:
+ add-pr-to-the-prs-board:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
with:
- project-url: https://github.com/orgs/packit/projects/7
+ project-url: https://github.com/orgs/packit/projects/14
github-token: ${{ secrets.RELEASEBOT_GITHUB_TOKEN }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/specfile-0.38.0/.pre-commit-config.yaml
new/specfile-0.39.1/.pre-commit-config.yaml
--- old/specfile-0.38.0/.pre-commit-config.yaml 2026-01-08 14:44:07.000000000
+0100
+++ new/specfile-0.39.1/.pre-commit-config.yaml 2026-02-14 10:20:54.000000000
+0100
@@ -4,7 +4,7 @@
repos:
- repo: https://github.com/asottile/pyupgrade
- rev: v3.19.1
+ rev: v3.21.2
hooks:
- id: pyupgrade
- repo: https://github.com/psf/black
@@ -57,7 +57,7 @@
# This file is overridden by a type stub
exclude: "specfile/context_management.py"
- repo: https://github.com/teemtee/tmt.git
- rev: 1.43.0
+ rev: 1.66.0
hooks:
- id: tmt-lint
# linting of the reverse-dependency tests requires internet access
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/specfile-0.38.0/CHANGELOG.md
new/specfile-0.39.1/CHANGELOG.md
--- old/specfile-0.38.0/CHANGELOG.md 2026-01-08 14:44:07.000000000 +0100
+++ new/specfile-0.39.1/CHANGELOG.md 2026-02-14 10:20:54.000000000 +0100
@@ -1,3 +1,11 @@
+# 0.39.1
+
+- Fixed whitespace padding of day of month in changelog entries. (#511)
+
+# 0.39.0
+
+- Changelog entries that have incorrect padding set for a day of a month are
now fixed if possible or ignored. (#508)
+
# 0.38.0
- A bug leading to incorrect EVR expansion has been fixed. (#492)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/specfile-0.38.0/PKG-INFO new/specfile-0.39.1/PKG-INFO
--- old/specfile-0.38.0/PKG-INFO 2026-01-08 14:44:14.616140600 +0100
+++ new/specfile-0.39.1/PKG-INFO 2026-02-14 10:20:59.007436300 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: specfile
-Version: 0.38.0
+Version: 0.39.1
Summary: A library for parsing and manipulating RPM spec files.
Home-page: https://github.com/packit/specfile
Author: Red Hat
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/specfile-0.38.0/centos-integration-sig/python-specfile.spec
new/specfile-0.39.1/centos-integration-sig/python-specfile.spec
--- old/specfile-0.38.0/centos-integration-sig/python-specfile.spec
2026-01-08 14:44:07.000000000 +0100
+++ new/specfile-0.39.1/centos-integration-sig/python-specfile.spec
2026-02-14 10:20:54.000000000 +0100
@@ -7,7 +7,7 @@
in a minimal diff.}
-%global base_version 0.38.0
+%global base_version 0.39.1
#global prerelease rc1
%global package_version %{base_version}%{?prerelease:~%{prerelease}}
@@ -77,6 +77,12 @@
%changelog
+* Sat Feb 14 2026 Packit Team <[email protected]> - 0.39.1-1
+- New upstream release 0.39.1
+
+* Thu Feb 12 2026 Packit Team <[email protected]> - 0.39.0-1
+- New upstream release 0.39.0
+
* Thu Jan 08 2026 Packit Team <[email protected]> - 0.38.0-1
- New upstream release 0.38.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/specfile-0.38.0/epel10/python-specfile.spec
new/specfile-0.39.1/epel10/python-specfile.spec
--- old/specfile-0.38.0/epel10/python-specfile.spec 2026-01-08
14:44:07.000000000 +0100
+++ new/specfile-0.39.1/epel10/python-specfile.spec 2026-02-14
10:20:54.000000000 +0100
@@ -7,7 +7,7 @@
in a minimal diff.}
-%global base_version 0.38.0
+%global base_version 0.39.1
#global prerelease rc1
%global package_version %{base_version}%{?prerelease:~%{prerelease}}
@@ -77,6 +77,12 @@
%changelog
+* Sat Feb 14 2026 Packit Team <[email protected]> - 0.39.1-1
+- New upstream release 0.39.1
+
+* Thu Feb 12 2026 Packit Team <[email protected]> - 0.39.0-1
+- New upstream release 0.39.0
+
* Thu Jan 08 2026 Packit Team <[email protected]> - 0.38.0-1
- New upstream release 0.38.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/specfile-0.38.0/epel8/python-specfile.spec
new/specfile-0.39.1/epel8/python-specfile.spec
--- old/specfile-0.38.0/epel8/python-specfile.spec 2026-01-08
14:44:07.000000000 +0100
+++ new/specfile-0.39.1/epel8/python-specfile.spec 2026-02-14
10:20:54.000000000 +0100
@@ -4,7 +4,7 @@
in a minimal diff.}
-%global base_version 0.38.0
+%global base_version 0.39.1
#global prerelease rc1
%global package_version %{base_version}%{?prerelease:~%{prerelease}}
@@ -68,6 +68,12 @@
%changelog
+* Sat Feb 14 2026 Packit Team <[email protected]> - 0.39.1-1
+- New upstream release 0.39.1
+
+* Thu Feb 12 2026 Packit Team <[email protected]> - 0.39.0-1
+- New upstream release 0.39.0
+
* Thu Jan 08 2026 Packit Team <[email protected]> - 0.38.0-1
- New upstream release 0.38.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/specfile-0.38.0/fedora/python-specfile.spec
new/specfile-0.39.1/fedora/python-specfile.spec
--- old/specfile-0.38.0/fedora/python-specfile.spec 2026-01-08
14:44:07.000000000 +0100
+++ new/specfile-0.39.1/fedora/python-specfile.spec 2026-02-14
10:20:54.000000000 +0100
@@ -7,7 +7,7 @@
in a minimal diff.}
-%global base_version 0.38.0
+%global base_version 0.39.1
#global prerelease rc1
%global package_version %{base_version}%{?prerelease:~%{prerelease}}
@@ -77,6 +77,12 @@
%changelog
+* Sat Feb 14 2026 Packit Team <[email protected]> - 0.39.1-1
+- New upstream release 0.39.1
+
+* Thu Feb 12 2026 Packit Team <[email protected]> - 0.39.0-1
+- New upstream release 0.39.0
+
* Thu Jan 08 2026 Packit Team <[email protected]> - 0.38.0-1
- New upstream release 0.38.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/specfile-0.38.0/specfile/changelog.py
new/specfile-0.39.1/specfile/changelog.py
--- old/specfile-0.38.0/specfile/changelog.py 2026-01-08 14:44:07.000000000
+0100
+++ new/specfile-0.39.1/specfile/changelog.py 2026-02-14 10:20:54.000000000
+0100
@@ -167,10 +167,14 @@
return m is not None
@property
- def day_of_month_padding(self) -> str:
- """Padding of day of month in the entry header timestamp"""
+ def sanitized_day_of_month_padding(self) -> str:
+ """
+ Padding of day of month in the entry header timestamp. Nonsensical
padding
+ (i.e. multiple spaces before double-digit day of month) is corrected.
+ """
weekdays = "|".join(WEEKDAYS)
months = "|".join(MONTHS)
+
m = re.search(
rf"""
({weekdays}) # weekday
@@ -178,14 +182,18 @@
({months}) # month
[ ]
(?P<wsp>[ ]*) # optional whitespace padding
- ((?P<zp>0)?\d|[12]\d|3[01]) # possibly zero-padded day of month
+ (?P<zp>0)? # optional zero-padding
+ (?P<day>[12]\d|3[01]|[1-9]) # day of month (1-31)
""",
self.header,
re.VERBOSE,
)
if not m:
return ""
- return m.group("wsp") + (m.group("zp") or "")
+ # remove extra padding for double-digit day numbers
+ whitespace_padding = "" if len(m.group("day")) == 2 else m.group("wsp")
+ zero_padding = m.group("zp") or ""
+ return whitespace_padding + zero_padding
@property
def style(self) -> ChangelogStyle:
@@ -233,10 +241,10 @@
header = _OPENSUSE_CHANGELOG_SEPARATOR + "\n"
header += f"{weekday} {month}"
- if day_of_month_padding.endswith("0"):
- header += f" {day_of_month_padding[:-1]}{timestamp.day:02}"
+ if day_of_month_padding:
+ header += f"
{day_of_month_padding[:-1]}{timestamp.day:{day_of_month_padding[-1]}>2}"
else:
- header += f" {day_of_month_padding}{timestamp.day}"
+ header += f" {timestamp.day}"
# convert to extended format for openSUSE style changelogs
if style == ChangelogStyle.openSUSE and not isinstance(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/specfile-0.38.0/specfile/specfile.py
new/specfile-0.39.1/specfile/specfile.py
--- old/specfile-0.38.0/specfile/specfile.py 2026-01-08 14:44:07.000000000
+0100
+++ new/specfile-0.39.1/specfile/specfile.py 2026-02-14 10:20:54.000000000
+0100
@@ -641,9 +641,13 @@
elif email is not None:
author += f" <{email}>"
if changelog:
- # try to preserve padding of day of month
+ # compute day of month padding from the longest valid
entry
+ # incorrect padding is stripped; invalid entries are
ignored
padding = max(
- (e.day_of_month_padding for e in
reversed(changelog)),
+ (
+ e.sanitized_day_of_month_padding
+ for e in reversed(changelog)
+ ),
key=len,
)
else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/specfile-0.38.0/specfile.egg-info/PKG-INFO
new/specfile-0.39.1/specfile.egg-info/PKG-INFO
--- old/specfile-0.38.0/specfile.egg-info/PKG-INFO 2026-01-08
14:44:14.000000000 +0100
+++ new/specfile-0.39.1/specfile.egg-info/PKG-INFO 2026-02-14
10:20:58.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: specfile
-Version: 0.38.0
+Version: 0.39.1
Summary: A library for parsing and manipulating RPM spec files.
Home-page: https://github.com/packit/specfile
Author: Red Hat
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/specfile-0.38.0/specfile.egg-info/SOURCES.txt
new/specfile-0.39.1/specfile.egg-info/SOURCES.txt
--- old/specfile-0.38.0/specfile.egg-info/SOURCES.txt 2026-01-08
14:44:14.000000000 +0100
+++ new/specfile-0.39.1/specfile.egg-info/SOURCES.txt 2026-02-14
10:20:58.000000000 +0100
@@ -19,7 +19,6 @@
.fmf/version
.github/workflows/check-release-notes.yml
.github/workflows/do-release.yml
-.github/workflows/opened-issues-to-the-board.yml
.github/workflows/opened-prs-to-the-board.yml
.github/workflows/prepare-release.yml
.github/workflows/pypi-publish.yml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/specfile-0.38.0/tests/integration/test_specfile.py
new/specfile-0.39.1/tests/integration/test_specfile.py
--- old/specfile-0.38.0/tests/integration/test_specfile.py 2026-01-08
14:44:07.000000000 +0100
+++ new/specfile-0.39.1/tests/integration/test_specfile.py 2026-02-14
10:20:54.000000000 +0100
@@ -226,6 +226,33 @@
assert sections.changelog[: len(result)] == result
+def test_add_changelog_entry_ignores_invalid_padding(specfile_factory,
spec_minimal):
+ """Test that add_changelog_entry ignores entries with invalid day padding
(issue #216)."""
+ spec = specfile_factory(spec_minimal)
+
+ # Simulate scipy scenario: malformed entry with space before double-digit
day
+ with spec.sections() as sections:
+ sections.changelog.data = [
+ "* Mon Dec 11 2021 Author <email> - 0.5.1-5", # INVALID
+ "- Initial version",
+ "",
+ "* Tue May 04 2020 Another <email> - 0.1-0", # VALID (zero-padded)
+ "- First version",
+ ]
+
+ # Add new entry with single-digit day - should use zero-padding from valid
entry
+ flexmock(specfile.specfile).should_receive("guess_packager").and_return(
+ "Test User <[email protected]>"
+ ).once()
+ spec.add_changelog_entry("test entry", timestamp=datetime.date(2024, 1, 5))
+
+ with spec.sections() as sections:
+ new_entry = sections.changelog[0]
+ # Should use zero-padding style "Jan 05", not space-padding "Jan 5"
+ assert "Jan 05" in new_entry
+ assert "Jan 5" not in new_entry
+
+
@pytest.mark.parametrize(
"version, release",
[
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/specfile-0.38.0/tests/unit/test_changelog.py
new/specfile-0.39.1/tests/unit/test_changelog.py
--- old/specfile-0.38.0/tests/unit/test_changelog.py 2026-01-08
14:44:07.000000000 +0100
+++ new/specfile-0.39.1/tests/unit/test_changelog.py 2026-02-14
10:20:54.000000000 +0100
@@ -92,12 +92,17 @@
),
(
"* Mon Oct 18 12:34:45 CEST 2021 Nikola Forró <[email protected]>
- 0.2-1",
- " ",
+ "", # Invalid: double-digit day with space padding, returns ""
),
+ (
+ "* Mon Dec 11 2006 Author <email> - 1.0",
+ "",
+ ), # Invalid: space before double-digit
+ ("* Invalid header", ""), # Invalid: unparsable
],
)
def test_entry_day_of_month_padding(header, padding):
- assert ChangelogEntry(header, [""]).day_of_month_padding == padding
+ assert ChangelogEntry(header, [""]).sanitized_day_of_month_padding ==
padding
@pytest.mark.parametrize(
@@ -447,9 +452,33 @@
],
"0.4-1",
),
+ ChangelogEntry.assemble(
+ datetime.date(2026, 2, 9),
+ "Nikola Forró <[email protected]>",
+ [
+ "* whitespace day of month padding",
+ ],
+ "0.4-2",
+ day_of_month_padding=" ",
+ ),
+ ChangelogEntry.assemble(
+ datetime.date(2026, 2, 19),
+ "Nikola Forró <[email protected]>",
+ [
+ "* whitespace day of month padding #2",
+ ],
+ "0.4-3",
+ day_of_month_padding=" ",
+ ),
]
)
assert changelog.get_raw_section_data() == [
+ "* Thu Feb 19 2026 Nikola Forró <[email protected]> - 0.4-3",
+ "* whitespace day of month padding #2",
+ "",
+ "* Mon Feb 9 2026 Nikola Forró <[email protected]> - 0.4-2",
+ "* whitespace day of month padding",
+ "",
"* Fri Jan 27 2023 Nikola Forró <[email protected]> - 0.4-1",
"",
"* this is also a valid entry",