Convert to pyproject-rpm-macros, rename the installable package to "tox"

Remove old obsoletes.
Pathlib2 is now only imported on old Pythons.
epel9
Miro Hrončok 4 years ago
parent 4bd496ae58
commit e2c1378f46

@ -0,0 +1,31 @@
From f6bb2b93a09f7bd36ca06778d142fd39a02fa6fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
Date: Mon, 11 Jan 2021 13:42:43 +0100
Subject: [PATCH] Allow building with setuptools_scm 4 and 5
---
docs/changelog/1799.misc.rst | 1 +
pyproject.toml | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 docs/changelog/1799.misc.rst
diff --git a/docs/changelog/1799.misc.rst b/docs/changelog/1799.misc.rst
new file mode 100644
index 000000000..640a93124
--- /dev/null
+++ b/docs/changelog/1799.misc.rst
@@ -0,0 +1 @@
+Enable building tox with ``setuptools_scm`` 4 and 5 by :user:hroncok
diff --git a/pyproject.toml b/pyproject.toml
index 93f95d62c..a57d6c9f6 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,7 +1,7 @@
[build-system]
requires = [
"setuptools >= 40.0.4",
- "setuptools_scm >= 2.0.0, <4",
+ "setuptools_scm >= 2.0.0, <6",
"wheel >= 0.29.0",
]
build-backend = 'setuptools.build_meta'

