Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-certbot-dns-dnsimple for 
openSUSE:Factory checked in at 2023-12-14 22:02:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-certbot-dns-dnsimple (Old)
 and      /work/SRC/openSUSE:Factory/.python-certbot-dns-dnsimple.new.25432 
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-certbot-dns-dnsimple"

Thu Dec 14 22:02:55 2023 rev:40 rq:1133004 version:2.8.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-certbot-dns-dnsimple/python-certbot-dns-dnsimple.changes
  2023-06-07 23:08:56.863874922 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-certbot-dns-dnsimple.new.25432/python-certbot-dns-dnsimple.changes
       2023-12-14 22:02:57.635677866 +0100
@@ -1,0 +2,28 @@
+Thu Dec  7 10:46:07 UTC 2023 - Markéta Machová <mmach...@suse.com>
+
+- update to version 2.8.0
+  * sync with the main certbot package
+
+-------------------------------------------------------------------
+Thu Nov 16 13:00:26 UTC 2023 - Markéta Machová <mmach...@suse.com>
+
+- update to version 2.7.4
+  * Fixed a bug introduced in version 2.7.0 of our Lexicon based DNS plugins 
that
+    caused them to fail to find the DNS zone that needs to be modified in some
+    cases.
+
+-------------------------------------------------------------------
+Tue Oct 31 08:13:05 UTC 2023 - Markéta Machová <mmach...@suse.com>
+
+- update to version 2.7.3
+  * Add a new base class 
certbot.plugins.dns_common_lexicon.LexiconDNSAuthenticator to implement a DNS
+    authenticator plugin backed by Lexicon to communicate with the provider 
DNS API. This approach relies
+    heavily on conventions to reduce the implementation complexity of a new 
plugin.
+  * Add a new test base class 
certbot.plugins.dns_test_common_lexicon.BaseLexiconDNSAuthenticatorTest to
+    help testing DNS plugins implemented on top of LexiconDNSAuthenticator.
+  * Deprecates LexiconClient base class and build_lexicon_config function in
+    certbot.plugins.dns_common_lexicon module in favor of 
LexiconDNSAuthenticator.
+  * Deprecates BaseLexiconAuthenticatorTest and BaseLexiconClientTest test 
base classes of
+    certbot.plugins.dns_test_common_lexicon module in favor of 
BaseLexiconDNSAuthenticatorTest.
+
+-------------------------------------------------------------------

Old:
----
  certbot-dns-dnsimple-2.6.0.tar.gz

New:
----
  certbot-dns-dnsimple-2.8.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-certbot-dns-dnsimple.spec ++++++
--- /var/tmp/diff_new_pack.fYnZlS/_old  2023-12-14 22:02:58.159696766 +0100
+++ /var/tmp/diff_new_pack.fYnZlS/_new  2023-12-14 22:02:58.159696766 +0100
@@ -19,21 +19,21 @@
 %{?!python_module:%define python_module() python3-%{**}}
 %define skip_python2 1
 Name:           python-certbot-dns-dnsimple
-Version:        2.6.0
+Version:        2.8.0
 Release:        0
 Summary:        DNSimple Authenticator plugin for Certbot
 License:        Apache-2.0
 URL:            https://github.com/certbot/certbot
 Source:         
https://files.pythonhosted.org/packages/source/c/certbot-dns-dnsimple/certbot-dns-dnsimple-%{version}.tar.gz
 BuildRequires:  %{python_module certbot >= %{version}}
-BuildRequires:  %{python_module dns-lexicon >= 3.2.1}
+BuildRequires:  %{python_module dns-lexicon >= 3.14.1}
 BuildRequires:  %{python_module pytest}
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
 Requires:       python-acme >= %{version}
 Requires:       python-certbot >= %{version}
-Requires:       python-dns-lexicon >= 3.2.1
+Requires:       python-dns-lexicon >= 3.14.1
 BuildArch:      noarch
 %python_subpackages
 

++++++ certbot-dns-dnsimple-2.6.0.tar.gz -> certbot-dns-dnsimple-2.8.0.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/certbot-dns-dnsimple-2.6.0/PKG-INFO 
new/certbot-dns-dnsimple-2.8.0/PKG-INFO
--- old/certbot-dns-dnsimple-2.6.0/PKG-INFO     2023-05-09 21:44:48.629691800 
+0200
+++ new/certbot-dns-dnsimple-2.8.0/PKG-INFO     2023-12-05 20:14:03.039121600 
+0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: certbot-dns-dnsimple
-Version: 2.6.0
+Version: 2.8.0
 Summary: DNSimple DNS Authenticator plugin for Certbot
 Home-page: https://github.com/certbot/certbot
 Author: Certbot Project
