From 00afb1e0cce1171817d8f2dadda5fa800bb930901d7a3e857ee3699eb9d0d70e Mon Sep 17 00:00:00 2001 From: Daniel Garcia Date: Wed, 4 Feb 2026 14:04:53 +0000 Subject: [PATCH] - Fix tests, add fix-tests.patch upstream patch, gh#devpi/devpi@408273fb7755 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-devpi-client?expand=0&rev=35 --- .gitattributes | 23 ++++ .gitignore | 1 + _multibuild | 3 + devpi-client-7.2.0.tar.gz | 3 + fix-tests.patch | 22 ++++ python-devpi-client.changes | 233 ++++++++++++++++++++++++++++++++++++ python-devpi-client.spec | 131 ++++++++++++++++++++ 7 files changed, 416 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 _multibuild create mode 100644 devpi-client-7.2.0.tar.gz create mode 100644 fix-tests.patch create mode 100644 python-devpi-client.changes create mode 100644 python-devpi-client.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..fcc7b97 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/devpi-client-7.2.0.tar.gz b/devpi-client-7.2.0.tar.gz new file mode 100644 index 0000000..494eb54 --- /dev/null +++ b/devpi-client-7.2.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c143368458c3878ba7bee6a1d9b418e2e659571a3856614f58d76b8a28269d7b +size 93460 diff --git a/fix-tests.patch b/fix-tests.patch new file mode 100644 index 0000000..a1bd024 --- /dev/null +++ b/fix-tests.patch @@ -0,0 +1,22 @@ +From 408273fb77551d69ae88b76666c15ded0d98caf3 Mon Sep 17 00:00:00 2001 +From: Florian Schulze +Date: Mon, 10 Mar 2025 09:04:38 +0100 +Subject: [PATCH] Support fully normalized wheel names in tests. + +This is caused by setuptools v75.8.1 where the wheel file naming was changed. +--- + client/testing/test_test.py | 1 + + 1 file changed, 1 insertion(+) + +Index: devpi-client-7.2.0/testing/test_test.py +=================================================================== +--- devpi-client-7.2.0.orig/testing/test_test.py ++++ devpi-client-7.2.0/testing/test_test.py +@@ -353,6 +353,7 @@ class TestWheel: + "zip" + os.sep + f"{pkgname_norm}-1.0")) + assert wheel1[0].basename in { + f"{pkgname}-1.0-py2.py3-none-any.whl", ++ f"{pkgname_norm}-1.0-py2.py3-none-any.whl", + f"{pkgname_whl}-1.0-py2.py3-none-any.whl"} + assert str(wheel1[1].path_unpacked).endswith(wheel1[0].basename) + diff --git a/python-devpi-client.changes b/python-devpi-client.changes new file mode 100644 index 0000000..ca2d607 --- /dev/null +++ b/python-devpi-client.changes @@ -0,0 +1,233 @@ +------------------------------------------------------------------- +Wed Feb 4 14:04:07 UTC 2026 - Daniel Garcia + +- Fix tests, add fix-tests.patch upstream patch, + gh#devpi/devpi@408273fb7755 + +------------------------------------------------------------------- +Thu Nov 7 12:26:57 UTC 2024 - Markéta Machová + +- Update to 7.2.0 + * Support --no-docs and --only-docs for push command. + * Support --register-project for push command to external index. + * Add support for uv.conf to devpi use --set-cfg. + * fixed encoding issues when decoding output of subprocesses. + * require pkginfo >= 1.10.0 which supports newer metadata versions. + +------------------------------------------------------------------- +Thu Oct 3 10:50:15 UTC 2024 - Markéta Machová + +- update to 7.1.0 + * Require build>=0.7.0 to prevent import error with older versions. + * Provide proper error message if the API request for devpi use fails. + * Fix #1011: change HTTP status codes >=400 to use self.fatal instead + of raw SystemExit, protect 403 and 404 errors from SystemExit + * Support using various kinds of devpi tools with pyproject.toml. + +------------------------------------------------------------------- +Thu Feb 29 14:11:26 UTC 2024 - Daniel Garcia + +- Skip some tests that are failing for python 3.12, because it tries + to install setuptools package during tests. + * test_main_example + * test_specific_version + * test_pkgname_with_dashes + + +------------------------------------------------------------------- +Sat Nov 25 13:49:38 UTC 2023 - Dirk Müller + +- update to 7.0.2: + * Fix #992: Fix error added in 6.0.4 when old authentication + data from before 6.x exists. + +------------------------------------------------------------------- +Tue Oct 17 03:16:43 UTC 2023 - Steve Kowalik + +- Update to 7.0.1: + * Bug Fixes + + Fix #1005: use ``shutil.move`` instead of ``Path.rename`` to move + distribution after building to prevent cross-device link errors. + + Fix #1008: pass ``--no-isolation`` option to ``build`` when determining + name/version for documentation. + + Fix #946: output ``name==version`` instead of ``name-version`` for + ``devpi list -v``. + * Deprecations and Removals + + Use ``build`` instead of deprecated ``pep517`` package. + + Removed dependency on py package. + + Dropped support for Python <= 3.6. +- Drop patch switch-to-build-module.patch, included upstream. +- Switch to autosetup macro. + +------------------------------------------------------------------- +Tue Jul 4 10:32:15 UTC 2023 - Torsten Gruner + +- update to 6.0.5 + * Remember URL when ``devpi use`` causes a 403, so one can + use ``devpi login`` afterwards. + * Fix #978: Quote username and password when adding to URL. + * Fix #980: Remove long deprecated backward compatibility for + old pluggy versions to fix error with pluggy 1.1.0. +- split package to prevent build dependency with python-tox (multibuild) + +------------------------------------------------------------------- +Mon Jul 3 13:00:13 UTC 2023 - Matej Cepl + +- Add missing dependency + +------------------------------------------------------------------- +Fri Jun 9 07:34:26 UTC 2023 - ecsos + +- Add %{?sle15_python_module_pythons} + +------------------------------------------------------------------- +Wed Apr 26 02:20:24 UTC 2023 - Steve Kowalik + +- Add patch switch-to-build-module.patch: + - Drop {Build,}Requires on pep517. + +------------------------------------------------------------------- +Wed Apr 19 09:33:04 UTC 2023 - Dirk Müller + +- update to 6.0.4: + * Fix precedence of URL from command line over DEVPI_INDEX + environment variable for ``devpi use``. + * Fix relative DEVPI_INDEX environment variable with user and + index causing an invalid URL in some cases. + * Fix persistence of username when DEVPI_INDEX environment + variable is used with ``devpi login``. + * Fix precedence of ``--sdist`` and ``--wheel`` over + ``formats`` setting from setup.cfg ``[devpi:upload]`` + section. + +------------------------------------------------------------------- +Mon Apr 10 09:35:55 UTC 2023 - Daniel Garcia + +- Update to 6.0.3: + * Fix #919: Retry 3 times and wait a moment on PermissionError + during file removal to fix race condition after running tox. + * Restore ability to build docs if project uses separate build and + source directories for documentation. + * Fix for changes in pypitoken 6.x. +- 6.0.2 (2022-09-28) + * Better error message when trying to use ``devpi index`` which + requires authentication (devpi-lockdown). +- 6.0.1 (2022-08-16) + * fix #913: ``main.Hub.workdir`` cleanup (exit) can now handle + read-only files (like those created by git). + * Print info when ``DEVPI_INDEX`` environment variable is in use and + allow relative index specification for it. +- 6.0.0 (2022-07-19) + * Removed support for ``--detox`` option. + * When uploading we no longer "register" the package first. That + requirement was removed from PyPI and devpi-server for some time. + * Use ``sphinx-build`` command instead of ``setup.py build_sphinx`` + when building documentation. + * Removed tox dependency, instead ``devpi test`` looks for the + ``tox`` binary in the path. + * The ``--venv`` option will abort when no virtualenv exists at the + location, it will not create a virtualenv anymore. + * Fix #218: use new pip.conf location by default and warn if the + legacy location exists. + * Fix #38: add ``--user``/``-u`` option to ``use`` command to limit + index listing to a specific user. + * Fix #437: when the ``DEVPI_INDEX`` environment variable is set, it + temporarily overwrites the current index. + * Fix #691: allow anonymous uploads if the server has + ``acl_upload=:ANONYMOUS:`` set on index. + * Fix #863: allow ``--only-docs`` upload for files containing + ``.docs.`` instead of ``.doc.`` and support gzipped tar files. + * The ``--user/-u`` option for ``devpi use`` can be used to switch + the current user and the authentication data of previous logins is + preserved. + * Use `build `_ package when + possible and fall back to ``setup.py`` only for deprecated release + types. + * When the ``DEVPI_USER`` environment variable is set, it + temporarily overwrites the current user name. + * Support query strings on ``path`` for ``getjson`` command. This + enables using ``?no_projects=``. + * The ``devpi index -l [username]`` command now actually lists + indexes of other users and works without login. + * Fix #443 and #444: pass authentication info to pip via environment + variable for ``devpi install`` and ``devpi test``. + * When pushing to an external index with ``pypi:...``, a PyPI token + is detected and ``pypitoken`` is installed a new unique time + limited token is derived for the upload. + * With ``devpi use --local`` a local configuration is created in the + currently active virtualenv and automatically used as long as the + virtualenv is activated. + * Warn if the server changes the scheme, host or port during ``devpi + use``. + * Using ``--list`` or ``--urls`` with ``use`` command and a URL + won't change the current index anymore. + * Existing authentication data is validated on ``devpi use`` and + removed if expired. + * Fix #562: encode username and url in devpiclient_get_password with + sys.stdout.encoding. + * Fix #627: support ``--index`` option when no index is currently + selected. + * Fix #808: Use mkdtemp from Python tempfile module to prevent + permission and locking errors during ``devpi test`` and ``devpi + upload``. + * Fix #831: only download matching wheels if ``--select`` is in use. + * Give helpful error message when specified/configured virtualenv is + missing. + * When there is no json error message only the HTML error code and + reason is printed now, to get the full HTML output use the + ``--debug`` flag. + +------------------------------------------------------------------- +Tue Jun 14 05:59:02 UTC 2022 - Matej Cepl + +- Update to 5.2.3: + - Bump upper version limit on pluggy to <2.0. + - fix #406: support ``--all`` to show all versions when listing + more than one project. + - Pin tox to <4dev. The next major version of devpi-client will + use tox as a binary to support newer versions. + - Support for basic authentication and client side certificates + is deprecated now. Take a look at devpi-lockdown instead. + - Hide password from index url in pip config with ``devpi + use``. +- Remove upstreamed patch test_sys_executable.patch. + +------------------------------------------------------------------- +Tue Jun 9 19:25:40 UTC 2020 - Dirk Mueller + +- update to 5.2.0: + - fix #799: proper error message for devpi login without prior devpi use + - Support for check_manifest>=0.42. + +------------------------------------------------------------------- +Tue May 26 07:22:38 UTC 2020 - Petr Gajdos + +- %python3_only -> %python_alternative + +------------------------------------------------------------------- +Sun Jan 12 00:54:29 CET 2020 - Matej Cepl + +- Update to 5.1.1: + - Fix removing a range of versions with index inheritance. + - Add keyring support for devpi push to external repositories + like pypi.org. This is compatible with twine, see + https://twine.readthedocs.io/en/latest/#keyring-support + - fix #666: output nicer error message when section couldn’t be + found in pypirc. + - the 410 status for the register action isn’t marked as error + anymore for push to external repository. + +------------------------------------------------------------------- +Tue Sep 17 11:16:11 UTC 2019 - Jan Engelhardt + +- Use upstream description. + +------------------------------------------------------------------- +Tue Sep 10 11:58:58 UTC 2019 - John Vandenberg + +- Update to v5.0.0 + +------------------------------------------------------------------- +Thu Mar 21 01:44:49 AM UTC 2019 - John Vandenberg + +- Initial spec for v4.3.0 diff --git a/python-devpi-client.spec b/python-devpi-client.spec new file mode 100644 index 0000000..0a6c873 --- /dev/null +++ b/python-devpi-client.spec @@ -0,0 +1,131 @@ +# +# spec file for package python-devpi-client +# +# Copyright (c) 2026 SUSE LLC and contributors +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif +%{?sle15_python_module_pythons} +Name: python-devpi-client%{psuffix} +Version: 7.2.0 +Release: 0 +Summary: Client for devpi +License: MIT +URL: https://github.com/devpi/devpi +Source: https://files.pythonhosted.org/packages/source/d/devpi-client/devpi-client-%{version}.tar.gz +# PATCH-FIX-UPSTREAM fix-tests.patch -- gh#devpi/devpi@408273fb7755 +Patch0: fix-tests.patch +BuildRequires: %{python_module pip} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires: python-build >= 0.7.0 +Requires: python-check-manifest >= 0.28 +Requires: python-devpi-common >= 4.0 +Requires: python-iniconfig +Requires: python-pkginfo >= 1.10.0 +Requires: python-platformdirs +Requires: python-pluggy >= 0.6.0 +Requires: python-tox >= 3.1.0 +Requires: python-virtualenv +Requires(post): update-alternatives +Requires(postun): update-alternatives +Recommends: git-core +Recommends: python-Sphinx +BuildArch: noarch +# SECTION test requirements +%if %{with test} +BuildRequires: %{python_module Sphinx} +BuildRequires: %{python_module colorama} +BuildRequires: %{python_module devpi-client = %{version}} +BuildRequires: %{python_module devpi-common >= 4} +BuildRequires: %{python_module devpi-server} +BuildRequires: %{python_module pytest-mock} +BuildRequires: %{python_module pytest} +BuildRequires: git-core +%endif +# /SECTION +%python_subpackages + +%description +devpi-client is a command line tool with sub commands for creating users, using +indexes, uploading to and installing from indexes, as well as a "test" command +for invoking tox. + +%prep +%autosetup -p1 -n devpi-client-%{version} +rm tox.ini + +sed -i 's/"python \(setup.py[^"]*\)"/(sys.executable + " \1")/' testing/test_upload.py +sed -i 's/"python", "setup.py"/sys.executable, "setup.py"/' testing/test_test.py + +%build +%pyproject_wheel + +%install +%if !%{with test} +%pyproject_install +%python_clone -a %{buildroot}%{_bindir}/devpi +%python_expand %fdupes %{buildroot}%{$python_sitelib} +%endif + +%check +%if %{with test} +export LANG=en_US.UTF-8 +export PYTHONDONTWRITEBYTECODE=1 +export PATH=$PATH:%{buildroot}/%{_bindir} +# Unknown failures gh#devpi/devpi#706 +# test_help: devpi binary is not available (update-alternatives) +donttest="test_simple_install_new_venv_workflow or test_simple_install_activated_venv_workflow or test_help" +# test_upload: requires network to work +donttest+=" or test_upload" +donttest+=" or test_main_example_with_basic_auth" +# No module named 'pypitoken' +donttest+=" or test_derive_devpi_token or test_derive_legacy_token or test_derive_token" +# error deleting VIRTUAL_ENV +donttest+=" or test_simple_install_missing_venvdir" +# Broken tests with python3.12 because missing setuptools +donttest+=" or test_main_example or test_specific_version or test_pkgname_with_dashes" +# broken tests with tox +donttest+=" or test_toxresult_forbidden" +# broken test because of pyramid: gh#Pylons/pyramid#3731 +donttest+=" or test_whitelist_setting" +%pytest -k "not ($donttest)" +%endif + +%post +%python_install_alternative devpi + +%postun +%python_uninstall_alternative devpi + +%if !%{with test} +%files %{python_files} +%doc AUTHORS CHANGELOG README.rst +%license LICENSE +%python_alternative %{_bindir}/devpi +%{python_sitelib}/devpi +%{python_sitelib}/devpi_client-%{version}*-info +%endif + +%changelog