Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-certbot-dns-luadns for
openSUSE:Factory checked in at 2023-12-14 22:02:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-certbot-dns-luadns (Old)
and /work/SRC/openSUSE:Factory/.python-certbot-dns-luadns.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-certbot-dns-luadns"
Thu Dec 14 22:02:59 2023 rev:40 rq:1133008 version:2.8.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-certbot-dns-luadns/python-certbot-dns-luadns.changes
2023-06-07 23:08:53.723856689 +0200
+++
/work/SRC/openSUSE:Factory/.python-certbot-dns-luadns.new.25432/python-certbot-dns-luadns.changes
2023-12-14 22:03:04.907940167 +0100
@@ -1,0 +2,28 @@
+Thu Dec 7 10:46:36 UTC 2023 - Markéta Machová <[email protected]>
+
+- update to version 2.8.0
+ * sync with the main certbot package
+
+-------------------------------------------------------------------
+Thu Nov 16 13:01:23 UTC 2023 - Markéta Machová <[email protected]>
+
+- 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:45 UTC 2023 - Markéta Machová <[email protected]>
+
+- 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-luadns-2.6.0.tar.gz
New:
----
certbot-dns-luadns-2.8.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-certbot-dns-luadns.spec ++++++
--- /var/tmp/diff_new_pack.zs8jrT/_old 2023-12-14 22:03:05.507961809 +0100
+++ /var/tmp/diff_new_pack.zs8jrT/_new 2023-12-14 22:03:05.511961953 +0100
@@ -19,21 +19,21 @@
%{?!python_module:%define python_module() python3-%{**}}
%define skip_python2 1
Name: python-certbot-dns-luadns
-Version: 2.6.0
+Version: 2.8.0
Release: 0
Summary: LuaDNS Authenticator plugin for Certbot
License: Apache-2.0
URL: https://github.com/certbot/certbot
Source:
https://files.pythonhosted.org/packages/source/c/certbot-dns-luadns/certbot-dns-luadns-%{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-luadns-2.6.0.tar.gz -> certbot-dns-luadns-2.8.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/certbot-dns-luadns-2.6.0/PKG-INFO
new/certbot-dns-luadns-2.8.0/PKG-INFO
--- old/certbot-dns-luadns-2.6.0/PKG-INFO 2023-05-09 21:44:55.711858500
+0200
+++ new/certbot-dns-luadns-2.8.0/PKG-INFO 2023-12-05 20:14:09.823026700
+0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: certbot-dns-luadns
-Version: 2.6.0
+Version: 2.8.0
Summary: LuaDNS 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-luadns-2.6.0/certbot_dns_luadns/_internal/dns_luadns.py
new/certbot-dns-luadns-2.8.0/certbot_dns_luadns/_internal/dns_luadns.py
--- old/certbot-dns-luadns-2.6.0/certbot_dns_luadns/_internal/dns_luadns.py
2023-05-09 21:44:36.000000000 +0200
+++ new/certbot-dns-luadns-2.8.0/certbot_dns_luadns/_internal/dns_luadns.py
2023-12-05 20:13:52.000000000 +0100
@@ -2,34 +2,33 @@
import logging
from typing import Any
from typing import Callable
-from typing import cast
-from typing import Optional
-from lexicon.providers import luadns
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://api.luadns.com/settings'
-class Authenticator(dns_common.DNSAuthenticator):
+class Authenticator(dns_common_lexicon.LexiconDNSAuthenticator):
"""DNS Authenticator for LuaDNS
This Authenticator uses the LuaDNS API to fulfill a dns-01 challenge.
"""
description = 'Obtain certificates using a DNS TXT record (if you are
using LuaDNS 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('email',
+ 'email address associated with LuaDNS
account',
+ 'auth_username')
+ self._add_provider_option('token',
+ f'API token for LuaDNS account, obtained
from {ACCOUNT_URL}',
+ 'auth_token')
@classmethod
def add_parser_arguments(cls, add: Callable[..., None],
@@ -41,46 +40,9 @@
return 'This plugin configures a DNS TXT record to respond to a dns-01
challenge using ' + \
'the LuaDNS API.'
- def _setup_credentials(self) -> None:
- self.credentials = self._configure_credentials(
- 'credentials',
- 'LuaDNS credentials INI file',
- {
- 'email': 'email address associated with LuaDNS account',
- 'token': 'API token for LuaDNS account, obtained from
{0}'.format(ACCOUNT_URL)
- }
- )
-
- def _perform(self, domain: str, validation_name: str, validation: str) ->
None:
- self._get_luadns_client().add_txt_record(domain, validation_name,
validation)
-
- def _cleanup(self, domain: str, validation_name: str, validation: str) ->
None:
- self._get_luadns_client().del_txt_record(domain, validation_name,
validation)
-
- def _get_luadns_client(self) -> "_LuaDNSLexiconClient":
- if not self.credentials: # pragma: no cover
- raise errors.Error("Plugin has not been prepared.")
- return _LuaDNSLexiconClient(cast(str, self.credentials.conf('email')),
- cast(str, self.credentials.conf('token')),
- self.ttl)
-
-
-class _LuaDNSLexiconClient(dns_common_lexicon.LexiconClient):
- """
- Encapsulates all communication with the LuaDNS via Lexicon.
- """
-
- def __init__(self, email: str, token: str, ttl: int) -> None:
- super().__init__()
-
- config = dns_common_lexicon.build_lexicon_config('luadns', {
- 'ttl': ttl,
- }, {
- 'auth_username': email,
- 'auth_token': token,
- })
-
- self.provider = luadns.Provider(config)
+ @property
+ def _provider_name(self) -> str:
+ return 'luadns'
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-luadns-2.6.0/certbot_dns_luadns/_internal/tests/dns_luadns_test.py
new/certbot-dns-luadns-2.8.0/certbot_dns_luadns/_internal/tests/dns_luadns_test.py
---
old/certbot-dns-luadns-2.6.0/certbot_dns_luadns/_internal/tests/dns_luadns_test.py
2023-05-09 21:44:36.000000000 +0200
+++
new/certbot-dns-luadns-2.8.0/certbot_dns_luadns/_internal/tests/dns_luadns_test.py
2023-12-05 20:13:52.000000000 +0100
@@ -1,10 +1,9 @@
"""Tests for certbot_dns_luadns._internal.dns_luadns."""
-
import sys
-import unittest
from unittest import mock
import pytest
+from requests import Response
from requests.exceptions import HTTPError
from certbot.compat import os
@@ -17,7 +16,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()
@@ -32,23 +33,6 @@
self.auth = Authenticator(self.config, "luadns")
- self.mock_client = mock.MagicMock()
- # _get_luadns_client | pylint: disable=protected-access
- self.auth._get_luadns_client =
mock.MagicMock(return_value=self.mock_client)
-
-
-class LuaDNSLexiconClientTest(unittest.TestCase,
dns_test_common_lexicon.BaseLexiconClientTest):
-
- LOGIN_ERROR = HTTPError("401 Client Error: Unauthorized for url: ...")
-
- def setUp(self):
- from certbot_dns_luadns._internal.dns_luadns import
_LuaDNSLexiconClient
-
- self.client = _LuaDNSLexiconClient(EMAIL, 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-luadns-2.6.0/certbot_dns_luadns.egg-info/PKG-INFO
new/certbot-dns-luadns-2.8.0/certbot_dns_luadns.egg-info/PKG-INFO
--- old/certbot-dns-luadns-2.6.0/certbot_dns_luadns.egg-info/PKG-INFO
2023-05-09 21:44:55.000000000 +0200
+++ new/certbot-dns-luadns-2.8.0/certbot_dns_luadns.egg-info/PKG-INFO
2023-12-05 20:14:09.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: certbot-dns-luadns
-Version: 2.6.0
+Version: 2.8.0
Summary: LuaDNS 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-luadns-2.6.0/certbot_dns_luadns.egg-info/requires.txt
new/certbot-dns-luadns-2.8.0/certbot_dns_luadns.egg-info/requires.txt
--- old/certbot-dns-luadns-2.6.0/certbot_dns_luadns.egg-info/requires.txt
2023-05-09 21:44:55.000000000 +0200
+++ new/certbot-dns-luadns-2.8.0/certbot_dns_luadns.egg-info/requires.txt
2023-12-05 20:14:09.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-luadns-2.6.0/docs/conf.py
new/certbot-dns-luadns-2.8.0/docs/conf.py
--- old/certbot-dns-luadns-2.6.0/docs/conf.py 2023-05-09 21:44:36.000000000
+0200
+++ new/certbot-dns-luadns-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-luadns-2.6.0/setup.py
new/certbot-dns-luadns-2.8.0/setup.py
--- old/certbot-dns-luadns-2.6.0/setup.py 2023-05-09 21:44:37.000000000
+0200
+++ new/certbot-dns-luadns-2.8.0/setup.py 2023-12-05 20:13:53.000000000
+0100
@@ -4,14 +4,16 @@
from setuptools import find_packages
from setuptools import setup
-version = '2.6.0'
+version = '2.8.0'
install_requires = [
- '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
@@ -19,11 +21,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
@@ -42,7 +39,7 @@
author="Certbot Project",
author_email='[email protected]',
license='Apache License 2.0',
- python_requires='>=3.7',
+ python_requires='>=3.8',
classifiers=[
'Development Status :: 5 - Production/Stable',
'Environment :: Plugins',
@@ -51,7 +48,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',