Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-certbot for openSUSE:Factory checked in at 2026-02-24 18:31:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-certbot (Old) and /work/SRC/openSUSE:Factory/.python-certbot.new.1977 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-certbot" Tue Feb 24 18:31:13 2026 rev:64 rq:1334774 version:5.3.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-certbot/python-certbot.changes 2026-02-09 19:28:40.339485520 +0100 +++ /work/SRC/openSUSE:Factory/.python-certbot.new.1977/python-certbot.changes 2026-02-24 18:31:22.936203306 +0100 @@ -1,0 +2,7 @@ +Tue Feb 24 14:52:26 UTC 2026 - Markéta Machová <[email protected]> + +- Update to 5.3.1 + * We rebuilt our snaps to include updated versions our dependencies. +- Add upstream reset-mock-call-count.patch to fix tests + +------------------------------------------------------------------- Old: ---- certbot-5.3.0.tar.gz New: ---- certbot-5.3.1.tar.gz reset-mock-call-count.patch ----------(New B)---------- New: * We rebuilt our snaps to include updated versions our dependencies. - Add upstream reset-mock-call-count.patch to fix tests ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-certbot.spec ++++++ --- /var/tmp/diff_new_pack.oxdHbo/_old 2026-02-24 18:31:23.852241454 +0100 +++ /var/tmp/diff_new_pack.oxdHbo/_new 2026-02-24 18:31:23.852241454 +0100 @@ -23,12 +23,14 @@ %endif %{?sle15_python_module_pythons} Name: python-certbot -Version: 5.3.0 +Version: 5.3.1 Release: 0 Summary: ACME client License: Apache-2.0 URL: https://github.com/certbot/certbot Source0: https://files.pythonhosted.org/packages/source/c/certbot/certbot-%{version}.tar.gz +# https://github.com/certbot/certbot/pull/10576 Reset mock call count using reset_mock since new thread-safe implementation means it can no longer just be set to 0 +Patch0: reset-mock-call-count.patch BuildRequires: %{python_module acme >= %{version}} BuildRequires: %{python_module configargparse >= 1.5.3} BuildRequires: %{python_module configobj >= 5.0.6} ++++++ certbot-5.3.0.tar.gz -> certbot-5.3.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.3.0/CHANGELOG.md new/certbot-5.3.1/CHANGELOG.md --- old/certbot-5.3.0/CHANGELOG.md 2026-02-03 18:51:43.000000000 +0100 +++ new/certbot-5.3.1/CHANGELOG.md 2026-02-09 22:19:25.000000000 +0100 @@ -4,6 +4,13 @@ <!-- towncrier release notes start --> +## 5.3.1 - 2026-02-09 + +### Fixed + +- We rebuilt our snaps to include updated versions our dependencies. ([#10569](https://github.com/certbot/certbot/issues/10569)) + + ## 5.3.0 - 2026-02-03 ### Added diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.3.0/PKG-INFO new/certbot-5.3.1/PKG-INFO --- old/certbot-5.3.0/PKG-INFO 2026-02-03 18:51:44.272523200 +0100 +++ new/certbot-5.3.1/PKG-INFO 2026-02-09 22:19:26.456840500 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: certbot -Version: 5.3.0 +Version: 5.3.1 Summary: ACME client Author: Certbot Project License-Expression: Apache-2.0 @@ -25,7 +25,7 @@ Requires-Python: >=3.10 Description-Content-Type: text/x-rst License-File: LICENSE.txt -Requires-Dist: acme>=5.3.0 +Requires-Dist: acme>=5.3.1 Requires-Dist: ConfigArgParse>=1.5.3 Requires-Dist: configobj>=5.0.6 Requires-Dist: cryptography>=43.0.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.3.0/docs/cli-help.txt new/certbot-5.3.1/docs/cli-help.txt --- old/certbot-5.3.0/docs/cli-help.txt 2026-02-03 18:51:42.000000000 +0100 +++ new/certbot-5.3.1/docs/cli-help.txt 2026-02-09 22:19:24.000000000 +0100 @@ -68,6 +68,11 @@ already have a certificate with the same name. In the case of a name conflict, a number like -0001 will be appended to the certificate name. (default: Ask) + --ip-address IP_ADDRESSES + IP addresses to include. For multiple IP addresses you + can use multiple --ip-address flags. All IP addresses + will be included as Subject Alternative Names on the + certificate. (default: []) --eab-kid EAB_KID Key Identifier for External Account Binding (default: None) --eab-hmac-key EAB_HMAC_KEY @@ -142,7 +147,7 @@ case, and to know when to deprecate support for past Python versions and flags. If you wish to hide this information from the Let's Encrypt server, set this to - "". (default: CertbotACMEClient/5.2.2 (certbot; + "". (default: CertbotACMEClient/5.3.0 (certbot; OS_NAME OS_VERSION) Authenticator/XXX Installer/YYY (SUBCOMMAND; flags: FLAGS) Py/major.minor.patchlevel). The flags encoded in the user agent are: --duplicate, @@ -704,17 +709,17 @@ Authenticate through manual configuration or custom shell scripts. When using shell scripts, an authenticator script must be provided. The environment variables available to this script depend on the type of - challenge. $CERTBOT_DOMAIN will always contain the domain being - authenticated. For HTTP-01 and DNS-01, $CERTBOT_VALIDATION is the - validation string, and $CERTBOT_TOKEN is the filename of the resource - requested when performing an HTTP-01 challenge. An additional cleanup - script can also be provided and can use the additional variable + challenge. $CERTBOT_IDENTIFIER will always contain the domain or IP + address being authenticated. For HTTP-01 and DNS-01, $CERTBOT_VALIDATION + is the validation string, and $CERTBOT_TOKEN is the filename of the + resource requested when performing an HTTP-01 challenge. An additional + cleanup script can also be provided and can use the additional variable $CERTBOT_AUTH_OUTPUT which contains the stdout output from the auth script. For both authenticator and cleanup script, on HTTP-01 and DNS-01 challenges, $CERTBOT_REMAINING_CHALLENGES will be equal to the number of - challenges that remain after the current one, and $CERTBOT_ALL_DOMAINS - contains a comma-separated list of all domains that are challenged for the - current certificate. + challenges that remain after the current one, and $CERTBOT_ALL_IDENTIFIERS + contains a comma-separated list of all identifiers that are challenged for + the current certificate. --manual-auth-hook MANUAL_AUTH_HOOK Path or command to execute for the authentication diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.3.0/src/certbot/__init__.py new/certbot-5.3.1/src/certbot/__init__.py --- old/certbot-5.3.0/src/certbot/__init__.py 2026-02-03 18:51:43.000000000 +0100 +++ new/certbot-5.3.1/src/certbot/__init__.py 2026-02-09 22:19:25.000000000 +0100 @@ -1,4 +1,4 @@ """Certbot client.""" # version number like 1.2.3a0, must have at least 2 parts, like 1.2 -__version__ = '5.3.0' +__version__ = '5.3.1' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.3.0/src/certbot.egg-info/PKG-INFO new/certbot-5.3.1/src/certbot.egg-info/PKG-INFO --- old/certbot-5.3.0/src/certbot.egg-info/PKG-INFO 2026-02-03 18:51:44.000000000 +0100 +++ new/certbot-5.3.1/src/certbot.egg-info/PKG-INFO 2026-02-09 22:19:26.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: certbot -Version: 5.3.0 +Version: 5.3.1 Summary: ACME client Author: Certbot Project License-Expression: Apache-2.0 @@ -25,7 +25,7 @@ Requires-Python: >=3.10 Description-Content-Type: text/x-rst License-File: LICENSE.txt -Requires-Dist: acme>=5.3.0 +Requires-Dist: acme>=5.3.1 Requires-Dist: ConfigArgParse>=1.5.3 Requires-Dist: configobj>=5.0.6 Requires-Dist: cryptography>=43.0.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/certbot-5.3.0/src/certbot.egg-info/requires.txt new/certbot-5.3.1/src/certbot.egg-info/requires.txt --- old/certbot-5.3.0/src/certbot.egg-info/requires.txt 2026-02-03 18:51:44.000000000 +0100 +++ new/certbot-5.3.1/src/certbot.egg-info/requires.txt 2026-02-09 22:19:26.000000000 +0100 @@ -1,4 +1,4 @@ -acme>=5.3.0 +acme>=5.3.1 ConfigArgParse>=1.5.3 configobj>=5.0.6 cryptography>=43.0.0 ++++++ reset-mock-call-count.patch ++++++ >From 4c61a450d4a843c66baab6d5d9a42ce0554e99d7 Mon Sep 17 00:00:00 2001 From: ohemorange <[email protected]> Date: Fri, 13 Feb 2026 13:08:06 -0800 Subject: [PATCH] Reset mock call count using reset_mock since new thread-safe implementation means it can no longer just be set to 0 (#10576) This should fix our failing tests. Python 3.14.3 has the following in its changelog: > [gh-142651](https://github.com/python/cpython/issues/142651): [unittest.mock](https://docs.python.org/3/library/unittest.mock.html#module-unittest.mock): fix a thread safety issue where [Mock.call_count](https://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.call_count) may return inaccurate values when the mock is called concurrently from multiple threads. As a result, we have to call `reset_mock()` instead of using `.call_count = 0`. See example [here](https://github.com/matplotlib/matplotlib/pull/31153). Tests on my machine showing that this change fixes things, and it's the only place to fix: ```bash $ brew upgrade pyenv $ pyenv install 3.14.3 $ pyenv global 3.14.3 $ tools/venv.py $ source venv/bin/activate $ pytest certbot -k "test_rollback_too_many" ====================================================================== test session starts ======================================================================= platform darwin -- Python 3.14.3, pytest-9.0.2, pluggy-1.6.0 rootdir: /Users/erica/certbot configfile: pytest.ini plugins: anyio-4.12.1, xdist-3.8.0, cov-7.0.0 collected 1039 items / 1038 deselected / 1 selected certbot/src/certbot/_internal/tests/reverter_test.py . [100%] =============================================================== 1 passed, 1038 deselected in 2.94s =============================================================== $ git grep 'call_count = 0' $ git checkout main $ pytest certbot -k "test_rollback_too_many" ====================================================================== test session starts ======================================================================= platform darwin -- Python 3.14.3, pytest-9.0.2, pluggy-1.6.0 rootdir: /Users/erica/certbot configfile: pytest.ini plugins: anyio-4.12.1, xdist-3.8.0, cov-7.0.0 collected 1039 items / 1038 deselected / 1 selected certbot/src/certbot/_internal/tests/reverter_test.py F [100%] ============================================================================ FAILURES ============================================================================ _______________________________________________________ TestFullCheckpointsReverter.test_rollback_too_many _______________________________________________________ self = <certbot._internal.tests.reverter_test.TestFullCheckpointsReverter testMethod=test_rollback_too_many> mock_logger = <MagicMock name='logger' id='4463351456'> > ??? E AssertionError: assert 2 == 1 E + where 2 = <MagicMock name='logger.warning' id='4463351792'>.call_count E + where <MagicMock name='logger.warning' id='4463351792'> = <MagicMock name='logger' id='4463351456'>.warning certbot/src/certbot/_internal/tests/reverter_test.py:363: AssertionError ==================================================================== short test summary info ===================================================================== FAILED certbot/src/certbot/_internal/tests/reverter_test.py::TestFullCheckpointsReverter::test_rollback_too_many - AssertionError: assert 2 == 1 =============================================================== 1 failed, 1038 deselected in 0.48s =============================================================== $ git grep 'call_count = 0' certbot/src/certbot/_internal/tests/reverter_test.py: mock_logger.warning.call_count = 0 ``` --- certbot/src/certbot/_internal/tests/reverter_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/certbot/_internal/tests/reverter_test.py b/src/certbot/_internal/tests/reverter_test.py index 146bd7eadcd..50cdd68c996 100644 --- a/src/certbot/_internal/tests/reverter_test.py +++ b/src/certbot/_internal/tests/reverter_test.py @@ -358,7 +358,7 @@ def test_rollback_too_many(self, mock_logger): # Test Generic warning self._setup_three_checkpoints() - mock_logger.warning.call_count = 0 + mock_logger.warning.reset_mock() self.reverter.rollback_checkpoints(4) assert mock_logger.warning.call_count == 1
