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