Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-39763: distutils.spawn now uses subprocess #18743

Merged
merged 1 commit into from
Mar 4, 2020
Merged

bpo-39763: distutils.spawn now uses subprocess #18743

merged 1 commit into from
Mar 4, 2020

Conversation

vstinner
Copy link
Member

@vstinner vstinner commented Mar 2, 2020

Reimplement distutils.spawn.spawn() function with the subprocess
module.

setup.py now uses a basic implementation of the subprocess module if
the subprocess module is not available: before required C extension
modules are built.

https://bugs.python.org/issue39763

Reimplement distutils.spawn.spawn() function with the subprocess
module.

setup.py now uses a basic implementation of the subprocess module if
the subprocess module is not available: before required C extension
modules are built.
@vstinner
Copy link
Member Author

vstinner commented Mar 2, 2020

Now to fix https://bugs.python.org/issue39763, parallelism must be disable when the pure Python implementation is used:

diff --git a/setup.py b/setup.py
index c9f3c97238..c89e2cb8ad 100644
--- a/setup.py
+++ b/setup.py
@@ -358,7 +358,10 @@ class PyBuildExt(build_ext):
         self.failed = []
         self.failed_on_import = []
         self.missing = []
-        if '-j' in os.environ.get('MAKEFLAGS', ''):
+        # Don't use parallel build if the subprocess is bootstrapped:
+        # the pure Python implementation is unsafe ([bpo-39763](https://bugs.python.org/issue39763)).
+        if ('-j' in os.environ.get('MAKEFLAGS', '')
+           and not SUBPROCESS_BOOTSTRAP):
             self.parallel = True
 
     def add(self, ext):

I would prefer to push this change in a separated PR.

@vstinner
Copy link
Member Author

vstinner commented Mar 2, 2020

cc @pitrou

@pitrou
Copy link
Member

pitrou commented Mar 2, 2020

parallelism must be disable when the pure Python implementation is used

Or you can use posix_spawn in the pure Python fallback.

@vstinner
Copy link
Member Author

vstinner commented Mar 2, 2020

Or you can use posix_spawn in the pure Python fallback.

It's not available on all platforms. I don't think that it's interesting to optimize the setup.py implementation of subprocess.

subprocess.py only uses os.posix_spawn() on a few specfic platforms: macOS and Linux with glibc 2.24 or newer.

@vstinner
Copy link
Member Author

vstinner commented Mar 2, 2020

Even when subprocess is available, os.posix_spawn() is not used by subprocess (called by distutils) because distutils.spawn uses close_fds default value which is True. If you want to experiment os.posix_spawn() in distutils, try this patch locally:

diff --git a/Lib/distutils/spawn.py b/Lib/distutils/spawn.py
index aad277b0ca..086d5cc3b7 100644
--- a/Lib/distutils/spawn.py
+++ b/Lib/distutils/spawn.py
@@ -71,7 +71,7 @@ def spawn(cmd, search_path=1, verbose=0, dry_run=0):
             env = dict(os.environ,
                        MACOSX_DEPLOYMENT_TARGET=cur_target)
 
-    proc = subprocess.Popen(cmd, env=env)
+    proc = subprocess.Popen(cmd, env=env, close_fds=False)
     proc.wait()
     exitcode = proc.returncode
 

@codecov
Copy link

codecov bot commented Mar 2, 2020

Codecov Report

Merging #18743 into master will increase coverage by 0.00%.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff            @@
##           master   #18743     +/-   ##
=========================================
  Coverage   82.14%   82.14%             
=========================================
  Files        1956     1955      -1     
  Lines      590140   584725   -5415     
  Branches    44488    44475     -13     
=========================================
- Hits       484743   480337   -4406     
+ Misses      95745    94742   -1003     
+ Partials     9652     9646      -6     
Impacted Files Coverage Δ
Lib/distutils/tests/test_bdist_rpm.py 30.00% <0.00%> (-65.00%) ⬇️
Lib/distutils/command/bdist_rpm.py 7.63% <0.00%> (-56.88%) ⬇️
Modules/_decimal/libmpdec/umodarith.h 80.76% <0.00%> (-19.24%) ⬇️
Lib/test/test_urllib2net.py 76.92% <0.00%> (-13.85%) ⬇️
Lib/test/test_smtpnet.py 78.57% <0.00%> (-7.15%) ⬇️
Lib/ftplib.py 63.85% <0.00%> (-6.06%) ⬇️
Lib/test/test_ftplib.py 87.11% <0.00%> (-4.72%) ⬇️
Tools/scripts/db2pickle.py 17.82% <0.00%> (-3.97%) ⬇️
Tools/scripts/pickle2db.py 16.98% <0.00%> (-3.78%) ⬇️
Lib/test/test_socket.py 71.94% <0.00%> (-3.77%) ⬇️
... and 333 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 28d0bca...e7d0e98. Read the comment docs.