@@ -13,7 +13,6 @@
 Classifier: Operating System :: POSIX :: Linux
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.7
 Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
@@ -24,7 +23,14 @@
 Classifier: Topic :: System :: Networking
 Classifier: Topic :: System :: Systems Administration
 Classifier: Topic :: Utilities
-Requires-Python: >=3.7
+Requires-Python: >=3.8
+License-File: LICENSE.txt
+Requires-Dist: dns-lexicon>=3.14.1
+Requires-Dist: setuptools>=41.6.0
+Requires-Dist: acme>=2.8.0
+Requires-Dist: certbot>=2.8.0
 Provides-Extra: docs
+Requires-Dist: Sphinx>=1.0; extra == "docs"
+Requires-Dist: sphinx_rtd_theme; extra == "docs"
 Provides-Extra: test
-License-File: LICENSE.txt
+Requires-Dist: pytest; extra == "test"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/certbot-dns-dnsimple-2.6.0/certbot_dns_dnsimple/_internal/dns_dnsimple.py 
new/certbot-dns-dnsimple-2.8.0/certbot_dns_dnsimple/_internal/dns_dnsimple.py
--- 
old/certbot-dns-dnsimple-2.6.0/certbot_dns_dnsimple/_internal/dns_dnsimple.py   
    2023-05-09 21:44:36.000000000 +0200
+++ 
new/certbot-dns-dnsimple-2.8.0/certbot_dns_dnsimple/_internal/dns_dnsimple.py   
    2023-12-05 20:13:52.000000000 +0100
@@ -2,34 +2,30 @@
 import logging
 from typing import Any
 from typing import Callable
-from typing import cast
-from typing import Optional
 
-from lexicon.providers import dnsimple
 from requests import HTTPError
 
 from certbot import errors
-from certbot.plugins import dns_common
 from certbot.plugins import dns_common_lexicon
-from certbot.plugins.dns_common import CredentialsConfiguration
 
 logger = logging.getLogger(__name__)
 
 ACCOUNT_URL = 'https://dnsimple.com/user'
 
 
-class Authenticator(dns_common.DNSAuthenticator):
+class Authenticator(dns_common_lexicon.LexiconDNSAuthenticator):
     """DNS Authenticator for DNSimple
 
     This Authenticator uses the DNSimple v2 API to fulfill a dns-01 challenge.
     """
 
     description = 'Obtain certificates using a DNS TXT record (if you are 
using DNSimple for DNS).'
-    ttl = 60
 
     def __init__(self, *args: Any, **kwargs: Any) -> None:
         super().__init__(*args, **kwargs)
-        self.credentials: Optional[CredentialsConfiguration] = None
+        self._add_provider_option('token',
+                                  f'User access token for DNSimple v2 API. 
(See {ACCOUNT_URL}.)',
+                                  'auth_token')
 
     @classmethod
     def add_parser_arguments(cls, add: Callable[..., None],
@@ -41,42 +37,9 @@
         return 'This plugin configures a DNS TXT record to respond to a dns-01 
challenge using ' + \
                'the DNSimple API.'
 
-    def _setup_credentials(self) -> None:
-        self.credentials = self._configure_credentials(
-            'credentials',
-            'DNSimple credentials INI file',
-            {
-                'token': 'User access token for DNSimple v2 API. (See 
{0}.)'.format(ACCOUNT_URL)
-            }
-        )
-
-    def _perform(self, domain: str, validation_name: str, validation: str) -> 
None:
-        self._get_dnsimple_client().add_txt_record(domain, validation_name, 
validation)
-
-    def _cleanup(self, domain: str, validation_name: str, validation: str) -> 
None:
-        self._get_dnsimple_client().del_txt_record(domain, validation_name, 
validation)
-
-    def _get_dnsimple_client(self) -> "_DNSimpleLexiconClient":
-        if not self.credentials:  # pragma: no cover
-            raise errors.Error("Plugin has not been prepared.")
-        return _DNSimpleLexiconClient(cast(str, 
self.credentials.conf('token')), self.ttl)
-
-
-class _DNSimpleLexiconClient(dns_common_lexicon.LexiconClient):
-    """
-    Encapsulates all communication with the DNSimple via Lexicon.
-    """
-
-    def __init__(self, token: str, ttl: int) -> None:
-        super().__init__()
-
-        config = dns_common_lexicon.build_lexicon_config('dnssimple', {
-            'ttl': ttl,
-        }, {
-            'auth_token': token,
-        })
-
-        self.provider = dnsimple.Provider(config)
+    @property
+    def _provider_name(self) -> str:
+        return 'dnsimple'
 
     def _handle_http_error(self, e: HTTPError, domain_name: str) -> 
