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