Imported Upstream version 53.0.0 upstream/53.0.0
authorJinWang An <jinwang.an@samsung.com>
Mon, 27 Mar 2023 08:02:31 +0000 (17:02 +0900)
committerJinWang An <jinwang.an@samsung.com>
Mon, 27 Mar 2023 08:02:31 +0000 (17:02 +0900)
.bumpversion.cfg
CHANGES.rst
bootstrap.py
docs/conf.py
pyproject.toml
setup.cfg
setup.py
tools/tox_pip.py [deleted file]
tox.ini

index c3bdafab955c35d612fd13fff3b51ddbbd3b141d..d11952599e798a0a50ce84ccc6ac6810e443d9bd 100644 (file)
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 52.0.0
+current_version = 53.0.0
 commit = True
 tag = True
 
index 79941d8efe989aa4ddfaec0aef0195e6948641a4..93eae6870ce1724c20423dae969f825bbe9b4f57 100644 (file)
@@ -1,3 +1,12 @@
+v53.0.0
+-------
+
+
+Breaking Changes
+^^^^^^^^^^^^^^^^
+* #1527: Removed bootstrap script. Now Setuptools requires pip or another pep517-compliant builder such as 'build' to build. Now Setuptools can be installed from Github main branch.
+
+
 v52.0.0
 -------
 
index 118671f62c1aafea2ce60f849a85672426145aa8..229b9965037dfb5a4ce27c86366ca54df4ebb2eb 100644 (file)
@@ -1,57 +1,7 @@
-"""
-If setuptools is not already installed in the environment, it's not possible
-to invoke setuptools' own commands. This routine will bootstrap this local
-environment by creating a minimal egg-info directory and then invoking the
-egg-info command to flesh out the egg-info directory.
-"""
+import warnings
 
-import os
-import sys
-import textwrap
-import subprocess
-import io
 
+msg = "bootstrap.py is no longer needed. Use a PEP-517-compatible builder instead."
 
-minimal_egg_info = textwrap.dedent("""
-    [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
-    """)
-
-
-def ensure_egg_info():
-    if os.path.exists('setuptools.egg-info'):
-        return
-    print("adding minimal entry_points")
-    add_minimal_info()
-    run_egg_info()
-
-
-def add_minimal_info():
-    """
-    Build a minimal egg-info, enough to invoke egg_info
-    """
-
-    os.mkdir('setuptools.egg-info')
-    with io.open('setuptools.egg-info/entry_points.txt', 'w') as ep:
-        ep.write(minimal_egg_info)
-
-
-def run_egg_info():
-    cmd = [sys.executable, 'setup.py', 'egg_info']
-    print("Regenerating egg_info")
-    subprocess.check_call(cmd)
-
-
-__name__ == '__main__' and ensure_egg_info()
+__name__ == '__main__' and warnings.warn(msg)
index 8cb959dfa3c29057e19852282b8a4bf0871f6d0b..18cd7bdc4908c67587965e7e86a5c6ecd3166303 100644 (file)
@@ -1,11 +1,3 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-import subprocess
-import sys
-import os
-
-
 extensions = ['sphinx.ext.autodoc', 'jaraco.packaging.sphinx', 'rst.linker']
 
 master_doc = "index"
@@ -82,14 +74,6 @@ link_files = {
 }
 
 
-# hack to run the bootstrap script so that jaraco.packaging.sphinx
-# can invoke setup.py
-'READTHEDOCS' in os.environ and subprocess.check_call(
-    [sys.executable, '-m', 'bootstrap'],
-    cwd=os.path.join(os.path.dirname(__file__), os.path.pardir),
-)
-
-
 # Add support for linking usernames
 github_url = 'https://github.com'
 github_sponsors_url = f'{github_url}/sponsors'
index 4e80bdc1a7e4deaeb7c3652a64b8dfda7894ad5e..414ffed581ab6a6f4ec68ae1c51239f86eb58c00 100644 (file)
@@ -1,6 +1,5 @@
 [build-system]
 requires = [
-    # avoid self install on Python 2; ref #1996
     "setuptools >= 40.8; python_version > '3'",
     "wheel",
 ]
