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 2025-06-03 17:57:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-specfile (Old) and /work/SRC/openSUSE:Factory/.python-specfile.new.16005 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-specfile" Tue Jun 3 17:57:26 2025 rev:35 rq:1282332 version:0.36.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-specfile/python-specfile.changes 2025-05-31 19:16:49.262644593 +0200 +++ /work/SRC/openSUSE:Factory/.python-specfile.new.16005/python-specfile.changes 2025-06-03 17:58:00.904740655 +0200 @@ -1,0 +2,8 @@ +Mon Jun 2 08:51:14 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaub...@suse.com> + +- Update to 0.36.0 + * We have fixed a bug that caused specfile to traceback when + section names with conditional macro expansions containing + spaces were present in the spec file. (#476) + +------------------------------------------------------------------- Old: ---- specfile-0.35.1.tar.gz New: ---- specfile-0.36.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-specfile.spec ++++++ --- /var/tmp/diff_new_pack.55QQRC/_old 2025-06-03 17:58:01.916782618 +0200 +++ /var/tmp/diff_new_pack.55QQRC/_new 2025-06-03 17:58:01.916782618 +0200 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-specfile -Version: 0.35.1 +Version: 0.36.0 Release: 0 Summary: A library for parsing and manipulating RPM spec files License: MIT ++++++ specfile-0.35.1.tar.gz -> specfile-0.36.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/specfile-0.35.1/.github/workflows/opened-prs-to-the-board.yml new/specfile-0.36.0/.github/workflows/opened-prs-to-the-board.yml --- old/specfile-0.35.1/.github/workflows/opened-prs-to-the-board.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/specfile-0.36.0/.github/workflows/opened-prs-to-the-board.yml 2025-05-30 15:09:10.000000000 +0200 @@ -0,0 +1,13 @@ +name: Move PRs into the Kanban board + +on: + pull_request_target: + +jobs: + add-pr-to-the-kanban-board: + runs-on: ubuntu-latest + steps: + - uses: actions/add-to-project@v0.3.0 + 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.35.1/.github/workflows/prepare-release.yml new/specfile-0.36.0/.github/workflows/prepare-release.yml --- old/specfile-0.35.1/.github/workflows/prepare-release.yml 2025-05-16 12:11:06.000000000 +0200 +++ new/specfile-0.36.0/.github/workflows/prepare-release.yml 2025-05-30 15:09:10.000000000 +0200 @@ -27,7 +27,7 @@ prerelease_suffix_pattern: "([.\\-_]?)(a(lpha)?|b(eta)?|r?c|pre(view)?)([.\\-_]?\\d+)?" prerelease_suffix_macro: prerelease - name: Create Pull Request - uses: peter-evans/create-pull-request@v4 + uses: peter-evans/create-pull-request@v7 with: labels: release commit-message: Release ${{ inputs.version }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/specfile-0.35.1/.packit.yaml new/specfile-0.36.0/.packit.yaml --- old/specfile-0.35.1/.packit.yaml 2025-05-16 12:11:06.000000000 +0200 +++ new/specfile-0.36.0/.packit.yaml 2025-05-30 15:09:10.000000000 +0200 @@ -131,8 +131,8 @@ branch: stable packages: [specfile] targets: - - fedora-latest-stable - - fedora-latest-stable-aarch64 + - fedora-stable + - fedora-stable-aarch64 project: packit-stable list_on_homepage: True preserve_project: True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/specfile-0.35.1/CHANGELOG.md new/specfile-0.36.0/CHANGELOG.md --- old/specfile-0.35.1/CHANGELOG.md 2025-05-16 12:11:06.000000000 +0200 +++ new/specfile-0.36.0/CHANGELOG.md 2025-05-30 15:09:10.000000000 +0200 @@ -1,3 +1,7 @@ +# 0.36.0 + +- We have fixed a bug that caused specfile to traceback when section names with conditional macro expansions containing spaces were present in the spec file. (#476) + # 0.35.1 - We have fixed a bug that caused changes to get lost when a spec file passed as a path was replaced or deleted. (#470) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/specfile-0.35.1/PKG-INFO new/specfile-0.36.0/PKG-INFO --- old/specfile-0.35.1/PKG-INFO 2025-05-16 12:11:11.908518000 +0200 +++ new/specfile-0.36.0/PKG-INFO 2025-05-30 15:09:16.095914000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: specfile -Version: 0.35.1 +Version: 0.36.0 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.35.1/centos-integration-sig/python-specfile.spec new/specfile-0.36.0/centos-integration-sig/python-specfile.spec --- old/specfile-0.35.1/centos-integration-sig/python-specfile.spec 2025-05-16 12:11:06.000000000 +0200 +++ new/specfile-0.36.0/centos-integration-sig/python-specfile.spec 2025-05-30 15:09:10.000000000 +0200 @@ -7,7 +7,7 @@ in a minimal diff.} -%global base_version 0.35.1 +%global base_version 0.36.0 #global prerelease rc1 %global package_version %{base_version}%{?prerelease:~%{prerelease}} @@ -77,6 +77,9 @@ %changelog +* Fri May 30 2025 Packit Team <he...@packit.dev> - 0.36.0-1 +- New upstream release 0.36.0 + * Fri May 16 2025 Packit Team <he...@packit.dev> - 0.35.1-1 - New upstream release 0.35.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/specfile-0.35.1/epel10/python-specfile.spec new/specfile-0.36.0/epel10/python-specfile.spec --- old/specfile-0.35.1/epel10/python-specfile.spec 2025-05-16 12:11:06.000000000 +0200 +++ new/specfile-0.36.0/epel10/python-specfile.spec 2025-05-30 15:09:10.000000000 +0200 @@ -7,7 +7,7 @@ in a minimal diff.} -%global base_version 0.35.1 +%global base_version 0.36.0 #global prerelease rc1 %global package_version %{base_version}%{?prerelease:~%{prerelease}} @@ -77,6 +77,9 @@ %changelog +* Fri May 30 2025 Packit Team <he...@packit.dev> - 0.36.0-1 +- New upstream release 0.36.0 + * Fri May 16 2025 Packit Team <he...@packit.dev> - 0.35.1-1 - New upstream release 0.35.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/specfile-0.35.1/epel8/python-specfile.spec new/specfile-0.36.0/epel8/python-specfile.spec --- old/specfile-0.35.1/epel8/python-specfile.spec 2025-05-16 12:11:06.000000000 +0200 +++ new/specfile-0.36.0/epel8/python-specfile.spec 2025-05-30 15:09:10.000000000 +0200 @@ -4,7 +4,7 @@ in a minimal diff.} -%global base_version 0.35.1 +%global base_version 0.36.0 #global prerelease rc1 %global package_version %{base_version}%{?prerelease:~%{prerelease}} @@ -68,6 +68,9 @@ %changelog +* Fri May 30 2025 Packit Team <he...@packit.dev> - 0.36.0-1 +- New upstream release 0.36.0 + * Fri May 16 2025 Packit Team <he...@packit.dev> - 0.35.1-1 - New upstream release 0.35.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/specfile-0.35.1/fedora/python-specfile.spec new/specfile-0.36.0/fedora/python-specfile.spec --- old/specfile-0.35.1/fedora/python-specfile.spec 2025-05-16 12:11:06.000000000 +0200 +++ new/specfile-0.36.0/fedora/python-specfile.spec 2025-05-30 15:09:10.000000000 +0200 @@ -7,7 +7,7 @@ in a minimal diff.} -%global base_version 0.35.1 +%global base_version 0.36.0 #global prerelease rc1 %global package_version %{base_version}%{?prerelease:~%{prerelease}} @@ -77,6 +77,9 @@ %changelog +* Fri May 30 2025 Packit Team <he...@packit.dev> - 0.36.0-1 +- New upstream release 0.36.0 + * Fri May 16 2025 Packit Team <he...@packit.dev> - 0.35.1-1 - New upstream release 0.35.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/specfile-0.35.1/specfile/options.py new/specfile-0.36.0/specfile/options.py --- old/specfile-0.35.1/specfile/options.py 2025-05-16 12:11:06.000000000 +0200 +++ new/specfile-0.36.0/specfile/options.py 2025-05-30 15:09:10.000000000 +0200 @@ -47,8 +47,14 @@ # escape double quotes value = self.value.replace('"', r"\"") return f'"{value}"' - # escape quotes and whitespace - return re.sub(r"['\"\s]", r"\\\g<0>", self.value) + # escape quotes and whitespace only in string literals + value = "" + for node in ValueParser.parse(self.value): + if isinstance(node, StringLiteral): + value += re.sub(r"['\"\s]", r"\\\g<0>", str(node)) + else: + value += str(node) + return value def _key(self) -> tuple: return self.type, self.value diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/specfile-0.35.1/specfile.egg-info/PKG-INFO new/specfile-0.36.0/specfile.egg-info/PKG-INFO --- old/specfile-0.35.1/specfile.egg-info/PKG-INFO 2025-05-16 12:11:11.000000000 +0200 +++ new/specfile-0.36.0/specfile.egg-info/PKG-INFO 2025-05-30 15:09:16.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: specfile -Version: 0.35.1 +Version: 0.36.0 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.35.1/specfile.egg-info/SOURCES.txt new/specfile-0.36.0/specfile.egg-info/SOURCES.txt --- old/specfile-0.35.1/specfile.egg-info/SOURCES.txt 2025-05-16 12:11:11.000000000 +0200 +++ new/specfile-0.36.0/specfile.egg-info/SOURCES.txt 2025-05-30 15:09:16.000000000 +0200 @@ -19,6 +19,7 @@ .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 .github/workflows/trigger-packit-dev.yml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/specfile-0.35.1/tests/unit/test_options.py new/specfile-0.36.0/tests/unit/test_options.py --- old/specfile-0.35.1/tests/unit/test_options.py 2025-05-16 12:11:06.000000000 +0200 +++ new/specfile-0.36.0/tests/unit/test_options.py 2025-05-30 15:09:10.000000000 +0200 @@ -288,7 +288,119 @@ Token(TokenType.QUOTED, '%{name}-%{version}%[%{rc}?"-rc":""]'), ], ), + ( + "-q %{?prever:-n %{name}-%{prever}}", + [ + Token(TokenType.DEFAULT, "-q"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, "%{?prever:-n %{name}-%{prever}}"), + ], + ), ], ) def test_options_tokenize(option_string, result): assert Options.tokenize(option_string) == result + + +@pytest.mark.parametrize( + "tokens, result", + [ + ( + [ + Token(TokenType.DEFAULT, "-p1"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, "-b"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, ".test"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, "-E"), + ], + "-p1 -b .test -E", + ), + ( + [ + Token(TokenType.DEFAULT, "-p"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, "28"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, "-b"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, ".test escape"), + ], + "-p 28 -b .test\\ escape", + ), + ( + [ + Token(TokenType.DEFAULT, "-b"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DOUBLE_QUOTED, '.test "double quotes"'), + ], + '-b ".test \\"double quotes\\""', + ), + ( + [ + Token(TokenType.DEFAULT, "-p1"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, "-b"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, ".test_whitespace_at_the_end"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, "-M"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, "2"), + Token(TokenType.WHITESPACE, " "), + ], + "-p1 -b .test_whitespace_at_the_end -M 2 ", + ), + ( + [ + Token(TokenType.DEFAULT, "-q"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, "-n"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, '%{name}-%{version}%[%{rc}?"-rc":""]'), + ], + '-q -n %{name}-%{version}%[%{rc}?"-rc":""]', + ), + ( + [ + Token(TokenType.DEFAULT, "-q"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, "-n"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.QUOTED, "%{name}-%{version}"), + ], + "-q -n '%{name}-%{version}'", + ), + ( + [ + Token(TokenType.DEFAULT, "-q"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, "-n"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DOUBLE_QUOTED, "%{name}-%{version}"), + ], + '-q -n "%{name}-%{version}"', + ), + ( + [ + Token(TokenType.DEFAULT, "-q"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, "-n"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.QUOTED, '%{name}-%{version}%[%{rc}?"-rc":""]'), + ], + '-q -n \'%{name}-%{version}%[%{rc}?"-rc":""]\'', + ), + ( + [ + Token(TokenType.DEFAULT, "-q"), + Token(TokenType.WHITESPACE, " "), + Token(TokenType.DEFAULT, "%{?prever:-n %{name}-%{prever}}"), + ], + "-q %{?prever:-n %{name}-%{prever}}", + ), + ], +) +def test_options_stringify(tokens, result): + assert str(Options(tokens)) == result