From accbc3aa9f6692e43a079bb3d1847ab4eb5c3ce5 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Fri, 26 Feb 2021 11:49:01 -0500 Subject: Try omitting setuptools as build requirement. After all, Setuptools is right here. --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 58659eab..70e3473d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,5 @@ [build-system] requires = [ - "setuptools >= 40.8", "wheel", ] build-backend = "setuptools.build_meta" -- cgit v1.2.1 From 0a1f89c272be2720e9c737108153fcf88a1d8640 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Fri, 26 Feb 2021 12:01:24 -0500 Subject: Restore pyproject.toml in sdist --- MANIFEST.in | 1 - 1 file changed, 1 deletion(-) diff --git a/MANIFEST.in b/MANIFEST.in index eba40c5d..3e8f09de 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -15,4 +15,3 @@ include launcher.c include msvc-build-launcher.cmd include pytest.ini include tox.ini -exclude pyproject.toml # Temporary workaround for #1644. -- cgit v1.2.1 From 30bd8a5702d38d7b98bd325e94fb50886b2b3d4e Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Fri, 26 Feb 2021 14:14:46 -0500 Subject: Add minimal entry points for bootstrapping --- bootstrap.egg-info/entry_points.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 bootstrap.egg-info/entry_points.txt diff --git a/bootstrap.egg-info/entry_points.txt b/bootstrap.egg-info/entry_points.txt new file mode 100644 index 00000000..834d674e --- /dev/null +++ b/bootstrap.egg-info/entry_points.txt @@ -0,0 +1,14 @@ +[distutils.commands] +egg_info = setuptools.command.egg_info:egg_info + +[distutils.setup_keywords] +include_package_data = setuptools.dist:assert_bool +install_requires = setuptools.dist:check_requirements +extras_require = setuptools.dist:check_extras +entry_points = setuptools.dist:check_entry_points + +[egg_info.writers] +PKG-INFO = setuptools.command.egg_info:write_pkg_info +dependency_links.txt = setuptools.command.egg_info:overwrite_arg +entry_points.txt = setuptools.command.egg_info:write_entries +requires.txt = setuptools.command.egg_info:write_requirements -- cgit v1.2.1 From 7f838213da6d49c59e11aef6b8ebe0fcbc113801 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Fri, 26 Feb 2021 19:43:15 -0500 Subject: Add metadata --- bootstrap.egg-info/PKG-INFO | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 bootstrap.egg-info/PKG-INFO diff --git a/bootstrap.egg-info/PKG-INFO b/bootstrap.egg-info/PKG-INFO new file mode 100644 index 00000000..6e11ceeb --- /dev/null +++ b/bootstrap.egg-info/PKG-INFO @@ -0,0 +1,2 @@ +Name: setuptools-bootstrap +Version: 1.0 -- cgit v1.2.1 From 3d3c69e3800e66de8e6e3b5fc5672886f2b1068e Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Fri, 26 Feb 2021 20:05:37 -0500 Subject: Remove pip 19 from the upgrade from source tests. --- setuptools/tests/test_virtualenv.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/setuptools/tests/test_virtualenv.py b/setuptools/tests/test_virtualenv.py index fcd5da5d..ea74ebe2 100644 --- a/setuptools/tests/test_virtualenv.py +++ b/setuptools/tests/test_virtualenv.py @@ -69,7 +69,9 @@ def _get_pip_versions(): 'pip==9.0.3', 'pip==10.0.1', 'pip==18.1', - 'pip==19.0.1', + # fails due to pypa/pip#6599 + # 'pip==19.3.1', + 'pip==20.0.2', 'https://github.com/pypa/pip/archive/master.zip', ] -- cgit v1.2.1 From ac3154576db19ae91a3cb1c26b7eba279fd12191 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Fri, 26 Feb 2021 20:55:35 -0500 Subject: Rely on pytest-checkdocs 2.4 to avoid picking up 'bootstrap' as the local project. --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index f4bf489a..7adf8569 100644 --- a/setup.cfg +++ b/setup.cfg @@ -41,7 +41,7 @@ exclude = testing = # upstream pytest >= 3.5, !=3.7.3 - pytest-checkdocs >= 1.2.3 + pytest-checkdocs >= 2.4 pytest-flake8 pytest-black >= 0.3.7; python_implementation != "PyPy" pytest-cov -- cgit v1.2.1 From 1da02dc4d8dd591a67e83a663379ab5c926de47f Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Fri, 26 Feb 2021 21:28:00 -0500 Subject: Update changelog. --- changelog.d/2582.breaking.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/2582.breaking.rst diff --git a/changelog.d/2582.breaking.rst b/changelog.d/2582.breaking.rst new file mode 100644 index 00000000..15dfbdb1 --- /dev/null +++ b/changelog.d/2582.breaking.rst @@ -0,0 +1 @@ +Simplified build-from source story. Build requirements no longer include setuptools itself. Project can no longer be installed from source on pip 19.x, but install from source is still supported on pip < 19 and pip >= 20 and install from wheel is still supported with pip >= 9. -- cgit v1.2.1 From 4451606b2572870050bbabe7f6672a96d0c4d745 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 27 Feb 2021 13:57:27 -0500 Subject: Prefer xfail to skip on known failure mode. --- setuptools/tests/test_virtualenv.py | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/setuptools/tests/test_virtualenv.py b/setuptools/tests/test_virtualenv.py index ea74ebe2..5a16f529 100644 --- a/setuptools/tests/test_virtualenv.py +++ b/setuptools/tests/test_virtualenv.py @@ -1,6 +1,8 @@ import glob import os import sys +import itertools +from collections import UserString import pathlib @@ -65,22 +67,33 @@ def _get_pip_versions(): # No network, disable most of these tests network = False + def mark_param(orig, *marks): + result = UserString(orig) if not isinstance(orig, UserString) else orig + result.marks = getattr(result, 'marks', ()) + marks + return result + + def make_param(marked_param): + marks = getattr(marked_param, 'marks', ()) + return pytest.param(marked_param, marks=marks) + + def skip_network(param): + return mark_param(param, pytest.mark.skip) if not network else param + network_versions = [ 'pip==9.0.3', 'pip==10.0.1', 'pip==18.1', - # fails due to pypa/pip#6599 - # 'pip==19.3.1', + mark_param('pip==19.3.1', pytest.mark.xfail(reason='pypa/pip#6599')), 'pip==20.0.2', 'https://github.com/pypa/pip/archive/master.zip', ] - versions = [None] + [ - pytest.param(v, **({} if network else {'marks': pytest.mark.skip})) - for v in network_versions - ] + versions = itertools.chain( + [None], + map(skip_network, network_versions) + ) - return versions + return list(map(make_param, versions)) @pytest.mark.parametrize('pip_version', _get_pip_versions()) -- cgit v1.2.1 From 61b3376a257be3e74ac6fa0633cb72dc8a600453 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 27 Feb 2021 13:59:56 -0500 Subject: Expand on the change in the changelog. --- changelog.d/2582.breaking.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.d/2582.breaking.rst b/changelog.d/2582.breaking.rst index 15dfbdb1..908ababe 100644 --- a/changelog.d/2582.breaking.rst +++ b/changelog.d/2582.breaking.rst @@ -1 +1 @@ -Simplified build-from source story. Build requirements no longer include setuptools itself. Project can no longer be installed from source on pip 19.x, but install from source is still supported on pip < 19 and pip >= 20 and install from wheel is still supported with pip >= 9. +Simplified build-from-source story by providing bootstrapping metadata in a separate egg-info directory. Build requirements no longer include setuptools itself. Sdist once again includes the pyproject.toml. Project can no longer be installed from source on pip 19.x, but install from source is still supported on pip < 19 and pip >= 20 and install from wheel is still supported with pip >= 9. -- cgit v1.2.1 From ce7632f3a75ab8771ec3bc71cf21136a22de55ff Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 27 Feb 2021 14:50:01 -0500 Subject: Rely more on pytest param to append markers. --- setuptools/tests/test_virtualenv.py | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/setuptools/tests/test_virtualenv.py b/setuptools/tests/test_virtualenv.py index 5a16f529..f13f7997 100644 --- a/setuptools/tests/test_virtualenv.py +++ b/setuptools/tests/test_virtualenv.py @@ -2,7 +2,6 @@ import glob import os import sys import itertools -from collections import UserString import pathlib @@ -67,23 +66,19 @@ def _get_pip_versions(): # No network, disable most of these tests network = False - def mark_param(orig, *marks): - result = UserString(orig) if not isinstance(orig, UserString) else orig - result.marks = getattr(result, 'marks', ()) + marks - return result - - def make_param(marked_param): - marks = getattr(marked_param, 'marks', ()) - return pytest.param(marked_param, marks=marks) + def mark(param, *marks): + if not isinstance(param, type(pytest.param(''))): + param = pytest.param(param) + return param._replace(marks=param.marks + marks) def skip_network(param): - return mark_param(param, pytest.mark.skip) if not network else param + return param if network else mark(param, pytest.mark.skip(reason="no network")) network_versions = [ 'pip==9.0.3', 'pip==10.0.1', 'pip==18.1', - mark_param('pip==19.3.1', pytest.mark.xfail(reason='pypa/pip#6599')), + mark('pip==19.3.1', pytest.mark.xfail(reason='pypa/pip#6599')), 'pip==20.0.2', 'https://github.com/pypa/pip/archive/master.zip', ] @@ -93,7 +88,7 @@ def _get_pip_versions(): map(skip_network, network_versions) ) - return list(map(make_param, versions)) + return list(versions) @pytest.mark.parametrize('pip_version', _get_pip_versions()) -- cgit v1.2.1