@ -7,24 +7,40 @@
# 2) Install the built package # 2) Install the built package
# (e.g. mock install ./results_python-tox/.../python3-tox-...rpm) # (e.g. mock install ./results_python-tox/.../python3-tox-...rpm)
# 3) Build again --with tests (and internet connection) # 3) Build again --with tests (and internet connection)
# (e.g. fedpkg mockbuild --enable-network --no-clean-all) # (e.g. fedpkg mockbuild --enable-network --no-clean-all --with tests)
# The Fedora CI tests do this. # The Fedora CI tests do this.
%bcond_with tests %bcond_with tests
Name: python-tox
%global pypi_name tox
Name: python-%{pypi_name}
Version: 3.21.0 Version: 3.21.0
Release: 1%{?dist} Release: 2%{?dist}
Summary: Virtualenv-based automation of test activities Summary: Virtualenv-based automation of test activities
License: MIT License: MIT
URL: https://tox.readthedocs.io/ URL: https://tox.readthedocs.io/
Source0: %{pypi_source} Source0: %{pypi_source tox}
# Allow building with setuptools_scm 4 and 5
Patch1: https://github.com/tox-dev/tox/pull/1799.patch
BuildArch: noarch BuildArch: noarch
%description BuildRequires: python3-devel
BuildRequires: pyproject-rpm-macros
%if %{with tests}
BuildRequires: /usr/bin/gcc
BuildRequires: /usr/bin/git
BuildRequires: /usr/bin/pip
BuildRequires: /usr/bin/poetry
BuildRequires: /usr/bin/pytest
BuildRequires: /usr/bin/python
BuildRequires: libffi-devel
# The tests only work if the tested tox is installed :(
BuildRequires: tox = %{version}-%{release}
%endif
%global _description %{expand:
Tox as is a generic virtualenv management and test command line tool you Tox as is a generic virtualenv management and test command line tool you
can use for: can use for:
@ -33,16 +49,13 @@ can use for:
- running your tests in each of the environments, configuring your test tool - running your tests in each of the environments, configuring your test tool
of choice of choice
- acting as a frontend to Continuous Integration servers, greatly reducing - acting as a frontend to Continuous Integration servers, greatly reducing
boilerplate and merging CI and shell-based testing. boilerplate and merging CI and shell-based testing.}
%description %_description
%package -n python3-%{pypi_name} %package -n tox
Summary: %{summary} Summary: %{summary}
%{?python_provide:%python_provide python3-%{pypi_name}}
Provides: %{pypi_name} = %{version}-%{release}
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-setuptools_scm
# Recommend "all the Pythons" # Recommend "all the Pythons"
# Why? Tox exists to enable developers to test libraries against various Python # Why? Tox exists to enable developers to test libraries against various Python
@ -63,83 +76,49 @@ Recommends: pypy3-devel
Recommends: python2-devel Recommends: python2-devel
Recommends: python3-devel Recommends: python3-devel
# Replace the python2 version
Obsoletes: python2-tox < 2.9.1-4
# Replace detox (no longer supported, functionality is now in tox) # Replace detox (no longer supported, functionality is now in tox)
# Remove this once Fedora 32 goes EOL
Obsoletes: python3-detox < 0.19-5 Obsoletes: python3-detox < 0.19-5
%if %{with tests} %py_provides python3-tox
BuildRequires: python3-filelock # Remove this once Fedora 36 goes EOL:
BuildRequires: python3-flaky Obsoletes: python3-tox < 3.21.0-2
BuildRequires: python3-freezegun
BuildRequires: python3-packaging
BuildRequires: python3-pip
BuildRequires: python3-pluggy >= 0.12
BuildRequires: python3-poetry
BuildRequires: python3-psutil
BuildRequires: python3-py
BuildRequires: python3-pytest
BuildRequires: python3-pytest-mock
BuildRequires: python3-pytest-randomly
BuildRequires: python3-pytest-xdist
BuildRequires: python3-toml
BuildRequires: python3-virtualenv
BuildRequires: python3-wheel
BuildRequires: (python3-importlib-metadata if python3 < 3.8)
BuildRequires: /usr/bin/gcc
BuildRequires: /usr/bin/git
BuildRequires: /usr/bin/pip
BuildRequires: /usr/bin/poetry
BuildRequires: /usr/bin/pytest
BuildRequires: /usr/bin/python
BuildRequires: libffi-devel
# The tests only work if the tested tox is installed :(
BuildRequires: %{pypi_name} = %{version}-%{release}
%endif
%?python_enable_dependency_generator
%description -n python3-%{pypi_name} %description -n tox %_description
Tox as is a generic virtualenv management and test command line tool you
can use for:
- checking your package installs correctly with different Python versions
and interpreters
- running your tests in each of the environments, configuring your test tool
of choice
- acting as a frontend to Continuous Integration servers, greatly reducing
boilerplate and merging CI and shell-based testing.
%prep %prep
%autosetup -p1 -n %{pypi_name}-%{version} %autosetup -p1 -n tox-%{version}
# Pathlib2 was retired in Fedora, instead of unretiring it,
# it's enough to use pathlib instead.
find . -type f -name "*.py" -print0 | xargs -0 sed -i "s/pathlib2/pathlib/g"
# remove bundled egg-info %generate_buildrequires
rm -rf %{pypi_name}.egg-info %pyproject_buildrequires %{?with_tests:-x testing}
%build %build
%py3_build %pyproject_wheel
%install %install
%py3_install %pyproject_install
%pyproject_save_files tox
%if %{with tests} %if %{with tests}
%check %check
%pytest -n auto %pytest -n auto
%endif %endif
%files -n python3-%{pypi_name}
%{_bindir}/%{pypi_name} %files -n tox -f %{pyproject_files}
%{_bindir}/%{pypi_name}-quickstart %{_bindir}/tox
%{python3_sitelib}/%{pypi_name}/ %{_bindir}/tox-quickstart
%{python3_sitelib}/%{pypi_name}-%{version}-py%{python3_version}.egg-info/
%changelog %changelog
* Fri Jan 08 2021 Miro Hrončok <mhroncok@redhat.com> - 3.21.0-2
- Rename the installable package to "tox"
* Fri Jan 08 2021 Miro Hrončok <mhroncok@redhat.com> - 3.21.0-1 * Fri Jan 08 2021 Miro Hrončok <mhroncok@redhat.com> - 3.21.0-1
- Update to 3.21.0 - Update to 3.21.0

@ -24,9 +24,9 @@
- repo: "https://src.fedoraproject.org/rpms/pyproject-rpm-macros.git" - repo: "https://src.fedoraproject.org/rpms/pyproject-rpm-macros.git"
dest: "pyproject-rpm-macros" dest: "pyproject-rpm-macros"
tests: tests:
- rpmbuild: - mock_with_tests:
dir: . dir: .
run: "dnf -y build-dep --define '_with_tests 1' {{ tenv_workdir }}/python-tox.spec && rpmbuild --define '_sourcedir {{ tenv_workdir }}' --with tests -ba {{ tenv_workdir }}/python-tox.spec" run: pyproject-rpm-macros/tests/mocktest.sh python-tox --enable-network --with tests
- smoke27: - smoke27:
dir: python/smoke dir: python/smoke
run: VERSION=2.7 METHOD=virtualenv ./venv.sh run: VERSION=2.7 METHOD=virtualenv ./venv.sh

Loading…
Cancel
Save