@vstinner
Copy link
Member Author

vstinner commented Mar 3, 2020

@pganssle @pablogsal @tirkarthi @pitrou @nanjekyejoannah: Would you mind to review this change?

This change basically continues the same code to spawn subprocesses when building Python from scratch. The difference is that incremental build of Python, or obviously building any third party C extension module, will now use subprocess, rather than fork+exec implemented in pure Python.

The subprocess module uses _posixsubprocess C extension module to reduce the risk of race conditions.

Copy link
Member

@pitrou pitrou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

@jaraco
Copy link
Member

jaraco commented Nov 6, 2020

This change appears to be implicated in a regression where in some cases spaces in filenames aren't quoted so libraries fail to link. See pypa/setuptools#2417.

jaraco added a commit to pypa/distutils that referenced this pull request Nov 6, 2020
…and as it would be used, restoring expectation lost in python/cpython#18743. Ref pypa/setuptools#2417 where this change was a red-herring for another issue.
clrpackages pushed a commit to clearlinux-pkgs/setuptools that referenced this pull request May 11, 2021
…on 56.1.0

Alexandre Vassalotti (1):
      Merged revisions 62998-63003,63005-63006,63009-63012,63014-63017,63019-63020,63022-63024,63026-63029,63031-63041,63043-63045,63047-63054,63056-63062 via svnmerge from

Amy (3):
      Add sphinx-inline-tabs extension
      Replace adjacent code blocks with tabbed containers
      Add changelog

Andre Delfino (1):
      Add missing period in distutils.dep_util.newer_group doc (GH-11003)

Andrew Kuchling (3):
      Issue #19544 and Issue #6516: Restore support for --user and --group parameters to sdist command as found in Python 2.7 and originally slated for Python 3.2 but accidentally rolled back as part of the distutils2 rollback. Closes Issue #6516.
      Issue #19544 and Issue #1180: Restore global option to ignore  ~/.pydistutils.cfg in Distutils, accidentally removed in backout of distutils2 changes.
      #16135: remove mentions of OS/2 from the documentation

Andrew M. Kuchling (6):
      #1858 from Tarek Ziade:
      #1858: re-apply patch for this, adding the missing files
      Re-word
      Reword sentence
      Use standard comma punctuation; reword some sentences in the docs
      Re-word

Andrey Bienkowski (1):
      quickstart: recommend PyPA build instead of pep517.build

