Imported Upstream version 42.0.0
[platform/upstream/python3-setuptools.git] / CHANGES.rst
1 v42.0.0
2 -------
3
4 * #1830, #1909: Mark the easy_install script and setuptools command as deprecated, and use `pip <https://pip.pypa.io/en/stable/>`_ when available to fetch/build wheels for missing ``setup_requires``/``tests_require`` requirements, with the following differences in behavior:
5    * support for ``python_requires``
6    * better support for wheels (proper handling of priority with respect to PEP 425 tags)
7    * PEP 517/518 support
8    * eggs are not supported
9    * no support for the ``allow_hosts`` easy_install option (``index_url``/``find_links`` are still honored)
10    * pip environment variables are honored (and take precedence over easy_install options)
11 * #1898: Removed the "upload" and "register" commands in favor of `twine <https://pypi.org/p/twine>`_.
12 * #1767: Add support for the ``license_files`` option in ``setup.cfg`` to automatically
13   include multiple license files in a source distribution.
14 * #1829: Update handling of wheels compatibility tags:
15   * add support for manylinux2010
16   * fix use of removed 'm' ABI flag in Python 3.8 on Windows
17 * #1861: Fix empty namespace package installation from wheel.
18 * #1877: Setuptools now exposes a new entry point hook "setuptools.finalize_distribution_options", enabling plugins like `setuptools_scm <https://pypi.org/project/setuptools_scm>`_ to configure options on the distribution at finalization time.
19
20
21 v41.6.0
22 -------
23
24 * #479: Replace usage of deprecated ``imp`` module with local re-implementation in ``setuptools._imp``.
25
26
27 v41.5.1
28 -------
29
30 * #1891: Fix code for detecting Visual Studio's version on Windows under Python 2.
31
32
33 v41.5.0
34 -------
35
36 * #1811: Improve Visual C++ 14.X support, mainly for Visual Studio 2017 and 2019.
37 * #1814: Fix ``pkg_resources.Requirement`` hash/equality implementation: take PEP 508 direct URL into account.
38 * #1824: Fix tests when running under ``python3.10``.
39 * #1878: Formally deprecated the ``test`` command, with the recommendation that users migrate to ``tox``.
40 * #1860: Update documentation to mention the egg format is not supported by pip and dependency links support was dropped starting with pip 19.0.
41 * #1862: Drop ez_setup documentation: deprecated for some time (last updated in 2016), and still relying on easy_install (deprecated too).
42 * #1868: Drop most documentation references to (deprecated) EasyInstall.
43 * #1884: Added a trove classifier to document support for Python 3.8.
44 * #1886: Added Python 3.8 release to the Travis test matrix.
45
46
47 v41.4.0
48 -------
49
50 * #1847: In declarative config, now traps errors when invalid ``python_requires`` values are supplied.
51
52
53 v41.3.0
54 -------
55
56 * #1690: When storing extras, rely on OrderedSet to retain order of extras as indicated by the packager, which will also be deterministic on Python 2.7 (with PYTHONHASHSEED unset) and Python 3.6+.
57 * #1858: Fixed failing integration test triggered by 'long_description_content_type' in packaging.
58
59
60 v41.2.0
61 -------
62
63 * #479: Remove some usage of the deprecated ``imp`` module.
64 * #1565: Changed html_sidebars from string to list of string as per
65   https://www.sphinx-doc.org/en/master/changes.html#id58
66
67
68 v41.1.0
69 -------
70
71 * #1697: Moved most of the constants from setup.py to setup.cfg
72 * #1749: Fixed issue with the PEP 517 backend where building a source distribution would fail if any tarball existed in the destination directory.
73 * #1750: Fixed an issue with PEP 517 backend where wheel builds would fail if the destination directory did not already exist.
74 * #1756: Force metadata-version >= 1.2. when project urls are present.
75 * #1769: Improve ``package_data`` check: ensure the dictionary values are lists/tuples of strings.
76 * #1788: Changed compatibility fallback logic for ``html.unescape`` to avoid accessing ``HTMLParser.unescape`` when not necessary. ``HTMLParser.unescape`` is deprecated and will be removed in Python 3.9.
77 * #1790: Added the file path to the error message when a ``UnicodeDecodeError`` occurs while reading a metadata file.
78 * #1776: Use license classifiers rather than the license field.
79
80
81 v41.0.1
82 -------
83
84 * #1671: Fixed issue with the PEP 517 backend that prevented building a wheel when the ``dist/`` directory contained existing ``.whl`` files.
85 * #1709: In test.paths_on_python_path, avoid adding unnecessary duplicates to the PYTHONPATH.
86 * #1741: In package_index, now honor "current directory" during a checkout of git and hg repositories under Windows
87
88
89 v41.0.0
90 -------
91
92 * #1735: When parsing setup.cfg files, setuptools now requires the files to be encoded as UTF-8. Any other encoding will lead to a UnicodeDecodeError. This change removes support for specifying an encoding using a 'coding: ' directive in the header of the file, a feature that was introduces in 40.7. Given the recent release of the aforementioned feature, it is assumed that few if any projects are utilizing the feature to specify an encoding other than UTF-8.
93
94
95 v40.9.0
96 -------
97
98 * #1675: Added support for ``setup.cfg``-only projects when using the ``setuptools.build_meta`` backend. Projects that have enabled PEP 517 no longer need to have a ``setup.py`` and can use the purely declarative ``setup.cfg`` configuration file instead.
99 * #1720: Added support for ``pkg_resources.parse_requirements``-style requirements in ``setup_requires`` when ``setup.py`` is invoked from the ``setuptools.build_meta`` build backend.
100 * #1664: Added the path to the ``PKG-INFO`` or ``METADATA`` file in the exception
101   text when the ``Version:`` header can't be found.
102 * #1705: Removed some placeholder documentation sections referring to deprecated features.
103
104
105 v40.8.0
106 -------
107
108 * #1652: Added the ``build_meta:__legacy__`` backend, a "compatibility mode" PEP 517 backend that can be used as the default when ``build-backend`` is left unspecified in ``pyproject.toml``.
109 * #1635: Resource paths are passed to ``pkg_resources.resource_string`` and similar no longer accept paths that traverse parents, that begin with a leading ``/``. Violations of this expectation raise DeprecationWarnings and will become errors. Additionally, any paths that are absolute on Windows are strictly disallowed and will raise ValueErrors.
110 * #1536: ``setuptools`` will now automatically include licenses if ``setup.cfg`` contains a ``license_file`` attribute, unless this file is manually excluded inside ``MANIFEST.in``.
111
112
113 v40.7.3
114 -------
115
116 * #1670: In package_index, revert to using a copy of splituser from Python 3.8. Attempts to use ``urllib.parse.urlparse`` led to problems as reported in #1663 and #1668. This change serves as an alternative to #1499 and fixes #1668.
117
118
119 v40.7.2
120 -------
121
122 * #1666: Restore port in URL handling in package_index.
123
124
125 v40.7.1
126 -------
127
128 * #1660: On Python 2, when reading config files, downcast options from text to bytes to satisfy distutils expectations.
129
130
131 v40.7.0
132 -------
133
134 * #1551: File inputs for the `license` field in `setup.cfg` files now explicitly raise an error.
135 * #1180: Add support for non-ASCII in setup.cfg (#1062). Add support for native strings on some parameters (#1136).
136 * #1499: ``setuptools.package_index`` no longer relies on the deprecated ``urllib.parse.splituser`` per Python #27485.
137 * #1544: Added tests for PackageIndex.download (for git URLs).
138 * #1625: In PEP 517 build_meta builder, ensure that sdists are built as gztar per the spec.
139
140
141 v40.6.3
142 -------
143
144 * #1594: PEP 517 backend no longer declares setuptools as a dependency as it can be assumed.
145
146
147 v40.6.2
148 -------
149
150 * #1592: Fix invalid dependency on external six module (instead of vendored version).
151
152
153 v40.6.1
154 -------
155
156 * #1590: Fixed regression where packages without ``author`` or ``author_email`` fields generated malformed package metadata.
157
158
159 v40.6.0
160 -------
161
162 * #1541: Officially deprecated the ``requires`` parameter in ``setup()``.
163 * #1519: In ``pkg_resources.normalize_path``, additional path normalization is now performed to ensure path values to a directory is always the same, preventing false positives when checking scripts have a consistent prefix to set up on Windows.
164 * #1545: Changed the warning class of all deprecation warnings; deprecation warning classes are no longer derived from ``DeprecationWarning`` and are thus visible by default.
165 * #1554: ``build_meta.build_sdist`` now includes ``setup.py`` in source distributions by default.
166 * #1576: Started monkey-patching ``get_metadata_version`` and ``read_pkg_file`` onto ``distutils.DistributionMetadata`` to retain the correct version on the ``PKG-INFO`` file in the (deprecated) ``upload`` command.
167 * #1533: Restricted the ``recursive-include setuptools/_vendor`` to contain only .py and .txt files.
168 * #1395: Changed Pyrex references to Cython in the documentation.
169 * #1456: Documented that the ``rpmbuild`` packages is required for the ``bdist_rpm`` command.
170 * #1537: Documented how to use ``setup.cfg`` for ``src/ layouts``
171 * #1539: Added minimum version column in ``setup.cfg`` metadata table.
172 * #1552: Fixed a minor typo in the python 2/3 compatibility documentation.
173 * #1553: Updated installation instructions to point to ``pip install`` instead of ``ez_setup.py``.
174 * #1560: Updated ``setuptools`` distribution documentation to remove some outdated information.
175 * #1564: Documented ``setup.cfg`` minimum version for version and project_urls.
176 * #1572: Added the ``concurrent.futures`` backport ``futures`` to the Python 2.7 test suite requirements.
177
178
179 v40.5.0
180 -------
181
182 * #1335: In ``pkg_resources.normalize_path``, fix issue on Cygwin when cwd contains symlinks.
183 * #1502: Deprecated support for downloads from Subversion in package_index/easy_install.
184 * #1517: Dropped use of six.u in favor of `u""` literals.
185 * #1520: Added support for ``data_files`` in ``setup.cfg``.
186 * #1525: Fixed rendering of the deprecation warning in easy_install doc.
187
188
189 v40.4.3
190 -------
191
192 * #1480: Bump vendored pyparsing in pkg_resources to 2.2.1.
193
194
195 v40.4.2
196 -------
197
198 * #1497: Updated gitignore in repo.
199
200
201 v40.4.1
202 -------
203
204 * #1480: Bump vendored pyparsing to 2.2.1.
205
206
207 v40.4.0
208 -------
209
210 * #1481: Join the sdist ``--dist-dir`` and the ``build_meta`` sdist directory argument to point to the same target (meaning the build frontend no longer needs to clean manually the dist dir to avoid multiple sdist presence, and setuptools no longer needs to handle conflicts between the two).
211
212
213 v40.3.0
214 -------
215
216 * #1402: Fixed a bug with namespace packages under Python 3.6 when one package in
217   current directory hides another which is installed.
218 * #1427: Set timestamp of ``.egg-info`` directory whenever ``egg_info`` command is run.
219 * #1474: ``build_meta.get_requires_for_build_sdist`` now does not include the ``wheel`` package anymore.
220 * #1486: Suppress warnings in pkg_resources.handle_ns.
221 * #1479: Remove internal use of six.binary_type.
222
223
224 v40.2.0
225 -------
226
227 * #1466: Fix handling of Unicode arguments in PEP 517 backend
228
229
230 v40.1.1
231 --------
232
233 * #1465: Fix regression with `egg_info` command when tagging is used.
234
235
236 v40.1.0
237 -------
238
239 * #1410: Deprecated ``upload`` and ``register`` commands.
240 * #1312: Introduced find_namespace_packages() to find PEP 420 namespace packages.
241 * #1420: Added find_namespace: directive to config parser.
242 * #1418: Solved race in when creating egg cache directories.
243 * #1450: Upgraded vendored PyParsing from 2.1.10 to 2.2.0.
244 * #1451: Upgraded vendored appdirs from 1.4.0 to 1.4.3.
245 * #1388: Fixed "Microsoft Visual C++ Build Tools" link in exception when Visual C++ not found.
246 * #1389: Added support for scripts which have unicode content.
247 * #1416: Moved several Python version checks over to using ``six.PY2`` and ``six.PY3``.
248 * #1441: Removed spurious executable permissions from files that don't need them.
249
250
251 v40.0.0
252 -------
253
254 * #1342: Drop support for Python 3.3.
255 * #1366: In package_index, fixed handling of encoded entities in URLs.
256 * #1383: In pkg_resources VendorImporter, avoid removing packages imported from the root.
257 * #1379: Minor doc fixes after actually using the new release process.
258 * #1385: Removed section on non-package data files.
259 * #1403: Fix developer's guide.
260 * #1404: Fix PEP 518 configuration: set build requirements in ``pyproject.toml`` to ``["wheel"]``.
261
262
263 v39.2.0
264 -------
265
266 * #1359: Support using "file:" to load a PEP 440-compliant package version from
267   a text file.
268 * #1360: Fixed issue with a mismatch between the name of the package and the
269   name of the .dist-info file in wheel files
270 * #1364: Add `__dir__()` implementation to `pkg_resources.Distribution()` that
271   includes the attributes in the `_provider` instance variable.
272 * #1365: Take the package_dir option into account when loading the version from
273   a module attribute.
274 * #1353: Added coverage badge to README.
275 * #1356: Made small fixes to the developer guide documentation.
276 * #1357: Fixed warnings in documentation builds and started enforcing that the
277   docs build without warnings in tox.
278 * #1376: Updated release process docs.
279 * #1343: The ``setuptools`` specific ``long_description_content_type``,
280   ``project_urls`` and ``provides_extras`` fields are now set consistently
281   after any ``distutils`` ``setup_keywords`` calls, allowing them to override
282   values.
283 * #1352: Added ``tox`` environment for documentation builds.
284 * #1354: Added ``towncrier`` for changelog management.
285 * #1355: Add PR template.
286 * #1368: Fixed tests which failed without network connectivity.
287 * #1369: Added unit tests for PEP 425 compatibility tags support.
288 * #1372: Stop testing Python 3.3 in Travis CI, now that the latest version of
289   ``wheel`` no longer installs on it.
290
291 v39.1.0
292 -------
293
294 * #1340: Update all PyPI URLs to reflect the switch to the
295   new Warehouse codebase.
296 * #1337: In ``pkg_resources``, now support loading resources
297   for modules loaded by the ``SourcelessFileLoader``.
298 * #1332: Silence spurious wheel related warnings on Windows.
299
300 v39.0.1
301 -------
302
303 * #1297: Restore Unicode handling for Maintainer fields in
304   metadata.
305
306 v39.0.0
307 -------
308
309 * #1296: Setuptools now vendors its own direct dependencies, no
310   longer relying on the dependencies as vendored by pkg_resources.
311
312 * #296: Removed long-deprecated support for iteration on
313   Version objects as returned by ``pkg_resources.parse_version``.
314   Removed the ``SetuptoolsVersion`` and
315   ``SetuptoolsLegacyVersion`` names as well. They should not
316   have been used, but if they were, replace with
317   ``Version`` and ``LegacyVersion`` from ``packaging.version``.
318
319 v38.7.0
320 -------
321
322 * #1288: Add support for maintainer in PKG-INFO.
323
324 v38.6.1
325 -------
326
327 * #1292: Avoid generating ``Provides-Extra`` in metadata when
328   no extra is present (but environment markers are).
329
330 v38.6.0
331 -------
332
333 * #1286: Add support for Metadata 2.1 (PEP 566).
334
335 v38.5.2
336 -------
337
338 * #1285: Fixed RuntimeError in pkg_resources.parse_requirements
339   on Python 3.7 (stemming from PEP 479).
340
341 v38.5.1
342 -------
343
344 * #1271: Revert to Cython legacy ``build_ext`` behavior for
345   compatibility.
346
347 v38.5.0
348 -------
349
350 * #1229: Expand imports in ``build_ext`` to refine detection of
351   Cython availability.
352
353 * #1270: When Cython is available, ``build_ext`` now uses the
354   new_build_ext.
355
356 v38.4.1
357 -------
358
359 * #1257: In bdist_egg.scan_module, fix ValueError on Python 3.7.
360
361 v38.4.0
362 -------
363
364 * #1231: Removed warning when PYTHONDONTWRITEBYTECODE is enabled.
365
366 v38.3.0
367 -------
368
369 * #1210: Add support for PEP 345 Project-URL metadata.
370 * #1207: Add support for ``long_description_type`` to setup.cfg
371   declarative config as intended and documented.
372
373 v38.2.5
374 -------
375
376 * #1232: Fix trailing slash handling in ``pkg_resources.ZipProvider``.
377
378 v38.2.4
379 -------
380
381 * #1220: Fix `data_files` handling when installing from wheel.
382
383 v38.2.3
384 -------
385
386 * fix Travis' Python 3.3 job.
387
388 v38.2.2
389 -------
390
391 * #1214: fix handling of namespace packages when installing
392   from a wheel.
393
394 v38.2.1
395 -------
396
397 * #1212: fix encoding handling of metadata when installing
398   from a wheel.
399
400 v38.2.0
401 -------
402
403 * #1200: easy_install now support installing from wheels:
404   they will be installed as standalone unzipped eggs.
405
406 v38.1.0
407 -------
408
409 * #1208: Improve error message when failing to locate scripts
410   in egg-info metadata.
411
412 v38.0.0
413 -------
414
415 * #458: In order to support deterministic builds, Setuptools no
416   longer allows packages to declare ``install_requires`` as
417   unordered sequences (sets or dicts).
418
419 v37.0.0
420 -------
421
422 * #878: Drop support for Python 2.6. Python 2.6 users should
423   rely on 'setuptools < 37dev'.
424
425 v36.8.0
426 -------
427
428 * #1190: In SSL support for package index operations, use SNI
429   where available.
430
431 v36.7.3
432 -------
433
434 * #1175: Bug fixes to ``build_meta`` module.
435
436 v36.7.2
437 -------
438
439 * #701: Fixed duplicate test discovery on Python 3.
440
441 v36.7.1
442 -------
443
444 * #1193: Avoid test failures in bdist_egg when
445   PYTHONDONTWRITEBYTECODE is set.
446
447 v36.7.0
448 -------
449
450 * #1054: Support ``setup_requires`` in ``setup.cfg`` files.
451
452 v36.6.1
453 -------
454
455 * #1132: Removed redundant and costly serialization/parsing step
456   in ``EntryPoint.__init__``.
457
458 * #844: ``bdist_egg --exclude-source-files`` now tested and works
459   on Python 3.
460
461 v36.6.0
462 -------
463
464 * #1143: Added ``setuptools.build_meta`` module, an implementation
465   of PEP-517 for Setuptools-defined packages.
466
467 * #1143: Added ``dist_info`` command for producing dist_info
468   metadata.
469
470 v36.5.0
471 -------
472
473 * #170: When working with Mercurial checkouts, use Windows-friendly
474   syntax for suppressing output.
475
476 * Inspired by #1134, performed substantial refactoring of
477   ``pkg_resources.find_on_path`` to facilitate an optimization
478   for paths with many non-version entries.
479
480 v36.4.0
481 -------
482
483 * #1075: Add new ``Description-Content-Type`` metadata field. `See here for
484   documentation on how to use this field.
485   <https://packaging.python.org/specifications/#description-content-type>`_
486
487 * #1068: Sort files and directories when building eggs for
488   deterministic order.
489
490 * #196: Remove caching of easy_install command in fetch_build_egg.
491   Fixes issue where ``pytest-runner-N.N`` would satisfy the installation
492   of ``pytest``.
493
494 * #1129: Fix working set dependencies handling when replacing conflicting
495   distributions (e.g. when using ``setup_requires`` with a conflicting
496   transitive dependency, fix #1124).
497
498 * #1133: Improved handling of README files extensions and added
499   Markdown to the list of searched READMES.
500
501 * #1135: Improve performance of pkg_resources import by not invoking
502   ``access`` or ``stat`` and using ``os.listdir`` instead.
503
504 v36.3.0
505 -------
506
507 * #1131: Make possible using several files within ``file:`` directive
508   in metadata.long_description in ``setup.cfg``.
509
510 v36.2.7
511 -------
512
513 * fix #1105: Fix handling of requirements with environment
514   markers when declared in ``setup.cfg`` (same treatment as
515   for #1081).
516
517 v36.2.6
518 -------
519
520 * #462: Don't assume a directory is an egg by the ``.egg``
521   extension alone.
522
523 v36.2.5
524 -------
525
526 * #1093: Fix test command handler with extras_require.
527 * #1112, #1091, #1115: Now using Trusty containers in
528   Travis for CI and CD.
529
530 v36.2.4
531 -------
532
533 * #1092: ``pkg_resources`` now uses ``inspect.getmro`` to
534   resolve classes in method resolution order.
535
536 v36.2.3
537 -------
538
539 * #1102: Restore behavior for empty extras.
540
541 v36.2.2
542 -------
543
544 * #1099: Revert commit a3ec721, restoring intended purpose of
545   extras as part of a requirement declaration.
546
547 v36.2.1
548 -------
549
550 * fix #1086
551 * fix #1087
552 * support extras specifiers in install_requires requirements
553
554 v36.2.0
555 -------
556
557 * #1081: Environment markers indicated in ``install_requires``
558   are now processed and treated as nameless ``extras_require``
559   with markers, allowing their metadata in requires.txt to be
560   correctly generated.
561
562 * #1053: Tagged commits are now released using Travis-CI
563   build stages, meaning releases depend on passing tests on
564   all supported Python versions (Linux) and not just the latest
565   Python version.
566
567 v36.1.1
568 -------
569
570 * #1083: Correct ``py31compat.makedirs`` to correctly honor
571   ``exist_ok`` parameter.
572 * #1083: Also use makedirs compatibility throughout setuptools.
573
574 v36.1.0
575 -------
576
577 * #1083: Avoid race condition on directory creation in
578   ``pkg_resources.ensure_directory``.
579
580 * Removed deprecation of and restored support for
581   ``upload_docs`` command for sites other than PyPI.
582   Only warehouse is dropping support, but services like
583   `devpi <http://doc.devpi.net/latest/>`_ continue to
584   support docs built by setuptools' plugins. See
585   `this comment <https://bitbucket.org/hpk42/devpi/issues/388/support-rtd-model-for-building-uploading#comment-34292423>`_
586   for more context on the motivation for this change.
587
588 v36.0.1
589 -------
590
591 * #1042: Fix import in py27compat module that still
592   referenced six directly, rather than through the externs
593   module (vendored packages hook).
594
595 v36.0.0
596 -------
597
598 * #980 and others: Once again, Setuptools vendors all
599   of its dependencies. It seems to be the case that in
600   the Python ecosystem, all build tools must run without
601   any dependencies (build, runtime, or otherwise). At
602   such a point that a mechanism exists that allows
603   build tools to have dependencies, Setuptools will adopt
604   it.
605
606 v35.0.2
607 -------
608
609 * #1015: Fix test failures on Python 3.7.
610
611 * #1024: Add workaround for Jython #2581 in monkey module.
612
613 v35.0.1
614 -------
615
616 * #992: Revert change introduced in v34.4.1, now
617   considered invalid.
618
619 * #1016: Revert change introduced in v35.0.0 per #1014,
620   referencing #436. The approach had unintended
621   consequences, causing sdist installs to be missing
622   files.
623
624 v35.0.0
625 -------
626
627 * #436: In egg_info.manifest_maker, no longer read
628   the file list from the manifest file, and instead
629   re-build it on each build. In this way, files removed
630   from the specification will not linger in the manifest.
631   As a result, any files manually added to the manifest
632   will be removed on subsequent egg_info invocations.
633   No projects should be manually adding files to the
634   manifest and should instead use MANIFEST.in or SCM
635   file finders to force inclusion of files in the manifest.
636
637 v34.4.1
638 -------
639
640 * #1008: In MSVC support, use always the last version available for Windows SDK and UCRT SDK.
641
642 * #1008: In MSVC support, fix "vcruntime140.dll" returned path with Visual Studio 2017.
643
644 * #992: In msvc.msvc9_query_vcvarsall, ensure the
645   returned dicts have str values and not Unicode for
646   compatibility with os.environ.
647
648 v34.4.0
649 -------
650
651 * #995: In MSVC support, add support for "Microsoft Visual Studio 2017" and "Microsoft Visual Studio Build Tools 2017".
652
653 * #999 via #1007: Extend support for declarative package
654   config in a setup.cfg file to include the options
655   ``python_requires`` and ``py_modules``.
656
657 v34.3.3
658 -------
659
660 * #967 (and #997): Explicitly import submodules of
661   packaging to account for environments where the imports
662   of those submodules is not implied by other behavior.
663
664 v34.3.2
665 -------
666
667 * #993: Fix documentation upload by correcting
668   rendering of content-type in _build_multipart
669   on Python 3.
670
671 v34.3.1
672 -------
673
674 * #988: Trap ``os.unlink`` same as ``os.remove`` in
675   ``auto_chmod`` error handler.
676
677 * #983: Fixes to invalid escape sequence deprecations on
678   Python 3.6.
679
680 v34.3.0
681 -------
682
683 * #941: In the upload command, if the username is blank,
684   default to ``getpass.getuser()``.
685
686 * #971: Correct distutils findall monkeypatch to match
687   appropriate versions (namely Python 3.4.6).
688
689 v34.2.0
690 -------
691
692 * #966: Add support for reading dist-info metadata and
693   thus locating Distributions from zip files.
694
695 * #968: Allow '+' and '!' in egg fragments
696   so that it can take package names that contain
697   PEP 440 conforming version specifiers.
698
699 v34.1.1
700 -------
701
702 * #953: More aggressively employ the compatibility issue
703   originally added in #706.
704
705 v34.1.0
706 -------
707
708 * #930: ``build_info`` now accepts two new parameters
709   to optimize and customize the building of C libraries.
710
711 v34.0.3
712 -------
713
714 * #947: Loosen restriction on the version of six required,
715   restoring compatibility with environments relying on
716   six 1.6.0 and later.
717
718 v34.0.2
719 -------
720
721 * #882: Ensure extras are honored when building the
722   working set.
723 * #913: Fix issue in develop if package directory has
724   a trailing slash.
725
726 v34.0.1
727 -------
728
729 * #935: Fix glob syntax in graft.
730
731 v34.0.0
732 -------
733
734 * #581: Instead of vendoring the growing list of
735   dependencies that Setuptools requires to function,
736   Setuptools now requires these dependencies just like
737   any other project. Unlike other projects, however,
738   Setuptools cannot rely on ``setup_requires`` to
739   demand the dependencies it needs to install because
740   its own machinery would be necessary to pull those
741   dependencies if not present (a bootstrapping problem).
742   As a result, Setuptools no longer supports self upgrade or
743   installation in the general case. Instead, users are
744   directed to use pip to install and upgrade using the
745   ``wheel`` distributions of setuptools.
746
747   Users are welcome to contrive other means to install
748   or upgrade Setuptools using other means, such as
749   pre-installing the Setuptools dependencies with pip
750   or a bespoke bootstrap tool, but such usage is not
751   recommended and is not supported.
752
753   As discovered in #940, not all versions of pip will
754   successfully install Setuptools from its pre-built
755   wheel. If you encounter issues with "No module named
756   six" or "No module named packaging", especially
757   following a line "Running setup.py egg_info for package
758   setuptools", then your pip is not new enough.
759
760   There's an additional issue in pip where setuptools
761   is upgraded concurrently with other source packages,
762   described in pip #4253. The proposed workaround is to
763   always upgrade Setuptools first prior to upgrading
764   other packages that would upgrade Setuptools.
765
766 v33.1.1
767 -------
768
769 * #921: Correct issue where certifi fallback not being
770   reached on Windows.
771
772 v33.1.0
773 -------
774
775 Installation via pip, as indicated in the `Python Packaging
776 User's Guide <https://packaging.python.org/installing/>`_,
777 is the officially-supported mechanism for installing
778 Setuptools, and this recommendation is now explicit in the
779 much more concise README.
780
781 Other edits and tweaks were made to the documentation. The
782 codebase is unchanged.
783
784 v33.0.0
785 -------
786
787 * #619: Removed support for the ``tag_svn_revision``
788   distribution option. If Subversion tagging support is
789   still desired, consider adding the functionality to
790   setuptools_svn in setuptools_svn #2.
791
792 v32.3.1
793 -------
794
795 * #866: Use ``dis.Bytecode`` on Python 3.4 and later in
796   ``setuptools.depends``.
797
798 v32.3.0
799 -------
800
801 * #889: Backport proposed fix for disabling interpolation in
802   distutils.Distribution.parse_config_files.
803
804 v32.2.0
805 -------
806
807 * #884: Restore support for running the tests under
808   `pytest-runner <https://github.com/pytest-dev/pytest-runner>`_
809   by ensuring that PYTHONPATH is honored in tests invoking
810   a subprocess.
811
812 v32.1.3
813 -------
814
815 * #706: Add rmtree compatibility shim for environments where
816   rmtree fails when passed a unicode string.
817
818 v32.1.2
819 -------
820
821 * #893: Only release sdist in zip format as warehouse now
822   disallows releasing two different formats.
823
824 v32.1.1
825 -------
826
827 * #704: More selectively ensure that 'rmtree' is not invoked with
828   a byte string, enabling it to remove files that are non-ascii,
829   even on Python 2.
830
831 * #712: In 'sandbox.run_setup', ensure that ``__file__`` is
832   always a ``str``, modeling the behavior observed by the
833   interpreter when invoking scripts and modules.
834
835 v32.1.0
836 -------
837
838 * #891: In 'test' command on test failure, raise DistutilsError,
839   suppression invocation of subsequent commands.
840
841 v32.0.0
842 -------
843
844 * #890: Revert #849. ``global-exclude .foo`` will not match all
845   ``*.foo`` files any more. Package authors must add an explicit
846   wildcard, such as ``global-exclude *.foo``, to match all
847   ``.foo`` files. See #886, #849.
848
849 v31.0.1
850 -------
851
852 * #885: Fix regression where 'pkg_resources._rebuild_mod_path'
853   would fail when a namespace package's '__path__' was not
854   a list with a sort attribute.
855
856 v31.0.0
857 -------
858
859 * #250: Install '-nspkg.pth' files for packages installed
860   with 'setup.py develop'. These .pth files allow
861   namespace packages installed by pip or develop to
862   co-mingle. This change required the removal of the
863   change for #805 and pip #1924, introduced in 28.3.0 and implicated
864   in #870, but means that namespace packages not in a
865   site packages directory will no longer work on Python
866   earlier than 3.5, whereas before they would work on
867   Python not earlier than 3.3.
868
869 v30.4.0
870 -------
871
872 * #879: For declarative config:
873
874   - read_configuration() now accepts ignore_option_errors argument. This allows scraping tools to read metadata without a need to download entire packages. E.g. we can gather some stats right from GitHub repos just by downloading setup.cfg.
875
876   - packages find: directive now supports fine tuning from a subsection. The same arguments as for find() are accepted.
877
878 v30.3.0
879 -------
880
881 * #394 via #862: Added support for `declarative package
882   config in a setup.cfg file
883   <https://setuptools.readthedocs.io/en/latest/setuptools.html#configuring-setup-using-setup-cfg-files>`_.
884
885 v30.2.1
886 -------
887
888 * #850: In test command, invoke unittest.main with
889   indication not to exit the process.
890
891 v30.2.0
892 -------
893
894 * #854: Bump to vendored Packaging 16.8.
895
896 v30.1.0
897 -------
898
899 * #846: Also trap 'socket.error' when opening URLs in
900   package_index.
901
902 * #849: Manifest processing now matches the filename
903   pattern anywhere in the filename and not just at the
904   start. Restores behavior found prior to 28.5.0.
905
906 v30.0.0
907 -------
908
909 * #864: Drop support for Python 3.2. Systems requiring
910   Python 3.2 support must use 'setuptools < 30'.
911
912 * #825: Suppress warnings for single files.
913
914 * #830 via #843: Once again restored inclusion of data
915   files to sdists, but now trap TypeError caused by
916   techniques employed rjsmin and similar.
917
918 v29.0.1
919 -------
920
921 * #861: Re-release of v29.0.1 with the executable script
922   launchers bundled. Now, launchers are included by default
923   and users that want to disable this behavior must set the
924   environment variable
925   'SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES' to
926   a false value like "false" or "0".
927
928 v29.0.0
929 -------
930
931 * #841: Drop special exception for packages invoking
932   win32com during the build/install process. See
933   Distribute #118 for history.
934
935 v28.8.0
936 -------
937
938 * #629: Per the discussion, refine the sorting to use version
939   value order for more accurate detection of the latest
940   available version when scanning for packages. See also
941   #829.
942
943 * #837: Rely on the config var "SO" for Python 3.3.0 only
944   when determining the ext filename.
945
946 v28.7.1
947 -------
948
949 * #827: Update PyPI root for dependency links.
950
951 * #833: Backed out changes from #830 as the implementation
952   seems to have problems in some cases.
953
954 v28.7.0
955 -------
956
957 * #832: Moved much of the namespace package handling
958   functionality into a separate module for re-use in something
959   like #789.
960 * #830: ``sdist`` command no longer suppresses the inclusion
961   of data files, re-aligning with the expectation of distutils
962   and addressing #274 and #521.
963
964 v28.6.1
965 -------
966
967 * #816: Fix manifest file list order in tests.
968
969 v28.6.0
970 -------
971
972 * #629: When scanning for packages, ``pkg_resources`` now
973   ignores empty egg-info directories and gives precedence to
974   packages whose versions are lexicographically greatest,
975   a rough approximation for preferring the latest available
976   version.
977
978 v28.5.0
979 -------
980
981 * #810: Tests are now invoked with tox and not setup.py test.
982 * #249 and #450 via #764: Avoid scanning the whole tree
983   when building the manifest. Also fixes a long-standing bug
984   where patterns in ``MANIFEST.in`` had implicit wildcard
985   matching. This caused ``global-exclude .foo`` to exclude
986   all ``*.foo`` files, but also ``global-exclude bar.py`` to
987   exclude ``foo_bar.py``.
988
989 v28.4.0
990 -------
991
992 * #732: Now extras with a hyphen are honored per PEP 426.
993 * #811: Update to pyparsing 2.1.10.
994 * Updated ``setuptools.command.sdist`` to re-use most of
995   the functionality directly from ``distutils.command.sdist``
996   for the ``add_defaults`` method with strategic overrides.
997   See #750 for rationale.
998 * #760 via #762: Look for certificate bundle where SUSE
999   Linux typically presents it. Use ``certifi.where()`` to locate
1000   the bundle.
1001
1002 v28.3.0
1003 -------
1004
1005 * #809: In ``find_packages()``, restore support for excluding
1006   a parent package without excluding a child package.
1007
1008 * #805: Disable ``-nspkg.pth`` behavior on Python 3.3+ where
1009   PEP-420 functionality is adequate. Fixes pip #1924.
1010
1011 v28.1.0
1012 -------
1013
1014 * #803: Bump certifi to 2016.9.26.
1015
1016 v28.0.0
1017 -------
1018
1019 * #733: Do not search excluded directories for packages.
1020   This introduced a backwards incompatible change in ``find_packages()``
1021   so that ``find_packages(exclude=['foo']) == []``, excluding subpackages of ``foo``.
1022   Previously, ``find_packages(exclude=['foo']) == ['foo.bar']``,
1023   even though the parent ``foo`` package was excluded.
1024
1025 * #795: Bump certifi.
1026
1027 * #719: Suppress decoding errors and instead log a warning
1028   when metadata cannot be decoded.
1029
1030 v27.3.1
1031 -------
1032
1033 * #790: In MSVC monkeypatching, explicitly patch each
1034   function by name in the target module instead of inferring
1035   the module from the function's ``__module__``. Improves
1036   compatibility with other packages that might have previously
1037   patched distutils functions (i.e. NumPy).
1038
1039 v27.3.0
1040 -------
1041
1042 * #794: In test command, add installed eggs to PYTHONPATH
1043   when invoking tests so that subprocesses will also have the
1044   dependencies available. Fixes `tox 330
1045   <https://github.com/tox-dev/tox/issues/330>`_.
1046
1047 * #795: Update vendored pyparsing 2.1.9.
1048
1049 v27.2.0
1050 -------
1051
1052 * #520 and #513: Suppress ValueErrors in fixup_namespace_packages
1053   when lookup fails.
1054
1055 * Nicer, more consistent interfaces for msvc monkeypatching.
1056
1057 v27.1.2
1058 -------
1059
1060 * #779 via #781: Fix circular import.
1061
1062 v27.1.1
1063 -------
1064
1065 * #778: Fix MSVC monkeypatching.
1066
1067 v27.1.0
1068 -------
1069
1070 * Introduce the (private) ``monkey`` module to encapsulate
1071   the distutils monkeypatching behavior.
1072
1073 v27.0.0
1074 -------
1075
1076 * Now use Warehouse by default for
1077   ``upload``, patching ``distutils.config.PyPIRCCommand`` to
1078   affect default behavior.
1079
1080   Any config in .pypirc should be updated to replace
1081
1082     https://pypi.python.org/pypi/
1083
1084   with
1085
1086     https://upload.pypi.org/legacy/
1087
1088   Similarly, any passwords stored in the keyring should be
1089   updated to use this new value for "system".
1090
1091   The ``upload_docs`` command will continue to use the python.org
1092   site, but the command is now deprecated. Users are urged to use
1093   Read The Docs instead.
1094
1095 * #776: Use EXT_SUFFIX for py_limited_api renaming.
1096
1097 * #774 and #775: Use LegacyVersion from packaging when
1098   detecting numpy versions.
1099
1100 v26.1.1
1101 -------
1102
1103 * Re-release of 26.1.0 with pytest pinned to allow for automated
1104   deployment and thus proper packaging environment variables,
1105   fixing issues with missing executable launchers.
1106
1107 v26.1.0
1108 -------
1109
1110 * #763: ``pkg_resources.get_default_cache`` now defers to the
1111   `appdirs project <https://pypi.org/project/appdirs>`_ to
1112   resolve the cache directory. Adds a vendored dependency on
1113   appdirs to pkg_resources.
1114
1115 v26.0.0
1116 -------
1117
1118 * #748: By default, sdists are now produced in gzipped tarfile
1119   format by default on all platforms, adding forward compatibility
1120   for the same behavior in Python 3.6 (See Python #27819).
1121
1122 * #459 via #736: On Windows with script launchers,
1123   sys.argv[0] now reflects
1124   the name of the entry point, consistent with the behavior in
1125   distlib and pip wrappers.
1126
1127 * #752 via #753: When indicating ``py_limited_api`` to Extension,
1128   it must be passed as a keyword argument.
1129
1130 v25.4.0
1131 -------
1132
1133 * Add Extension(py_limited_api=True). When set to a truthy value,
1134   that extension gets a filename appropriate for code using Py_LIMITED_API.
1135   When used correctly this allows a single compiled extension to work on
1136   all future versions of CPython 3.
1137   The py_limited_api argument only controls the filename. To be
1138   compatible with multiple versions of Python 3, the C extension
1139   will also need to set -DPy_LIMITED_API=... and be modified to use
1140   only the functions in the limited API.
1141
1142 v25.3.0
1143 -------
1144
1145 * #739 Fix unquoted libpaths by fixing compatibility between `numpy.distutils` and `distutils._msvccompiler` for numpy < 1.11.2 (Fix issue #728, error also fixed in Numpy).
1146
1147 * #731: Bump certifi.
1148
1149 * Style updates. See #740, #741, #743, #744, #742, #747.
1150
1151 * #735: include license file.
1152
1153 v25.2.0
1154 -------
1155
1156 * #612 via #730: Add a LICENSE file which needs to be provided by the terms of
1157   the MIT license.
1158
1159 v25.1.6
1160 -------
1161
1162 * #725: revert `library_dir_option` patch (Error is related to `numpy.distutils` and make errors on non Numpy users).
1163
1164 v25.1.5
1165 -------
1166
1167 * #720
1168 * #723: Improve patch for `library_dir_option`.
1169
1170 v25.1.4
1171 -------
1172
1173 * #717
1174 * #713
1175 * #707: Fix Python 2 compatibility for MSVC by catching errors properly.
1176 * #715: Fix unquoted libpaths by patching `library_dir_option`.
1177
1178 v25.1.3
1179 -------
1180
1181 * #714 and #704: Revert fix as it breaks other components
1182   downstream that can't handle unicode. See #709, #710,
1183   and #712.
1184
1185 v25.1.2
1186 -------
1187
1188 * #704: Fix errors when installing a zip sdist that contained
1189   files named with non-ascii characters on Windows would
1190   crash the install when it attempted to clean up the build.
1191 * #646: MSVC compatibility - catch errors properly in
1192   RegistryInfo.lookup.
1193 * #702: Prevent UnboundLocalError when initial working_set
1194   is empty.
1195
1196 v25.1.1
1197 -------
1198
1199 * #686: Fix issue in sys.path ordering by pkg_resources when
1200   rewrite technique is "raw".
1201 * #699: Fix typo in msvc support.
1202
1203 v25.1.0
1204 -------
1205
1206 * #609: Setuptools will now try to download a distribution from
1207   the next possible download location if the first download fails.
1208   This means you can now specify multiple links as ``dependency_links``
1209   and all links will be tried until a working download link is encountered.
1210
1211 v25.0.2
1212 -------
1213
1214 * #688: Fix AttributeError in setup.py when invoked not from
1215   the current directory.
1216
1217 v25.0.1
1218 -------
1219
1220 * Cleanup of setup.py script.
1221
1222 * Fixed documentation builders by allowing setup.py
1223   to be imported without having bootstrapped the
1224   metadata.
1225
1226 * More style cleanup. See #677, #678, #679, #681, #685.
1227
1228 v25.0.0
1229 -------
1230
1231 * #674: Default ``sys.path`` manipulation by easy-install.pth
1232   is now "raw", meaning that when writing easy-install.pth
1233   during any install operation, the ``sys.path`` will not be
1234   rewritten and will no longer give preference to easy_installed
1235   packages.
1236
1237   To retain the old behavior when using any easy_install
1238   operation (including ``setup.py install`` when setuptools is
1239   present), set the environment variable:
1240
1241     SETUPTOOLS_SYS_PATH_TECHNIQUE=rewrite
1242
1243   This project hopes that that few if any environments find it
1244   necessary to retain the old behavior, and intends to drop
1245   support for it altogether in a future release. Please report
1246   any relevant concerns in the ticket for this change.
1247
1248 v24.3.1
1249 -------
1250
1251 * #398: Fix shebang handling on Windows in script
1252   headers where spaces in ``sys.executable`` would
1253   produce an improperly-formatted shebang header,
1254   introduced in 12.0 with the fix for #188.
1255
1256 * #663, #670: More style updates.
1257
1258 v24.3.0
1259 -------
1260
1261 * #516: Disable ``os.link`` to avoid hard linking
1262   in ``sdist.make_distribution``, avoiding errors on
1263   systems that support hard links but not on the
1264   file system in which the build is occurring.
1265
1266 v24.2.1
1267 -------
1268
1269 * #667: Update Metadata-Version to 1.2 when
1270   ``python_requires`` is supplied.
1271
1272 v24.2.0
1273 -------
1274
1275 * #631: Add support for ``python_requires`` keyword.
1276
1277 v24.1.1
1278 -------
1279
1280 * More style updates. See #660, #661, #641.
1281
1282 v24.1.0
1283 -------
1284
1285 * #659: ``setup.py`` now will fail fast and with a helpful
1286   error message when the necessary metadata is missing.
1287 * More style updates. See #656, #635, #640,
1288   #644, #650, #652, and #655.
1289
1290 v24.0.3
1291 -------
1292
1293 * Updated style in much of the codebase to match
1294   community expectations. See #632, #633, #634,
1295   #637, #639, #638, #642, #648.
1296
1297 v24.0.2
1298 -------
1299
1300 * If MSVC++14 is needed ``setuptools.msvc`` now redirect
1301   user to Visual C++ Build Tools web page.
1302
1303 v24.0.1
1304 -------
1305
1306 * #625 and #626: Fixes on ``setuptools.msvc`` mainly
1307   for Python 2 and Linux.
1308
1309 v24.0.0
1310 -------
1311
1312 * Pull Request #174: Add more aggressive support for
1313   standalone Microsoft Visual C++ compilers in
1314   msvc9compiler patch.
1315   Particularly : Windows SDK 6.1 and 7.0
1316   (MSVC++ 9.0), Windows SDK 7.1 (MSVC++ 10.0),
1317   Visual C++ Build Tools 2015 (MSVC++14)
1318 * Renamed ``setuptools.msvc9_support`` to
1319   ``setuptools.msvc``.
1320
1321 v23.2.1
1322 -------
1323
1324 Re-release of v23.2.0, which was missing the intended
1325 commits.
1326
1327 * #623: Remove used of deprecated 'U' flag when reading
1328   manifests.
1329
1330 v23.1.0
1331 -------
1332
1333 * #619: Deprecated ``tag_svn_revision`` distribution
1334   option.
1335
1336 v23.0.0
1337 -------
1338
1339 * #611: Removed ARM executables for CLI and GUI script
1340   launchers on Windows. If this was a feature you cared
1341   about, please comment in the ticket.
1342 * #604: Removed docs building support. The project
1343   now relies on documentation hosted at
1344   https://setuptools.readthedocs.io/.
1345
1346 v22.0.5
1347 -------
1348
1349 * #604: Restore repository for upload_docs command
1350   to restore publishing of docs during release.
1351
1352 v22.0.4
1353 -------
1354
1355 * #589: Upload releases to pypi.io using the upload
1356   hostname and legacy path.
1357
1358 v22.0.3
1359 -------
1360
1361 * #589: Releases are now uploaded to pypi.io (Warehouse)
1362   even when releases are made on Twine via Travis.
1363
1364 v22.0.2
1365 -------
1366
1367 * #589: Releases are now uploaded to pypi.io (Warehouse).
1368
1369 v22.0.1
1370 -------
1371
1372 * #190: On Python 2, if unicode is passed for packages to
1373   ``build_py`` command, it will be handled just as with
1374   text on Python 3.
1375
1376 v22.0.0
1377 -------
1378
1379 Intended to be v21.3.0, but jaraco accidentally released as
1380 a major bump.
1381
1382 * #598: Setuptools now lists itself first in the User-Agent
1383   for web requests, better following the guidelines in
1384   `RFC 7231
1385   <https://tools.ietf.org/html/rfc7231#section-5.5.3>`_.
1386
1387 v21.2.2
1388 -------
1389
1390 * Minor fixes to changelog and docs.
1391
1392 v21.2.1
1393 -------
1394
1395 * #261: Exclude directories when resolving globs in
1396   package_data.
1397
1398 v21.2.0
1399 -------
1400
1401 * #539: In the easy_install get_site_dirs, honor all
1402   paths found in ``site.getsitepackages``.
1403
1404 v21.1.0
1405 -------
1406
1407 * #572: In build_ext, now always import ``_CONFIG_VARS``
1408   from ``distutils`` rather than from ``sysconfig``
1409   to allow ``distutils.sysconfig.customize_compiler``
1410   configure the OS X compiler for ``-dynamiclib``.
1411
1412 v21.0.0
1413 -------
1414
1415 * Removed ez_setup.py from Setuptools sdist. The
1416   bootstrap script will be maintained in its own
1417   branch and should be generally be retrieved from
1418   its canonical location at
1419   https://bootstrap.pypa.io/ez_setup.py.
1420
1421 v20.10.0
1422 --------
1423
1424 * #553: egg_info section is now generated in a
1425   deterministic order, matching the order generated
1426   by earlier versions of Python. Except on Python 2.6,
1427   order is preserved when existing settings are present.
1428 * #556: Update to Packaging 16.7, restoring support
1429   for deprecated ``python_implmentation`` marker.
1430 * #555: Upload command now prompts for a password
1431   when uploading to PyPI (or other repository) if no
1432   password is present in .pypirc or in the keyring.
1433
1434 v20.9.0
1435 -------
1436
1437 * #548: Update certify version to 2016.2.28
1438 * #545: Safely handle deletion of non-zip eggs in rotate
1439   command.
1440
1441 v20.8.1
1442 -------
1443
1444 * Issue #544: Fix issue with extra environment marker
1445   processing in WorkingSet due to refactor in v20.7.0.
1446
1447 v20.8.0
1448 -------
1449
1450 * Issue #543: Re-release so that latest release doesn't
1451   cause déjà vu with distribute and setuptools 0.7 in
1452   older environments.
1453
1454 v20.7.0
1455 -------
1456
1457 * Refactored extra environment marker processing
1458   in WorkingSet.
1459 * Issue #533: Fixed intermittent test failures.
1460 * Issue #536: In msvc9_support, trap additional exceptions
1461   that might occur when importing
1462   ``distutils.msvc9compiler`` in mingw environments.
1463 * Issue #537: Provide better context when package
1464   metadata fails to decode in UTF-8.
1465
1466 v20.6.8
1467 -------
1468
1469 * Issue #523: Restored support for environment markers,
1470   now honoring 'extra' environment markers.
1471
1472 v20.6.7
1473 -------
1474
1475 * Issue #523: Disabled support for environment markers
1476   introduced in v20.5.
1477
1478 v20.6.6
1479 -------
1480
1481 * Issue #503: Restore support for PEP 345 environment
1482   markers by updating to Packaging 16.6.
1483
1484 v20.6.0
1485 -------
1486
1487 * New release process that relies on
1488   `bumpversion <https://github.com/peritus/bumpversion>`_
1489   and Travis CI for continuous deployment.
1490 * Project versioning semantics now follow
1491   `semver <https://semver.org>`_ precisely.
1492   The 'v' prefix on version numbers now also allows
1493   version numbers to be referenced in the changelog,
1494   e.g. http://setuptools.readthedocs.io/en/latest/history.html#v20-6-0.
1495
1496 20.5
1497 ----
1498
1499 * BB Pull Request #185, #470: Add support for environment markers
1500   in requirements in install_requires, setup_requires,
1501   tests_require as well as adding a test for the existing
1502   extra_requires machinery.
1503
1504 20.4
1505 ----
1506
1507 * Issue #422: Moved hosting to
1508   `Github <https://github.com/pypa/setuptools>`_
1509   from `Bitbucket <https://bitbucket.org/pypa/setuptools>`_.
1510   Issues have been migrated, though all issues and comments
1511   are attributed to bb-migration. So if you have a particular
1512   issue or issues to which you've been subscribed, you will
1513   want to "watch" the equivalent issue in Github.
1514   The Bitbucket project will be retained for the indefinite
1515   future, but Github now hosts the canonical project repository.
1516
1517 20.3.1
1518 ------
1519
1520 * Issue #519: Remove import hook when reloading the
1521   ``pkg_resources`` module.
1522 * BB Pull Request #184: Update documentation in ``pkg_resources``
1523   around new ``Requirement`` implementation.
1524
1525 20.3
1526 ----
1527
1528 * BB Pull Request #179: ``pkg_resources.Requirement`` objects are
1529   now a subclass of ``packaging.requirements.Requirement``,
1530   allowing any environment markers and url (if any) to be
1531   affiliated with the requirement
1532 * BB Pull Request #179: Restore use of RequirementParseError
1533   exception unintentionally dropped in 20.2.
1534
1535 20.2.2
1536 ------
1537
1538 * Issue #502: Correct regression in parsing of multiple
1539   version specifiers separated by commas and spaces.
1540
1541 20.2.1
1542 ------
1543
1544 * Issue #499: Restore compatibility for legacy versions
1545   by bumping to packaging 16.4.
1546
1547 20.2
1548 ----
1549
1550 * Changelog now includes release dates and links to PEPs.
1551 * BB Pull Request #173: Replace dual PEP 345 _markerlib implementation
1552   and PEP 426 implementation of environment marker support from
1553   packaging 16.1 and PEP 508. Fixes Issue #122.
1554   See also BB Pull Request #175, BB Pull Request #168, and
1555   BB Pull Request #164. Additionally:
1556
1557    - ``Requirement.parse`` no longer retains the order of extras.
1558    - ``parse_requirements`` now requires that all versions be
1559      PEP-440 compliant, as revealed in #499. Packages released
1560      with invalid local versions should be re-released using
1561      the proper local version syntax, e.g. ``mypkg-1.0+myorg.1``.
1562
1563 20.1.1
1564 ------
1565
1566 * Update ``upload_docs`` command to also honor keyring
1567   for password resolution.
1568
1569 20.1
1570 ----
1571
1572 * Added support for using passwords from keyring in the upload
1573   command. See `the upload docs
1574   <https://setuptools.readthedocs.io/en/latest/setuptools.html#upload-upload-source-and-or-egg-distributions-to-pypi>`_
1575   for details.
1576
1577 20.0
1578 ----
1579
1580 * Issue #118: Once again omit the package metadata (egg-info)
1581   from the list of outputs in ``--record``. This version of setuptools
1582   can no longer be used to upgrade pip earlier than 6.0.
1583
1584 19.7
1585 ----
1586
1587 * Off-project PR: `0dcee79 <https://github.com/pypa/setuptools/commit/0dcee791dfdcfacddaaec79b29f30a347a147413>`_ and `f9bd9b9 <https://github.com/pypa/setuptools/commit/f9bd9b9f5df54ef5a0bf8d16c3a889ab8c640580>`_
1588   For FreeBSD, also `honor root certificates from ca_root_nss <https://github.com/pypa/setuptools/commit/3ae46c30225eb46e1f5aada1a19e88b79f04dc72>`_.
1589
1590 19.6.2
1591 ------
1592
1593 * Issue #491: Correct regression incurred in 19.4 where
1594   a double-namespace package installed using pip would
1595   cause a TypeError.
1596
1597 19.6.1
1598 ------
1599
1600 * Restore compatibility for PyPy 3 compatibility lost in
1601   19.4.1 addressing Issue #487.
1602 * ``setuptools.launch`` shim now loads scripts in a new
1603   namespace, avoiding getting relative imports from
1604   the setuptools package on Python 2.
1605
1606 19.6
1607 ----
1608
1609 * Added a new entry script ``setuptools.launch``,
1610   implementing the shim found in
1611   ``pip.util.setuptools_build``. Use this command to launch
1612   distutils-only packages under setuptools in the same way that
1613   pip does, causing the setuptools monkeypatching of distutils
1614   to be invoked prior to invoking a script. Useful for debugging
1615   or otherwise installing a distutils-only package under
1616   setuptools when pip isn't available or otherwise does not
1617   expose the desired functionality. For example::
1618
1619     $ python -m setuptools.launch setup.py develop
1620
1621 * Issue #488: Fix dual manifestation of Extension class in
1622   extension packages installed as dependencies when Cython
1623   is present.
1624
1625 19.5
1626 ----
1627
1628 * Issue #486: Correct TypeError when getfilesystemencoding
1629   returns None.
1630 * Issue #139: Clarified the license as MIT.
1631 * BB Pull Request #169: Removed special handling of command
1632   spec in scripts for Jython.
1633
1634 19.4.1
1635 ------
1636
1637 * Issue #487: Use direct invocation of ``importlib.machinery``
1638   in ``pkg_resources`` to avoid missing detection on relevant
1639   platforms.
1640
1641 19.4
1642 ----
1643
1644 * Issue #341: Correct error in path handling of package data
1645   files in ``build_py`` command when package is empty.
1646 * Distribute #323, Issue #141, Issue #207, and
1647   BB Pull Request #167: Another implementation of
1648   ``pkg_resources.WorkingSet`` and ``pkg_resources.Distribution``
1649   that supports replacing an extant package with a new one,
1650   allowing for setup_requires dependencies to supersede installed
1651   packages for the session.
1652
1653 19.3
1654 ----
1655
1656 * Issue #229: Implement new technique for readily incorporating
1657   dependencies conditionally from vendored copies or primary
1658   locations. Adds a new dependency on six.
1659
1660 19.2
1661 ----
1662
1663 * BB Pull Request #163: Add get_command_list method to Distribution.
1664 * BB Pull Request #162: Add missing whitespace to multiline string
1665   literals.
1666
1667 19.1.1
1668 ------
1669
1670 * Issue #476: Cast version to string (using default encoding)
1671   to avoid creating Unicode types on Python 2 clients.
1672 * Issue #477: In Powershell downloader, use explicit rendering
1673   of strings, rather than rely on ``repr``, which can be
1674   incorrect (especially on Python 2).
1675
1676 19.1
1677 ----
1678
1679 * Issue #215: The bootstrap script ``ez_setup.py`` now
1680   automatically detects
1681   the latest version of setuptools (using PyPI JSON API) rather
1682   than hard-coding a particular value.
1683 * Issue #475: Fix incorrect usage in _translate_metadata2.
1684
1685 19.0
1686 ----
1687
1688 * Issue #442: Use RawConfigParser for parsing .pypirc file.
1689   Interpolated values are no longer honored in .pypirc files.
1690
1691 18.8.1
1692 ------
1693
1694 * Issue #440: Prevent infinite recursion when a SandboxViolation
1695   or other UnpickleableException occurs in a sandbox context
1696   with setuptools hidden. Fixes regression introduced in Setuptools
1697   12.0.
1698
1699 18.8
1700 ----
1701
1702 * Deprecated ``egg_info.get_pkg_info_revision``.
1703 * Issue #471: Don't rely on repr for an HTML attribute value in
1704   package_index.
1705 * Issue #419: Avoid errors in FileMetadata when the metadata directory
1706   is broken.
1707 * Issue #472: Remove deprecated use of 'U' in mode parameter
1708   when opening files.
1709
1710 18.7.1
1711 ------
1712
1713 * Issue #469: Refactored logic for Issue #419 fix to re-use metadata
1714   loading from Provider.
1715
1716 18.7
1717 ----
1718
1719 * Update dependency on certify.
1720 * BB Pull Request #160: Improve detection of gui script in
1721   ``easy_install._adjust_header``.
1722 * Made ``test.test_args`` a non-data property; alternate fix
1723   for the issue reported in BB Pull Request #155.
1724 * Issue #453: In ``ez_setup`` bootstrap module, unload all
1725   ``pkg_resources`` modules following download.
1726 * BB Pull Request #158: Honor PEP-488 when excluding
1727   files for namespace packages.
1728 * Issue #419 and BB Pull Request #144: Add experimental support for
1729   reading the version info from distutils-installed metadata rather
1730   than using the version in the filename.
1731
1732 18.6.1
1733 ------
1734
1735 * Issue #464: Correct regression in invocation of superclass on old-style
1736   class on Python 2.
1737
1738 18.6
1739 ----
1740
1741 * Issue #439: When installing entry_point scripts under development,
1742   omit the version number of the package, allowing any version of the
1743   package to be used.
1744
1745 18.5
1746 ----
1747
1748 * In preparation for dropping support for Python 3.2, a warning is
1749   now logged when pkg_resources is imported on Python 3.2 or earlier
1750   Python 3 versions.
1751 * `Add support for python_platform_implementation environment marker
1752   <https://github.com/pypa/setuptools/commit/94416707fd59a65f4a8f7f70541d6b3fc018b626>`_.
1753 * `Fix dictionary mutation during iteration
1754   <https://github.com/pypa/setuptools/commit/57ebfa41e0f96b97e599ecd931b7ae8a143e096e>`_.
1755
1756 18.4
1757 ----
1758
1759 * Issue #446: Test command now always invokes unittest, even
1760   if no test suite is supplied.
1761
1762 18.3.2
1763 ------
1764
1765 * Correct another regression in setuptools.findall
1766   where the fix for Python #12885 was lost.
1767
1768 18.3.1
1769 ------
1770
1771 * Issue #425: Correct regression in setuptools.findall.
1772
1773 18.3
1774 ----
1775
1776 * BB Pull Request #135: Setuptools now allows disabling of
1777   the manipulation of the sys.path
1778   during the processing of the easy-install.pth file. To do so, set
1779   the environment variable ``SETUPTOOLS_SYS_PATH_TECHNIQUE`` to
1780   anything but "rewrite" (consider "raw"). During any install operation
1781   with manipulation disabled, setuptools packages will be appended to
1782   sys.path naturally.
1783
1784   Future versions may change the default behavior to disable
1785   manipulation. If so, the default behavior can be retained by setting
1786   the variable to "rewrite".
1787
1788 * Issue #257: ``easy_install --version`` now shows more detail
1789   about the installation location and Python version.
1790
1791 * Refactor setuptools.findall in preparation for re-submission
1792   back to distutils.
1793
1794 18.2
1795 ----
1796
1797 * Issue #412: More efficient directory search in ``find_packages``.
1798
1799 18.1
1800 ----
1801
1802 * Upgrade to vendored packaging 15.3.
1803
1804 18.0.1
1805 ------
1806
1807 * Issue #401: Fix failure in test suite.
1808
1809 18.0
1810 ----
1811
1812 * Dropped support for builds with Pyrex. Only Cython is supported.
1813 * Issue #288: Detect Cython later in the build process, after
1814   ``setup_requires`` dependencies are resolved.
1815   Projects backed by Cython can now be readily built
1816   with a ``setup_requires`` dependency. For example::
1817
1818     ext = setuptools.Extension('mylib', ['src/CythonStuff.pyx', 'src/CStuff.c'])
1819     setuptools.setup(
1820         ...
1821         ext_modules=[ext],
1822         setup_requires=['cython'],
1823     )
1824
1825   For compatibility with older versions of setuptools, packagers should
1826   still include ``src/CythonMod.c`` in the source distributions or
1827   require that Cython be present before building source distributions.
1828   However, for systems with this build of setuptools, Cython will be
1829   downloaded on demand.
1830 * Issue #396: Fixed test failure on OS X.
1831 * BB Pull Request #136: Remove excessive quoting from shebang headers
1832   for Jython.
1833
1834 17.1.1
1835 ------
1836
1837 * Backed out unintended changes to pkg_resources, restoring removal of
1838   deprecated imp module (`ref
1839   <https://bitbucket.org/pypa/setuptools/commits/f572ec9563d647fa8d4ffc534f2af8070ea07a8b#comment-1881283>`_).
1840
1841 17.1
1842 ----
1843
1844 * Issue #380: Add support for range operators on environment
1845   marker evaluation.
1846
1847 17.0
1848 ----
1849
1850 * Issue #378: Do not use internal importlib._bootstrap module.
1851 * Issue #390: Disallow console scripts with path separators in
1852   the name. Removes unintended functionality and brings behavior
1853   into parity with pip.
1854
1855 16.0
1856 ----
1857
1858 * BB Pull Request #130: Better error messages for errors in
1859   parsed requirements.
1860 * BB Pull Request #133: Removed ``setuptools.tests`` from the
1861   installed packages.
1862 * BB Pull Request #129: Address deprecation warning due to usage
1863   of imp module.
1864
1865 15.2
1866 ----
1867
1868 * Issue #373: Provisionally expose
1869   ``pkg_resources._initialize_master_working_set``, allowing for
1870   imperative re-initialization of the master working set.
1871
1872 15.1
1873 ----
1874
1875 * Updated to Packaging 15.1 to address Packaging #28.
1876 * Fix ``setuptools.sandbox._execfile()`` with Python 3.1.
1877
1878 15.0
1879 ----
1880
1881 * BB Pull Request #126: DistributionNotFound message now lists the package or
1882   packages that required it. E.g.::
1883
1884       pkg_resources.DistributionNotFound: The 'colorama>=0.3.1' distribution was not found and is required by smlib.log.
1885
1886   Note that zc.buildout once dependended on the string rendering of this
1887   message to determine the package that was not found. This expectation
1888   has since been changed, but older versions of buildout may experience
1889   problems. See Buildout #242 for details.
1890
1891 14.3.1
1892 ------
1893
1894 * Issue #307: Removed PEP-440 warning during parsing of versions
1895   in ``pkg_resources.Distribution``.
1896 * Issue #364: Replace deprecated usage with recommended usage of
1897   ``EntryPoint.load``.
1898
1899 14.3
1900 ----
1901
1902 * Issue #254: When creating temporary egg cache on Unix, use mode 755
1903   for creating the directory to avoid the subsequent warning if
1904   the directory is group writable.
1905
1906 14.2
1907 ----
1908
1909 * Issue #137: Update ``Distribution.hashcmp`` so that Distributions with
1910   None for pyversion or platform can be compared against Distributions
1911   defining those attributes.
1912
1913 14.1.1
1914 ------
1915
1916 * Issue #360: Removed undesirable behavior from test runs, preventing
1917   write tests and installation to system site packages.
1918
1919 14.1
1920 ----
1921
1922 * BB Pull Request #125: Add ``__ne__`` to Requirement class.
1923 * Various refactoring of easy_install.
1924
1925 14.0
1926 ----
1927
1928 * Bootstrap script now accepts ``--to-dir`` to customize save directory or
1929   allow for re-use of existing repository of setuptools versions. See
1930   BB Pull Request #112 for background.
1931 * Issue #285: ``easy_install`` no longer will default to installing
1932   packages to the "user site packages" directory if it is itself installed
1933   there. Instead, the user must pass ``--user`` in all cases to install
1934   packages to the user site packages.
1935   This behavior now matches that of "pip install". To configure
1936   an environment to always install to the user site packages, consider
1937   using the "install-dir" and "scripts-dir" parameters to easy_install
1938   through an appropriate distutils config file.
1939
1940 13.0.2
1941 ------
1942
1943 * Issue #359: Include pytest.ini in the sdist so invocation of py.test on the
1944   sdist honors the pytest configuration.
1945
1946 13.0.1
1947 ------
1948
1949 Re-release of 13.0. Intermittent connectivity issues caused the release
1950 process to fail and PyPI uploads no longer accept files for 13.0.
1951
1952 13.0
1953 ----
1954
1955 * Issue #356: Back out BB Pull Request #119 as it requires Setuptools 10 or later
1956   as the source during an upgrade.
1957 * Removed build_py class from setup.py. According to 892f439d216e, this
1958   functionality was added to support upgrades from old Distribute versions,
1959   0.6.5 and 0.6.6.
1960
1961 12.4
1962 ----
1963
1964 * BB Pull Request #119: Restore writing of ``setup_requires`` to metadata
1965   (previously added in 8.4 and removed in 9.0).
1966
1967 12.3
1968 ----
1969
1970 * Documentation is now linked using the rst.linker package.
1971 * Fix ``setuptools.command.easy_install.extract_wininst_cfg()``
1972   with Python 2.6 and 2.7.
1973 * Issue #354. Added documentation on building setuptools
1974   documentation.
1975
1976 12.2
1977 ----
1978
1979 * Issue #345: Unload all modules under pkg_resources during
1980   ``ez_setup.use_setuptools()``.
1981 * Issue #336: Removed deprecation from ``ez_setup.use_setuptools``,
1982   as it is clearly still used by buildout's bootstrap. ``ez_setup``
1983   remains deprecated for use by individual packages.
1984 * Simplified implementation of ``ez_setup.use_setuptools``.
1985
1986 12.1
1987 ----
1988
1989 * BB Pull Request #118: Soften warning for non-normalized versions in
1990   Distribution.
1991
1992 12.0.5
1993 ------
1994
1995 * Issue #339: Correct Attribute reference in ``cant_write_to_target``.
1996 * Issue #336: Deprecated ``ez_setup.use_setuptools``.
1997
1998 12.0.4
1999 ------
2000
2001 * Issue #335: Fix script header generation on Windows.
2002
2003 12.0.3
2004 ------
2005
2006 * Fixed incorrect class attribute in ``install_scripts``. Tests would be nice.
2007
2008 12.0.2
2009 ------
2010
2011 * Issue #331: Fixed ``install_scripts`` command on Windows systems corrupting
2012   the header.
2013
2014 12.0.1
2015 ------
2016
2017 * Restore ``setuptools.command.easy_install.sys_executable`` for pbr
2018   compatibility. For the future, tools should construct a CommandSpec
2019   explicitly.
2020
2021 12.0
2022 ----
2023
2024 * Issue #188: Setuptools now support multiple entities in the value for
2025   ``build.executable``, such that an executable of "/usr/bin/env my-python" may
2026   be specified. This means that systems with a specified executable whose name
2027   has spaces in the path must be updated to escape or quote that value.
2028 * Deprecated ``easy_install.ScriptWriter.get_writer``, replaced by ``.best()``
2029   with slightly different semantics (no force_windows flag).
2030
2031 11.3.1
2032 ------
2033
2034 * Issue #327: Formalize and restore support for any printable character in an
2035   entry point name.
2036
2037 11.3
2038 ----
2039
2040 * Expose ``EntryPoint.resolve`` in place of EntryPoint._load, implementing the
2041   simple, non-requiring load. Deprecated all uses of ``EntryPoint._load``
2042   except for calling with no parameters, which is just a shortcut for
2043   ``ep.require(); ep.resolve();``.
2044
2045   Apps currently invoking ``ep.load(require=False)`` should instead do the
2046   following if wanting to avoid the deprecating warning::
2047
2048     getattr(ep, "resolve", lambda: ep.load(require=False))()
2049
2050 11.2
2051 ----
2052
2053 * Pip #2326: Report deprecation warning at stacklevel 2 for easier diagnosis.
2054
2055 11.1
2056 ----
2057
2058 * Issue #281: Since Setuptools 6.1 (Issue #268), a ValueError would be raised
2059   in certain cases where VersionConflict was raised with two arguments, which
2060   occurred in ``pkg_resources.WorkingSet.find``. This release adds support
2061   for indicating the dependent packages while maintaining support for
2062   a VersionConflict when no dependent package context is known. New unit tests
2063   now capture the expected interface.
2064
2065 11.0
2066 ----
2067
2068 * Interop #3: Upgrade to Packaging 15.0; updates to PEP 440 so that >1.7 does
2069   not exclude 1.7.1 but does exclude 1.7.0 and 1.7.0.post1.
2070
2071 10.2.1
2072 ------
2073
2074 * Issue #323: Fix regression in entry point name parsing.
2075
2076 10.2
2077 ----
2078
2079 * Deprecated use of EntryPoint.load(require=False). Passing a boolean to a
2080   function to select behavior is an anti-pattern. Instead use
2081   ``Entrypoint._load()``.
2082 * Substantial refactoring of all unit tests. Tests are now much leaner and
2083   re-use a lot of fixtures and contexts for better clarity of purpose.
2084
2085 10.1
2086 ----
2087
2088 * Issue #320: Added a compatibility implementation of
2089   ``sdist._default_revctrl``
2090   so that systems relying on that interface do not fail (namely, Ubuntu 12.04
2091   and similar Debian releases).
2092
2093 10.0.1
2094 ------
2095
2096 * Issue #319: Fixed issue installing pure distutils packages.
2097
2098 10.0
2099 ----
2100
2101 * Issue #313: Removed built-in support for subversion. Projects wishing to
2102   retain support for subversion will need to use a third party library. The
2103   extant implementation is being ported to `setuptools_svn
2104   <https://pypi.org/project/setuptools_svn/>`_.
2105 * Issue #315: Updated setuptools to hide its own loaded modules during
2106   installation of another package. This change will enable setuptools to
2107   upgrade (or downgrade) itself even when its own metadata and implementation
2108   change.
2109
2110 9.1
2111 ---
2112
2113 * Prefer vendored packaging library `as recommended
2114   <https://github.com/pypa/setuptools/commit/170657b68f4b92e7e1bf82f5e19a831f5744af67>`_.
2115
2116 9.0.1
2117 -----
2118
2119 * Issue #312: Restored presence of pkg_resources API tests (doctest) to sdist.
2120
2121 9.0
2122 ---
2123
2124 * Issue #314: Disabled support for ``setup_requires`` metadata to avoid issue
2125   where Setuptools was unable to upgrade over earlier versions.
2126
2127 8.4
2128 ---
2129
2130 * BB Pull Request #106: Now write ``setup_requires`` metadata.
2131
2132 8.3
2133 ---
2134
2135 * Issue #311: Decoupled pkg_resources from setuptools once again.
2136   ``pkg_resources`` is now a package instead of a module.
2137
2138 8.2.1
2139 -----
2140
2141 * Issue #306: Suppress warnings about Version format except in select scenarios
2142   (such as installation).
2143
2144 8.2
2145 ---
2146
2147 * BB Pull Request #85: Search egg-base when adding egg-info to manifest.
2148
2149 8.1
2150 ---
2151
2152 * Upgrade ``packaging`` to 14.5, giving preference to "rc" as designator for
2153   release candidates over "c".
2154 * PEP-440 warnings are now raised as their own class,
2155   ``pkg_resources.PEP440Warning``, instead of RuntimeWarning.
2156 * Disabled warnings on empty versions.
2157
2158 8.0.4
2159 -----
2160
2161 * Upgrade ``packaging`` to 14.4, fixing an error where there is a
2162   different result for if 2.0.5 is contained within >2.0dev and >2.0.dev even
2163   though normalization rules should have made them equal.
2164 * Issue #296: Add warning when a version is parsed as legacy. This warning will
2165   make it easier for developers to recognize deprecated version numbers.
2166
2167 8.0.3
2168 -----
2169
2170 * Issue #296: Restored support for ``__hash__`` on parse_version results.
2171
2172 8.0.2
2173 -----
2174
2175 * Issue #296: Restored support for ``__getitem__`` and sort operations on
2176   parse_version result.
2177
2178 8.0.1
2179 -----
2180
2181 * Issue #296: Restore support for iteration over parse_version result, but
2182   deprecated that usage with a warning. Fixes failure with buildout.
2183
2184 8.0
2185 ---
2186
2187 * Implement PEP 440 within
2188   pkg_resources and setuptools. This change
2189   deprecates some version numbers such that they will no longer be installable
2190   without using the ``===`` escape hatch. See `the changes to test_resources
2191   <https://bitbucket.org/pypa/setuptools/commits/dcd552da643c4448056de84c73d56da6d70769d5#chg-setuptools/tests/test_resources.py>`_
2192   for specific examples of version numbers and specifiers that are no longer
2193   supported. Setuptools now "vendors" the `packaging
2194   <https://github.com/pypa/packaging>`_ library.
2195
2196 7.0
2197 ---
2198
2199 * Issue #80, Issue #209: Eggs that are downloaded for ``setup_requires``,
2200   ``test_requires``, etc. are now placed in a ``./.eggs`` directory instead of
2201   directly in the current directory. This choice of location means the files
2202   can be readily managed (removed, ignored). Additionally,
2203   later phases or invocations of setuptools will not detect the package as
2204   already installed and ignore it for permanent install (See #209).
2205
2206   This change is indicated as backward-incompatible as installations that
2207   depend on the installation in the current directory will need to account for
2208   the new location. Systems that ignore ``*.egg`` will probably need to be
2209   adapted to ignore ``.eggs``. The files will need to be manually moved or
2210   will be retrieved again. Most use cases will require no attention.
2211
2212 6.1
2213 ---
2214
2215 * Issue #268: When resolving package versions, a VersionConflict now reports
2216   which package previously required the conflicting version.
2217
2218 6.0.2
2219 -----
2220
2221 * Issue #262: Fixed regression in pip install due to egg-info directories
2222   being omitted. Re-opens Issue #118.
2223
2224 6.0.1
2225 -----
2226
2227 * Issue #259: Fixed regression with namespace package handling on ``single
2228   version, externally managed`` installs.
2229
2230 6.0
2231 ---
2232
2233 * Issue #100: When building a distribution, Setuptools will no longer match
2234   default files using platform-dependent case sensitivity, but rather will
2235   only match the files if their case matches exactly. As a result, on Windows
2236   and other case-insensitive file systems, files with names such as
2237   'readme.txt' or 'README.TXT' will be omitted from the distribution and a
2238   warning will be issued indicating that 'README.txt' was not found. Other
2239   filenames affected are:
2240
2241     - README.rst
2242     - README
2243     - setup.cfg
2244     - setup.py (or the script name)
2245     - test/test*.py
2246
2247   Any users producing distributions with filenames that match those above
2248   case-insensitively, but not case-sensitively, should rename those files in
2249   their repository for better portability.
2250 * BB Pull Request #72: When using ``single_version_externally_managed``, the
2251   exclusion list now includes Python 3.2 ``__pycache__`` entries.
2252 * BB Pull Request #76 and BB Pull Request #78: lines in top_level.txt are now
2253   ordered deterministically.
2254 * Issue #118: The egg-info directory is now no longer included in the list
2255   of outputs.
2256 * Issue #258: Setuptools now patches distutils msvc9compiler to
2257   recognize the specially-packaged compiler package for easy extension module
2258   support on Python 2.6, 2.7, and 3.2.
2259
2260 5.8
2261 ---
2262
2263 * Issue #237: ``pkg_resources`` now uses explicit detection of Python 2 vs.
2264   Python 3, supporting environments where builtins have been patched to make
2265   Python 3 look more like Python 2.
2266
2267 5.7
2268 ---
2269
2270 * Issue #240: Based on real-world performance measures against 5.4, zip
2271   manifests are now cached in all circumstances. The
2272   ``PKG_RESOURCES_CACHE_ZIP_MANIFESTS`` environment variable is no longer
2273   relevant. The observed "memory increase" referenced in the 5.4 release
2274   notes and detailed in Issue #154 was likely not an increase over the status
2275   quo, but rather only an increase over not storing the zip info at all.
2276
2277 5.6
2278 ---
2279
2280 * Issue #242: Use absolute imports in svn_utils to avoid issues if the
2281   installing package adds an xml module to the path.
2282
2283 5.5.1
2284 -----
2285
2286 * Issue #239: Fix typo in 5.5 such that fix did not take.
2287
2288 5.5
2289 ---
2290
2291 * Issue #239: Setuptools now includes the setup_requires directive on
2292   Distribution objects and validates the syntax just like install_requires
2293   and tests_require directives.
2294
2295 5.4.2
2296 -----
2297
2298 * Issue #236: Corrected regression in execfile implementation for Python 2.6.
2299
2300 5.4.1
2301 -----
2302
2303 * Python #7776: (ssl_support) Correct usage of host for validation when
2304   tunneling for HTTPS.
2305
2306 5.4
2307 ---
2308
2309 * Issue #154: ``pkg_resources`` will now cache the zip manifests rather than
2310   re-processing the same file from disk multiple times, but only if the
2311   environment variable ``PKG_RESOURCES_CACHE_ZIP_MANIFESTS`` is set. Clients
2312   that package many modules in the same zip file will see some improvement
2313   in startup time by enabling this feature. This feature is not enabled by
2314   default because it causes a substantial increase in memory usage.
2315
2316 5.3
2317 ---
2318
2319 * Issue #185: Make svn tagging work on the new style SVN metadata.
2320   Thanks cazabon!
2321 * Prune revision control directories (e.g .svn) from base path
2322   as well as sub-directories.
2323
2324 5.2
2325 ---
2326
2327 * Added a `Developer Guide
2328   <https://setuptools.readthedocs.io/en/latest/developer-guide.html>`_ to the official
2329   documentation.
2330 * Some code refactoring and cleanup was done with no intended behavioral
2331   changes.
2332 * During install_egg_info, the generated lines for namespace package .pth
2333   files are now processed even during a dry run.
2334
2335 5.1
2336 ---
2337
2338 * Issue #202: Implemented more robust cache invalidation for the ZipImporter,
2339   building on the work in Issue #168. Special thanks to Jurko Gospodnetic and
2340   PJE.
2341
2342 5.0.2
2343 -----
2344
2345 * Issue #220: Restored script templates.
2346
2347 5.0.1
2348 -----
2349
2350 * Renamed script templates to end with .tmpl now that they no longer need
2351   to be processed by 2to3. Fixes spurious syntax errors during build/install.
2352
2353 5.0
2354 ---
2355
2356 * Issue #218: Re-release of 3.8.1 to signal that it supersedes 4.x.
2357 * Incidentally, script templates were updated not to include the triple-quote
2358   escaping.
2359
2360 3.7.1 and 3.8.1 and 4.0.1
2361 -------------------------
2362
2363 * Issue #213: Use legacy StringIO behavior for compatibility under pbr.
2364 * Issue #218: Setuptools 3.8.1 superseded 4.0.1, and 4.x was removed
2365   from the available versions to install.
2366
2367 4.0
2368 ---
2369
2370 * Issue #210: ``setup.py develop`` now copies scripts in binary mode rather
2371   than text mode, matching the behavior of the ``install`` command.
2372
2373 3.8
2374 ---
2375
2376 * Extend Issue #197 workaround to include all Python 3 versions prior to
2377   3.2.2.
2378
2379 3.7
2380 ---
2381
2382 * Issue #193: Improved handling of Unicode filenames when building manifests.
2383
2384 3.6
2385 ---
2386
2387 * Issue #203: Honor proxy settings for Powershell downloader in the bootstrap
2388   routine.
2389
2390 3.5.2
2391 -----
2392
2393 * Issue #168: More robust handling of replaced zip files and stale caches.
2394   Fixes ZipImportError complaining about a 'bad local header'.
2395
2396 3.5.1
2397 -----
2398
2399 * Issue #199: Restored ``install._install`` for compatibility with earlier
2400   NumPy versions.
2401
2402 3.5
2403 ---
2404
2405 * Issue #195: Follow symbolic links in find_packages (restoring behavior
2406   broken in 3.4).
2407 * Issue #197: On Python 3.1, PKG-INFO is now saved in a UTF-8 encoding instead
2408   of ``sys.getpreferredencoding`` to match the behavior on Python 2.6-3.4.
2409 * Issue #192: Preferred bootstrap location is now
2410   https://bootstrap.pypa.io/ez_setup.py (mirrored from former location).
2411
2412 3.4.4
2413 -----
2414
2415 * Issue #184: Correct failure where find_package over-matched packages
2416   when directory traversal isn't short-circuited.
2417
2418 3.4.3
2419 -----
2420
2421 * Issue #183: Really fix test command with Python 3.1.
2422
2423 3.4.2
2424 -----
2425
2426 * Issue #183: Fix additional regression in test command on Python 3.1.
2427
2428 3.4.1
2429 -----
2430
2431 * Issue #180: Fix regression in test command not caught by py.test-run tests.
2432
2433 3.4
2434 ---
2435
2436 * Issue #176: Add parameter to the test command to support a custom test
2437   runner: --test-runner or -r.
2438 * Issue #177: Now assume most common invocation to install command on
2439   platforms/environments without stack support (issuing a warning). Setuptools
2440   now installs naturally on IronPython. Behavior on CPython should be
2441   unchanged.
2442
2443 3.3
2444 ---
2445
2446 * Add ``include`` parameter to ``setuptools.find_packages()``.
2447
2448 3.2
2449 ---
2450
2451 * BB Pull Request #39: Add support for C++ targets from Cython ``.pyx`` files.
2452 * Issue #162: Update dependency on certifi to 1.0.1.
2453 * Issue #164: Update dependency on wincertstore to 0.2.
2454
2455 3.1
2456 ---
2457
2458 * Issue #161: Restore Features functionality to allow backward compatibility
2459   (for Features) until the uses of that functionality is sufficiently removed.
2460
2461 3.0.2
2462 -----
2463
2464 * Correct typo in previous bugfix.
2465
2466 3.0.1
2467 -----
2468
2469 * Issue #157: Restore support for Python 2.6 in bootstrap script where
2470   ``zipfile.ZipFile`` does not yet have support for context managers.
2471
2472 3.0
2473 ---
2474
2475 * Issue #125: Prevent Subversion support from creating a ~/.subversion
2476   directory just for checking the presence of a Subversion repository.
2477 * Issue #12: Namespace packages are now imported lazily. That is, the mere
2478   declaration of a namespace package in an egg on ``sys.path`` no longer
2479   causes it to be imported when ``pkg_resources`` is imported. Note that this
2480   change means that all of a namespace package's ``__init__.py`` files must
2481   include a ``declare_namespace()`` call in order to ensure that they will be
2482   handled properly at runtime. In 2.x it was possible to get away without
2483   including the declaration, but only at the cost of forcing namespace
2484   packages to be imported early, which 3.0 no longer does.
2485 * Issue #148: When building (bdist_egg), setuptools no longer adds
2486   ``__init__.py`` files to namespace packages. Any packages that rely on this
2487   behavior will need to create ``__init__.py`` files and include the
2488   ``declare_namespace()``.
2489 * Issue #7: Setuptools itself is now distributed as a zip archive in addition to
2490   tar archive. ez_setup.py now uses zip archive. This approach avoids the potential
2491   security vulnerabilities presented by use of tar archives in ez_setup.py.
2492   It also leverages the security features added to ZipFile.extract in Python 2.7.4.
2493 * Issue #65: Removed deprecated Features functionality.
2494 * BB Pull Request #28: Remove backport of ``_bytecode_filenames`` which is
2495   available in Python 2.6 and later, but also has better compatibility with
2496   Python 3 environments.
2497 * Issue #156: Fix spelling of __PYVENV_LAUNCHER__ variable.
2498
2499 2.2
2500 ---
2501
2502 * Issue #141: Restored fix for allowing setup_requires dependencies to
2503   override installed dependencies during setup.
2504 * Issue #128: Fixed issue where only the first dependency link was honored
2505   in a distribution where multiple dependency links were supplied.
2506
2507 2.1.2
2508 -----
2509
2510 * Issue #144: Read long_description using codecs module to avoid errors
2511   installing on systems where LANG=C.
2512
2513 2.1.1
2514 -----
2515
2516 * Issue #139: Fix regression in re_finder for CVS repos (and maybe Git repos
2517   as well).
2518
2519 2.1
2520 ---
2521
2522 * Issue #129: Suppress inspection of ``*.whl`` files when searching for files
2523   in a zip-imported file.
2524 * Issue #131: Fix RuntimeError when constructing an egg fetcher.
2525
2526 2.0.2
2527 -----
2528
2529 * Fix NameError during installation with Python implementations (e.g. Jython)
2530   not containing parser module.
2531 * Fix NameError in ``sdist:re_finder``.
2532
2533 2.0.1
2534 -----
2535
2536 * Issue #124: Fixed error in list detection in upload_docs.
2537
2538 2.0
2539 ---
2540
2541 * Issue #121: Exempt lib2to3 pickled grammars from DirectorySandbox.
2542 * Issue #41: Dropped support for Python 2.4 and Python 2.5. Clients requiring
2543   setuptools for those versions of Python should use setuptools 1.x.
2544 * Removed ``setuptools.command.easy_install.HAS_USER_SITE``. Clients
2545   expecting this boolean variable should use ``site.ENABLE_USER_SITE``
2546   instead.
2547 * Removed ``pkg_resources.ImpWrapper``. Clients that expected this class
2548   should use ``pkgutil.ImpImporter`` instead.
2549
2550 1.4.2
2551 -----
2552
2553 * Issue #116: Correct TypeError when reading a local package index on Python
2554   3.
2555
2556 1.4.1
2557 -----
2558
2559 * Issue #114: Use ``sys.getfilesystemencoding`` for decoding config in
2560   ``bdist_wininst`` distributions.
2561
2562 * Issue #105 and Issue #113: Establish a more robust technique for
2563   determining the terminal encoding::
2564
2565     1. Try ``getpreferredencoding``
2566     2. If that returns US_ASCII or None, try the encoding from
2567        ``getdefaultlocale``. If that encoding was a "fallback" because Python
2568        could not figure it out from the environment or OS, encoding remains
2569        unresolved.
2570     3. If the encoding is resolved, then make sure Python actually implements
2571        the encoding.
2572     4. On the event of an error or unknown codec, revert to fallbacks
2573        (UTF-8 on Darwin, ASCII on everything else).
2574     5. On the encoding is 'mac-roman' on Darwin, use UTF-8 as 'mac-roman' was
2575        a bug on older Python releases.
2576
2577     On a side note, it would seem that the encoding only matters for when SVN
2578     does not yet support ``--xml`` and when getting repository and svn version
2579     numbers. The ``--xml`` technique should yield UTF-8 according to some
2580     messages on the SVN mailing lists. So if the version numbers are always
2581     7-bit ASCII clean, it may be best to only support the file parsing methods
2582     for legacy SVN releases and support for SVN without the subprocess command
2583     would simple go away as support for the older SVNs does.
2584
2585 1.4
2586 ---
2587
2588 * Issue #27: ``easy_install`` will now use credentials from .pypirc if
2589   present for connecting to the package index.
2590 * BB Pull Request #21: Omit unwanted newlines in ``package_index._encode_auth``
2591   when the username/password pair length indicates wrapping.
2592
2593 1.3.2
2594 -----
2595
2596 * Issue #99: Fix filename encoding issues in SVN support.
2597
2598 1.3.1
2599 -----
2600
2601 * Remove exuberant warning in SVN support when SVN is not used.
2602
2603 1.3
2604 ---
2605
2606 * Address security vulnerability in SSL match_hostname check as reported in
2607   Python #17997.
2608 * Prefer `backports.ssl_match_hostname
2609   <https://pypi.org/project/backports.ssl_match_hostname/>`_ for backport
2610   implementation if present.
2611 * Correct NameError in ``ssl_support`` module (``socket.error``).
2612
2613 1.2
2614 ---
2615
2616 * Issue #26: Add support for SVN 1.7. Special thanks to Philip Thiem for the
2617   contribution.
2618 * Issue #93: Wheels are now distributed with every release. Note that as
2619   reported in Issue #108, as of Pip 1.4, scripts aren't installed properly
2620   from wheels. Therefore, if using Pip to install setuptools from a wheel,
2621   the ``easy_install`` command will not be available.
2622 * Setuptools "natural" launcher support, introduced in 1.0, is now officially
2623   supported.
2624
2625 1.1.7
2626 -----
2627
2628 * Fixed behavior of NameError handling in 'script template (dev).py' (script
2629   launcher for 'develop' installs).
2630 * ``ez_setup.py`` now ensures partial downloads are cleaned up following
2631   a failed download.
2632 * Distribute #363 and Issue #55: Skip an sdist test that fails on locales
2633   other than UTF-8.
2634
2635 1.1.6
2636 -----
2637
2638 * Distribute #349: ``sandbox.execfile`` now opens the target file in binary
2639   mode, thus honoring a BOM in the file when compiled.
2640
2641 1.1.5
2642 -----
2643
2644 * Issue #69: Second attempt at fix (logic was reversed).
2645
2646 1.1.4
2647 -----
2648
2649 * Issue #77: Fix error in upload command (Python 2.4).
2650
2651 1.1.3
2652 -----
2653
2654 * Fix NameError in previous patch.
2655
2656 1.1.2
2657 -----
2658
2659 * Issue #69: Correct issue where 404 errors are returned for URLs with
2660   fragments in them (such as #egg=).
2661
2662 1.1.1
2663 -----
2664
2665 * Issue #75: Add ``--insecure`` option to ez_setup.py to accommodate
2666   environments where a trusted SSL connection cannot be validated.
2667 * Issue #76: Fix AttributeError in upload command with Python 2.4.
2668
2669 1.1
2670 ---
2671
2672 * Issue #71 (Distribute #333): EasyInstall now puts less emphasis on the
2673   condition when a host is blocked via ``--allow-hosts``.
2674 * Issue #72: Restored Python 2.4 compatibility in ``ez_setup.py``.
2675
2676 1.0
2677 ---
2678
2679 * Issue #60: On Windows, Setuptools supports deferring to another launcher,
2680   such as Vinay Sajip's `pylauncher <https://bitbucket.org/pypa/pylauncher>`_
2681   (included with Python 3.3) to launch console and GUI scripts and not install
2682   its own launcher executables. This experimental functionality is currently
2683   only enabled if  the ``SETUPTOOLS_LAUNCHER`` environment variable is set to
2684   "natural". In the future, this behavior may become default, but only after
2685   it has matured and seen substantial adoption. The ``SETUPTOOLS_LAUNCHER``
2686   also accepts "executable" to force the default behavior of creating launcher
2687   executables.
2688 * Issue #63: Bootstrap script (ez_setup.py) now prefers Powershell, curl, or
2689   wget for retrieving the Setuptools tarball for improved security of the
2690   install. The script will still fall back to a simple ``urlopen`` on
2691   platforms that do not have these tools.
2692 * Issue #65: Deprecated the ``Features`` functionality.
2693 * Issue #52: In ``VerifyingHTTPSConn``, handle a tunnelled (proxied)
2694   connection.
2695
2696 Backward-Incompatible Changes
2697 =============================
2698
2699 This release includes a couple of backward-incompatible changes, but most if
2700 not all users will find 1.0 a drop-in replacement for 0.9.
2701
2702 * Issue #50: Normalized API of environment marker support. Specifically,
2703   removed line number and filename from SyntaxErrors when returned from
2704   `pkg_resources.invalid_marker`. Any clients depending on the specific
2705   string representation of exceptions returned by that function may need to
2706   be updated to account for this change.
2707 * Issue #50: SyntaxErrors generated by `pkg_resources.invalid_marker` are
2708   normalized for cross-implementation consistency.
2709 * Removed ``--ignore-conflicts-at-my-risk`` and ``--delete-conflicting``
2710   options to easy_install. These options have been deprecated since 0.6a11.
2711
2712 0.9.8
2713 -----
2714
2715 * Issue #53: Fix NameErrors in `_vcs_split_rev_from_url`.
2716
2717 0.9.7
2718 -----
2719
2720 * Issue #49: Correct AttributeError on PyPy where a hashlib.HASH object does
2721   not have a `.name` attribute.
2722 * Issue #34: Documentation now refers to bootstrap script in code repository
2723   referenced by bookmark.
2724 * Add underscore-separated keys to environment markers (markerlib).
2725
2726 0.9.6
2727 -----
2728
2729 * Issue #44: Test failure on Python 2.4 when MD5 hash doesn't have a `.name`
2730   attribute.
2731
2732 0.9.5
2733 -----
2734
2735 * Python #17980: Fix security vulnerability in SSL certificate validation.
2736
2737 0.9.4
2738 -----
2739
2740 * Issue #43: Fix issue (introduced in 0.9.1) with version resolution when
2741   upgrading over other releases of Setuptools.
2742
2743 0.9.3
2744 -----
2745
2746 * Issue #42: Fix new ``AttributeError`` introduced in last fix.
2747
2748 0.9.2
2749 -----
2750
2751 * Issue #42: Fix regression where blank checksums would trigger an
2752   ``AttributeError``.
2753
2754 0.9.1
2755 -----
2756
2757 * Distribute #386: Allow other positional and keyword arguments to os.open.
2758 * Corrected dependency on certifi mis-referenced in 0.9.
2759
2760 0.9
2761 ---
2762
2763 * `package_index` now validates hashes other than MD5 in download links.
2764
2765 0.8
2766 ---
2767
2768 * Code base now runs on Python 2.4 - Python 3.3 without Python 2to3
2769   conversion.
2770
2771 0.7.8
2772 -----
2773
2774 * Distribute #375: Yet another fix for yet another regression.
2775
2776 0.7.7
2777 -----
2778
2779 * Distribute #375: Repair AttributeError created in last release (redo).
2780 * Issue #30: Added test for get_cache_path.
2781
2782 0.7.6
2783 -----
2784
2785 * Distribute #375: Repair AttributeError created in last release.
2786
2787 0.7.5
2788 -----
2789
2790 * Issue #21: Restore Python 2.4 compatibility in ``test_easy_install``.
2791 * Distribute #375: Merged additional warning from Distribute 0.6.46.
2792 * Now honor the environment variable
2793   ``SETUPTOOLS_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT`` in addition to the now
2794   deprecated ``DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT``.
2795
2796 0.7.4
2797 -----
2798
2799 * Issue #20: Fix comparison of parsed SVN version on Python 3.
2800
2801 0.7.3
2802 -----
2803
2804 * Issue #1: Disable installation of Windows-specific files on non-Windows systems.
2805 * Use new sysconfig module with Python 2.7 or >=3.2.
2806
2807 0.7.2
2808 -----
2809
2810 * Issue #14: Use markerlib when the `parser` module is not available.
2811 * Issue #10: ``ez_setup.py`` now uses HTTPS to download setuptools from PyPI.
2812
2813 0.7.1
2814 -----
2815
2816 * Fix NameError (Issue #3) again - broken in bad merge.
2817
2818 0.7
2819 ---
2820
2821 * Merged Setuptools and Distribute. See docs/merge.txt for details.
2822
2823 Added several features that were slated for setuptools 0.6c12:
2824
2825 * Index URL now defaults to HTTPS.
2826 * Added experimental environment marker support. Now clients may designate a
2827   PEP-426 environment marker for "extra" dependencies. Setuptools uses this
2828   feature in ``setup.py`` for optional SSL and certificate validation support
2829   on older platforms. Based on Distutils-SIG discussions, the syntax is
2830   somewhat tentative. There should probably be a PEP with a firmer spec before
2831   the feature should be considered suitable for use.
2832 * Added support for SSL certificate validation when installing packages from
2833   an HTTPS service.
2834
2835 0.7b4
2836 -----
2837
2838 * Issue #3: Fixed NameError in SSL support.
2839
2840 0.6.49
2841 ------
2842
2843 * Move warning check in ``get_cache_path`` to follow the directory creation
2844   to avoid errors when the cache path does not yet exist. Fixes the error
2845   reported in Distribute #375.
2846
2847 0.6.48
2848 ------
2849
2850 * Correct AttributeError in ``ResourceManager.get_cache_path`` introduced in
2851   0.6.46 (redo).
2852
2853 0.6.47
2854 ------
2855
2856 * Correct AttributeError in ``ResourceManager.get_cache_path`` introduced in
2857   0.6.46.
2858
2859 0.6.46
2860 ------
2861
2862 * Distribute #375: Issue a warning if the PYTHON_EGG_CACHE or otherwise
2863   customized egg cache location specifies a directory that's group- or
2864   world-writable.
2865
2866 0.6.45
2867 ------
2868
2869 * Distribute #379: ``distribute_setup.py`` now traps VersionConflict as well,
2870   restoring ability to upgrade from an older setuptools version.
2871
2872 0.6.44
2873 ------
2874
2875 * ``distribute_setup.py`` has been updated to allow Setuptools 0.7 to
2876   satisfy use_setuptools.
2877
2878 0.6.43
2879 ------
2880
2881 * Distribute #378: Restore support for Python 2.4 Syntax (regression in 0.6.42).
2882
2883 0.6.42
2884 ------
2885
2886 * External links finder no longer yields duplicate links.
2887 * Distribute #337: Moved site.py to setuptools/site-patch.py (graft of very old
2888   patch from setuptools trunk which inspired PR #31).
2889
2890 0.6.41
2891 ------
2892
2893 * Distribute #27: Use public api for loading resources from zip files rather than
2894   the private method `_zip_directory_cache`.
2895 * Added a new function ``easy_install.get_win_launcher`` which may be used by
2896   third-party libraries such as buildout to get a suitable script launcher.
2897
2898 0.6.40
2899 ------
2900
2901 * Distribute #376: brought back cli.exe and gui.exe that were deleted in the
2902   previous release.
2903
2904 0.6.39
2905 ------
2906
2907 * Add support for console launchers on ARM platforms.
2908 * Fix possible issue in GUI launchers where the subsystem was not supplied to
2909   the linker.
2910 * Launcher build script now refactored for robustness.
2911 * Distribute #375: Resources extracted from a zip egg to the file system now also
2912   check the contents of the file against the zip contents during each
2913   invocation of get_resource_filename.
2914
2915 0.6.38
2916 ------
2917
2918 * Distribute #371: The launcher manifest file is now installed properly.
2919
2920 0.6.37
2921 ------
2922
2923 * Distribute #143: Launcher scripts, including easy_install itself, are now
2924   accompanied by a manifest on 32-bit Windows environments to avoid the
2925   Installer Detection Technology and thus undesirable UAC elevation described
2926   in `this Microsoft article
2927   <http://technet.microsoft.com/en-us/library/cc709628%28WS.10%29.aspx>`_.
2928
2929 0.6.36
2930 ------
2931
2932 * BB Pull Request #35: In Buildout #64, it was reported that
2933   under Python 3, installation of distutils scripts could attempt to copy
2934   the ``__pycache__`` directory as a file, causing an error, apparently only
2935   under Windows. Easy_install now skips all directories when processing
2936   metadata scripts.
2937
2938 0.6.35
2939 ------
2940
2941
2942 Note this release is backward-incompatible with distribute 0.6.23-0.6.34 in
2943 how it parses version numbers.
2944
2945 * Distribute #278: Restored compatibility with distribute 0.6.22 and setuptools
2946   0.6. Updated the documentation to match more closely with the version
2947   parsing as intended in setuptools 0.6.
2948
2949 0.6.34
2950 ------
2951
2952 * Distribute #341: 0.6.33 fails to build under Python 2.4.
2953
2954 0.6.33
2955 ------
2956
2957 * Fix 2 errors with Jython 2.5.
2958 * Fix 1 failure with Jython 2.5 and 2.7.
2959 * Disable workaround for Jython scripts on Linux systems.
2960 * Distribute #336: `setup.py` no longer masks failure exit code when tests fail.
2961 * Fix issue in pkg_resources where try/except around a platform-dependent
2962   import would trigger hook load failures on Mercurial. See pull request 32
2963   for details.
2964 * Distribute #341: Fix a ResourceWarning.
2965
2966 0.6.32
2967 ------
2968
2969 * Fix test suite with Python 2.6.
2970 * Fix some DeprecationWarnings and ResourceWarnings.
2971 * Distribute #335: Backed out `setup_requires` superceding installed requirements
2972   until regression can be addressed.
2973
2974 0.6.31
2975 ------
2976
2977 * Distribute #303: Make sure the manifest only ever contains UTF-8 in Python 3.
2978 * Distribute #329: Properly close files created by tests for compatibility with
2979   Jython.
2980 * Work around Jython #1980 and Jython #1981.
2981 * Distribute #334: Provide workaround for packages that reference `sys.__stdout__`
2982   such as numpy does. This change should address
2983   `virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long
2984   as the system encoding is UTF-8 or the IO encoding is specified in the
2985   environment, i.e.::
2986
2987      PYTHONIOENCODING=utf8 pip install numpy
2988
2989 * Fix for encoding issue when installing from Windows executable on Python 3.
2990 * Distribute #323: Allow `setup_requires` requirements to supercede installed
2991   requirements. Added some new keyword arguments to existing pkg_resources
2992   methods. Also had to updated how __path__ is handled for namespace packages
2993   to ensure that when a new egg distribution containing a namespace package is
2994   placed on sys.path, the entries in __path__ are found in the same order they
2995   would have been in had that egg been on the path when pkg_resources was
2996   first imported.
2997
2998 0.6.30
2999 ------
3000
3001 * Distribute #328: Clean up temporary directories in distribute_setup.py.
3002 * Fix fatal bug in distribute_setup.py.
3003
3004 0.6.29
3005 ------
3006
3007 * BB Pull Request #14: Honor file permissions in zip files.
3008 * Distribute #327: Merged pull request #24 to fix a dependency problem with pip.
3009 * Merged pull request #23 to fix https://github.com/pypa/virtualenv/issues/301.
3010 * If Sphinx is installed, the `upload_docs` command now runs `build_sphinx`
3011   to produce uploadable documentation.
3012 * Distribute #326: `upload_docs` provided mangled auth credentials under Python 3.
3013 * Distribute #320: Fix check for "createable" in distribute_setup.py.
3014 * Distribute #305: Remove a warning that was triggered during normal operations.
3015 * Distribute #311: Print metadata in UTF-8 independent of platform.
3016 * Distribute #303: Read manifest file with UTF-8 encoding under Python 3.
3017 * Distribute #301: Allow to run tests of namespace packages when using 2to3.
3018 * Distribute #304: Prevent import loop in site.py under Python 3.3.
3019 * Distribute #283: Reenable scanning of `*.pyc` / `*.pyo` files on Python 3.3.
3020 * Distribute #299: The develop command didn't work on Python 3, when using 2to3,
3021   as the egg link would go to the Python 2 source. Linking to the 2to3'd code
3022   in build/lib makes it work, although you will have to rebuild the module
3023   before testing it.
3024 * Distribute #306: Even if 2to3 is used, we build in-place under Python 2.
3025 * Distribute #307: Prints the full path when .svn/entries is broken.
3026 * Distribute #313: Support for sdist subcommands (Python 2.7)
3027 * Distribute #314: test_local_index() would fail an OS X.
3028 * Distribute #310: Non-ascii characters in a namespace __init__.py causes errors.
3029 * Distribute #218: Improved documentation on behavior of `package_data` and
3030   `include_package_data`. Files indicated by `package_data` are now included
3031   in the manifest.
3032 * `distribute_setup.py` now allows a `--download-base` argument for retrieving
3033   distribute from a specified location.
3034
3035 0.6.28
3036 ------
3037
3038 * Distribute #294: setup.py can now be invoked from any directory.
3039 * Scripts are now installed honoring the umask.
3040 * Added support for .dist-info directories.
3041 * Distribute #283: Fix and disable scanning of `*.pyc` / `*.pyo` files on
3042   Python 3.3.
3043
3044 0.6.27
3045 ------
3046
3047 * Support current snapshots of CPython 3.3.
3048 * Distribute now recognizes README.rst as a standard, default readme file.
3049 * Exclude 'encodings' modules when removing modules from sys.modules.
3050   Workaround for #285.
3051 * Distribute #231: Don't fiddle with system python when used with buildout
3052   (bootstrap.py)
3053
3054 0.6.26
3055 ------
3056
3057 * Distribute #183: Symlinked files are now extracted from source distributions.
3058 * Distribute #227: Easy_install fetch parameters are now passed during the
3059   installation of a source distribution; now fulfillment of setup_requires
3060   dependencies will honor the parameters passed to easy_install.
3061
3062 0.6.25
3063 ------
3064
3065 * Distribute #258: Workaround a cache issue
3066 * Distribute #260: distribute_setup.py now accepts the --user parameter for
3067   Python 2.6 and later.
3068 * Distribute #262: package_index.open_with_auth no longer throws LookupError
3069   on Python 3.
3070 * Distribute #269: AttributeError when an exception occurs reading Manifest.in
3071   on late releases of Python.
3072 * Distribute #272: Prevent TypeError when namespace package names are unicode
3073   and single-install-externally-managed is used. Also fixes PIP issue
3074   449.
3075 * Distribute #273: Legacy script launchers now install with Python2/3 support.
3076
3077 0.6.24
3078 ------
3079
3080 * Distribute #249: Added options to exclude 2to3 fixers
3081
3082 0.6.23
3083 ------
3084
3085 * Distribute #244: Fixed a test
3086 * Distribute #243: Fixed a test
3087 * Distribute #239: Fixed a test
3088 * Distribute #240: Fixed a test
3089 * Distribute #241: Fixed a test
3090 * Distribute #237: Fixed a test
3091 * Distribute #238: easy_install now uses 64bit executable wrappers on 64bit Python
3092 * Distribute #208: Fixed parsed_versions, it now honors post-releases as noted in the documentation
3093 * Distribute #207: Windows cli and gui wrappers pass CTRL-C to child python process
3094 * Distribute #227: easy_install now passes its arguments to setup.py bdist_egg
3095 * Distribute #225: Fixed a NameError on Python 2.5, 2.4
3096
3097 0.6.21
3098 ------
3099
3100 * Distribute #225: FIxed a regression on py2.4
3101
3102 0.6.20
3103 ------
3104
3105 * Distribute #135: Include url in warning when processing URLs in package_index.
3106 * Distribute #212: Fix issue where easy_instal fails on Python 3 on windows installer.
3107 * Distribute #213: Fix typo in documentation.
3108
3109 0.6.19
3110 ------
3111
3112 * Distribute #206: AttributeError: 'HTTPMessage' object has no attribute 'getheaders'
3113
3114 0.6.18
3115 ------
3116
3117 * Distribute #210: Fixed a regression introduced by Distribute #204 fix.
3118
3119 0.6.17
3120 ------
3121
3122 * Support 'DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT' environment
3123   variable to allow to disable installation of easy_install-${version} script.
3124 * Support Python >=3.1.4 and >=3.2.1.
3125 * Distribute #204: Don't try to import the parent of a namespace package in
3126   declare_namespace
3127 * Distribute #196: Tolerate responses with multiple Content-Length headers
3128 * Distribute #205: Sandboxing doesn't preserve working_set. Leads to setup_requires
3129   problems.
3130
3131 0.6.16
3132 ------
3133
3134 * Builds sdist gztar even on Windows (avoiding Distribute #193).
3135 * Distribute #192: Fixed metadata omitted on Windows when package_dir
3136   specified with forward-slash.
3137 * Distribute #195: Cython build support.
3138 * Distribute #200: Issues with recognizing 64-bit packages on Windows.
3139
3140 0.6.15
3141 ------
3142
3143 * Fixed typo in bdist_egg
3144 * Several issues under Python 3 has been solved.
3145 * Distribute #146: Fixed missing DLL files after easy_install of windows exe package.
3146
3147 0.6.14
3148 ------
3149
3150 * Distribute #170: Fixed unittest failure. Thanks to Toshio.
3151 * Distribute #171: Fixed race condition in unittests cause deadlocks in test suite.
3152 * Distribute #143: Fixed a lookup issue with easy_install.
3153   Thanks to David and Zooko.
3154 * Distribute #174: Fixed the edit mode when its used with setuptools itself
3155
3156 0.6.13
3157 ------
3158
3159 * Distribute #160: 2.7 gives ValueError("Invalid IPv6 URL")
3160 * Distribute #150: Fixed using ~/.local even in a --no-site-packages virtualenv
3161 * Distribute #163: scan index links before external links, and don't use the md5 when
3162   comparing two distributions
3163
3164 0.6.12
3165 ------
3166
3167 * Distribute #149: Fixed various failures on 2.3/2.4
3168
3169 0.6.11
3170 ------
3171
3172 * Found another case of SandboxViolation - fixed
3173 * Distribute #15 and Distribute #48: Introduced a socket timeout of 15 seconds on url openings
3174 * Added indexsidebar.html into MANIFEST.in
3175 * Distribute #108: Fixed TypeError with Python3.1
3176 * Distribute #121: Fixed --help install command trying to actually install.
3177 * Distribute #112: Added an os.makedirs so that Tarek's solution will work.
3178 * Distribute #133: Added --no-find-links to easy_install
3179 * Added easy_install --user
3180 * Distribute #100: Fixed develop --user not taking '.' in PYTHONPATH into account
3181 * Distribute #134: removed spurious UserWarnings. Patch by VanLindberg
3182 * Distribute #138: cant_write_to_target error when setup_requires is used.
3183 * Distribute #147: respect the sys.dont_write_bytecode flag
3184
3185 0.6.10
3186 ------
3187
3188 * Reverted change made for the DistributionNotFound exception because
3189   zc.buildout uses the exception message to get the name of the
3190   distribution.
3191
3192 0.6.9
3193 -----
3194
3195 * Distribute #90: unknown setuptools version can be added in the working set
3196 * Distribute #87: setupt.py doesn't try to convert distribute_setup.py anymore
3197   Initial Patch by arfrever.
3198 * Distribute #89: added a side bar with a download link to the doc.
3199 * Distribute #86: fixed missing sentence in pkg_resources doc.
3200 * Added a nicer error message when a DistributionNotFound is raised.
3201 * Distribute #80: test_develop now works with Python 3.1
3202 * Distribute #93: upload_docs now works if there is an empty sub-directory.
3203 * Distribute #70: exec bit on non-exec files
3204 * Distribute #99: now the standalone easy_install command doesn't uses a
3205   "setup.cfg" if any exists in the working directory. It will use it
3206   only if triggered by ``install_requires`` from a setup.py call
3207   (install, develop, etc).
3208 * Distribute #101: Allowing ``os.devnull`` in Sandbox
3209 * Distribute #92: Fixed the "no eggs" found error with MacPort
3210   (platform.mac_ver() fails)
3211 * Distribute #103: test_get_script_header_jython_workaround not run
3212   anymore under py3 with C or POSIX local. Contributed by Arfrever.
3213 * Distribute #104: remvoved the assertion when the installation fails,
3214   with a nicer message for the end user.
3215 * Distribute #100: making sure there's no SandboxViolation when
3216   the setup script patches setuptools.
3217
3218 0.6.8
3219 -----
3220
3221 * Added "check_packages" in dist. (added in Setuptools 0.6c11)
3222 * Fixed the DONT_PATCH_SETUPTOOLS state.
3223
3224 0.6.7
3225 -----
3226
3227 * Distribute #58: Added --user support to the develop command
3228 * Distribute #11: Generated scripts now wrap their call to the script entry point
3229   in the standard "if name == 'main'"
3230 * Added the 'DONT_PATCH_SETUPTOOLS' environment variable, so virtualenv
3231   can drive an installation that doesn't patch a global setuptools.
3232 * Reviewed unladen-swallow specific change from
3233   http://code.google.com/p/unladen-swallow/source/detail?spec=svn875&r=719
3234   and determined that it no longer applies. Distribute should work fine with
3235   Unladen Swallow 2009Q3.
3236 * Distribute #21: Allow PackageIndex.open_url to gracefully handle all cases of a
3237   httplib.HTTPException instead of just InvalidURL and BadStatusLine.
3238 * Removed virtual-python.py from this distribution and updated documentation
3239   to point to the actively maintained virtualenv instead.
3240 * Distribute #64: use_setuptools no longer rebuilds the distribute egg every
3241   time it is run
3242 * use_setuptools now properly respects the requested version
3243 * use_setuptools will no longer try to import a distribute egg for the
3244   wrong Python version
3245 * Distribute #74: no_fake should be True by default.
3246 * Distribute #72: avoid a bootstrapping issue with easy_install -U
3247
3248 0.6.6
3249 -----
3250
3251 * Unified the bootstrap file so it works on both py2.x and py3k without 2to3
3252   (patch by Holger Krekel)
3253
3254 0.6.5
3255 -----
3256
3257 * Distribute #65: cli.exe and gui.exe are now generated at build time,
3258   depending on the platform in use.
3259
3260 * Distribute #67: Fixed doc typo (PEP 381/PEP 382).
3261
3262 * Distribute no longer shadows setuptools if we require a 0.7-series
3263   setuptools. And an error is raised when installing a 0.7 setuptools with
3264   distribute.
3265
3266 * When run from within buildout, no attempt is made to modify an existing
3267   setuptools egg, whether in a shared egg directory or a system setuptools.
3268
3269 * Fixed a hole in sandboxing allowing builtin file to write outside of
3270   the sandbox.
3271
3272 0.6.4
3273 -----
3274
3275 * Added the generation of `distribute_setup_3k.py` during the release.
3276   This closes Distribute #52.
3277
3278 * Added an upload_docs command to easily upload project documentation to
3279   PyPI's https://pythonhosted.org. This close issue Distribute #56.
3280
3281 * Fixed a bootstrap bug on the use_setuptools() API.
3282
3283 0.6.3
3284 -----
3285
3286 setuptools
3287 ==========
3288
3289 * Fixed a bunch of calls to file() that caused crashes on Python 3.
3290
3291 bootstrapping
3292 =============
3293
3294 * Fixed a bug in sorting that caused bootstrap to fail on Python 3.
3295
3296 0.6.2
3297 -----
3298
3299 setuptools
3300 ==========
3301
3302 * Added Python 3 support; see docs/python3.txt.
3303   This closes Old Setuptools #39.
3304
3305 * Added option to run 2to3 automatically when installing on Python 3.
3306   This closes issue Distribute #31.
3307
3308 * Fixed invalid usage of requirement.parse, that broke develop -d.
3309   This closes Old Setuptools #44.
3310
3311 * Fixed script launcher for 64-bit Windows.
3312   This closes Old Setuptools #2.
3313
3314 * KeyError when compiling extensions.
3315   This closes Old Setuptools #41.
3316
3317 bootstrapping
3318 =============
3319
3320 * Fixed bootstrap not working on Windows. This closes issue Distribute #49.
3321
3322 * Fixed 2.6 dependencies. This closes issue Distribute #50.
3323
3324 * Make sure setuptools is patched when running through easy_install
3325   This closes Old Setuptools #40.
3326
3327 0.6.1
3328 -----
3329
3330 setuptools
3331 ==========
3332
3333 * package_index.urlopen now catches BadStatusLine and malformed url errors.
3334   This closes Distribute #16 and Distribute #18.
3335
3336 * zip_ok is now False by default. This closes Old Setuptools #33.
3337
3338 * Fixed invalid URL error catching. Old Setuptools #20.
3339
3340 * Fixed invalid bootstraping with easy_install installation (Distribute #40).
3341   Thanks to Florian Schulze for the help.
3342
3343 * Removed buildout/bootstrap.py. A new repository will create a specific
3344   bootstrap.py script.
3345
3346
3347 bootstrapping
3348 =============
3349
3350 * The boostrap process leave setuptools alone if detected in the system
3351   and --root or --prefix is provided, but is not in the same location.
3352   This closes Distribute #10.
3353
3354 0.6
3355 ---
3356
3357 setuptools
3358 ==========
3359
3360 * Packages required at build time where not fully present at install time.
3361   This closes Distribute #12.
3362
3363 * Protected against failures in tarfile extraction. This closes Distribute #10.
3364
3365 * Made Jython api_tests.txt doctest compatible. This closes Distribute #7.
3366
3367 * sandbox.py replaced builtin type file with builtin function open. This
3368   closes Distribute #6.
3369
3370 * Immediately close all file handles. This closes Distribute #3.
3371
3372 * Added compatibility with Subversion 1.6. This references Distribute #1.
3373
3374 pkg_resources
3375 =============
3376
3377 * Avoid a call to /usr/bin/sw_vers on OSX and use the official platform API
3378   instead. Based on a patch from ronaldoussoren. This closes issue #5.
3379
3380 * Fixed a SandboxViolation for mkdir that could occur in certain cases.
3381   This closes Distribute #13.
3382
3383 * Allow to find_on_path on systems with tight permissions to fail gracefully.
3384   This closes Distribute #9.
3385
3386 * Corrected inconsistency between documentation and code of add_entry.
3387   This closes Distribute #8.
3388
3389 * Immediately close all file handles. This closes Distribute #3.
3390
3391 easy_install
3392 ============
3393
3394 * Immediately close all file handles. This closes Distribute #3.
3395
3396 0.6c9
3397 -----
3398
3399  * Fixed a missing files problem when using Windows source distributions on
3400    non-Windows platforms, due to distutils not handling manifest file line
3401    endings correctly.
3402
3403  * Updated Pyrex support to work with Pyrex 0.9.6 and higher.
3404
3405  * Minor changes for Jython compatibility, including skipping tests that can't
3406    work on Jython.
3407
3408  * Fixed not installing eggs in ``install_requires`` if they were also used for
3409    ``setup_requires`` or ``tests_require``.
3410
3411  * Fixed not fetching eggs in ``install_requires`` when running tests.
3412
3413  * Allow ``ez_setup.use_setuptools()`` to upgrade existing setuptools
3414    installations when called from a standalone ``setup.py``.
3415
3416  * Added a warning if a namespace package is declared, but its parent package
3417    is not also declared as a namespace.
3418
3419  * Support Subversion 1.5
3420
3421  * Removed use of deprecated ``md5`` module if ``hashlib`` is available
3422
3423  * Fixed ``bdist_wininst upload`` trying to upload the ``.exe`` twice
3424
3425  * Fixed ``bdist_egg`` putting a ``native_libs.txt`` in the source package's
3426    ``.egg-info``, when it should only be in the built egg's ``EGG-INFO``.
3427
3428  * Ensure that _full_name is set on all shared libs before extensions are
3429    checked for shared lib usage.  (Fixes a bug in the experimental shared
3430    library build support.)
3431
3432  * Fix to allow unpacked eggs containing native libraries to fail more
3433    gracefully under Google App Engine (with an ``ImportError`` loading the
3434    C-based module, instead of getting a ``NameError``).
3435
3436  * Fixed ``win32.exe`` support for .pth files, so unnecessary directory nesting
3437    is flattened out in the resulting egg.  (There was a case-sensitivity
3438    problem that affected some distributions, notably ``pywin32``.)
3439
3440  * Prevent ``--help-commands`` and other junk from showing under Python 2.5
3441    when running ``easy_install --help``.
3442
3443  * Fixed GUI scripts sometimes not executing on Windows
3444
3445  * Fixed not picking up dependency links from recursive dependencies.
3446
3447  * Only make ``.py``, ``.dll`` and ``.so`` files executable when unpacking eggs
3448
3449  * Changes for Jython compatibility
3450
3451  * Improved error message when a requirement is also a directory name, but the
3452    specified directory is not a source package.
3453
3454  * Fixed ``--allow-hosts`` option blocking ``file:`` URLs
3455
3456  * Fixed HTTP SVN detection failing when the page title included a project
3457    name (e.g. on SourceForge-hosted SVN)
3458
3459  * Fix Jython script installation to handle ``#!`` lines better when
3460    ``sys.executable`` is a script.
3461
3462  * Removed use of deprecated ``md5`` module if ``hashlib`` is available
3463
3464  * Keep site directories (e.g. ``site-packages``) from being included in
3465    ``.pth`` files.
3466
3467 0.6c7
3468 -----
3469
3470  * Fixed ``distutils.filelist.findall()`` crashing on broken symlinks, and
3471    ``egg_info`` command failing on new, uncommitted SVN directories.
3472
3473  * Fix import problems with nested namespace packages installed via
3474    ``--root`` or ``--single-version-externally-managed``, due to the
3475    parent package not having the child package as an attribute.
3476
3477  * ``ftp:`` download URLs now work correctly.
3478
3479  * The default ``--index-url`` is now ``https://pypi.python.org/simple``, to use
3480    the Python Package Index's new simpler (and faster!) REST API.
3481
3482 0.6c6
3483 -----
3484
3485  * Added ``--egg-path`` option to ``develop`` command, allowing you to force
3486    ``.egg-link`` files to use relative paths (allowing them to be shared across
3487    platforms on a networked drive).
3488
3489  * Fix not building binary RPMs correctly.
3490
3491  * Fix "eggsecutables" (such as setuptools' own egg) only being runnable with
3492    bash-compatible shells.
3493
3494  * Fix ``#!`` parsing problems in Windows ``.exe`` script wrappers, when there
3495    was whitespace inside a quoted argument or at the end of the ``#!`` line
3496    (a regression introduced in 0.6c4).
3497
3498  * Fix ``test`` command possibly failing if an older version of the project
3499    being tested was installed on ``sys.path`` ahead of the test source
3500    directory.
3501
3502  * Fix ``find_packages()`` treating ``ez_setup`` and directories with ``.`` in
3503    their names as packages.
3504
3505  * EasyInstall no longer aborts the installation process if a URL it wants to
3506    retrieve can't be downloaded, unless the URL is an actual package download.
3507    Instead, it issues a warning and tries to keep going.
3508
3509  * Fixed distutils-style scripts originally built on Windows having their line
3510    endings doubled when installed on any platform.
3511
3512  * Added ``--local-snapshots-ok`` flag, to allow building eggs from projects
3513    installed using ``setup.py develop``.
3514
3515  * Fixed not HTML-decoding URLs scraped from web pages
3516
3517 0.6c5
3518 -----
3519
3520  * Fix uploaded ``bdist_rpm`` packages being described as ``bdist_egg``
3521    packages under Python versions less than 2.5.
3522
3523  * Fix uploaded ``bdist_wininst`` packages being described as suitable for
3524    "any" version by Python 2.5, even if a ``--target-version`` was specified.
3525
3526  * Fixed ``.dll`` files on Cygwin not having executable permissions when an egg
3527    is installed unzipped.
3528
3529 0.6c4
3530 -----
3531
3532  * Overhauled Windows script wrapping to support ``bdist_wininst`` better.
3533    Scripts installed with ``bdist_wininst`` will always use ``#!python.exe`` or
3534    ``#!pythonw.exe`` as the executable name (even when built on non-Windows
3535    platforms!), and the wrappers will look for the executable in the script's
3536    parent directory (which should find the right version of Python).
3537
3538  * Fix ``upload`` command not uploading files built by ``bdist_rpm`` or
3539    ``bdist_wininst`` under Python 2.3 and 2.4.
3540
3541  * Add support for "eggsecutable" headers: a ``#!/bin/sh`` script that is
3542    prepended to an ``.egg`` file to allow it to be run as a script on Unix-ish
3543    platforms.  (This is mainly so that setuptools itself can have a single-file
3544    installer on Unix, without doing multiple downloads, dealing with firewalls,
3545    etc.)
3546
3547  * Fix problem with empty revision numbers in Subversion 1.4 ``entries`` files
3548
3549  * Use cross-platform relative paths in ``easy-install.pth`` when doing
3550    ``develop`` and the source directory is a subdirectory of the installation
3551    target directory.
3552
3553  * Fix a problem installing eggs with a system packaging tool if the project
3554    contained an implicit namespace package; for example if the ``setup()``
3555    listed a namespace package ``foo.bar`` without explicitly listing ``foo``
3556    as a namespace package.
3557
3558  * Added support for HTTP "Basic" authentication using ``http://user:pass@host``
3559    URLs.  If a password-protected page contains links to the same host (and
3560    protocol), those links will inherit the credentials used to access the
3561    original page.
3562
3563  * Removed all special support for Sourceforge mirrors, as Sourceforge's
3564    mirror system now works well for non-browser downloads.
3565
3566  * Fixed not recognizing ``win32.exe`` installers that included a custom
3567    bitmap.
3568
3569  * Fixed not allowing ``os.open()`` of paths outside the sandbox, even if they
3570    are opened read-only (e.g. reading ``/dev/urandom`` for random numbers, as
3571    is done by ``os.urandom()`` on some platforms).
3572
3573  * Fixed a problem with ``.pth`` testing on Windows when ``sys.executable``
3574    has a space in it (e.g., the user installed Python to a ``Program Files``
3575    directory).
3576
3577 0.6c3
3578 -----
3579
3580  * Fixed breakages caused by Subversion 1.4's new "working copy" format
3581
3582  * You can once again use "python -m easy_install" with Python 2.4 and above.
3583
3584  * Python 2.5 compatibility fixes added.
3585
3586 0.6c2
3587 -----
3588
3589  * The ``ez_setup`` module displays the conflicting version of setuptools (and
3590    its installation location) when a script requests a version that's not
3591    available.
3592
3593  * Running ``setup.py develop`` on a setuptools-using project will now install
3594    setuptools if needed, instead of only downloading the egg.
3595
3596  * Windows script wrappers now support quoted arguments and arguments
3597    containing spaces.  (Patch contributed by Jim Fulton.)
3598
3599  * The ``ez_setup.py`` script now actually works when you put a setuptools
3600    ``.egg`` alongside it for bootstrapping an offline machine.
3601
3602  * A writable installation directory on ``sys.path`` is no longer required to
3603    download and extract a source distribution using ``--editable``.
3604
3605  * Generated scripts now use ``-x`` on the ``#!`` line when ``sys.executable``
3606    contains non-ASCII characters, to prevent deprecation warnings about an
3607    unspecified encoding when the script is run.
3608
3609 0.6c1
3610 -----
3611
3612  * Fixed ``AttributeError`` when trying to download a ``setup_requires``
3613    dependency when a distribution lacks a ``dependency_links`` setting.
3614
3615  * Made ``zip-safe`` and ``not-zip-safe`` flag files contain a single byte, so
3616    as to play better with packaging tools that complain about zero-length
3617    files.
3618
3619  * Made ``setup.py develop`` respect the ``--no-deps`` option, which it
3620    previously was ignoring.
3621
3622  * Support ``extra_path`` option to ``setup()`` when ``install`` is run in
3623    backward-compatibility mode.
3624
3625  * Source distributions now always include a ``setup.cfg`` file that explicitly
3626    sets ``egg_info`` options such that they produce an identical version number
3627    to the source distribution's version number.  (Previously, the default
3628    version number could be different due to the use of ``--tag-date``, or if
3629    the version was overridden on the command line that built the source
3630    distribution.)
3631
3632  * EasyInstall now includes setuptools version information in the
3633    ``User-Agent`` string sent to websites it visits.
3634
3635 0.6b4
3636 -----
3637
3638  * Fix ``register`` not obeying name/version set by ``egg_info`` command, if
3639    ``egg_info`` wasn't explicitly run first on the same command line.
3640
3641  * Added ``--no-date`` and ``--no-svn-revision`` options to ``egg_info``
3642    command, to allow suppressing tags configured in ``setup.cfg``.
3643
3644  * Fixed redundant warnings about missing ``README`` file(s); it should now
3645    appear only if you are actually a source distribution.
3646
3647  * Fix creating Python wrappers for non-Python scripts
3648
3649  * Fix ``ftp://`` directory listing URLs from causing a crash when used in the
3650    "Home page" or "Download URL" slots on PyPI.
3651
3652  * Fix ``sys.path_importer_cache`` not being updated when an existing zipfile
3653    or directory is deleted/overwritten.
3654
3655  * Fix not recognizing HTML 404 pages from package indexes.
3656
3657  * Allow ``file://`` URLs to be used as a package index.  URLs that refer to
3658    directories will use an internally-generated directory listing if there is
3659    no ``index.html`` file in the directory.
3660
3661  * Allow external links in a package index to be specified using
3662    ``rel="homepage"`` or ``rel="download"``, without needing the old
3663    PyPI-specific visible markup.
3664
3665  * Suppressed warning message about possibly-misspelled project name, if an egg
3666    or link for that project name has already been seen.
3667
3668 0.6b3
3669 -----
3670
3671  * Fix ``bdist_egg`` not including files in subdirectories of ``.egg-info``.
3672
3673  * Allow ``.py`` files found by the ``include_package_data`` option to be
3674    automatically included. Remove duplicate data file matches if both
3675    ``include_package_data`` and ``package_data`` are used to refer to the same
3676    files.
3677
3678  * Fix local ``--find-links`` eggs not being copied except with
3679    ``--always-copy``.
3680
3681  * Fix sometimes not detecting local packages installed outside of "site"
3682    directories.
3683
3684  * Fix mysterious errors during initial ``setuptools`` install, caused by
3685    ``ez_setup`` trying to run ``easy_install`` twice, due to a code fallthru
3686    after deleting the egg from which it's running.
3687
3688 0.6b2
3689 -----
3690
3691  * Don't install or update a ``site.py`` patch when installing to a
3692    ``PYTHONPATH`` directory with ``--multi-version``, unless an
3693    ``easy-install.pth`` file is already in use there.
3694
3695  * Construct ``.pth`` file paths in such a way that installing an egg whose
3696    name begins with ``import`` doesn't cause a syntax error.
3697
3698  * Fixed a bogus warning message that wasn't updated since the 0.5 versions.
3699
3700 0.6b1
3701 -----
3702
3703  * Strip ``module`` from the end of compiled extension modules when computing
3704    the name of a ``.py`` loader/wrapper.  (Python's import machinery ignores
3705    this suffix when searching for an extension module.)
3706
3707  * Better ambiguity management: accept ``#egg`` name/version even if processing
3708    what appears to be a correctly-named distutils file, and ignore ``.egg``
3709    files with no ``-``, since valid Python ``.egg`` files always have a version
3710    number (but Scheme eggs often don't).
3711
3712  * Support ``file://`` links to directories in ``--find-links``, so that
3713    easy_install can build packages from local source checkouts.
3714
3715  * Added automatic retry for Sourceforge mirrors.  The new download process is
3716    to first just try dl.sourceforge.net, then randomly select mirror IPs and
3717    remove ones that fail, until something works.  The removed IPs stay removed
3718    for the remainder of the run.
3719
3720  * Ignore bdist_dumb distributions when looking at download URLs.
3721
3722 0.6a11
3723 ------
3724
3725  * Added ``test_loader`` keyword to support custom test loaders
3726
3727  * Added ``setuptools.file_finders`` entry point group to allow implementing
3728    revision control plugins.
3729
3730  * Added ``--identity`` option to ``upload`` command.
3731
3732  * Added ``dependency_links`` to allow specifying URLs for ``--find-links``.
3733
3734  * Enhanced test loader to scan packages as well as modules, and call
3735    ``additional_tests()`` if present to get non-unittest tests.
3736
3737  * Support namespace packages in conjunction with system packagers, by omitting
3738    the installation of any ``__init__.py`` files for namespace packages, and
3739    adding a special ``.pth`` file to create a working package in
3740    ``sys.modules``.
3741
3742  * Made ``--single-version-externally-managed`` automatic when ``--root`` is
3743    used, so that most system packagers won't require special support for
3744    setuptools.
3745
3746  * Fixed ``setup_requires``, ``tests_require``, etc. not using ``setup.cfg`` or
3747    other configuration files for their option defaults when installing, and
3748    also made the install use ``--multi-version`` mode so that the project
3749    directory doesn't need to support .pth files.
3750
3751  * ``MANIFEST.in`` is now forcibly closed when any errors occur while reading
3752    it. Previously, the file could be left open and the actual error would be
3753    masked by problems trying to remove the open file on Windows systems.
3754
3755  * Process ``dependency_links.txt`` if found in a distribution, by adding the
3756    URLs to the list for scanning.
3757
3758  * Use relative paths in ``.pth`` files when eggs are being installed to the
3759    same directory as the ``.pth`` file.  This maximizes portability of the
3760    target directory when building applications that contain eggs.
3761
3762  * Added ``easy_install-N.N`` script(s) for convenience when using multiple
3763    Python versions.
3764
3765  * Added automatic handling of installation conflicts.  Eggs are now shifted to
3766    the front of sys.path, in an order consistent with where they came from,
3767    making EasyInstall seamlessly co-operate with system package managers.
3768
3769    The ``--delete-conflicting`` and ``--ignore-conflicts-at-my-risk`` options
3770    are now no longer necessary, and will generate warnings at the end of a
3771    run if you use them.
3772
3773  * Don't recursively traverse subdirectories given to ``--find-links``.
3774
3775 0.6a10
3776 ------
3777
3778  * Fixed the ``develop`` command ignoring ``--find-links``.
3779
3780  * Added exhaustive testing of the install directory, including a spawn test
3781    for ``.pth`` file support, and directory writability/existence checks.  This
3782    should virtually eliminate the need to set or configure ``--site-dirs``.
3783
3784  * Added ``--prefix`` option for more do-what-I-mean-ishness in the absence of
3785    RTFM-ing.  :)
3786
3787  * Enhanced ``PYTHONPATH`` support so that you don't have to put any eggs on it
3788    manually to make it work.  ``--multi-version`` is no longer a silent
3789    default; you must explicitly use it if installing to a non-PYTHONPATH,
3790    non-"site" directory.
3791
3792  * Expand ``$variables`` used in the ``--site-dirs``, ``--build-directory``,
3793    ``--install-dir``, and ``--script-dir`` options, whether on the command line
3794    or in configuration files.
3795
3796  * Improved SourceForge mirror processing to work faster and be less affected
3797    by transient HTML changes made by SourceForge.
3798
3799  * PyPI searches now use the exact spelling of requirements specified on the
3800    command line or in a project's ``install_requires``.  Previously, a
3801    normalized form of the name was used, which could lead to unnecessary
3802    full-index searches when a project's name had an underscore (``_``) in it.
3803
3804  * EasyInstall can now download bare ``.py`` files and wrap them in an egg,
3805    as long as you include an ``#egg=name-version`` suffix on the URL, or if
3806    the ``.py`` file is listed as the "Download URL" on the project's PyPI page.
3807    This allows third parties to "package" trivial Python modules just by
3808    linking to them (e.g. from within their own PyPI page or download links
3809    page).
3810
3811  * The ``--always-copy`` option now skips "system" and "development" eggs since
3812    they can't be reliably copied.  Note that this may cause EasyInstall to
3813    choose an older version of a package than what you expected, or it may cause
3814    downloading and installation of a fresh version of what's already installed.
3815
3816  * The ``--find-links`` option previously scanned all supplied URLs and
3817    directories as early as possible, but now only directories and direct
3818    archive links are scanned immediately.  URLs are not retrieved unless a
3819    package search was already going to go online due to a package not being
3820    available locally, or due to the use of the ``--update`` or ``-U`` option.
3821
3822  * Fixed the annoying ``--help-commands`` wart.
3823
3824 0.6a9
3825 -----
3826
3827  * The ``sdist`` command no longer uses the traditional ``MANIFEST`` file to
3828    create source distributions.  ``MANIFEST.in`` is still read and processed,
3829    as are the standard defaults and pruning. But the manifest is built inside
3830    the project's ``.egg-info`` directory as ``SOURCES.txt``, and it is rebuilt
3831    every time the ``egg_info`` command is run.
3832
3833  * Added the ``include_package_data`` keyword to ``setup()``, allowing you to
3834    automatically include any package data listed in revision control or
3835    ``MANIFEST.in``
3836
3837  * Added the ``exclude_package_data`` keyword to ``setup()``, allowing you to
3838    trim back files included via the ``package_data`` and
3839    ``include_package_data`` options.
3840
3841  * Fixed ``--tag-svn-revision`` not working when run from a source
3842    distribution.
3843
3844  * Added warning for namespace packages with missing ``declare_namespace()``
3845
3846  * Added ``tests_require`` keyword to ``setup()``, so that e.g. packages
3847    requiring ``nose`` to run unit tests can make this dependency optional
3848    unless the ``test`` command is run.
3849
3850  * Made all commands that use ``easy_install`` respect its configuration
3851    options, as this was causing some problems with ``setup.py install``.
3852
3853  * Added an ``unpack_directory()`` driver to ``setuptools.archive_util``, so
3854    that you can process a directory tree through a processing filter as if it
3855    were a zipfile or tarfile.
3856
3857  * Added an internal ``install_egg_info`` command to use as part of old-style
3858    ``install`` operations, that installs an ``.egg-info`` directory with the
3859    package.
3860
3861  * Added a ``--single-version-externally-managed`` option to the ``install``
3862    command so that you can more easily wrap a "flat" egg in a system package.
3863
3864  * Enhanced ``bdist_rpm`` so that it installs single-version eggs that
3865    don't rely on a ``.pth`` file. The ``--no-egg`` option has been removed,
3866    since all RPMs are now built in a more backwards-compatible format.
3867
3868  * Support full roundtrip translation of eggs to and from ``bdist_wininst``
3869    format. Running ``bdist_wininst`` on a setuptools-based package wraps the
3870    egg in an .exe that will safely install it as an egg (i.e., with metadata
3871    and entry-point wrapper scripts), and ``easy_install`` can turn the .exe
3872    back into an ``.egg`` file or directory and install it as such.
3873
3874  * Fixed ``.pth`` file processing picking up nested eggs (i.e. ones inside
3875    "baskets") when they weren't explicitly listed in the ``.pth`` file.
3876
3877  * If more than one URL appears to describe the exact same distribution, prefer
3878    the shortest one.  This helps to avoid "table of contents" CGI URLs like the
3879    ones on effbot.org.
3880
3881  * Quote arguments to python.exe (including python's path) to avoid problems
3882    when Python (or a script) is installed in a directory whose name contains
3883    spaces on Windows.
3884
3885  * Support full roundtrip translation of eggs to and from ``bdist_wininst``
3886    format.  Running ``bdist_wininst`` on a setuptools-based package wraps the
3887    egg in an .exe that will safely install it as an egg (i.e., with metadata
3888    and entry-point wrapper scripts), and ``easy_install`` can turn the .exe
3889    back into an ``.egg`` file or directory and install it as such.
3890
3891 0.6a8
3892 -----
3893
3894  * Fixed some problems building extensions when Pyrex was installed, especially
3895    with Python 2.4 and/or packages using SWIG.
3896
3897  * Made ``develop`` command accept all the same options as ``easy_install``,
3898    and use the ``easy_install`` command's configuration settings as defaults.
3899
3900  * Made ``egg_info --tag-svn-revision`` fall back to extracting the revision
3901    number from ``PKG-INFO`` in case it is being run on a source distribution of
3902    a snapshot taken from a Subversion-based project.
3903
3904  * Automatically detect ``.dll``, ``.so`` and ``.dylib`` files that are being
3905    installed as data, adding them to ``native_libs.txt`` automatically.
3906
3907  * Fixed some problems with fresh checkouts of projects that don't include
3908    ``.egg-info/PKG-INFO`` under revision control and put the project's source
3909    code directly in the project directory. If such a package had any
3910    requirements that get processed before the ``egg_info`` command can be run,
3911    the setup scripts would fail with a "Missing 'Version:' header and/or
3912    PKG-INFO file" error, because the egg runtime interpreted the unbuilt
3913    metadata in a directory on ``sys.path`` (i.e. the current directory) as
3914    being a corrupted egg. Setuptools now monkeypatches the distribution
3915    metadata cache to pretend that the egg has valid version information, until
3916    it has a chance to make it actually be so (via the ``egg_info`` command).
3917
3918  * Update for changed SourceForge mirror format
3919
3920  * Fixed not installing dependencies for some packages fetched via Subversion
3921
3922  * Fixed dependency installation with ``--always-copy`` not using the same
3923    dependency resolution procedure as other operations.
3924
3925  * Fixed not fully removing temporary directories on Windows, if a Subversion
3926    checkout left read-only files behind
3927
3928  * Fixed some problems building extensions when Pyrex was installed, especially
3929    with Python 2.4 and/or packages using SWIG.
3930
3931 0.6a7
3932 -----
3933
3934  * Fixed not being able to install Windows script wrappers using Python 2.3
3935
3936 0.6a6
3937 -----
3938
3939  * Added support for "traditional" PYTHONPATH-based non-root installation, and
3940    also the convenient ``virtual-python.py`` script, based on a contribution
3941    by Ian Bicking.  The setuptools egg now contains a hacked ``site`` module
3942    that makes the PYTHONPATH-based approach work with .pth files, so that you
3943    can get the full EasyInstall feature set on such installations.
3944
3945  * Added ``--no-deps`` and ``--allow-hosts`` options.
3946
3947  * Improved Windows ``.exe`` script wrappers so that the script can have the
3948    same name as a module without confusing Python.
3949
3950  * Changed dependency processing so that it's breadth-first, allowing a
3951    depender's preferences to override those of a dependee, to prevent conflicts
3952    when a lower version is acceptable to the dependee, but not the depender.
3953    Also, ensure that currently installed/selected packages aren't given
3954    precedence over ones desired by a package being installed, which could
3955    cause conflict errors.
3956
3957 0.6a5
3958 -----
3959
3960  * Fixed missing gui/cli .exe files in distribution. Fixed bugs in tests.
3961
3962 0.6a3
3963 -----
3964
3965  * Added ``gui_scripts`` entry point group to allow installing GUI scripts
3966    on Windows and other platforms.  (The special handling is only for Windows;
3967    other platforms are treated the same as for ``console_scripts``.)
3968
3969  * Improved error message when trying to use old ways of running
3970    ``easy_install``.  Removed the ability to run via ``python -m`` or by
3971    running ``easy_install.py``; ``easy_install`` is the command to run on all
3972    supported platforms.
3973
3974  * Improved wrapper script generation and runtime initialization so that a
3975    VersionConflict doesn't occur if you later install a competing version of a
3976    needed package as the default version of that package.
3977
3978  * Fixed a problem parsing version numbers in ``#egg=`` links.
3979
3980 0.6a2
3981 -----
3982
3983  * Added ``console_scripts`` entry point group to allow installing scripts
3984    without the need to create separate script files. On Windows, console
3985    scripts get an ``.exe`` wrapper so you can just type their name. On other
3986    platforms, the scripts are written without a file extension.
3987
3988  * EasyInstall can now install "console_scripts" defined by packages that use
3989    ``setuptools`` and define appropriate entry points.  On Windows, console
3990    scripts get an ``.exe`` wrapper so you can just type their name.  On other
3991    platforms, the scripts are installed without a file extension.
3992
3993  * Using ``python -m easy_install`` or running ``easy_install.py`` is now
3994    DEPRECATED, since an ``easy_install`` wrapper is now available on all
3995    platforms.
3996
3997 0.6a1
3998 -----
3999
4000  * Added support for building "old-style" RPMs that don't install an egg for
4001    the target package, using a ``--no-egg`` option.
4002
4003  * The ``build_ext`` command now works better when using the ``--inplace``
4004    option and multiple Python versions. It now makes sure that all extensions
4005    match the current Python version, even if newer copies were built for a
4006    different Python version.
4007
4008  * The ``upload`` command no longer attaches an extra ``.zip`` when uploading
4009    eggs, as PyPI now supports egg uploads without trickery.
4010
4011  * The ``ez_setup`` script/module now displays a warning before downloading
4012    the setuptools egg, and attempts to check the downloaded egg against an
4013    internal MD5 checksum table.
4014
4015  * Fixed the ``--tag-svn-revision`` option of ``egg_info`` not finding the
4016    latest revision number; it was using the revision number of the directory
4017    containing ``setup.py``, not the highest revision number in the project.
4018
4019  * Added ``eager_resources`` setup argument
4020
4021  * The ``sdist`` command now recognizes Subversion "deleted file" entries and
4022    does not include them in source distributions.
4023
4024  * ``setuptools`` now embeds itself more thoroughly into the distutils, so that
4025    other distutils extensions (e.g. py2exe, py2app) will subclass setuptools'
4026    versions of things, rather than the native distutils ones.
4027
4028  * Added ``entry_points`` and ``setup_requires`` arguments to ``setup()``;
4029    ``setup_requires`` allows you to automatically find and download packages
4030    that are needed in order to *build* your project (as opposed to running it).
4031
4032  * ``setuptools`` now finds its commands, ``setup()`` argument validators, and
4033    metadata writers using entry points, so that they can be extended by
4034    third-party packages. See `Creating distutils Extensions
4035    <https://setuptools.readthedocs.io/en/latest/setuptools.html#creating-distutils-extensions>`_
4036    for more details.
4037
4038  * The vestigial ``depends`` command has been removed. It was never finished
4039    or documented, and never would have worked without EasyInstall - which it
4040    pre-dated and was never compatible with.
4041
4042  * EasyInstall now does MD5 validation of downloads from PyPI, or from any link
4043    that has an "#md5=..." trailer with a 32-digit lowercase hex md5 digest.
4044
4045  * EasyInstall now handles symlinks in target directories by removing the link,
4046    rather than attempting to overwrite the link's destination.  This makes it
4047    easier to set up an alternate Python "home" directory (as described in
4048    the Non-Root Installation section of the docs).
4049
4050  * Added support for handling MacOS platform information in ``.egg`` filenames,
4051    based on a contribution by Kevin Dangoor.  You may wish to delete and
4052    reinstall any eggs whose filename includes "darwin" and "Power_Macintosh",
4053    because the format for this platform information has changed so that minor
4054    OS X upgrades (such as 10.4.1 to 10.4.2) do not cause eggs built with a
4055    previous OS version to become obsolete.
4056
4057  * easy_install's dependency processing algorithms have changed.  When using
4058    ``--always-copy``, it now ensures that dependencies are copied too.  When
4059    not using ``--always-copy``, it tries to use a single resolution loop,
4060    rather than recursing.
4061
4062  * Fixed installing extra ``.pyc`` or ``.pyo`` files for scripts with ``.py``
4063    extensions.
4064
4065  * Added ``--site-dirs`` option to allow adding custom "site" directories.
4066    Made ``easy-install.pth`` work in platform-specific alternate site
4067    directories (e.g. ``~/Library/Python/2.x/site-packages`` on Mac OS X).
4068
4069  * If you manually delete the current version of a package, the next run of
4070    EasyInstall against the target directory will now remove the stray entry
4071    from the ``easy-install.pth`` file.
4072
4073  * EasyInstall now recognizes URLs with a ``#egg=project_name`` fragment ID
4074    as pointing to the named project's source checkout.  Such URLs have a lower
4075    match precedence than any other kind of distribution, so they'll only be
4076    used if they have a higher version number than any other available
4077    distribution, or if you use the ``--editable`` option.  The ``#egg``
4078    fragment can contain a version if it's formatted as ``#egg=proj-ver``,
4079    where ``proj`` is the project name, and ``ver`` is the version number.  You
4080    *must* use the format for these values that the ``bdist_egg`` command uses;
4081    i.e., all non-alphanumeric runs must be condensed to single underscore
4082    characters.
4083
4084  * Added the ``--editable`` option; see Editing and Viewing Source Packages
4085    in the docs.  Also, slightly changed the behavior of the
4086    ``--build-directory`` option.
4087
4088  * Fixed the setup script sandbox facility not recognizing certain paths as
4089    valid on case-insensitive platforms.
4090
4091 0.5a12
4092 ------
4093
4094  * The zip-safety scanner now checks for modules that might be used with
4095    ``python -m``, and marks them as unsafe for zipping, since Python 2.4 can't
4096    handle ``-m`` on zipped modules.
4097
4098  * Fix ``python -m easy_install`` not working due to setuptools being installed
4099    as a zipfile.  Update safety scanner to check for modules that might be used
4100    as ``python -m`` scripts.
4101
4102  * Misc. fixes for win32.exe support, including changes to support Python 2.4's
4103    changed ``bdist_wininst`` format.
4104
4105 0.5a11
4106 ------
4107
4108  * Fix breakage of the "develop" command that was caused by the addition of
4109    ``--always-unzip`` to the ``easy_install`` command.
4110
4111 0.5a10
4112 ------
4113
4114  * Put the ``easy_install`` module back in as a module, as it's needed for
4115    ``python -m`` to run it!
4116
4117  * Allow ``--find-links/-f`` to accept local directories or filenames as well
4118    as URLs.
4119
4120 0.5a9
4121 -----
4122
4123  * Include ``svn:externals`` directories in source distributions as well as
4124    normal subversion-controlled files and directories.
4125
4126  * Added ``exclude=patternlist`` option to ``setuptools.find_packages()``
4127
4128  * Changed --tag-svn-revision to include an "r" in front of the revision number
4129    for better readability.
4130
4131  * Added ability to build eggs without including source files (except for any
4132    scripts, of course), using the ``--exclude-source-files`` option to
4133    ``bdist_egg``.
4134
4135  * ``setup.py install`` now automatically detects when an "unmanaged" package
4136    or module is going to be on ``sys.path`` ahead of a package being installed,
4137    thereby preventing the newer version from being imported. If this occurs,
4138    a warning message is output to ``sys.stderr``, but installation proceeds
4139    anyway. The warning message informs the user what files or directories
4140    need deleting, and advises them they can also use EasyInstall (with the
4141    ``--delete-conflicting`` option) to do it automatically.
4142
4143  * The ``egg_info`` command now adds a ``top_level.txt`` file to the metadata
4144    directory that lists all top-level modules and packages in the distribution.
4145    This is used by the ``easy_install`` command to find possibly-conflicting
4146    "unmanaged" packages when installing the distribution.
4147
4148  * Added ``zip_safe`` and ``namespace_packages`` arguments to ``setup()``.
4149    Added package analysis to determine zip-safety if the ``zip_safe`` flag
4150    is not given, and advise the author regarding what code might need changing.
4151
4152  * Fixed the swapped ``-d`` and ``-b`` options of ``bdist_egg``.
4153
4154  * EasyInstall now automatically detects when an "unmanaged" package or
4155    module is going to be on ``sys.path`` ahead of a package you're installing,
4156    thereby preventing the newer version from being imported.  By default, it
4157    will abort installation to alert you of the problem, but there are also
4158    new options (``--delete-conflicting`` and ``--ignore-conflicts-at-my-risk``)
4159    available to change the default behavior.  (Note: this new feature doesn't
4160    take effect for egg files that were built with older ``setuptools``
4161    versions, because they lack the new metadata file required to implement it.)
4162
4163  * The ``easy_install`` distutils command now uses ``DistutilsError`` as its
4164    base error type for errors that should just issue a message to stderr and
4165    exit the program without a traceback.
4166
4167  * EasyInstall can now be given a path to a directory containing a setup
4168    script, and it will attempt to build and install the package there.
4169
4170  * EasyInstall now performs a safety analysis on module contents to determine
4171    whether a package is likely to run in zipped form, and displays
4172    information about what modules may be doing introspection that would break
4173    when running as a zipfile.
4174
4175  * Added the ``--always-unzip/-Z`` option, to force unzipping of packages that
4176    would ordinarily be considered safe to unzip, and changed the meaning of
4177    ``--zip-ok/-z`` to "always leave everything zipped".
4178
4179 0.5a8
4180 -----
4181
4182  * The "egg_info" command now always sets the distribution metadata to "safe"
4183    forms of the distribution name and version, so that distribution files will
4184    be generated with parseable names (i.e., ones that don't include '-' in the
4185    name or version). Also, this means that if you use the various ``--tag``
4186    options of "egg_info", any distributions generated will use the tags in the
4187    version, not just egg distributions.
4188
4189  * Added support for defining command aliases in distutils configuration files,
4190    under the "[aliases]" section. To prevent recursion and to allow aliases to
4191    call the command of the same name, a given alias can be expanded only once
4192    per command-line invocation. You can define new aliases with the "alias"
4193    command, either for the local, global, or per-user configuration.
4194
4195  * Added "rotate" command to delete old distribution files, given a set of
4196    patterns to match and the number of files to keep.  (Keeps the most
4197    recently-modified distribution files matching each pattern.)
4198
4199  * Added "saveopts" command that saves all command-line options for the current
4200    invocation to the local, global, or per-user configuration file. Useful for
4201    setting defaults without having to hand-edit a configuration file.
4202
4203  * Added a "setopt" command that sets a single option in a specified distutils
4204    configuration file.
4205
4206  * There is now a separate documentation page for setuptools; revision
4207    history that's not specific to EasyInstall has been moved to that page.
4208
4209 0.5a7
4210 -----
4211
4212  * Added "upload" support for egg and source distributions, including a bug
4213    fix for "upload" and a temporary workaround for lack of .egg support in
4214    PyPI.
4215
4216 0.5a6
4217 -----
4218
4219  * Beefed up the "sdist" command so that if you don't have a MANIFEST.in, it
4220    will include all files under revision control (CVS or Subversion) in the
4221    current directory, and it will regenerate the list every time you create a
4222    source distribution, not just when you tell it to. This should make the
4223    default "do what you mean" more often than the distutils' default behavior
4224    did, while still retaining the old behavior in the presence of MANIFEST.in.
4225
4226  * Fixed the "develop" command always updating .pth files, even if you
4227    specified ``-n`` or ``--dry-run``.
4228
4229  * Slightly changed the format of the generated version when you use
4230    ``--tag-build`` on the "egg_info" command, so that you can make tagged
4231    revisions compare *lower* than the version specified in setup.py (e.g. by
4232    using ``--tag-build=dev``).
4233
4234 0.5a5
4235 -----
4236
4237  * Added ``develop`` command to ``setuptools``-based packages. This command
4238    installs an ``.egg-link`` pointing to the package's source directory, and
4239    script wrappers that ``execfile()`` the source versions of the package's
4240    scripts. This lets you put your development checkout(s) on sys.path without
4241    having to actually install them.  (To uninstall the link, use
4242    use ``setup.py develop --uninstall``.)
4243
4244  * Added ``egg_info`` command to ``setuptools``-based packages. This command
4245    just creates or updates the "projectname.egg-info" directory, without
4246    building an egg.  (It's used by the ``bdist_egg``, ``test``, and ``develop``
4247    commands.)
4248
4249  * Enhanced the ``test`` command so that it doesn't install the package, but
4250    instead builds any C extensions in-place, updates the ``.egg-info``
4251    metadata, adds the source directory to ``sys.path``, and runs the tests
4252    directly on the source. This avoids an "unmanaged" installation of the
4253    package to ``site-packages`` or elsewhere.
4254
4255  * Made ``easy_install`` a standard ``setuptools`` command, moving it from
4256    the ``easy_install`` module to ``setuptools.command.easy_install``. Note
4257    that if you were importing or extending it, you must now change your imports
4258    accordingly.  ``easy_install.py`` is still installed as a script, but not as
4259    a module.
4260
4261 0.5a4
4262 -----
4263
4264  * Setup scripts using setuptools can now list their dependencies directly in
4265    the setup.py file, without having to manually create a ``depends.txt`` file.
4266    The ``install_requires`` and ``extras_require`` arguments to ``setup()``
4267    are used to create a dependencies file automatically. If you are manually
4268    creating ``depends.txt`` right now, please switch to using these setup
4269    arguments as soon as practical, because ``depends.txt`` support will be
4270    removed in the 0.6 release cycle. For documentation on the new arguments,
4271    see the ``setuptools.dist.Distribution`` class.
4272
4273  * Setup scripts using setuptools now always install using ``easy_install``
4274    internally, for ease of uninstallation and upgrading.
4275
4276  * Added ``--always-copy/-a`` option to always copy needed packages to the
4277    installation directory, even if they're already present elsewhere on
4278    sys.path. (In previous versions, this was the default behavior, but now
4279    you must request it.)
4280
4281  * Added ``--upgrade/-U`` option to force checking PyPI for latest available
4282    version(s) of all packages requested by name and version, even if a matching
4283    version is available locally.
4284
4285  * Added automatic installation of dependencies declared by a distribution
4286    being installed.  These dependencies must be listed in the distribution's
4287    ``EGG-INFO`` directory, so the distribution has to have declared its
4288    dependencies by using setuptools.  If a package has requirements it didn't
4289    declare, you'll still have to deal with them yourself.  (E.g., by asking
4290    EasyInstall to find and install them.)
4291
4292  * Added the ``--record`` option to ``easy_install`` for the benefit of tools
4293    that run ``setup.py install --record=filename`` on behalf of another
4294    packaging system.)
4295
4296 0.5a3
4297 -----
4298
4299  * Fixed not setting script permissions to allow execution.
4300
4301  * Improved sandboxing so that setup scripts that want a temporary directory
4302    (e.g. pychecker) can still run in the sandbox.
4303
4304 0.5a2
4305 -----
4306
4307  * Fix stupid stupid refactoring-at-the-last-minute typos.  :(
4308
4309 0.5a1
4310 -----
4311
4312  * Added support for "self-installation" bootstrapping. Packages can now
4313    include ``ez_setup.py`` in their source distribution, and add the following
4314    to their ``setup.py``, in order to automatically bootstrap installation of
4315    setuptools as part of their setup process::
4316
4317     from ez_setup import use_setuptools
4318     use_setuptools()
4319
4320     from setuptools import setup
4321     # etc...
4322
4323  * Added support for converting ``.win32.exe`` installers to eggs on the fly.
4324    EasyInstall will now recognize such files by name and install them.
4325
4326  * Fixed a problem with picking the "best" version to install (versions were
4327    being sorted as strings, rather than as parsed values)
4328
4329 0.4a4
4330 -----
4331
4332  * Added support for the distutils "verbose/quiet" and "dry-run" options, as
4333    well as the "optimize" flag.
4334
4335  * Support downloading packages that were uploaded to PyPI (by scanning all
4336    links on package pages, not just the homepage/download links).
4337
4338 0.4a3
4339 -----
4340
4341  * Add progress messages to the search/download process so that you can tell
4342    what URLs it's reading to find download links.  (Hopefully, this will help
4343    people report out-of-date and broken links to package authors, and to tell
4344    when they've asked for a package that doesn't exist.)
4345
4346 0.4a2
4347 -----
4348
4349  * Added ``ez_setup.py`` installer/bootstrap script to make initial setuptools
4350    installation easier, and to allow distributions using setuptools to avoid
4351    having to include setuptools in their source distribution.
4352
4353  * All downloads are now managed by the ``PackageIndex`` class (which is now
4354    subclassable and replaceable), so that embedders can more easily override
4355    download logic, give download progress reports, etc. The class has also
4356    been moved to the new ``setuptools.package_index`` module.
4357
4358  * The ``Installer`` class no longer handles downloading, manages a temporary
4359    directory, or tracks the ``zip_ok`` option. Downloading is now handled
4360    by ``PackageIndex``, and ``Installer`` has become an ``easy_install``
4361    command class based on ``setuptools.Command``.
4362
4363  * There is a new ``setuptools.sandbox.run_setup()`` API to invoke a setup
4364    script in a directory sandbox, and a new ``setuptools.archive_util`` module
4365    with an ``unpack_archive()`` API. These were split out of EasyInstall to
4366    allow reuse by other tools and applications.
4367
4368  * ``setuptools.Command`` now supports reinitializing commands using keyword
4369    arguments to set/reset options. Also, ``Command`` subclasses can now set
4370    their ``command_consumes_arguments`` attribute to ``True`` in order to
4371    receive an ``args`` option containing the rest of the command line.
4372
4373  * Added support for installing scripts
4374
4375  * Added support for setting options via distutils configuration files, and
4376    using distutils' default options as a basis for EasyInstall's defaults.
4377
4378  * Renamed ``--scan-url/-s`` to ``--find-links/-f`` to free up ``-s`` for the
4379    script installation directory option.
4380
4381  * Use ``urllib2`` instead of ``urllib``, to allow use of ``https:`` URLs if
4382    Python includes SSL support.
4383
4384 0.4a1
4385 -----
4386
4387  * Added ``--scan-url`` and ``--index-url`` options, to scan download pages
4388    and search PyPI for needed packages.
4389
4390 0.3a4
4391 -----
4392
4393  * Restrict ``--build-directory=DIR/-b DIR`` option to only be used with single
4394    URL installs, to avoid running the wrong setup.py.
4395
4396 0.3a3
4397 -----
4398
4399  * Added ``--build-directory=DIR/-b DIR`` option.
4400
4401  * Added "installation report" that explains how to use 'require()' when doing
4402    a multiversion install or alternate installation directory.
4403
4404  * Added SourceForge mirror auto-select (Contributed by Ian Bicking)
4405
4406  * Added "sandboxing" that stops a setup script from running if it attempts to
4407    write to the filesystem outside of the build area
4408
4409  * Added more workarounds for packages with quirky ``install_data`` hacks
4410
4411 0.3a2
4412 -----
4413
4414  * Added new options to ``bdist_egg`` to allow tagging the egg's version number
4415    with a subversion revision number, the current date, or an explicit tag
4416    value. Run ``setup.py bdist_egg --help`` to get more information.
4417
4418  * Added subversion download support for ``svn:`` and ``svn+`` URLs, as well as
4419    automatic recognition of HTTP subversion URLs (Contributed by Ian Bicking)
4420
4421  * Misc. bug fixes
4422
4423 0.3a1
4424 -----
4425
4426  * Initial release.
4427