public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Gary Buhrmaster <gary.buhrmaster@gmail.com>
To: git-commits@fedoraproject.org
Subject: [rpms/python-exabgp] f45: Update to version 5.0.13 (resolves rhbz#2521279)
Date: Tue, 25 Aug 2026 17:16:45 GMT [thread overview]
Message-ID: <178767820550.1.7410090725272146973.rpms-python-exabgp-da6529848af5@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/python-exabgp
Branch : f45
Commit : da6529848af5ac5031ba1f13690e32c43ee4f4f3
Author : Gary Buhrmaster <gary.buhrmaster@gmail.com>
Date : 2026-08-25T16:57:14+00:00
Stats : +100/-28 in 5 file(s)
URL : https://src.fedoraproject.org/rpms/python-exabgp/c/da6529848af5ac5031ba1f13690e32c43ee4f4f3?branch=f45
Log:
Update to version 5.0.13 (resolves rhbz#2521279)
remove patch for PEP 639 compliance (fixed upstream in commit 9a35bf07)
Add (post release) upstream commit 89ce57d to fix pytest failures
Update pytest invokation as suggested by upstream
---
diff --git a/.gitignore b/.gitignore
index e0e30eb..e3f26bd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,4 @@
/python-exabgp-5.0.10.tar.gz
/python-exabgp-5.0.11.tar.gz
/python-exabgp-5.0.12.tar.gz
+/python-exabgp-5.0.13.tar.gz
diff --git a/0001-license.patch b/0001-license.patch
deleted file mode 100644
index 0b7ce57..0000000
--- a/0001-license.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -u exabgp-5.0.12/pyproject.toml exabgp-5.0.12-NEW/pyproject.toml
---- exabgp-5.0.12/pyproject.toml 2026-08-20 16:12:33.000000000 +0000
-+++ exabgp-5.0.12-NEW/pyproject.toml 2026-08-20 18:58:13.823148161 +0000
-@@ -5,9 +5,8 @@
- authors = [
- { name = "Thomas Mangin", email = "thomas.mangin@exa-networks.co.uk" },
- ]
--# the table form, not the PEP 639 SPDX string: this branch supports Python 3.8,
--# where pip can only install setuptools < 77, which rejects the string form
--license = { text = 'BSD-3-Clause' }
-+license = 'BSD-3-Clause'
-+license-files = ['LICENCE.txt']
- requires-python = ">=3.8.1"
- keywords = [
- 'bgp',
-@@ -27,7 +26,6 @@
- 'Environment :: Console',
- 'Intended Audience :: System Administrators',
- 'Intended Audience :: Telecommunications Industry',
-- 'License :: OSI Approved :: BSD License',
- 'Operating System :: POSIX',
- 'Operating System :: MacOS :: MacOS X',
- 'Programming Language :: Python',
diff --git a/0001-pytest-fix.patch b/0001-pytest-fix.patch
new file mode 100644
index 0000000..1fb6a63
--- /dev/null
+++ b/0001-pytest-fix.patch
@@ -0,0 +1,84 @@
+diff --git a/tests/unit/test_gate_exit_codes.py b/tests/unit/test_gate_exit_codes.py
+index 2434d4e68..30a548594 100644
+--- a/tests/unit/test_gate_exit_codes.py
++++ b/tests/unit/test_gate_exit_codes.py
+@@ -33,6 +33,12 @@ its exit code.
+ compat_gate is deliberately not driven here. It needs a git tag and a subprocess
+ per family, so exercising it costs minutes; its cannot-run paths were verified when
+ they were written, and the three below are the ones a change to this tree can break.
++
++The success controls use a planted clean tree rather than this repository. Running
++check_tests_run on the real tree made this unit test collect the fuzz and integration
++suites in a nested pytest process. That made tests/unit require Hypothesis, even though
++no unit test imports it. The 5.0 branch was excluded from the unit workflow, and the
++workflow's full dependency set would have masked the leak even if it had run.
+ """
+
+ import shutil
+@@ -50,13 +56,37 @@ CANNOT_RUN = 2
+ # Gates whose cannot-run path is reachable by giving them nothing to look at.
+ GATES = ('check_tiger_style', 'check_tests_run', 'check_sweep_floors')
+
++# Gates with a cheap success path which can be proved on a controlled tree.
++CLEAN_GATES = ('check_tiger_style', 'check_tests_run')
++
++
++def copy_gates(tree, gates):
++ (tree / 'qa' / 'bin').mkdir(parents=True)
++ for name in gates:
++ shutil.copy(QA_BIN / name, tree / 'qa' / 'bin' / name)
++
+
+ @pytest.fixture
+ def empty_tree(tmp_path):
+ """A tree holding the gates and no source, so every gate is unable to run"""
+- (tmp_path / 'qa' / 'bin').mkdir(parents=True)
+- for name in GATES:
+- shutil.copy(QA_BIN / name, tmp_path / 'qa' / 'bin' / name)
++ copy_gates(tmp_path, GATES)
++ return tmp_path
++
++
++@pytest.fixture
++def clean_tree(tmp_path):
++ """The smallest tree which gives the cheap gates a meaningful clean run."""
++ copy_gates(tmp_path, CLEAN_GATES)
++
++ tests = tmp_path / 'tests'
++ tests.mkdir()
++ (tests / 'test_planted.py').write_text('def test_planted():\n pass\n')
++
++ source = tmp_path / 'src' / 'exabgp'
++ source.mkdir(parents=True)
++ for number in range(250):
++ (source / f'module_{number}.py').touch()
++
+ return tmp_path
+
+
+@@ -108,15 +138,19 @@ class TestTheSetupIsRealRatherThanVacuous:
+ assert not (empty_tree / 'src').exists()
+ assert not (empty_tree / 'tests').exists()
+
+- def test_the_same_gates_exit_zero_on_the_real_tree(self) -> None:
+- """Otherwise exit 2 might be all these gates ever do
++ @pytest.mark.parametrize('gate', CLEAN_GATES)
++ def test_the_same_gates_exit_zero_on_a_clean_tree(self, gate, clean_tree) -> None:
++ """Otherwise exit 2 might be all these gates ever do.
+
+ A gate hardcoded to return 2 passes every assertion above. This is the half
+ that says the cannot-run path is a path rather than the destination.
+
++ The tree is planted rather than the repository itself. A unit test which asks
++ check_tests_run to collect the whole repository silently makes optional fuzz
++ dependencies mandatory for tests/unit.
++
+ check_sweep_floors is excluded from this one only: it drives pytest once per
+ sweeping file, so a clean run costs about a minute, and CI runs it directly.
+ """
+- for gate in ('check_tiger_style', 'check_tests_run'):
+- result = run(gate, ROOT)
+- assert result.returncode == 0, f'{gate}: {result.stdout}{result.stderr}'
++ result = run(gate, clean_tree)
++ assert result.returncode == 0, f'{gate}: {result.stdout}{result.stderr}'
+
diff --git a/python-exabgp.spec b/python-exabgp.spec
index 921e838..7001895 100644
--- a/python-exabgp.spec
+++ b/python-exabgp.spec
@@ -1,5 +1,5 @@
Name: python-exabgp
-Version: 5.0.12
+Version: 5.0.13
Release: 1%{?dist}
Summary: The BGP swiss army knife of networking (Library)
@@ -11,8 +11,8 @@ Source2: exabgp.tmpfiles.exabgp.conf
Source3: exabgp.systemd.exabgp.service
Source4: exabgp.systemd.exabgp@.service
-# Patch for PEP 639 compliance for the exabgp 5.0 branch
-Patch0001: 0001-license.patch
+# Post release fix for test harness
+Patch0001: 0001-pytest-fix.patch
BuildArch: noarch
@@ -31,6 +31,10 @@ BuildRequires: python3dist(pytest-cov)
BuildRequires: python3dist(pytest-asyncio)
BuildRequires: python3dist(pygments)
BuildRequires: python3dist(psutil)
+BuildRequires: python3dist(pytest-timeout)
+BuildRequires: python3dist(pytest-benchmark)
+# Currently a non-required test dependency
+BuildRequires: python3dist(hypothesis)
%description -n python3-exabgp
The BGP swiss army knife of networking
@@ -90,7 +94,7 @@ rm -rf %{buildroot}%{_usr}/etc
%check
%pyproject_check_import -t
-%pytest --cov --cov-reset tests/unit
+exabgp_log_enable=false %pytest --ignore=tests/fuzz --cov --cov-reset ./tests
%pre -n exabgp
%sysusers_create_package exabgp %{SOURCE1}
@@ -124,6 +128,12 @@ rm -rf %{buildroot}%{_usr}/etc
%{_tmpfilesdir}/exabgp.conf
%changelog
+* Tue Aug 25 2026 Gary Buhrmaster <gary.buhrmaster@gmail.com> - 5.0.13-1
+- Update to version 5.0.13 (resolves rhbz#2521279)
+ remove patch for PEP 639 compliance (fixed upstream in commit 9a35bf07)
+ Add (post release) upstream commit 89ce57d to fix pytest failures
+ Update pytest invokation as suggested by upstream
+
* Thu Aug 20 2026 Gary Buhrmaster <gary.buhrmaster@gmail.com> - 5.0.12-1
- Update to version 5.0.12 (resolves rhbz#2520630)
- Add patch for PEP 639 compliance
diff --git a/sources b/sources
index 6cff138..2a1a0d8 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (python-exabgp-5.0.12.tar.gz) = 94f3f749875fa018333d0b948bfefd21e20acc42352678c356bbb7a7364ef76f2383e1c366c26189d22f57742db7bd7af5c25ecbb05dd0ab4324750ec0a23895
+SHA512 (python-exabgp-5.0.13.tar.gz) = db0e078b89d2f2eaa88c2f517672f8143fe3ec18a4bd6dddaa9d950fff235405ce8ed4c6136866372d86d39374a681c700e02e5aca88e5a5874da7dbf554bcd1
reply other threads:[~2026-08-25 17:16 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178767820550.1.7410090725272146973.rpms-python-exabgp-da6529848af5@fedoraproject.org \
--to=gary.buhrmaster@gmail.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox