From 7369c887a477545a49db5c14b4dc69860d1b3f8e Mon Sep 17 00:00:00 2001 From: Major Hayden Date: Apr 05 2022 13:02:03 +0000 Subject: 🚀 Update to 2.7.0 --- diff --git a/.gitignore b/.gitignore index 327018d..6896afc 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /fabric-2.6.0.tar.gz +/fabric-2.7.0.tar.gz diff --git a/python-fabric-Finish-wrapping-invoke.vendor.-imports-so-standalone.patch b/python-fabric-Finish-wrapping-invoke.vendor.-imports-so-standalone.patch deleted file mode 100644 index 7687a14..0000000 --- a/python-fabric-Finish-wrapping-invoke.vendor.-imports-so-standalone.patch +++ /dev/null @@ -1,89 +0,0 @@ -From ced931db84ca5a1d3833c6c6fc9f8c11815e462a Mon Sep 17 00:00:00 2001 -From: "Benjamin A. Beasley" -Date: Fri, 4 Jun 2021 12:46:06 -0400 -Subject: [PATCH 3/3] Finish wrapping invoke.vendor.* imports so standalone - packages can be used - ---- - integration/concurrency.py | 8 ++++++-- - tests/_util.py | 5 ++++- - tests/config.py | 5 ++++- - tests/connection.py | 3 ++- - 4 files changed, 16 insertions(+), 5 deletions(-) - -diff --git a/integration/concurrency.py b/integration/concurrency.py -index 99c80092..990f9e87 100644 ---- a/integration/concurrency.py -+++ b/integration/concurrency.py -@@ -1,7 +1,11 @@ - import codecs - --from invoke.vendor.six.moves.queue import Queue --from invoke.vendor.six.moves import zip_longest -+try: -+ from invoke.vendor.six.moves.queue import Queue -+ from invoke.vendor.six.moves import zip_longest -+except ImportError: -+ from six.moves.queue import Queue -+ from six.moves import zip_longest - - from invoke.util import ExceptionHandlingThread - from pytest import skip -diff --git a/tests/_util.py b/tests/_util.py -index 3a008745..1ffbc849 100644 ---- a/tests/_util.py -+++ b/tests/_util.py -@@ -3,7 +3,10 @@ import os - import re - import sys - --from invoke.vendor.lexicon import Lexicon -+try: -+ from invoke.vendor.lexicon import Lexicon -+except ImportError: -+ from lexicon import Lexicon - from pytest_relaxed import trap - - from fabric.main import make_program -diff --git a/tests/config.py b/tests/config.py -index 4173f7a2..abbbb4b5 100644 ---- a/tests/config.py -+++ b/tests/config.py -@@ -2,7 +2,10 @@ import errno - from os.path import join, expanduser - - from paramiko.config import SSHConfig --from invoke.vendor.lexicon import Lexicon -+try: -+ from invoke.vendor.lexicon import Lexicon -+except ImportError: -+ from lexicon import Lexicon - - from fabric import Config - from fabric.util import get_local_user -diff --git a/tests/connection.py b/tests/connection.py -index f41958d3..5ae2671b 100644 ---- a/tests/connection.py -+++ b/tests/connection.py -@@ -2,8 +2,10 @@ from itertools import chain, repeat - - try: - from invoke.vendor.six import b -+ from invoke.vendor.lexicon import Lexicon - except ImportError: - from six import b -+ from lexicon import Lexicon - import errno - from os.path import join - import socket -@@ -15,7 +17,6 @@ from paramiko import SSHConfig - import pytest # for mark - from pytest import skip, param - from pytest_relaxed import raises --from invoke.vendor.lexicon import Lexicon - - from invoke.config import Config as InvokeConfig - from invoke.exceptions import ThreadException --- -2.31.1 - diff --git a/python-fabric-Put-conditional-unittest.mock-imports-last-to-placat.patch b/python-fabric-Put-conditional-unittest.mock-imports-last-to-placat.patch deleted file mode 100644 index 9e75e6f..0000000 --- a/python-fabric-Put-conditional-unittest.mock-imports-last-to-placat.patch +++ /dev/null @@ -1,35 +0,0 @@ -From a28e7f759e6f4101a7acf72e7c5b1abbaf946ce7 Mon Sep 17 00:00:00 2001 -From: "Benjamin A. Beasley" -Date: Thu, 3 Jun 2021 22:09:34 -0400 -Subject: [PATCH 2/3] Put conditional unittest.mock imports last to placate - flake8 - ---- - tests/util.py | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git a/tests/util.py b/tests/util.py -index 580c2615..39dc6de4 100644 ---- a/tests/util.py -+++ b/tests/util.py -@@ -2,10 +2,15 @@ - Tests testing the fabric.util module, not utils for the tests! - """ - --from mock import patch -- - from fabric.util import get_local_user - -+from sys import version_info -+ -+if version_info >= (3, 6): -+ from unittest.mock import patch -+else: -+ from mock import patch -+ - - # Basically implementation tests, because it's not feasible to do a "real" test - # on random platforms (where we have no idea what the actual invoking user is) --- -2.31.1 - diff --git a/python-fabric-Use-standard-library-unittest.mock-on-Python-3.6-and.patch b/python-fabric-Use-standard-library-unittest.mock-on-Python-3.6-and.patch deleted file mode 100644 index 51e05f3..0000000 --- a/python-fabric-Use-standard-library-unittest.mock-on-Python-3.6-and.patch +++ /dev/null @@ -1,30 +0,0 @@ -From ff0ab88e88e950bbec9facbc8453238f14e84dcd Mon Sep 17 00:00:00 2001 -From: "Benjamin A. Beasley" -Date: Thu, 3 Jun 2021 19:28:59 -0400 -Subject: [PATCH 1/3] Use standard library unittest.mock on Python 3.6 and - later - ---- - setup.py | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/setup.py b/setup.py -index a8126b5a..7ae2e27b 100644 ---- a/setup.py -+++ b/setup.py -@@ -67,7 +67,11 @@ setuptools.setup( - author="Jeff Forcier", - author_email="jeff@bitprophet.org", - url="http://fabfile.org", -- install_requires=["invoke>=1.3,<2.0", "paramiko>=2.4", "pathlib2"], -+ install_requires=[ -+ "invoke>=1.3,<2.0", -+ "paramiko>=2.4", -+ 'pathlib2; python_version < "3.4"', -+ ], - extras_require={ - "testing": testing_deps, - "pytest": testing_deps + pytest_deps, --- -2.31.1 - diff --git a/python-fabric-remove-pathlib2.patch b/python-fabric-remove-pathlib2.patch new file mode 100644 index 0000000..9eba585 --- /dev/null +++ b/python-fabric-remove-pathlib2.patch @@ -0,0 +1,30 @@ +From 90c65d40a00ad5a0ae70bef95bea188a948e4236 Mon Sep 17 00:00:00 2001 +From: Major Hayden +Date: Mon, 28 Mar 2022 06:59:11 -0500 +Subject: [PATCH] Remove pathlib2 requirement + +Fabric tries to use the standard pathlib library provided with Python 3 +if it exists. The old pathlib2 requirement for Python 2.x is no longer +needed. + +Signed-off-by: Major Hayden +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index e41fe6e1..0a941cc1 100644 +--- a/setup.py ++++ b/setup.py +@@ -75,7 +75,7 @@ setuptools.setup( + "CI": "https://app.circleci.com/pipelines/github/fabric/fabric", + "Twitter": "https://twitter.com/pyfabric", + }, +- install_requires=["invoke>=1.3,<2.0", "paramiko>=2.4", "pathlib2"], ++ install_requires=["invoke>=1.3,<2.0", "paramiko>=2.4"], + extras_require={ + "testing": testing_deps, + "pytest": testing_deps + pytest_deps, +-- +2.35.1 + diff --git a/python-fabric.spec b/python-fabric.spec index 366d8a0..df41257 100644 --- a/python-fabric.spec +++ b/python-fabric.spec @@ -1,53 +1,34 @@ -%global srcname fabric -%global forgeurl https://github.com/fabric/%{srcname} -%global tag %{version} -Version: 2.6.0 -%global distprefix %{nil} -%forgemeta - - # Tests are disabled by default. 😞 # Enable if https://bugzilla.redhat.com/show_bug.cgi?id=1949502 / # https://github.com/bitprophet/pytest-relaxed/issues/12 is resolved: %bcond_with tests +%global srcname fabric +%global forgeurl https://github.com/fabric/%{srcname} +Version: 2.7.0 +%global tag %{version} +%forgemeta + Name: python-%{srcname} -Release: 3%{?dist} +Release: %autorelease Summary: High level SSH command execution + License: BSD URL: %forgeurl Source0: %forgesource -# Use built-in unittest.mock in python 3. -# https://github.com/fabric/fabric/pull/2168 -Patch0: python-fabric-Use-standard-library-unittest.mock-on-Python-3.6-and.patch -# Use built-in pathlib in python 3. -# https://github.com/fabric/fabric/pull/2167 -Patch1: python-fabric-Put-conditional-unittest.mock-imports-last-to-placat.patch -# Fall back to system modules if vendorized ones do not exist. -# https://github.com/fabric/fabric/pull/2169 -Patch2: python-fabric-Finish-wrapping-invoke.vendor.-imports-so-standalone.patch +Patch0: python-fabric-remove-pathlib2.patch BuildArch: noarch BuildRequires: python3-devel -BuildRequires: python3-setuptools - -# Runtime dependencies, needed for testing -BuildRequires: python3-invoke -BuildRequires: python3-paramiko -# Runtime dependencies upstream assumed would be vendored with invoke, but -# which we must use standalone -BuildRequires: python3-decorator -BuildRequires: python3-lexicon -BuildRequires: python3-six %if %{with tests} # Extra pytest (a superset of extra testing) -BuildRequires: python3-pytest +BuildRequires: python3dist(pytest) # Missing from setup.py (only in requirements-dev.txt), but still needed for # testing: -BuildRequires: python3-pytest-relaxed +BuildRequires: python3dist(pytest-relaxed) %endif BuildRequires: help2man @@ -64,49 +45,25 @@ another and provide additional functionality.} %package -n python3-%{srcname} Summary: %{summary} -# Runtime dependencies upstream assumed would be vendored with invoke, but -# which we must use standalone -Requires: python3-decorator -Requires: python3-lexicon -Requires: python3-six %description -n python3-%{srcname} %{_description} -%package -n python-%{srcname}-doc -Summary: Documentation for %{name} - -BuildRequires: python3-sphinx -BuildRequires: python3-sphinx_rtd_theme - -%description -n python-%{srcname}-doc -Documentation for %{srcname}. - %prep -%autosetup -p1 -n %{srcname}-%{version} +%forgeautosetup -p1 -%build -%py3_build +%generate_buildrequires +%pyproject_buildrequires -r -PYTHONPATH=${PWD} sphinx-build-3 sites/docs html -rm -rf html/.{doctrees,buildinfo} -# Entry point script that allows us to use help2man before installing -cat > fab <<'EOF' -#!%{__python3} -from fabric.main import program -program.run() -EOF -chmod +x fab -PYTHONPATH="${PWD}" help2man --no-info --output fab.1 ./fab +%build +%pyproject_wheel %install -%py3_install - -install -d %{buildroot}%{_mandir}/man1 -install -t %{buildroot}%{_mandir}/man1 -m 0644 -p fab.1 +%pyproject_install +%pyproject_save_files fabric %check @@ -115,27 +72,11 @@ install -t %{buildroot}%{_mandir}/man1 -m 0644 -p fab.1 %endif -%files -n python3-%{srcname} +%files -n python3-%{srcname} -f %{pyproject_files} %license LICENSE %doc README.rst %{_bindir}/fab -%{_mandir}/man1/fab.1* -%{python3_sitelib}/%{srcname} -%{python3_sitelib}/%{srcname}-%{version}-py%{python3_version}.egg-info - - -%files -n python-%{srcname}-doc -%doc html -%license LICENSE %changelog -* Fri Jan 21 2022 Fedora Release Engineering - 2.6.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Tue Jul 27 2021 Fedora Release Engineering - 2.6.0-2 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Jun 01 2021 Major Hayden - 2.6.0-1 -- First package. +%autochangelog diff --git a/sources b/sources index 1cef402..d05d26e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (fabric-2.6.0.tar.gz) = 22c430bff6c4d93fec5231999949cb1959c11ec06754e62a88776a9d62db1b30788214dd0b873252559fdf41441389585170c0b53a4d7af7fe4f5a36dc85fb4d +SHA512 (fabric-2.7.0.tar.gz) = 7e364ffd1e9956397042490daa76bc12db88eea090ce35c3d43408346158ff05948196905cec448cc2480f36d432a45675c6937ca96f81f9d42e226be8f6c8fc