Compare commits

...
Sign in to create a new pull request.

20 commits

Author SHA1 Message Date
Fedora Release Engineering
0fee023389 Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-16 19:09:02 +00:00
Python Maint
4fec60c35d Rebuilt for Python 3.15 2026-06-05 00:04:41 +02:00
Fedora Release Engineering
114d64f40b Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 07:12:43 +00:00
Python Maint
398bc5a3a1 Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 13:11:50 +02:00
Python Maint
66df8eba2b Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 13:38:37 +02:00
Fedora Release Engineering
9de8403851 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 07:39:27 +00:00
Python Maint
82f71c1257 Rebuilt for Python 3.14 2025-06-06 18:00:29 +02:00
fb10e373de update to 3.21.1 2025-04-28 21:36:13 +02:00
29a0225dc0 update to 3.21.0 2025-04-19 11:39:28 +02:00
1a62987559 rework %check so that most tests are run 2025-01-23 10:02:37 +01:00
74a28a6262 re-enable (most) tests 2025-01-23 10:02:37 +01:00
23bd76152a update to 3.20.1 2025-01-23 10:02:36 +01:00
Fedora Release Engineering
0b0ac66461 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-18 13:49:07 +00:00
Nick Bebout
bf63b51a3c Disable tests more 2024-11-23 12:00:08 -06:00
Nick Bebout
8f77d4b3d5 Disable tests for now 2024-11-23 11:48:28 -06:00
Nick Bebout
5bd84d818f Try fix by excluding GoDaddyProviderTests 2024-11-23 11:33:21 -06:00
7ff4c68fbe added global forgeversion 2024-11-23 11:18:17 -06:00
d5eb57c3de Updated to 3.18.0 2024-11-23 09:56:30 -06:00
Fedora Release Engineering
11f7c31776 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-19 11:10:38 +00:00
Python Maint
f6d9375c48 Rebuilt for Python 3.13 2024-06-27 19:37:28 +02:00
4 changed files with 130 additions and 25 deletions

38
create-local-tld-cache.py Normal file
View file

@ -0,0 +1,38 @@
#!/usr/bin/python3
from pathlib import Path
import json
import os
import subprocess
import sys
if len(sys.argv) != 2:
sys.stderr.write('usage: %s <buildroot-sitelib>\n' % sys.argv[0])
buildroot_sitelib_dir = sys.argv[1]
sys.path.insert(0, buildroot_sitelib_dir)
from tldextract.cache import get_cache_dir, DiskCache
if 'TLDEXTRACT_CACHE' not in os.environ:
raise ValueError('must set "TLDEXTRACT_CACHE" environment variable')
local_cache = Path('/usr/share/publicsuffix/public_suffix_list.dat')
if not local_cache.exists():
raise FileNotFoundError(local_cache)
url_local_cache = f'file://{local_cache}'
subprocess.run(['/usr/bin/tldextract', '--update', f'--suffix_list_url={url_local_cache}'], check=True)
cache = DiskCache(cache_dir=get_cache_dir())
namespace = 'publicsuffix.org-tlds'
cache_with_local_data = cache._key_to_cachefile_path(namespace, {'urls': (url_local_cache,), 'fallback_to_snapshot': True})
func = lambda **kwargs: json.loads(Path(cache_with_local_data).read_text())
kwargs = {
'cache': cache,
'urls': ('https://publicsuffix.org/list/public_suffix_list.dat', 'https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat'),
'fallback_to_snapshot': True,
}
cache.run_and_cache(func, namespace=namespace, kwargs=kwargs, hashed_argnames=('urls', 'fallback_to_snapshot'))

View file

@ -0,0 +1,14 @@
diff --git a/pyproject.toml b/pyproject.toml
index 4122ff9..936bbdc 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -126,8 +126,7 @@ extend-ignore = [ "E203", "E501" ]
envlist = [ "cover", "lint" , "mypy" ]
[tool.tox.env_run_base]
-runner = "uv-venv-lock-runner"
-with_dev = true
+with_dev = false
extras = [ "full" ]
setenv.PYTEST_ADDOPTS = "--numprocesses auto"
setenv.PYTHONHASHSEED = "0"

View file