errors.PluginError:
         hint = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/certbot-dns-dnsimple-2.6.0/certbot_dns_dnsimple/_internal/tests/dns_dnsimple_test.py
 
new/certbot-dns-dnsimple-2.8.0/certbot_dns_dnsimple/_internal/tests/dns_dnsimple_test.py
--- 
old/certbot-dns-dnsimple-2.6.0/certbot_dns_dnsimple/_internal/tests/dns_dnsimple_test.py
    2023-05-09 21:44:36.000000000 +0200
+++ 
new/certbot-dns-dnsimple-2.8.0/certbot_dns_dnsimple/_internal/tests/dns_dnsimple_test.py
    2023-12-05 20:13:52.000000000 +0100
@@ -1,10 +1,9 @@
 """Tests for certbot_dns_dnsimple._internal.dns_dnsimple."""
-
-import sys
-import unittest
 from unittest import mock
+import sys
 
 import pytest
+from requests import Response
 from requests.exceptions import HTTPError
 
 from certbot.compat import os
@@ -16,7 +15,9 @@
 
 
 class AuthenticatorTest(test_util.TempDirTestCase,
-                        dns_test_common_lexicon.BaseLexiconAuthenticatorTest):
+                        
dns_test_common_lexicon.BaseLexiconDNSAuthenticatorTest):
+
+    LOGIN_ERROR = HTTPError('401 Client Error: Unauthorized for url: ...', 
response=Response())
 
     def setUp(self):
         super().setUp()
@@ -31,23 +32,6 @@
 
         self.auth = Authenticator(self.config, "dnsimple")
 
-        self.mock_client = mock.MagicMock()
-        # _get_dnsimple_client | pylint: disable=protected-access
-        self.auth._get_dnsimple_client = 
mock.MagicMock(return_value=self.mock_client)
-
-
-class DNSimpleLexiconClientTest(unittest.TestCase, 
dns_test_common_lexicon.BaseLexiconClientTest):
-
-    LOGIN_ERROR = HTTPError('401 Client Error: Unauthorized for url: ...')
-
-    def setUp(self):
-        from certbot_dns_dnsimple._internal.dns_dnsimple import 
_DNSimpleLexiconClient
-
-        self.client = _DNSimpleLexiconClient(TOKEN, 0)
-
-        self.provider_mock = mock.MagicMock()
-        self.client.provider = self.provider_mock
-
 
 if __name__ == "__main__":
     sys.exit(pytest.main(sys.argv[1:] + [__file__]))  # pragma: no cover
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/certbot-dns-dnsimple-2.6.0/certbot_dns_dnsimple.egg-info/PKG-INFO 
new/certbot-dns-dnsimple-2.8.0/certbot_dns_dnsimple.egg-info/PKG-INFO
--- old/certbot-dns-dnsimple-2.6.0/certbot_dns_dnsimple.egg-info/PKG-INFO       
2023-05-09 21:44:48.000000000 +0200
+++ new/certbot-dns-dnsimple-2.8.0/certbot_dns_dnsimple.egg-info/PKG-INFO       
2023-12-05 20:14:03.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: certbot-dns-dnsimple
-Version: 2.6.0
+Version: 2.8.0
 Summary: DNSimple DNS Authenticator plugin for Certbot
 Home-page: https://github.com/certbot/certbot
 Author: Certbot Project
@@ -13,7 +13,6 @@
 Classifier: Operating System :: POSIX :: Linux
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.7
 Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
@@ -24,7 +23,14 @@
 Classifier: Topic :: System :: Networking
 Classifier: Topic :: System :: Systems Administration
 Classifier: Topic :: Utilities
-Requires-Python: >=3.7
+Requires-Python: >=3.8
+License-File: LICENSE.txt
+Requires-Dist: dns-lexicon>=3.14.1
+Requires-Dist: setuptools>=41.6.0
+Requires-Dist: acme>=2.8.0
+Requires-Dist: certbot>=2.8.0
 Provides-Extra: docs
+Requires-Dist: Sphinx>=1.0; extra == "docs"
+Requires-Dist: sphinx_rtd_theme; extra == "docs"
 Provides-Extra: test