index e0c4edc2e6adbe89dbd008a6ceb6a2cbbeb7306d..14ff445daa13eeb810fee6fdc4b4e18a934f7415 100644 (file)
--- a/setup.cfg
+++ b/setup.cfg
@@ -2,7 +2,7 @@
 license_files =
     LICENSE
 name = setuptools
-version = 52.0.0
+version = 53.0.0
 author = Python Packaging Authority
 author_email = distutils-sig@python.org
 description = Easily download, build, install, upgrade, and uninstall Python packages
index 31eda0fbb06cfc78e447b8443f35fb699f1ec2fc..f5cbff31e58bf15afb0236a6d895e3a25da46125 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -10,17 +10,6 @@ from setuptools.command.install import install
 here = os.path.dirname(__file__)
 
 
-def require_metadata():
-    "Prevent improper installs without necessary metadata. See #659"
-    egg_info_dir = os.path.join(here, 'setuptools.egg-info')
-    if not os.path.exists(egg_info_dir):
-        msg = (
-            "Cannot build setuptools without metadata. "
-            "Run `bootstrap.py`."
-        )
-        raise RuntimeError(msg)
-
-
 def read_commands():
     command_ns = {}
     cmd_module_path = 'setuptools/command/__init__.py'
@@ -170,5 +159,4 @@ setup_params = dict(
 if __name__ == '__main__':
     # allow setup.py to run from another directory
     here and os.chdir(here)
-    require_metadata()
     dist = setuptools.setup(**setup_params)
diff --git a/tools/tox_pip.py b/tools/tox_pip.py
deleted file mode 100644 (file)
index be2ff1d..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-import os
-import subprocess
-import sys
-import re
-
-
-def remove_setuptools():
-    """
-    Remove setuptools from the current environment.
-    """
-    print("Removing setuptools")
-    cmd = [sys.executable, '-m', 'pip', 'uninstall', '-y', 'setuptools']
-    # set cwd to something other than '.' to avoid detecting
-    # '.' as the installed package.
-    subprocess.check_call(cmd, cwd=os.environ['TOX_WORK_DIR'])
-
-
-def bootstrap():
-    print("Running bootstrap")
-    cmd = [sys.executable, '-m', 'bootstrap']
-    subprocess.check_call(cmd)
-
-
-def is_install_self(args):
-    """
-    Do the args represent an install of .?
-    """
-    def strip_extras(arg):
-        match = re.match(r'(.*)?\[.*\]$', arg)
-        return match.group(1) if match else arg
-
-    return (
-        'install' in args
-        and any(
-            arg in ['.', os.getcwd()]
-            for arg in map(strip_extras, args)
-        )
-    )
-
-
-def pip(*args):
-    cmd = [sys.executable, '-m', 'pip'] + list(args)
-    return subprocess.check_call(cmd)
-
-
-def test_dependencies():
-    from ConfigParser import ConfigParser
-
-    def clean(dep):
-        spec, _, _ = dep.partition('#')
-        return spec.strip()
-
-    parser = ConfigParser()
-    parser.read('setup.cfg')
-    raw = parser.get('options.extras_require', 'tests').split('\n')
-    return filter(None, map(clean, raw))
-
-
-def run(args):
-    os.environ['PIP_USE_PEP517'] = 'true'
-
-    if is_install_self(args):
-        remove_setuptools()
-        bootstrap()
-
-    pip(*args)
-
-
-if __name__ == '__main__':
-    run(sys.argv[1:])
diff --git a/tox.ini b/tox.ini
index 8083d8c27b46082eb2672d2e1606462d9c4d9302..8ab2b8cf02fe61f23568ef2881aa4e26d45cfc47 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -11,8 +11,6 @@ commands =
        pytest {posargs}
 usedevelop = True
 extras = testing
-install_command = {[helpers]pip} install {opts} {packages}
-list_dependencies_command = {[helpers]pip} freeze --all
 setenv =
        COVERAGE_FILE={toxworkdir}/.coverage.{envname}
 passenv =
@@ -74,7 +72,3 @@ commands =
        python -m twine upload dist/*
        python -m jaraco.develop.create-github-release
        python -m jaraco.tidelift.publish-release-notes
-
-[helpers]
-# Custom pip behavior
-pip = python {toxinidir}/tools/tox_pip.py