diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index fce3d94..12c5076 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,13 @@ /packaging-20.7.tar.gz /packaging-20.8.tar.gz /packaging-20.9.tar.gz +/packaging-21.0.tar.gz +/packaging-21.2.tar.gz +/packaging-21.3.tar.gz +/packaging-23.0.tar.gz +/packaging-23.1.tar.gz +/packaging-23.2.tar.gz +/packaging-24.0.tar.gz +/packaging-24.1.tar.gz +/packaging-24.2.tar.gz +/packaging-25.0.tar.gz diff --git a/changelog b/changelog new file mode 100644 index 0000000..c998f50 --- /dev/null +++ b/changelog @@ -0,0 +1,199 @@ +* Sat Nov 09 2024 Lumír Balhar - 24.2-1 +- Update to 24.2 (rhbz#2324709) + +* Fri Jul 19 2024 Fedora Release Engineering - 24.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jun 10 2024 Lumír Balhar - 24.1-1 +- Update to 24.1 (rhbz#2291172) + +* Sun Jun 09 2024 Python Maint - 24.0-3 +- Rebuilt for Python 3.13 + +* Thu Jun 06 2024 Python Maint - 24.0-2 +- Bootstrap for Python 3.13 + +* Mon Mar 11 2024 Lumír Balhar - 24.0-1 +- Update to 24.0 (rhbz#2268783) + +* Fri Jan 26 2024 Fedora Release Engineering - 23.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 23.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Oct 09 2023 Miro Hrončok - 23.2-2 +- Use the furo Sphinx theme, as intended upstream + +* Mon Oct 02 2023 Lumír Balhar - 23.2-1 +- Update to 23.2 (rhbz#2241653) + +* Tue Aug 08 2023 Karolina Surma - 23.1-5 +- Declare the license as an SPDX expression + +* Fri Jul 21 2023 Fedora Release Engineering - 23.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Jun 16 2023 Python Maint - 23.1-3 +- Rebuilt for Python 3.12 + +* Tue Jun 13 2023 Python Maint - 23.1-2 +- Bootstrap for Python 3.12 + +* Mon Apr 17 2023 Lumír Balhar - 23.1-1 +- Update to 23.1 (rhbz#2186423) + +* Fri Feb 03 2023 Tomáš Hrnčiar - 23.0-1 +- Update to 23.0.0 +- https://fedoraproject.org/wiki/Changes/Update_python-packaging_to_version_22_plus +- Fixes: rhbz#2151743 + +* Fri Jan 20 2023 Fedora Release Engineering - 21.3-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Aug 23 2022 Miro Hrončok - 21.3-7 +- Fix tests on Big Endian builders + +* Fri Jul 22 2022 Fedora Release Engineering - 21.3-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jul 19 2022 Zbigniew Jędrzejewski-Szmek - 21.3-5 +- Rebuilt for pyparsing-3.0.9 + +* Mon Jun 13 2022 Python Maint - 21.3-4 +- Rebuilt for Python 3.11 + +* Mon Jun 13 2022 Python Maint - 21.3-3 +- Bootstrap for Python 3.11 + +* Fri Jan 21 2022 Fedora Release Engineering - 21.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Nov 18 2021 Lumír Balhar - 21.3-1 +- Update to 21.3 +Resolves: rhbz#2024413 + +* Mon Nov 01 2021 Lumír Balhar - 21.2-1 +- Update to 21.2 +Resolves: rhbz#2018534 + +* Fri Jul 23 2021 Fedora Release Engineering - 21.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jul 07 2021 Lumír Balhar - 21.0-1 +- Update to 21.0 +Resolves: rhbz#1978925 + +* Thu Jun 03 2021 Python Maint - 20.9-3 +- Rebuilt for Python 3.10 + +* Tue Jun 01 2021 Python Maint - 20.9-2 +- Bootstrap for Python 3.10 + +* Mon Feb 01 2021 Lumír Balhar - 20.9-1 +- Update to 20.9 +Resolves: rhbz#1922545 + +* Wed Jan 27 2021 Fedora Release Engineering - 20.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Dec 14 2020 Lumír Balhar - 20.8-1 +- Update to 20.8 (#1906985) + +* Mon Nov 30 2020 Lumír Balhar - 20.7-1 +- Update to 20.7 (#1902369) + +* Fri Oct 02 2020 Miro Hrončok - 20.4-3 +- Drop the dependency on six to make the package lighter + +* Wed Jul 29 2020 Fedora Release Engineering - 20.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jun 01 2020 Lumír Balhar - 20.4-1 +- Update to 20.4 (#1838285) + +* Sat May 23 2020 Miro Hrončok - 20.3-3 +- Rebuilt for Python 3.9 + +* Fri May 22 2020 Miro Hrončok - 20.3-2 +- Bootstrap for Python 3.9 + +* Fri Mar 06 2020 Lumír Balhar - 20.3-1 +- Update to 20.3 (#1810738) + +* Thu Jan 30 2020 Fedora Release Engineering - 20.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Jan 27 2020 Lumír Balhar - 20.1-1 +- Update to 20.1 (#1794865) + +* Mon Jan 06 2020 Lumír Balhar - 20.0-2 +- Ignore broken tests + +* Mon Jan 06 2020 Lumír Balhar - 20.0-1 +- Update to 20.0 (#1788012) + +* Thu Sep 26 2019 Lumír Balhar - 19.2-1 +- New upstream version 19.2 (bz#1742388) + +* Mon Sep 23 2019 Lumír Balhar - 19.0-6 +- Remove Python 2 subpackage +- Make spec fedora-specific + +* Mon Sep 02 2019 Miro Hrončok - 19.0-5 +- Reduce Python 2 build time dependencies + +* Fri Aug 16 2019 Miro Hrončok - 19.0-4 +- Rebuilt for Python 3.8 + +* Thu Aug 15 2019 Miro Hrončok - 19.0-3 +- Bootstrap for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 19.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Feb 04 2019 Lumír Balhar - 19.0-1 +- New upstream version + +* Sat Feb 02 2019 Fedora Release Engineering - 17.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Jul 31 2018 Charalampos Stratakis - 17.1-1 +- Update to 17.1 + +* Sat Jul 14 2018 Fedora Release Engineering - 16.8-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Sat Jun 16 2018 Miro Hrončok - 16.8-10 +- Rebuilt for Python 3.7 + +* Thu Jun 14 2018 Miro Hrončok - 16.8-9 +- Bootstrap for Python 3.7 + +* Fri Feb 09 2018 Iryna Shcherbina - 16.8-8 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Fri Feb 09 2018 Fedora Release Engineering - 16.8-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 16.8-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Mar 22 2017 Lumir Balhar - 16.8-5 +- Epel7 compatible spec/package + +* Mon Feb 13 2017 Charalampos Stratakis - 16.8-4 +- Rebuild as wheel + +* Sat Feb 11 2017 Fedora Release Engineering - 16.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Dec 19 2016 Miro Hrončok - 16.8-2 +- Rebuild for Python 3.6 + +* Wed Nov 02 2016 Lumir Balhar - 16.8-1 +- New upstream version + +* Fri Sep 16 2016 Lumir Balhar - 16.7-1 +- Initial package. diff --git a/plan.fmf b/plan.fmf new file mode 100644 index 0000000..bd248b6 --- /dev/null +++ b/plan.fmf @@ -0,0 +1,51 @@ +execute: + how: tmt + +discover: + - name: same_repo + how: shell + tests: + - name: smoke + test: ./smoke/runtest.sh + path: /tests + - name: rpms_pyproject-rpm-macros + how: shell + url: https://src.fedoraproject.org/rpms/pyproject-rpm-macros.git + tests: + - name: pyproject_pytest + path: /tests + test: ./mocktest.sh python-pytest + - name: pyproject_entrypoints + path: /tests + test: ./mocktest.sh python-entrypoints + - name: pyproject_pluggy + path: /tests + test: ./mocktest.sh python-pluggy + - name: pyproject_clikit + path: /tests + test: ./mocktest.sh python-clikit + - name: rpms_python-rpm-generators + how: shell + test: | + # Need to clone on our own, tmt clones it into 'tests' subdirectory + # which breaks fedpkg-minimal pkgname detection + git clone --depth=1 https://src.fedoraproject.org/rpms/python-rpm-generators.git python-rpm-generators && + cd python-rpm-generators && + ./tests/download_data_and_run_pytest.sh +prepare: + - name: Install dependencies + how: install + package: + - fedpkg-minimal + - mock + - python3-pip + - python3-pytest + - python3-pyyaml + - python3-setuptools + - python3-wheel + - rpmdevtools + - rpm-build + - dnf + - name: Update packages + how: shell + script: dnf upgrade -y diff --git a/python-packaging.spec b/python-packaging.spec index 36a7851..3ccae48 100644 --- a/python-packaging.spec +++ b/python-packaging.spec @@ -1,41 +1,52 @@ %global pypi_name packaging +# Specify --with bootstrap to build in bootstrap mode +# This mode is needed, because python3-rpm-generators need packaging +%bcond_with bootstrap + +# When bootstrapping, the tests and docs are disabled because the dependencies are not yet available. +# We don't want python-pretend in future RHEL, so we disable tests on RHEL as well. +# No reason to ship the documentation in RHEL either, so it is also disabled by default. +%if %{without bootstrap} && %{undefined rhel} # Specify --without docs to prevent the dependency loop on python-sphinx -%bcond_without docs +# Doc subpackage is disabled because it requires sphinx-toolbox since packaging 24.1 +# and that package is not available in Fedora yet. +%bcond_with docs # Specify --without tests to prevent the dependency loop on python-pytest %bcond_without tests +%else +%bcond_with docs +%bcond_with tests +%endif Name: python-%{pypi_name} -Version: 20.9 -Release: 1%{?dist} +Version: 25.0 +Release: %autorelease Summary: Core utilities for Python packages -License: BSD or ASL 2.0 +License: BSD-2-Clause OR Apache-2.0 URL: https://github.com/pypa/packaging Source0: %{url}/archive/%{version}/%{pypi_name}-%{version}.tar.gz + BuildArch: noarch BuildRequires: python%{python3_pkgversion}-devel BuildRequires: pyproject-rpm-macros +BuildRequires: unzip -# We specify dependencies to build the wheel manually to avoid circular -# dependency on self. -# We also don't use the python3dist() form, in case packaging is ever used -# in the provides generator. -BuildRequires: python%{python3_pkgversion}-setuptools -BuildRequires: python%{python3_pkgversion}-pip -BuildRequires: python%{python3_pkgversion}-wheel +%if %{with bootstrap} +BuildRequires: python%{python3_pkgversion}-flit-core +%endif # Upstream uses nox for testing, we specify the test deps manually as well. %if %{with tests} BuildRequires: python%{python3_pkgversion}-pytest BuildRequires: python%{python3_pkgversion}-pretend -BuildRequires: python%{python3_pkgversion}-pyparsing %endif %if %{with docs} BuildRequires: python%{python3_pkgversion}-sphinx -BuildRequires: python%{python3_pkgversion}-pyparsing +BuildRequires: python%{python3_pkgversion}-furo %endif @@ -49,8 +60,11 @@ dealing with versions, specifiers, markers etc.} %package -n python%{python3_pkgversion}-%{pypi_name} Summary: %{summary} -# This is kept for compatibility with Fedora < 33 only: -%py_provides python%{python3_pkgversion}-%{pypi_name} +%if %{with bootstrap} +Provides: python%{python3_pkgversion}dist(packaging) = %{version} +Provides: python%{python3_version}dist(packaging) = %{version} +Requires: python(abi) = %{python3_version} +%endif %description -n python%{python3_pkgversion}-%{pypi_name} %_description @@ -67,12 +81,19 @@ Documentation for python-packaging %prep %autosetup -p1 -n %{pypi_name}-%{version} -# Do not use furo as HTML theme in docs -# furo is not available in Fedora -sed -i '/html_theme = "furo"/d' docs/conf.py + +%if %{without bootstrap} +%generate_buildrequires +%pyproject_buildrequires -r +%endif + %build +%if %{with bootstrap} +%{python3} -m flit_core.wheel +%else %pyproject_wheel +%endif %if %{with docs} # generate html docs @@ -85,12 +106,19 @@ rm -rf html/_static/fonts/ %install +%if %{with bootstrap} +mkdir -p %{buildroot}%{python3_sitelib} +unzip dist/packaging-%{version}-py3-none-any.whl -d %{buildroot}%{python3_sitelib} -x packaging-%{version}.dist-info/RECORD +echo '%{python3_sitelib}/packaging*' > %{pyproject_files} +%else %pyproject_install %pyproject_save_files %{pypi_name} +%endif -%if %{with tests} %check +%{!?with_bootstrap:%pyproject_check_import} +%if %{with tests} %pytest %endif @@ -108,110 +136,4 @@ rm -rf html/_static/fonts/ %changelog -* Mon Feb 01 2021 Lumír Balhar - 20.9-1 -- Update to 20.9 -Resolves: rhbz#1922545 - -* Wed Jan 27 2021 Fedora Release Engineering - 20.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Dec 14 2020 Lumír Balhar - 20.8-1 -- Update to 20.8 (#1906985) - -* Mon Nov 30 2020 Lumír Balhar - 20.7-1 -- Update to 20.7 (#1902369) - -* Fri Oct 02 2020 Miro Hrončok - 20.4-3 -- Drop the dependency on six to make the package lighter - -* Wed Jul 29 2020 Fedora Release Engineering - 20.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jun 01 2020 Lumír Balhar - 20.4-1 -- Update to 20.4 (#1838285) - -* Sat May 23 2020 Miro Hrončok - 20.3-3 -- Rebuilt for Python 3.9 - -* Fri May 22 2020 Miro Hrončok - 20.3-2 -- Bootstrap for Python 3.9 - -* Fri Mar 06 2020 Lumír Balhar - 20.3-1 -- Update to 20.3 (#1810738) - -* Thu Jan 30 2020 Fedora Release Engineering - 20.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Mon Jan 27 2020 Lumír Balhar - 20.1-1 -- Update to 20.1 (#1794865) - -* Mon Jan 06 2020 Lumír Balhar - 20.0-2 -- Ignore broken tests - -* Mon Jan 06 2020 Lumír Balhar - 20.0-1 -- Update to 20.0 (#1788012) - -* Thu Sep 26 2019 Lumír Balhar - 19.2-1 -- New upstream version 19.2 (bz#1742388) - -* Mon Sep 23 2019 Lumír Balhar - 19.0-6 -- Remove Python 2 subpackage -- Make spec fedora-specific - -* Mon Sep 02 2019 Miro Hrončok - 19.0-5 -- Reduce Python 2 build time dependencies - -* Fri Aug 16 2019 Miro Hrončok - 19.0-4 -- Rebuilt for Python 3.8 - -* Thu Aug 15 2019 Miro Hrončok - 19.0-3 -- Bootstrap for Python 3.8 - -* Fri Jul 26 2019 Fedora Release Engineering - 19.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Mon Feb 04 2019 Lumír Balhar - 19.0-1 -- New upstream version - -* Sat Feb 02 2019 Fedora Release Engineering - 17.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Tue Jul 31 2018 Charalampos Stratakis - 17.1-1 -- Update to 17.1 - -* Sat Jul 14 2018 Fedora Release Engineering - 16.8-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Sat Jun 16 2018 Miro Hrončok - 16.8-10 -- Rebuilt for Python 3.7 - -* Thu Jun 14 2018 Miro Hrončok - 16.8-9 -- Bootstrap for Python 3.7 - -* Fri Feb 09 2018 Iryna Shcherbina - 16.8-8 -- Update Python 2 dependency declarations to new packaging standards - (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) - -* Fri Feb 09 2018 Fedora Release Engineering - 16.8-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Jul 27 2017 Fedora Release Engineering - 16.8-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Wed Mar 22 2017 Lumir Balhar - 16.8-5 -- Epel7 compatible spec/package - -* Mon Feb 13 2017 Charalampos Stratakis - 16.8-4 -- Rebuild as wheel - -* Sat Feb 11 2017 Fedora Release Engineering - 16.8-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Mon Dec 19 2016 Miro Hrončok - 16.8-2 -- Rebuild for Python 3.6 - -* Wed Nov 02 2016 Lumir Balhar - 16.8-1 -- New upstream version - -* Fri Sep 16 2016 Lumir Balhar - 16.7-1 -- Initial package. +%autochangelog diff --git a/sources b/sources index 7667c23..b75606d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (packaging-20.9.tar.gz) = fb71f1036cfaacbe94fdee663af31d6ad1960f73ecc95cba87b461c2d7d2ea90085853bb4682b146492d8c48f784b60ef082e3b1259269857166b143cd9a920b +SHA512 (packaging-25.0.tar.gz) = fb8419f81f0f817440c0b297fc6e963832e219e7a324bf4e0321f1e131a4822f17a19f2eb033a8d4adb622ccb16db59776ec44906a0c0b34f2877b59b9558c18 diff --git a/tests/smoke/runtest.sh b/tests/smoke/runtest.sh new file mode 100755 index 0000000..d0e4f06 --- /dev/null +++ b/tests/smoke/runtest.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -eux + +# Currently there is no easy way to see the versions of installed packages. +# Let's list them to make sure we're testing against the correct package set. +rpm -qa | sort +python3 -c 'import packaging' +python3 -c 'from packaging import version; version.Version("2.5.1rc2")' +python3 -c 'from packaging import specifiers; specifiers.SpecifierSet("~=1.0")' +python3 -c 'from packaging import markers; markers.Marker("python_version>'"'"'2'"'"'")' +python3 -c 'from packaging import requirements; requirements.Requirement('"'"'name[foo]>=2,<3; python_version>"2.0"'"'"')' +python3 -c 'from packaging import tags; tags.Tag("py39", "none", "any")' +python3 -c 'from packaging.utils import canonicalize_name; canonicalize_name("Django_foobar")' diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index 49b6d3d..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- -- hosts: localhost - roles: - - role: standard-test-basic - tags: - - classic - repositories: - - repo: "https://src.fedoraproject.org/rpms/pyproject-rpm-macros.git" - dest: "pyproject-rpm-macros" - tests: - - pyproject_pytest: - dir: pyproject-rpm-macros/tests - run: ./mocktest.sh python-pytest - - pyproject_entrypoints: - dir: pyproject-rpm-macros/tests - run: ./mocktest.sh python-entrypoints - - pyproject_pluggy: - dir: pyproject-rpm-macros/tests - run: ./mocktest.sh python-pluggy - - pyproject_clikit: - dir: pyproject-rpm-macros/tests - run: ./mocktest.sh python-clikit - required_packages: - - mock - - rpmdevtools - - rpm-build