-License-File: LICENSE.txt
+Requires-Dist: pytest; extra == "test"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/certbot-dns-dnsimple-2.6.0/certbot_dns_dnsimple.egg-info/requires.txt 
new/certbot-dns-dnsimple-2.8.0/certbot_dns_dnsimple.egg-info/requires.txt
--- old/certbot-dns-dnsimple-2.6.0/certbot_dns_dnsimple.egg-info/requires.txt   
2023-05-09 21:44:48.000000000 +0200
+++ new/certbot-dns-dnsimple-2.8.0/certbot_dns_dnsimple.egg-info/requires.txt   
2023-12-05 20:14:03.000000000 +0100
@@ -1,7 +1,7 @@
-dns-lexicon>=3.2.1
+dns-lexicon>=3.14.1
 setuptools>=41.6.0
-acme>=2.6.0
-certbot>=2.6.0
+acme>=2.8.0
+certbot>=2.8.0
 
 [docs]
 Sphinx>=1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/certbot-dns-dnsimple-2.6.0/docs/conf.py 
new/certbot-dns-dnsimple-2.8.0/docs/conf.py
--- old/certbot-dns-dnsimple-2.6.0/docs/conf.py 2023-05-09 21:44:36.000000000 
+0200
+++ new/certbot-dns-dnsimple-2.8.0/docs/conf.py 2023-12-05 20:13:52.000000000 
+0100
@@ -16,7 +16,7 @@
 # add these directories to sys.path here. If the directory is relative to the
 # documentation root, use os.path.abspath to make it absolute, like shown here.
 #
-import os
+# import os
 
 # import sys
 # sys.path.insert(0, os.path.abspath('.'))
@@ -35,7 +35,8 @@
     'sphinx.ext.intersphinx',
     'sphinx.ext.todo',
     'sphinx.ext.coverage',
-    'sphinx.ext.viewcode']
+    'sphinx.ext.viewcode',
+    'sphinx_rtd_theme']
 
 autodoc_member_order = 'bysource'
 autodoc_default_flags = ['show-inheritance']
@@ -93,14 +94,7 @@
 # a list of builtin themes.
 #
 
-# 
https://docs.readthedocs.io/en/stable/faq.html#i-want-to-use-the-read-the-docs-theme-locally
-# on_rtd is whether we are on readthedocs.org
-on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
-if not on_rtd:  # only import and set the theme if we're building docs locally
-    import sphinx_rtd_theme
-    html_theme = 'sphinx_rtd_theme'
-    html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
-# otherwise, readthedocs.org uses their theme by default, so no need to 
specify it
+html_theme = 'sphinx_rtd_theme'
 
 # Theme options are theme-specific and customize the look and feel of a theme
 # further.  For a list of options available for each theme, see the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/certbot-dns-dnsimple-2.6.0/setup.py 
new/certbot-dns-dnsimple-2.8.0/setup.py
--- old/certbot-dns-dnsimple-2.6.0/setup.py     2023-05-09 21:44:37.000000000 
+0200
+++ new/certbot-dns-dnsimple-2.8.0/setup.py     2023-12-05 20:13:53.000000000 
+0100
@@ -4,16 +4,18 @@
 from setuptools import find_packages
 from setuptools import setup
 
-version = '2.6.0'
+version = '2.8.0'
 
 install_requires = [
     # This version of lexicon is required to address the problem described in
     # https://github.com/AnalogJ/lexicon/issues/387.
-    'dns-lexicon>=3.2.1',
+    'dns-lexicon>=3.14.1',
     'setuptools>=41.6.0',
 ]
 
-if not os.environ.get('SNAP_BUILD'):
+if os.environ.get('SNAP_BUILD'):
+    install_requires.append('packaging')
+else:
     install_requires.extend([
         # We specify the minimum acme and certbot version as the current plugin
         # version for simplicity. See
@@ -21,11 +23,6 @@
         f'acme>={version}',
         f'certbot>={version}',
     ])
-elif 'bdist_wheel' in sys.argv[1:]:
-    raise RuntimeError('Unset SNAP_BUILD when building wheels '
-                       'to include certbot dependencies.')
-if os.environ.get('SNAP_BUILD'):
-    install_requires.append('packaging')
 
 docs_extras = [
     'Sphinx>=1.0',  # autodoc_member_order = 'bysource', autodoc_default_flags
@@ -44,7 +41,7 @@
     author="Certbot Project",
     author_email='certbot-...@eff.org',
     license='Apache License 2.0',
-    python_requires='>=3.7',
+    python_requires='>=3.8',
     classifiers=[
         'Development Status :: 5 - Production/Stable',
         'Environment :: Plugins',
@@ -53,7 +50,6 @@
         'Operating System :: POSIX :: Linux',
         'Programming Language :: Python',
         'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.7',
         'Programming Language :: Python :: 3.8',
         'Programming Language :: Python :: 3.9',
         'Programming Language :: Python :: 3.10',

Reply via email to