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",

Reply via email to