Andrés Delfino (2):
      bpo-33297: Mention Pillow to work with more image formats. (#6505)
      bpo-33892: Doc: Use gender neutral words (GH-7770)

Antoine Pitrou (1):
      Replace a mention of EnvironmentError in the distutils docs.

Benjamin Peterson (19):
      Merged revisions 67654,67676-67677,67681,67692,67725,67761,67784-67785,67787-67788,67802,67848-67850,67862-67864,67880,67882 via svnmerge from
      Merged revisions 67654,67676-67677,67681,67692,67725,67746,67748,67761,67784-67785,67787-67788,67802,67832,67848-67849,67859,67862-67864,67880,67882,67885,67889-67892,67895 via svnmerge from
      Merged revisions 67982,67988,67990 via svnmerge from
      Merged revisions 68116-68119,68121,68123-68127 via svnmerge from
      Merged revisions 70578,70599,70641-70642,70650,70660-70661,70674,70691,70697-70698,70700,70704 via svnmerge from
      Merged revisions 70712,70714,70764-70765,70769-70771,70773,70776-70777,70788-70789,70824,70828,70832,70836,70842,70851,70855,70857,70866-70872,70883,70885,70893-70894,70896-70897,70903,70905-70907,70915,70927,70933,70951,70960,70962-70964,70998,71001,71006,71008,71010-71011,71019,71037,71056,71094,71101-71103,71106,71119,71123,71149-71150,71203,71212,71214-71217,71221,71240 via svnmerge from
      Merged revisions 70980,71059,71225,71234,71241,71243,71249,71251,71255,71266,71299,71329,71397-71398,71486 via svnmerge from
      Merged revisions 74277,74321,74323,74326,74355,74465,74467,74488,74492,74513,74531,74549,74553,74625,74632,74643-74644,74647,74652,74666,74671,74727,74739 via svnmerge from
      Merged revisions 74745 via svnmerge from
      Merged revisions 75149,75260-75263,75265-75267,75292,75300,75376,75405,75429-75433,75437,75445,75501,75551,75572,75589-75591,75657,75742,75868,75952-75957,76057,76105,76139,76143,76162,76223 via svnmerge from
      Merged revisions 76235 via svnmerge from
      Merged revisions 77484,77487,77561,77570,77593,77603,77608,77667,77702-77703,77739,77858,77887,77889 via svnmerge from
      Merged revisions 77952,78030,78102,78104,78107,78206,78216,78296-78297,78328,78331-78332,78336,78339,78343,78378-78379,78415,78559,78717,78791 via svnmerge from
      Merged revisions 79307,79408,79430,79533,79542,79579-79580,79585-79587,79607-79608,79622,79717,79820,79822,79828,79862,79875,79923-79924,79941-79943,79945,79947,79951-79952 via svnmerge from
      Merged revisions 80605-80609,80642-80646,80651-80652,80674,80684-80686,80748,80852,80854,80870,80872-80873,80907,80915-80916,80951-80952,80976-80977,80985,81038-81040,81042,81053,81070,81104-81105,81114,81125,81245,81285,81402,81463,81516,81562-81563,81567,81593,81635,81680-81681,81684,81801,81888,81931-81933,81939-81942,81963,81984,81991,82120,82188,82264-82267 via svnmerge from
      fix instances of consecutive articles (closes #23221)
      fix name of argument in docstring and the docs (closes #25076)
      link to modern PUG url
      remove IRIX support (closes bpo-31341) (#3310)

Berker Peksag (3):
      Issue #23682: Delete Python 2.2 mention from distutils documentation.
      Issue #29069: Update the default URL of PyPI server
      bpo-19610: setup() now raises TypeError for invalid types (GH-4519)

Brett Cannon (2):
      Revert r62998 as it broke the build (seems distutils.config is missing).
      Issue #23731: Implement PEP 488.

Brian Curtin (1):
      #9934. Correct a typo that was already fixed on py3k.

Chris Jerdonek (8):
      Remove unneeded "Release" and "Date" markers from doc index pages.
      Backport from 3.2: remove "Release" and "Date" markers from index pages.
      Update the description of which package versions PyPI displays (issue #16400).
      Backport from 3.2: update PyPI docs regarding listing versions (issue #16400).
      Issue #16874: fix formatting of setup.py upload options in documentation.
      Issue #16874 (forward-port from 2.7): fix some documentation formatting.
      Issue #16406: combine the doc pages for uploading and registering to PyPI.
      Issue #16406: Combine the doc pages for uploading and registering to PyPI.

Christian Heimes (6):
      Merged revisions 59259-59274 via svnmerge from
      Merged revisions 59605-59624 via svnmerge from
      Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900-60931,60933-60958 via svnmerge from
      Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
      Merged revisions 62194,62197-62198,62204-62205,62214,62219-62221,62227,62229-62231,62233-62235,62237-62239 via svnmerge from
      Merged revisions 62425-62429,62434-62436,62441,62444,62446-62448,62450-62455,62463,62465-62466,62469,62474,62476-62478,62480,62485,62492,62497-62498,62500,62507,62513-62514,62516,62521,62531,62535,62545-62546,62548-62551,62553-62559,62569,62574,62577,62593,62595,62604-62606,62608,62616,62626-62627,62636,62638,62644-62645,62647-62648,62651-62653,62656,62661,62663,62680,62686-62687,62696,62699-62703,62711 via svnmerge from

Donald Stufft (1):
      Fix Issue #21528 - Fix documentation typos

E. M. Bray (1):
      bpo-21536: On Cygwin, C extensions must be linked with libpython (GH-13549)

Eli Bendersky (4):
      Issue #15321: update PyPI upload doc to say --no-raw passed to rst2html.py. Patch by Chris Jerdonek
      Issue #15231: rephrase the last paragraph slightly
      Issue #15321: update PyPI upload doc to say --no-raw passed to rst2html.py
      Issue #15231: update PyPI upload doc to say --no-raw passed to rst2html.py

Ezio Melotti (9):
      #7388: "python".capitalize() in the Doc
      Merged revisions 76904 via svnmerge from
      Merged revisions 76904 via svnmerge from
      Merged revisions 76906 via svnmerge from
      #11843: remove duplicate line from table in distutil doc.
      #11843: remove duplicate line from table in distutil doc.
      Remove duplication.
      Remove duplication.
      bpo-38103: fix conflicting labels in the docs. (GH-15906)

Georg Brandl (92):
      Move the 2.6 reST doc tree in place.
      Move the 3k reST doc tree in place.
      Get rid of the remaining versionadded/versionchanged directives.
      Unify "byte code" to "bytecode". Also sprinkle :term: markup for it.
      Add :term:s for descriptors.
      #1370: Finish the merge r58749, log below, by resolving all conflicts in Doc/.
      Futher update docs after unbound method removal.
      Add "Using Python on Windows" document, by Robert Lehmann.
      Some cleanup in the docs.
      Part of #2154: minimal syntax fixes in doc example snippets.
      A lot more typo fixes by Ori Avtalion.
      #1725737: ignore other VC directories other than CVS and SVN's too.
      Fix lots of broken links in the docs, found by Sphinx' external link checker.
      Create the dbm package from PEP 3108. #2881.
      Fix old-style octal literals in the docs.
      Remove things specific to the old Macintosh, and spell "Mac OS X" consistently.
      Merged revisions 66452 via svnmerge from
      #4446: document "platforms" argument for setup().
      #4776: add data_files and package_dir arguments.
      Merged revisions 67952-67953,67955,67957-67958,67960-67961,67963,67965,67967,67970-67971,67973,67982,67988,67990,67995,68014,68016,68030,68057,68061,68112,68115-68118,68120-68121,68123-68128 via svnmerge from
      #4811: fix markup glitches (mostly remains of the conversion),
      Fix uses of the default role.
      Remove trailing whitespace.
      Merged revisions 68219 via svnmerge from
      Remove trailing whitespace.
      Merged revisions 68133-68134,68141-68142,68145-68146,68148-68149,68159-68162,68166,68171-68174,68179,68195-68196,68210,68214-68215,68217-68222 via svnmerge from
      Merged revisions 68162,68166,68171,68176,68195-68196,68210,68232 via svnmerge from
      #5486: typos.
      #5486: typos.
      Add section numbering to some of the larger subdocuments.
      #5563: more documentation for bdist_msi.
      Normalize spelling of Mac OS X.
      Avoid sure signs of a diseased mind.
      Merged revisions 70642,70648,70656,70661,70765,70773,70789,70824-70825,70828,70830,70832,70836,70838,70842,70851,70855,70857-70858 via svnmerge from
      Merged revisions 70866-70868,70870-70871,70893,70896,70902,70905,70907,70912,70915,70927,70933,70940,70944,70954,70963,70998,71056 via svnmerge from
      Merged revisions 71058,71149-71150,71212,71214-71216,71222,71225,71234,71237-71238,71240-71241,71243,71249,71251 via svnmerge from
      Merged revisions 69578-69580,69901,69907,69994,70022-70023,70025-70026,70166,70273,70275,70342,70386-70387,70389-70390,70392-70393,70395,70397,70400,70418 via svnmerge
      Reintroduce versionchanged tags, but with correct version.
      Remove ".. warning::" markup that doesnt contain warnings for users, rather todo items.
      Merged revisions 72008 via svnmerge from
      Merged revisions 72007-72010,72036-72037 via svnmerge from
      builtin -> built-in.
      Merged revisions 74209 via svnmerge from
      Merged revisions 73941-73943,74076,74094,74186,74211-74214,74247,74254,74262,74311,74334,74368 via svnmerge from
      Move function back to its section.
      Merged revisions 74209 via svnmerge from
      Merged revisions 74492,74531,74545-74550,74553-74555,74588,74603,74608,74614,74616-74618,74631-74633,74652-74653,74666,74671,74737,74739,74779,74781-74782,74784,74791,74793,74818-74820,74822,74832 via svnmerge from
      Fix a strange mis-edit.
      Merged revisions 75795 via svnmerge from
      Merged revisions 75365,75394,75402-75403,75418,75459,75484,75592-75596,75600,75602-75607,75610-75613,75616-75617,75623,75627,75640,75647,75696,75795 via svnmerge from
      Merged revisions 75797 via svnmerge from
      Fix internal reference.
      Fix warnings from "make check".
      Merged revisions 78859-78860 via svnmerge from
      Two typos.
      Make comment out of an awkward note.
      Turn more notes into comments.
      Merged revisions 82629,82632 via svnmerge from
      Merged revisions 82548,82634-82635 via svnmerge from
      #9223: link to Command class reference, and move Command interface docs nearer to class docs.
      Merged revisions 82806 via svnmerge from
      Merged revisions 82301 via svnmerge from
      Remove XXX from text.
      Merged revisions 82872,82874 via svnmerge from
      After distutils doc reversal, change back **bold todo** items to XXX comments.
      Merged revisions 82793-82794,82807,82876,83432 via svnmerge from
      #7973: Fix distutils options spelling.
      Merged revisions 83536,83546-83548,83550,83554-83555,83558,83563,83565,83571,83574-83575 via svnmerge from
      Merged revisions 83593 via svnmerge from
      Consistency check for versionadded/changed directives.
      #9911: doc copyedits.
      Merged revisions 77236,77383,77399,77857,78238,78861-78862,78958 via svnmerge from
      Merged revisions 82629,82632,82724,82757-82758,82760-82763,82798-82799,82801 via svnmerge from
      Merged revisions 82805-82806,83523-83527,83536,83538,83542,83546-83548,83550-83555,83558,83560 via svnmerge from
      Merged revisions 84142 via svnmerge from
      Merged revisions 84945 via svnmerge from
      Merged revisions 84945 via svnmerge from
      Migrate to Sphinx 1.0 C language constructs.
      Fix errors found by "make suspicious".
      Merged revisions 85274 via svnmerge from
      Remove duplicate "numbered" options for toctrees.
      Closes #4159: add LaTeX tabular column specifications to tables that otherwise are cut off or have overlapping text.
      Fix missing period.
      Doc: remove invalid uses of ":option:" which will emit warnings in Sphinx 1.3.
      Use https:// URLs when referring to python.org hosts.
      Fixing broken links in doc, part 1: faq/
      Fixing broken links in doc, part 4: some more breaks and redirects
      Doc: fix default role usage (except in unittest mock docs)
      Doc: fix default role usage (except in unittest mock docs)
      distutils example: fix invalid rst in description string
      Closes #26435: fix syntax in directives. Thanks to Jakub Stasiak.
      Closes #25910: fix dead and permanently redirected links in the docs. Thanks to SilentGhost for the patch.

Hugo van Kemenade (1):
      bpo-39586: Deprecate distutils bdist_msi command (GH-18415)

Jason R. Coombs (45):
      Issue 19544 and Issue #7457: Restore the read_pkg_file method to distutils.dist.DistributionMetadata accidentally removed in the undo of distutils2.
      Move docs to docs/distutils
      Move distutils docs into 'deprecated' section and link them from that section.
      In spawn, when logging a command, use list2cmdline to render the command as it would be used, restoring expectation lost in python/cpython#18743. Ref pypa/setuptools#2417 where this change was a red-herring for another issue.
      Normalize indentation
      Exclude dist from discovered packages. Fixes jaraco/skeleton#46.
      It's no longer necessary to filter this warning and it's not a warning anymore.
      Bump minimum pytest
      Term is builder.
      Bump version: 54.0.0 → 54.1.0
      Extend extensions later in the file. Fixes flake8 failure and isolates the (sole) change from other concerns.
      Require twine 3 with keyring unconditionally required.
      Apply suggestions in code review.
      Make change a bugfix
      The term is misc :/
      Bump version: 54.1.0 → 54.1.1
      Add comments indicating why the exclusions are present
      Exclude mypy on Python 3.10 as workaround for python/typed_ast#156.
      Bump minimums on pytest-checkdocs and pytest-enabler as found on Setuptools.
      Also deny black on Python 3.10 as workaround for python/typed_ast#156.
      Don't bother testing old versions of pip on Python 3.10 and later. Fixes #2599.
      Bump version: 54.1.1 → 54.1.2
      Add leading */ to coverage.run.omit. Workaround for pytest-dev/pytest-cov#456.
      Add test capturing missed expectation. Ref #2612.
      Illustrate how one might leverage sitecustomize.py to make a project available on PYTHONPATH. Fixes #2612.
      Cast values to str and retain other environ vars for Windows' sake
      Expect failure on PyPy.
      Bump version: 54.1.2 → 54.1.3
      Remove superfluous else.
      Bump version: 54.1.3 → 54.2.0
      Tidelift no longer requires or expects publishing release notes.
      Remove Tidelift from main.yml, no longer needed
      Pin to upstream main branch for sphinx-inline-tabs. Workaround for #2614.
      Reset RTD config to match skeleton and rely on package metadata for docs build requirements.
      Remove latent comment. Meant for previous commit.
      Section for 'find' and 'find_namespace' options is 'options.packages.find'. Fixes #2406.
      Bump version: 54.2.0 → 55.0.0
      Officially declare pkg_resources as deprecated. Closes #2531.
      Bump version: 55.0.0 → 56.0.0
      Copy workflows from jaraco/skeleton. Enables CI.
      Add blurb for distutils docs addition.
      Add changelog.
      Fix doc builds for intersphinx mapping. Supersedes #2659.
      Update changelog.
      Bump version: 56.0.0 → 56.1.0

Jeroen Ruigrok van der Werven (1):
      After discussing some more with Georg, do no migrate versionchanged:: 2.5 to

Joshua Root (1):
      Relax MACOSX_DEPLOYMENT_TARGET check

Jürgen Gmach (2):
      bpo-38914 Do not require email field in setup.py. (GH-17388)
      remove duplicate word

KOLANICH (1):
      Added an .editorconfig. Pull request jaraco/skeleton#43.

Karthikeyan Singaravelan (1):
      Set daemon attribute instead of using setDaemon method that was deprecated in Python 3.10

Kojo Idrissa (1):
      bpo-33071: remove outdated PyPI docs (GH-13087)

Larry Hastings (1):
      Merge in all documentation changes since branching 3.4.0rc1.

Marc Mueller (8):
      Tests - Fix url for pip download
      license_files - Add support for glob patterns + add default patterns
      Add documentation + changelog entries
      Additional test cases
      Change deprecation warning
      Small changes
      Refactor dist.read_pkg_file
      Add rfc822_unescape

Mariatta (1):
      distutils docs: Fix a typo (GH-470)

Mark Hammond (3):
      Issue #2513: enable 64bit cross compilation on windows.
      correct heading underline for new "Cross-compiling on Windows" section
      #2581: Vista UAC/elevation support for bdist_wininst

Martin Panter (5):
      Issue #25161: Add full stops in documentation; patch by Takase Arihiro
      Issue #26638: Fix links to some CLI options and section headings
      Issue #26462: Doc: reduce literal_block warnings, fix syntax highlighting.
      Issue #26638: Mask undefined CLI options to defeat new Sphinx warnings
      Fix spacing after C++ in documentation

Martin v. Löwis (3):
      Add build_py_2to3.
      Issue #4312: Remove claim that distutils parameters must not be Unicode. The opposite is true.
      Stop trying to use _xmlplus in the xml module. Closes #11164.

Melissa Li (13):
      Add compatibility method to warn for future underscore change
      Modify existing tests to be compatible with future underscore change
      Add test for conversion warning
      Add test for dash preserved extras_require in setup.cfg
      Add changelog
      Update warning for dash to underscore conversion
      Dash to underscore compatibility
      Warn for uppercase usage in setup.cfg metadata
      Test for uppercase metadata warning
      Add changelog
      Reduce scope of dash deprecation warning to Setuptools and distutils
      Fix formatting of tests and change dash deprecation method name
      Add changelog

Michael Felt (1):
      bpo-38021: Modify AIX platform_tag so it covers PEP 425 needs (GH-17303)

Mikhail Terekhov (1):
      bpo-41882: Clean up after CCompiler.has_function()

Miro Hrončok (5):
      bpo-10945: Drop support for bdist_wininst on non-Windows systems (GH-14506)
      bpo-36797: Fix a dead link in  Doc/distutils/apiref (GH-15700)
      Remove bdist_wininst
      Filter out distutils deprecation warning until the situation is resolved
      Relax the distutils deprecation regex

Ned Deily (1):
      Issue #26014: Update 3.x packaging documentation:

Neil Schemenauer (1):
      bpo-19610: Warn if distutils is provided something other than a list to some fields (#4685)

Nick Coghlan (4):
      Issue #19407: add Python Packaging User Guide notes
      Close #19407: New installation & distribution guides
      bpo-36797: Prune more legacy distutils documentation (GH-13092)
      bpo-36797: Reduce levels of indirection in outdated distutils docs (#13462)

Petri Lehtinen (2):
      Issue #16403: Document how distutils uses the maintainer field in PKG-INFO
      Issue #16403: Document how distutils uses the maintainer field in PKG-INFO

Pradyun Gedam (1):
      Convert blockquotes into literal blocks

R David Murray (3):
      Better English.
      Better English.
      #17325: Improve distutils PyPI documentation.

Ronald Oussoren (6):
      Issue4064: architecture string for universal builds on OSX
      Update the fix for issue4064 to deal correctly with all three variants of
      Finish support for --with-universal-archs=intel
      Merged revisions 74806 via svnmerge from
      Merged revisions 74806 via svnmerge from
      Merged revisions 74808 via svnmerge from

Ryan Gonzalez (1):
      bpo-11913: Add README.rst to the distutils standard READMEs list (#563)

Sanchit Khurana (1):
      bpo-21063: Improve module synopsis for distutils (GH-17363)

Sandro Tosi (1):
      update to new C roles and directives

Sanyam Khurana (1):
      bpo-25910: Link redirections in docs (#1933)

Senthil Kumaran (2):
      Fix sphinx role markups.
      Back porting changeset db302b88fdb6 to 3.4 branch, which fixed multiple documentation typos.

Serhiy Storchaka (8):
      #19196: Improved cross-references in distutils documentation.
      Issue #16314: Added support for the LZMA compression in distutils.
      Issue #25523: Further a-to-an corrections.
      Issue #26778: Fixed "a/an/and" typos in code comment and documentation.
      Issue #23921: Standardized documentation whitespace formatting.
      Improve highlighting of some code blocks. (GH-6401)
      bpo-35110: Fix unintentional spaces around hyphens and dashes. (GH-10231)
      bpo-35110: Fix yet few spaces before dashes. (GH-10255)

Stefan Grönke (1):
      bpo-31569: correct PCBuild/ case to PCbuild/ in build scripts and docs (GH-3711)

Stéphane Wirtel (3):
      bpo-33503: Fix the broken pypi link in the source and the documentation (GH-6814)
      bpo-34962: make doctest in Doc/ now passes, and is enforced in CI (GH-9806)
      bpo-35042: Use the :pep: role where a PEP is specified (#10036)

Sviatoslav Sydorenko (13):
      Enable intersphinx to link against CPython docs
      Correct broken refs in distutils docs
      Allow some refs to undocumented/undeclared objects
      Introduce issue forms in the repo
      Use sphinx-inline-tabs from PyPI
      Add a change note for PR #2633
      Implement `find_spec` in vendored module importers
      Drop deprecated `find_module` from vendor importer
      Use importlib.util.spec_from_loader in find_spec
      Drop deprecated `issue_body` from the forms
      Make changelog tmpl compatible w/ new towncrier
      Add a change note for PR #2654
      🔥 Drop the Netlify configs

T. Wouters (2):
      Fix typo in setup.py example in quickstart guide.
      Update quickstart.rst

Tarek Ziadé (42):
      fixed #4394 make the storage of the password optional in .pypirc
      Merged revisions 68415 via svnmerge from
      Issue #4863, removing remaining bits
      Merged revisions 68933 via svnmerge from
      #5158: added documentation on the depends option in distutils extensions
      Merged revisions 69566 via svnmerge from
      Fixed #2279: distutils.sdist.add_defaults now add files listed in package_data and data_files
      Merged revisions 69692 via svnmerge from
      using versionchanged instead of versionadded for distutils doc on sdist default files
      Merged revisions 69861 via svnmerge from
      more info on long_description
      Merged revisions 70007 via svnmerge from
      #5583 Added optional Extensions in Distutils
      Merged revisions 70910 via svnmerge from
      Fixed #5095: msi missing from Distutils bdist formats
      Merged revisions 71291 via svnmerge from
      fixed link
      Merged revisions 71467 via svnmerge from
      Merged revisions 71467 via svnmerge from
      #5732: added the check command into Distutils
      Merged revisions 71473 via svnmerge from
      Fixed #6287: documentation for the license field in distutils
      Merged revisions 73441 via svnmerge from
      Merged revisions 73441 via svnmerge from
      #6516 added owner/group support for tarfiles in Distutils
      Merged revisions 75192 via svnmerge from
      Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
      Merged revisions 75893 via svnmerge from
      Issue #7457: added a read_pkg_file method to distutils.dist.DistributionMetadata so we can read back PKG-INFO files
      Merged revisions 76702,76704 via svnmerge from
      reorganized the distutils doc a bit : the MANIFEST.in template system has its own section now. This is easier to find and follow
      Merged revisions 76826 via svnmerge from
      removed documentation on code that was reverted and pushed into distutils2
      upgraded distutils docs w.r.t. the manifest regeneration
      Merged revisions 81261 via svnmerge from
      Merged revisions 81261 via svnmerge from
      Merged revisions 81263 via svnmerge from
      Fixed #8909: now the doc details the size of the bitmap used in distutils' bdist_wininst
      Merged revisions 81788 via svnmerge from
      Merged revisions 81788 via svnmerge from
      Merged revisions 81790 via svnmerge from
      reverted distutils doc to its 3.1 state

Terry Jan Reedy (1):
      Issue #21726: Remove unnecessary and contextually wrong line.

TilmanK (1):
      bpo-35027, distutils doc: Correct note on setup.py change in Python 3.7 (GH-10032)

Victor Stinner (2):
      bpo-21536: C extensions are no longer linked to libpython (GH-12946)
      bpo-37481: Deprecate distutils bdist_wininst command (GH-14553)

Zachary Ware (4):
      Add missing parenthesis.  Found by cocoatomo on docs@.
      Remove superfluous open parenthesis.  Noticed by cocoatomo on docs@.
      Fix versionchanged directives
      Remove all mention of Windows IA-64 support (GH-3389)

Zack Didcott (1):
      Update dependency_management.rst

Zhaorong Ma (1):
      Doc: Fix missing bracket (GH-13163)

animalize (1):
      Use /O2 compiler option instead of /Ox for MSVC

dofuuz (3):
      Add Visual Studio 2017 Express detection
      Find VC Express 2017 explicitly, not ARM tools.
      Create 2663.change.rst

jdemeyer (1):
      bpo-25592: Improve documentation of distutils data_files (GH-9767)

layday (4):
      build_meta: produce informative error when a dist is not found
      fixup! build_meta: produce informative error when a dist is not found
      fixup! fixup! build_meta: produce informative error when a dist is not found
      fixup! build_meta: produce informative error when a dist is not found

xdegaye (1):
      bpo-21536: On Android, C extensions are linked to libpython (GH-12989)

Éric Araujo (56):
      Use a marker in generated MANIFEST files, don't touch files without it. Fixes #8688.
      Merged revisions 83993 via svnmerge from
      Fix version{added,changed} and spacing in NEWS
      Merged revisions 83993 via svnmerge from
      Manually merge r83995: Fix version{added,changed} and spacing in NEWS
      Fix typo
      Merged revisions 84050 via svnmerge from
      Merged revisions 84050 via svnmerge from
      Fix bad merge
      Fix wrong name in docstring and doc (#10693).  Original patch by Eli Bendersky.
      Merged revisions 87277 via svnmerge from
      Merged revisions 87277 via svnmerge from
      Add missing read() in distutils doc.
      Merged revisions 88613 via svnmerge from
      Merged revisions 88613 via svnmerge from
      Merged revisions 88613 via svnmerge from
      Fix weird executable name
      Backport doc improvements for distutils.cmd.Command (#9223).
      Minor touch-ups in distutils.cmd.Command doc
      Re-add missing doc stub for the distutils check command
      Re-add missing doc stub for the distutils check command
      Branch merge
      Fix markup: arguments in a class directive are __init__ arguments, not base classes
      Fix markup: arguments in a class directive are __init__ arguments, not base classes
      Add documentation for the packaging module.
      Packaging doc: Add missing index file, improve main page description.
      Add examples that work on Windows to distutils docs (#1626300)
      Add examples that work on Windows to distutils docs (#1626300)
      Turn raw URI into real link
      Turn raw URI into real link
      Fix regression with distutils MANIFEST handing (#11104, #8688).
      Fix regression with distutils MANIFEST handing (#11104, #8688).
      Merge doc changes from 3.2 (#8617, #10745).
      Remove obsolete term + indicate how to find the program (#1626300).
      Fix typo in command name
      Remove obsolete term + indicate how to find the program (#1626300).
      Fix typo in command name
      Fix type information in distutils API reference (#9302).
      Document the "optional" argument of distutils’ Extension class
      Document the "optional" argument of distutils’ Extension class
      Fix type information in distutils API reference (#9302).
      Document the "optional" argument of distutils’ Extension class
      Synchronize packaging docs with distutils’ (includes fix for #9302)
      Fix distutils byte-compilation to comply with PEP 3147 (#11254).
      Hide or remove user-visible XXX notes from distutils doc (#13716).
      distutils 2.7’s Extension does not support optional (#13865).
      Hide or remove user-visible XXX notes from distutils doc (#13716).
      Remove packaging from the standard library.
      Move distutils install doc back into place.
      Adapt mentions of future changes in doc
      Ignore .nfs* files in distutils (#7719).
      Add versionchanged note for a56cebff113a
      Ignore .nfs* files in distutils (#7719).
      Avoid “error: None” messages from distutils (#4931).
      Make distutils error messages more helpful (#11599).
      Clarify distutils’ clean command (ref #6142)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants