From 9e554095b4e987371f7929902d12278b4e2ad91e Mon Sep 17 00:00:00 2001 From: wim glenn Date: Fri, 16 Mar 2018 01:14:19 -0500 Subject: provide a failing test case for regression introduced in b2ea3c4a - spurious "Provides-Extra:" generated in metadata --- setuptools/tests/test_egg_info.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/setuptools/tests/test_egg_info.py b/setuptools/tests/test_egg_info.py index ff5fa0a3..d2211671 100644 --- a/setuptools/tests/test_egg_info.py +++ b/setuptools/tests/test_egg_info.py @@ -438,6 +438,23 @@ class TestEggInfo(object): assert 'Provides-Extra: foobar' in pkg_info_lines assert 'Metadata-Version: 2.1' in pkg_info_lines + def test_doesnt_provides_extra(self, tmpdir_cwd, env): + self._setup_script_with_requires( + '''install_requires=["spam ; python_version<'3.3'"]''') + environ = os.environ.copy().update( + HOME=env.paths['home'], + ) + environment.run_setup_py( + cmd=['egg_info'], + pypath=os.pathsep.join([env.paths['lib'], str(tmpdir_cwd)]), + data_stream=1, + env=environ, + ) + egg_info_dir = os.path.join('.', 'foo.egg-info') + with open(os.path.join(egg_info_dir, 'PKG-INFO')) as pkginfo_file: + pkg_info_text = pkginfo_file.read() + assert 'Provides-Extra:' not in pkg_info_text + def test_long_description_content_type(self, tmpdir_cwd, env): # Test that specifying a `long_description_content_type` keyword arg to # the `setup` function results in writing a `Description-Content-Type` -- cgit v1.2.3 From 696afcad2d750f55c66ffc2a504fa2ebed1b6a59 Mon Sep 17 00:00:00 2001 From: wim glenn Date: Fri, 16 Mar 2018 01:17:06 -0500 Subject: fix for regression - spurious "Provides-Extra:" generated in metadata --- setuptools/dist.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setuptools/dist.py b/setuptools/dist.py index 33ceb404..38ab4044 100644 --- a/setuptools/dist.py +++ b/setuptools/dist.py @@ -89,7 +89,8 @@ def write_pkg_file(self, file): ) if self.provides_extras: for extra in self.provides_extras: - file.write('Provides-Extra: %s\n' % extra) + if extra: + file.write('Provides-Extra: %s\n' % extra) # from Python 3.4 -- cgit v1.2.3 From 1fffc0eff9892c7c9bc3b177dd3483a41e85e40e Mon Sep 17 00:00:00 2001 From: wim glenn Date: Fri, 16 Mar 2018 14:27:42 -0500 Subject: address review comments and squash the empty string extra earlier --- setuptools/dist.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/setuptools/dist.py b/setuptools/dist.py index 38ab4044..d24958da 100644 --- a/setuptools/dist.py +++ b/setuptools/dist.py @@ -89,8 +89,7 @@ def write_pkg_file(self, file): ) if self.provides_extras: for extra in self.provides_extras: - if extra: - file.write('Provides-Extra: %s\n' % extra) + file.write('Provides-Extra: %s\n' % extra) # from Python 3.4 @@ -390,7 +389,9 @@ class Distribution(Distribution_parse_config_files, _Distribution): # Since this gets called multiple times at points where the # keys have become 'converted' extras, ensure that we are only # truly adding extras we haven't seen before here. - self.metadata.provides_extras.add(extra.split(':')[0]) + extra = extra.split(':')[0] + if extra: + self.metadata.provides_extras.add(extra) self._convert_extras_requirements() self._move_install_requirements_markers() -- cgit v1.2.3 From 604e0852c6020904419f9be37b2bec2c3c3b3779 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 17 Mar 2018 10:27:41 -0400 Subject: Update changelog. Ref #1293. --- CHANGES.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index 7c3a46c6..01fb448c 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,9 @@ +v38.6.1 +------- + +* #1292: Avoid generating ``Provides-Extra`` in metadata when + no extra is present (but environment markers are). + v38.6.0 ------- -- cgit v1.2.3 From 025690980c3540dc170abec3a3b18fd11f8b15bc Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 17 Mar 2018 10:27:46 -0400 Subject: =?UTF-8?q?Bump=20version:=2038.6.0=20=E2=86=92=2038.6.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.cfg | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.cfg b/setup.cfg index 560b724b..5a9a875c 100755 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 38.6.0 +current_version = 38.6.1 commit = True tag = True diff --git a/setup.py b/setup.py index ff064e33..a59ba44b 100755 --- a/setup.py +++ b/setup.py @@ -89,7 +89,7 @@ def pypi_link(pkg_filename): setup_params = dict( name="setuptools", - version="38.6.0", + version="38.6.1", description="Easily download, build, install, upgrade, and uninstall " "Python packages", author="Python Packaging Authority", -- cgit v1.2.3