@ -1,13 +1,14 @@
%global forgeurl https://github.com/AnalogJ/lexicon %global forgeurl https://github.com/dns-lexicon/dns-lexicon
Version: 3.17.0 %global forgeversion 3.21.1
Version: %{forgeversion}
%forgemeta %forgemeta
%global pypi_name dns-lexicon %global pypi_name dns-lexicon
%if 0%{?rhel} >= 8 %if 0%{?rhel} >= 8
# EPEL is currently missing dependencies used by the extras metapackages # EPEL is currently missing dependencies used by the extras metapackages
# EPEL is currently missing dependancies used by the tests # EPEL is currently missing dependencies used by the tests
%bcond_with tests %bcond_with tests
%bcond_with extras %bcond_with extras
%else %else
@ -15,14 +16,19 @@ Version: 3.17.0
%bcond_without extras %bcond_without extras
%endif %endif
# disable tests for now
%bcond_without tests
Name: python-%{pypi_name} Name: python-%{pypi_name}
Release: 4%{?dist} Release: 8%{?dist}
Summary: Manipulate DNS records on various DNS providers in a standardized/agnostic way Summary: Manipulate DNS records on various DNS providers in a standardized/agnostic way
License: MIT License: MIT
URL: %{forgeurl} URL: %{forgeurl}
# pypi releases don't contain necessary data to run the tests # pypi releases don't contain necessary data to run the tests
Source0: %{forgesource} Source0: %{forgesource}
Source1: create-local-tld-cache.py
Patch: python-dns-lexicon-tox-config.patch
BuildArch: noarch BuildArch: noarch
BuildRequires: python3-devel BuildRequires: python3-devel
@ -36,6 +42,9 @@ BuildRequires: python3-devel
%if %{with tests} %if %{with tests}
BuildRequires: python3-pytest BuildRequires: python3-pytest
BuildRequires: python3-pytest-vcr BuildRequires: python3-pytest-vcr
BuildRequires: python3-pytest-xdist
BuildRequires: publicsuffix-list
BuildRequires: python3-tldextract
%endif %endif
@ -134,9 +143,10 @@ dependencies necessary to use the Route 53 provider.
%prep %prep
%autosetup -n lexicon-%{version} -p1 %autosetup -n %{pypi_name}-%{version} -p1
# Remove bundled egg-info # Remove bundled egg-info
rm -rf %{pypi_name}.egg-info rm -rf %{pypi_name}.egg-info
rm -f uv.lock
%generate_buildrequires %generate_buildrequires
%if %{with extras} %if %{with extras}
@ -153,30 +163,32 @@ sed -i '1d' src/lexicon/_private/cli.py
%if %{with tests} %if %{with tests}
%check %check
# The following tests use tldextract which tries to fetch export TLDEXTRACT_CACHE=%{_builddir}/tldextract-cache
# https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat
# on first invocation # tldextract tries to fetch "public_suffix_list.dat" from the internet on first
# invocation.
# (see https://github.com/john-kurkowski/tldextract/tree/master#note-about-caching) # (see https://github.com/john-kurkowski/tldextract/tree/master#note-about-caching)
# - AutoProviderTests # The "publicsuffix-list" package provides that data however we need to use
# - NamecheapProviderTests # that to populate a local cache directory.Most of the work is done via:
# - NamecheapManagedProviderTests # $ tldextract --update --suffix_list_url "file:///usr/share/publicsuffix/public_suffix_list.dat"
# Disabling those until tldextract 3.3.0+ is available on Fedora. #
# With tldextract 3.3.0+ we can use Fedora's public suffix list by running # However tldextract uses the "file://" url as cache key while the tests use
# tldextract --update --suffix_list_url "file:///usr/share/publicsuffix/public_suffix_list.dat" # "https://publicsuffix.org/list/public_suffix_list.dat". I did not find a way
# prior to running the tests # get tldextract to use the https url so a small Python script will handle that.
TEST_SELECTOR="not AutoProviderTests and not NamecheapProviderTests and not NamecheapManagedProviderTests and not Route53Provider and not AliyunProviderTests and not AuroraProviderTests and not Route53ProviderTests" /usr/bin/python3 %{SOURCE1} %{buildroot}%{python3_sitelib}
# lexicon providers which do not work in Fedora due to missing dependencies: # lexicon providers which do not work in Fedora due to missing dependencies:
# - SoftLayerProviderTests # - SoftLayerProviderTests
TEST_SELECTOR+=" and not SoftLayerProviderTests" TEST_SELECTOR="not SoftLayerProviderTests"
%if %{without extras} %if %{without extras}
TEST_SELECTOR+=" and not DDNSProviderTests and not DuckdnsProviderTests and not GransyProviderTests and not LocalzoneProviderTests and not OciProviderTests and not OciInstancePrincipalProviderTests and not Route53ProviderTests" TEST_SELECTOR+=" and not GransyProviderTests and not LocalzoneProviderTests and not OciProviderTests and not OciInstancePrincipalProviderTests and not Route53ProviderTests"
%endif %endif
# The %%tox macro lacks features so we need to use pytest directly:
# Miro Hrončok, 2020-09-11: # We do not use "--xfail-providers-with-missing-deps" because we want to detect
# > I am afraid the %%tox macro can only work with "static" deps declaration, # missing dependencies unless we already know that a certain provider will not
# > not with arbitrary installers invoked as commands, sorry about that. # work.
%pytest -v -k "${TEST_SELECTOR}" %pytest -v -k "${TEST_SELECTOR}" -n auto --dist=loadfile tests/
%endif %endif
%install %install
@ -184,7 +196,6 @@ TEST_SELECTOR+=" and not DDNSProviderTests and not DuckdnsProviderTests and not
install -pm 0755 %{buildroot}/%{_bindir}/lexicon %{buildroot}/%{_bindir}/lexicon-%{python3_version} install -pm 0755 %{buildroot}/%{_bindir}/lexicon %{buildroot}/%{_bindir}/lexicon-%{python3_version}
cd %{buildroot}/%{_bindir} cd %{buildroot}/%{_bindir}
ln -s lexicon-%{python3_version} lexicon-3 ln -s lexicon-%{python3_version} lexicon-3
rm -rf %{buildroot}%{python3_sitelib}/lexicon/tests
%files -n python3-%{pypi_name} %files -n python3-%{pypi_name}
@ -216,6 +227,48 @@ rm -rf %{buildroot}%{python3_sitelib}/lexicon/tests
# }}} # }}}
%changelog %changelog
* Thu Jul 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.21.1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Thu Jun 04 2026 Python Maint <python-maint@redhat.com> - 3.21.1-7
- Rebuilt for Python 3.15
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.21.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 3.21.1-5
- Rebuilt for Python 3.14.0rc3 bytecode
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 3.21.1-4
- Rebuilt for Python 3.14.0rc2 bytecode
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.21.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Fri Jun 06 2025 Python Maint <python-maint@redhat.com> - 3.21.1-2
- Rebuilt for Python 3.14
* Mon Apr 28 2025 Felix Schwarz <fschwarz@fedoraproject.org> - 3.21.1-1
- update to 3.21.1
* Sat Apr 19 2025 Felix Schwarz <fschwarz@fedoraproject.org> - 3.21.0-1
- update to 3.21.0
* Thu Jan 23 2025 Felix Schwarz <fschwarz@fedoraproject.org> - 3.20.1-1
- update to 3.20.1
* Sat Jan 18 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.18.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Sat Nov 23 2024 Ben Maconi <turboben@fedoraproject.org> - 3.18.0-1
- Updated to 3.18.0
* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.17.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Thu Jun 27 2024 Python Maint <python-maint@redhat.com> - 3.17.0-5
- Rebuilt for Python 3.13
* Thu Feb 29 2024 Jonathan Wright <jonathan@almalinux.org> - 3.17.0-4 * Thu Feb 29 2024 Jonathan Wright <jonathan@almalinux.org> - 3.17.0-4
- Update spec for building on epel9 - Update spec for building on epel9

View file

@ -1 +1 @@
SHA512 (lexicon-3.17.0.tar.gz) = 1bc182f5881d6acfac72b84331ba50da1219178d274c92e532ed11e73aa79696681d28a002cd1e23f48590953f48e50b62c2ef2db020a07ecf88547717508c0c SHA512 (dns-lexicon-3.21.1.tar.gz) = 0f53001edf2425afe7b7c4315e974ee47c956b659964998b942943788711c57634eea2d7974e21005be7f0edf16800e6577c49c8789e34f2133c4f5be8ac7ac1