diff --git a/.gitignore b/.gitignore index e69de29..12c5076 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,22 @@ +/packaging-16.7.tar.gz +/packaging-16.8.tar.gz +/packaging-17.1.tar.gz +/packaging-19.0.tar.gz +/packaging-19.2.tar.gz +/packaging-20.0.tar.gz +/packaging-20.1.tar.gz +/packaging-20.3.tar.gz +/packaging-20.4.tar.gz +/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/gating.yaml b/gating.yaml new file mode 100644 index 0000000..282e16b --- /dev/null +++ b/gating.yaml @@ -0,0 +1,7 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} diff --git a/python-packaging.spec b/python-packaging.spec new file mode 100644 index 0000000..3ccae48 --- /dev/null +++ b/python-packaging.spec @@ -0,0 +1,139 @@ +%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 +# 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: 25.0 +Release: %autorelease +Summary: Core utilities for Python packages + +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 + +%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 +%endif +%if %{with docs} +BuildRequires: python%{python3_pkgversion}-sphinx +BuildRequires: python%{python3_pkgversion}-furo +%endif + + +%global _description %{expand: +python-packaging provides core utilities for Python packages like utilities for +dealing with versions, specifiers, markers etc.} + +%description %_description + + +%package -n python%{python3_pkgversion}-%{pypi_name} +Summary: %{summary} + +%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 + + +%if %{with docs} +%package -n python-%{pypi_name}-doc +Summary: python-packaging documentation + +%description -n python-%{pypi_name}-doc +Documentation for python-packaging +%endif + + +%prep +%autosetup -p1 -n %{pypi_name}-%{version} + + +%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 +sphinx-build-3 docs html +# remove the sphinx-build leftovers +rm -rf html/.{doctrees,buildinfo} +# Do not bundle fonts +rm -rf html/_static/fonts/ +%endif + + +%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 + + +%check +%{!?with_bootstrap:%pyproject_check_import} +%if %{with tests} +%pytest +%endif + + +%files -n python%{python3_pkgversion}-%{pypi_name} -f %{pyproject_files} +%license LICENSE LICENSE.APACHE LICENSE.BSD +%doc README.rst CHANGELOG.rst CONTRIBUTING.rst + + +%if %{with docs} +%files -n python-%{pypi_name}-doc +%doc html +%license LICENSE LICENSE.APACHE LICENSE.BSD +%endif + + +%changelog +%autochangelog diff --git a/sources b/sources new file mode 100644 index 0000000..b75606d --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (packaging-25.0.tar.gz) = fb8419f81f0f817440c0b297fc6e963832e219e7a324bf4e0321f1e131a4822f17a19f2eb033a8d4adb622ccb16db59776ec44906a0c0b34f2877b59b9558c18 diff --git a/tests/smoke/runtest.sh b/tests/smoke/runtest.sh new file mode 100644 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 new file mode 100644 index 0000000..a403286 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,40 @@ +--- +- hosts: localhost + roles: + - role: standard-test-basic + tags: + - classic + repositories: + - repo: "https://src.fedoraproject.org/rpms/pyproject-rpm-macros.git" + dest: "pyproject-rpm-macros" + - repo: "https://src.fedoraproject.org/rpms/python-rpm-generators.git" + dest: "python-rpm-generators" + 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 + - rpm_generators_unit_tests: + dir: python-rpm-generators + run: ./tests/download_data_and_run_pytest.sh + - smoke: + dir: . + run: ./smoke/runtest.sh + required_packages: + - fedpkg-minimal + - mock + - python3-pip + - python3-pytest + - python3-pyyaml + - python3-setuptools + - python3-wheel + - rpmdevtools + - rpm-build