• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1v39.1.0
2-------
3
4* #1340: Update all PyPI URLs to reflect the switch to the
5  new Warehouse codebase.
6* #1337: In ``pkg_resources``, now support loading resources
7  for modules loaded by the ``SourcelessFileLoader``.
8* #1332: Silence spurious wheel related warnings on Windows.
9
10v39.0.1
11-------
12
13* #1297: Restore Unicode handling for Maintainer fields in
14  metadata.
15
16v39.0.0
17-------
18
19* #1296: Setuptools now vendors its own direct dependencies, no
20  longer relying on the dependencies as vendored by pkg_resources.
21
22* #296: Removed long-deprecated support for iteration on
23  Version objects as returned by ``pkg_resources.parse_version``.
24  Removed the ``SetuptoolsVersion`` and
25  ``SetuptoolsLegacyVersion`` names as well. They should not
26  have been used, but if they were, replace with
27  ``Version`` and ``LegacyVersion`` from ``packaging.version``.
28
29v38.7.0
30-------
31
32* #1288: Add support for maintainer in PKG-INFO.
33
34v38.6.1
35-------
36
37* #1292: Avoid generating ``Provides-Extra`` in metadata when
38  no extra is present (but environment markers are).
39
40v38.6.0
41-------
42
43* #1286: Add support for Metadata 2.1 (PEP 566).
44
45v38.5.2
46-------
47
48* #1285: Fixed RuntimeError in pkg_resources.parse_requirements
49  on Python 3.7 (stemming from PEP 479).
50
51v38.5.1
52-------
53
54* #1271: Revert to Cython legacy ``build_ext`` behavior for
55  compatibility.
56
57v38.5.0
58-------
59
60* #1229: Expand imports in ``build_ext`` to refine detection of
61  Cython availability.
62
63* #1270: When Cython is available, ``build_ext`` now uses the
64  new_build_ext.
65
66v38.4.1
67-------
68
69* #1257: In bdist_egg.scan_module, fix ValueError on Python 3.7.
70
71v38.4.0
72-------
73
74* #1231: Removed warning when PYTHONDONTWRITEBYTECODE is enabled.
75
76v38.3.0
77-------
78
79* #1210: Add support for PEP 345 Project-URL metadata.
80* #1207: Add support for ``long_description_type`` to setup.cfg
81  declarative config as intended and documented.
82
83v38.2.5
84-------
85
86* #1232: Fix trailing slash handling in ``pkg_resources.ZipProvider``.
87
88v38.2.4
89-------
90
91* #1220: Fix `data_files` handling when installing from wheel.
92
93v38.2.3
94-------
95
96* fix Travis' Python 3.3 job.
97
98v38.2.2
99-------
100
101* #1214: fix handling of namespace packages when installing
102  from a wheel.
103
104v38.2.1
105-------
106
107* #1212: fix encoding handling of metadata when installing
108  from a wheel.
109
110v38.2.0
111-------
112
113* #1200: easy_install now support installing from wheels:
114  they will be installed as standalone unzipped eggs.
115
116v38.1.0
117-------
118
119* #1208: Improve error message when failing to locate scripts
120  in egg-info metadata.
121
122v38.0.0
123-------
124
125* #458: In order to support deterministic builds, Setuptools no
126  longer allows packages to declare ``install_requires`` as
127  unordered sequences (sets or dicts).
128
129v37.0.0
130-------
131
132* #878: Drop support for Python 2.6. Python 2.6 users should
133  rely on 'setuptools < 37dev'.
134
135v36.8.0
136-------
137
138* #1190: In SSL support for package index operations, use SNI
139  where available.
140
141v36.7.3
142-------
143
144* #1175: Bug fixes to ``build_meta`` module.
145
146v36.7.2
147-------
148
149* #701: Fixed duplicate test discovery on Python 3.
150
151v36.7.1
152-------
153
154* #1193: Avoid test failures in bdist_egg when
155  PYTHONDONTWRITEBYTECODE is set.
156
157v36.7.0
158-------
159
160* #1054: Support ``setup_requires`` in ``setup.cfg`` files.
161
162v36.6.1
163-------
164
165* #1132: Removed redundant and costly serialization/parsing step
166  in ``EntryPoint.__init__``.
167
168* #844: ``bdist_egg --exclude-source-files`` now tested and works
169  on Python 3.
170
171v36.6.0
172-------
173
174* #1143: Added ``setuptools.build_meta`` module, an implementation
175  of PEP-517 for Setuptools-defined packages.
176
177* #1143: Added ``dist_info`` command for producing dist_info
178  metadata.
179
180v36.5.0
181-------
182
183* #170: When working with Mercurial checkouts, use Windows-friendly
184  syntax for suppressing output.
185
186* Inspired by #1134, performed substantial refactoring of
187  ``pkg_resources.find_on_path`` to facilitate an optimization
188  for paths with many non-version entries.
189
190v36.4.0
191-------
192
193* #1075: Add new ``Description-Content-Type`` metadata field. `See here for
194  documentation on how to use this field.
195  <https://packaging.python.org/specifications/#description-content-type>`_
196
197* #1068: Sort files and directories when building eggs for
198  deterministic order.
199
200* #196: Remove caching of easy_install command in fetch_build_egg.
201  Fixes issue where ``pytest-runner-N.N`` would satisfy the installation
202  of ``pytest``.
203
204* #1129: Fix working set dependencies handling when replacing conflicting
205  distributions (e.g. when using ``setup_requires`` with a conflicting
206  transitive dependency, fix #1124).
207
208* #1133: Improved handling of README files extensions and added
209  Markdown to the list of searched READMES.
210
211* #1135: Improve performance of pkg_resources import by not invoking
212  ``access`` or ``stat`` and using ``os.listdir`` instead.
213
214v36.3.0
215-------
216
217* #1131: Make possible using several files within ``file:`` directive
218  in metadata.long_description in ``setup.cfg``.
219
220v36.2.7
221-------
222
223* fix #1105: Fix handling of requirements with environment
224  markers when declared in ``setup.cfg`` (same treatment as
225  for #1081).
226
227v36.2.6
228-------
229
230* #462: Don't assume a directory is an egg by the ``.egg``
231  extension alone.
232
233v36.2.5
234-------
235
236* #1093: Fix test command handler with extras_require.
237* #1112, #1091, #1115: Now using Trusty containers in
238  Travis for CI and CD.
239
240v36.2.4
241-------
242
243* #1092: ``pkg_resources`` now uses ``inspect.getmro`` to
244  resolve classes in method resolution order.
245
246v36.2.3
247-------
248
249* #1102: Restore behavior for empty extras.
250
251v36.2.2
252-------
253
254* #1099: Revert commit a3ec721, restoring intended purpose of
255  extras as part of a requirement declaration.
256
257v36.2.1
258-------
259
260* fix #1086
261* fix #1087
262* support extras specifiers in install_requires requirements
263
264v36.2.0
265-------
266
267* #1081: Environment markers indicated in ``install_requires``
268  are now processed and treated as nameless ``extras_require``
269  with markers, allowing their metadata in requires.txt to be
270  correctly generated.
271
272* #1053: Tagged commits are now released using Travis-CI
273  build stages, meaning releases depend on passing tests on
274  all supported Python versions (Linux) and not just the latest
275  Python version.
276
277v36.1.1
278-------
279
280* #1083: Correct ``py31compat.makedirs`` to correctly honor
281  ``exist_ok`` parameter.
282* #1083: Also use makedirs compatibility throughout setuptools.
283
284v36.1.0
285-------
286
287* #1083: Avoid race condition on directory creation in
288  ``pkg_resources.ensure_directory``.
289
290* Removed deprecation of and restored support for
291  ``upload_docs`` command for sites other than PyPI.
292  Only warehouse is dropping support, but services like
293  `devpi <http://doc.devpi.net/latest/>`_ continue to
294  support docs built by setuptools' plugins. See
295  `this comment <https://bitbucket.org/hpk42/devpi/issues/388/support-rtd-model-for-building-uploading#comment-34292423>`_
296  for more context on the motivation for this change.
297
298v36.0.1
299-------
300
301* #1042: Fix import in py27compat module that still
302  referenced six directly, rather than through the externs
303  module (vendored packages hook).
304
305v36.0.0
306-------
307
308* #980 and others: Once again, Setuptools vendors all
309  of its dependencies. It seems to be the case that in
310  the Python ecosystem, all build tools must run without
311  any dependencies (build, runtime, or otherwise). At
312  such a point that a mechanism exists that allows
313  build tools to have dependencies, Setuptools will adopt
314  it.
315
316v35.0.2
317-------
318
319* #1015: Fix test failures on Python 3.7.
320
321* #1024: Add workaround for Jython #2581 in monkey module.
322
323v35.0.1
324-------
325
326* #992: Revert change introduced in v34.4.1, now
327  considered invalid.
328
329* #1016: Revert change introduced in v35.0.0 per #1014,
330  referencing #436. The approach had unintended
331  consequences, causing sdist installs to be missing
332  files.
333
334v35.0.0
335-------
336
337* #436: In egg_info.manifest_maker, no longer read
338  the file list from the manifest file, and instead
339  re-build it on each build. In this way, files removed
340  from the specification will not linger in the manifest.
341  As a result, any files manually added to the manifest
342  will be removed on subsequent egg_info invocations.
343  No projects should be manually adding files to the
344  manifest and should instead use MANIFEST.in or SCM
345  file finders to force inclusion of files in the manifest.
346
347v34.4.1
348-------
349
350* #1008: In MSVC support, use always the last version available for Windows SDK and UCRT SDK.
351
352* #1008: In MSVC support, fix "vcruntime140.dll" returned path with Visual Studio 2017.
353
354* #992: In msvc.msvc9_query_vcvarsall, ensure the
355  returned dicts have str values and not Unicode for
356  compatibility with os.environ.
357
358v34.4.0
359-------
360
361* #995: In MSVC support, add support for "Microsoft Visual Studio 2017" and "Microsoft Visual Studio Build Tools 2017".
362
363* #999 via #1007: Extend support for declarative package
364  config in a setup.cfg file to include the options
365  ``python_requires`` and ``py_modules``.
366
367v34.3.3
368-------
369
370* #967 (and #997): Explicitly import submodules of
371  packaging to account for environments where the imports
372  of those submodules is not implied by other behavior.
373
374v34.3.2
375-------
376
377* #993: Fix documentation upload by correcting
378  rendering of content-type in _build_multipart
379  on Python 3.
380
381v34.3.1
382-------
383
384* #988: Trap ``os.unlink`` same as ``os.remove`` in
385  ``auto_chmod`` error handler.
386
387* #983: Fixes to invalid escape sequence deprecations on
388  Python 3.6.
389
390v34.3.0
391-------
392
393* #941: In the upload command, if the username is blank,
394  default to ``getpass.getuser()``.
395
396* #971: Correct distutils findall monkeypatch to match
397  appropriate versions (namely Python 3.4.6).
398
399v34.2.0
400-------
401
402* #966: Add support for reading dist-info metadata and
403  thus locating Distributions from zip files.
404
405* #968: Allow '+' and '!' in egg fragments
406  so that it can take package names that contain
407  PEP 440 conforming version specifiers.
408
409v34.1.1
410-------
411
412* #953: More aggressively employ the compatibility issue
413  originally added in #706.
414
415v34.1.0
416-------
417
418* #930: ``build_info`` now accepts two new parameters
419  to optimize and customize the building of C libraries.
420
421v34.0.3
422-------
423
424* #947: Loosen restriction on the version of six required,
425  restoring compatibility with environments relying on
426  six 1.6.0 and later.
427
428v34.0.2
429-------
430
431* #882: Ensure extras are honored when building the
432  working set.
433* #913: Fix issue in develop if package directory has
434  a trailing slash.
435
436v34.0.1
437-------
438
439* #935: Fix glob syntax in graft.
440
441v34.0.0
442-------
443
444* #581: Instead of vendoring the growing list of
445  dependencies that Setuptools requires to function,
446  Setuptools now requires these dependencies just like
447  any other project. Unlike other projects, however,
448  Setuptools cannot rely on ``setup_requires`` to
449  demand the dependencies it needs to install because
450  its own machinery would be necessary to pull those
451  dependencies if not present (a bootstrapping problem).
452  As a result, Setuptools no longer supports self upgrade or
453  installation in the general case. Instead, users are
454  directed to use pip to install and upgrade using the
455  ``wheel`` distributions of setuptools.
456
457  Users are welcome to contrive other means to install
458  or upgrade Setuptools using other means, such as
459  pre-installing the Setuptools dependencies with pip
460  or a bespoke bootstrap tool, but such usage is not
461  recommended and is not supported.
462
463  As discovered in #940, not all versions of pip will
464  successfully install Setuptools from its pre-built
465  wheel. If you encounter issues with "No module named
466  six" or "No module named packaging", especially
467  following a line "Running setup.py egg_info for package
468  setuptools", then your pip is not new enough.
469
470  There's an additional issue in pip where setuptools
471  is upgraded concurrently with other source packages,
472  described in pip #4253. The proposed workaround is to
473  always upgrade Setuptools first prior to upgrading
474  other packages that would upgrade Setuptools.
475
476v33.1.1
477-------
478
479* #921: Correct issue where certifi fallback not being
480  reached on Windows.
481
482v33.1.0
483-------
484
485Installation via pip, as indicated in the `Python Packaging
486User's Guide <https://packaging.python.org/installing/>`_,
487is the officially-supported mechanism for installing
488Setuptools, and this recommendation is now explicit in the
489much more concise README.
490
491Other edits and tweaks were made to the documentation. The
492codebase is unchanged.
493
494v33.0.0
495-------
496
497* #619: Removed support for the ``tag_svn_revision``
498  distribution option. If Subversion tagging support is
499  still desired, consider adding the functionality to
500  setuptools_svn in setuptools_svn #2.
501
502v32.3.1
503-------
504
505* #866: Use ``dis.Bytecode`` on Python 3.4 and later in
506  ``setuptools.depends``.
507
508v32.3.0
509-------
510
511* #889: Backport proposed fix for disabling interpolation in
512  distutils.Distribution.parse_config_files.
513
514v32.2.0
515-------
516
517* #884: Restore support for running the tests under
518  `pytest-runner <https://github.com/pytest-dev/pytest-runner>`_
519  by ensuring that PYTHONPATH is honored in tests invoking
520  a subprocess.
521
522v32.1.3
523-------
524
525* #706: Add rmtree compatibility shim for environments where
526  rmtree fails when passed a unicode string.
527
528v32.1.2
529-------
530
531* #893: Only release sdist in zip format as warehouse now
532  disallows releasing two different formats.
533
534v32.1.1
535-------
536
537* #704: More selectively ensure that 'rmtree' is not invoked with
538  a byte string, enabling it to remove files that are non-ascii,
539  even on Python 2.
540
541* #712: In 'sandbox.run_setup', ensure that ``__file__`` is
542  always a ``str``, modeling the behavior observed by the
543  interpreter when invoking scripts and modules.
544
545v32.1.0
546-------
547
548* #891: In 'test' command on test failure, raise DistutilsError,
549  suppression invocation of subsequent commands.
550
551v32.0.0
552-------
553
554* #890: Revert #849. ``global-exclude .foo`` will not match all
555  ``*.foo`` files any more. Package authors must add an explicit
556  wildcard, such as ``global-exclude *.foo``, to match all
557  ``.foo`` files. See #886, #849.
558
559v31.0.1
560-------
561
562* #885: Fix regression where 'pkg_resources._rebuild_mod_path'
563  would fail when a namespace package's '__path__' was not
564  a list with a sort attribute.
565
566v31.0.0
567-------
568
569* #250: Install '-nspkg.pth' files for packages installed
570  with 'setup.py develop'. These .pth files allow
571  namespace packages installed by pip or develop to
572  co-mingle. This change required the removal of the
573  change for #805 and pip #1924, introduced in 28.3.0 and implicated
574  in #870, but means that namespace packages not in a
575  site packages directory will no longer work on Python
576  earlier than 3.5, whereas before they would work on
577  Python not earlier than 3.3.
578
579v30.4.0
580-------
581
582* #879: For declarative config:
583
584  - 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.
585
586  - packages find: directive now supports fine tuning from a subsection. The same arguments as for find() are accepted.
587
588v30.3.0
589-------
590
591* #394 via #862: Added support for `declarative package
592  config in a setup.cfg file
593  <https://setuptools.readthedocs.io/en/latest/setuptools.html#configuring-setup-using-setup-cfg-files>`_.
594
595v30.2.1
596-------
597
598* #850: In test command, invoke unittest.main with
599  indication not to exit the process.
600
601v30.2.0
602-------
603
604* #854: Bump to vendored Packaging 16.8.
605
606v30.1.0
607-------
608
609* #846: Also trap 'socket.error' when opening URLs in
610  package_index.
611
612* #849: Manifest processing now matches the filename
613  pattern anywhere in the filename and not just at the
614  start. Restores behavior found prior to 28.5.0.
615
616v30.0.0
617-------
618
619* #864: Drop support for Python 3.2. Systems requiring
620  Python 3.2 support must use 'setuptools < 30'.
621
622* #825: Suppress warnings for single files.
623
624* #830 via #843: Once again restored inclusion of data
625  files to sdists, but now trap TypeError caused by
626  techniques employed rjsmin and similar.
627
628v29.0.1
629-------
630
631* #861: Re-release of v29.0.1 with the executable script
632  launchers bundled. Now, launchers are included by default
633  and users that want to disable this behavior must set the
634  environment variable
635  'SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES' to
636  a false value like "false" or "0".
637
638v29.0.0
639-------
640
641* #841: Drop special exception for packages invoking
642  win32com during the build/install process. See
643  Distribute #118 for history.
644
645v28.8.0
646-------
647
648* #629: Per the discussion, refine the sorting to use version
649  value order for more accurate detection of the latest
650  available version when scanning for packages. See also
651  #829.
652
653* #837: Rely on the config var "SO" for Python 3.3.0 only
654  when determining the ext filename.
655
656v28.7.1
657-------
658
659* #827: Update PyPI root for dependency links.
660
661* #833: Backed out changes from #830 as the implementation
662  seems to have problems in some cases.
663
664v28.7.0
665-------
666
667* #832: Moved much of the namespace package handling
668  functionality into a separate module for re-use in something
669  like #789.
670* #830: ``sdist`` command no longer suppresses the inclusion
671  of data files, re-aligning with the expectation of distutils
672  and addressing #274 and #521.
673
674v28.6.1
675-------
676
677* #816: Fix manifest file list order in tests.
678
679v28.6.0
680-------
681
682* #629: When scanning for packages, ``pkg_resources`` now
683  ignores empty egg-info directories and gives precedence to
684  packages whose versions are lexicographically greatest,
685  a rough approximation for preferring the latest available
686  version.
687
688v28.5.0
689-------
690
691* #810: Tests are now invoked with tox and not setup.py test.
692* #249 and #450 via #764: Avoid scanning the whole tree
693  when building the manifest. Also fixes a long-standing bug
694  where patterns in ``MANIFEST.in`` had implicit wildcard
695  matching. This caused ``global-exclude .foo`` to exclude
696  all ``*.foo`` files, but also ``global-exclude bar.py`` to
697  exclude ``foo_bar.py``.
698
699v28.4.0
700-------
701
702* #732: Now extras with a hyphen are honored per PEP 426.
703* #811: Update to pyparsing 2.1.10.
704* Updated ``setuptools.command.sdist`` to re-use most of
705  the functionality directly from ``distutils.command.sdist``
706  for the ``add_defaults`` method with strategic overrides.
707  See #750 for rationale.
708* #760 via #762: Look for certificate bundle where SUSE
709  Linux typically presents it. Use ``certifi.where()`` to locate
710  the bundle.
711
712v28.3.0
713-------
714
715* #809: In ``find_packages()``, restore support for excluding
716  a parent package without excluding a child package.
717
718* #805: Disable ``-nspkg.pth`` behavior on Python 3.3+ where
719  PEP-420 functionality is adequate. Fixes pip #1924.
720
721v28.1.0
722-------
723
724* #803: Bump certifi to 2016.9.26.
725
726v28.0.0
727-------
728
729* #733: Do not search excluded directories for packages.
730  This introduced a backwards incompatible change in ``find_packages()``
731  so that ``find_packages(exclude=['foo']) == []``, excluding subpackages of ``foo``.
732  Previously, ``find_packages(exclude=['foo']) == ['foo.bar']``,
733  even though the parent ``foo`` package was excluded.
734
735* #795: Bump certifi.
736
737* #719: Suppress decoding errors and instead log a warning
738  when metadata cannot be decoded.
739
740v27.3.1
741-------
742
743* #790: In MSVC monkeypatching, explicitly patch each
744  function by name in the target module instead of inferring
745  the module from the function's ``__module__``. Improves
746  compatibility with other packages that might have previously
747  patched distutils functions (i.e. NumPy).
748
749v27.3.0
750-------
751
752* #794: In test command, add installed eggs to PYTHONPATH
753  when invoking tests so that subprocesses will also have the
754  dependencies available. Fixes `tox 330
755  <https://github.com/tox-dev/tox/issues/330>`_.
756
757* #795: Update vendored pyparsing 2.1.9.
758
759v27.2.0
760-------
761
762* #520 and #513: Suppress ValueErrors in fixup_namespace_packages
763  when lookup fails.
764
765* Nicer, more consistent interfaces for msvc monkeypatching.
766
767v27.1.2
768-------
769
770* #779 via #781: Fix circular import.
771
772v27.1.1
773-------
774
775* #778: Fix MSVC monkeypatching.
776
777v27.1.0
778-------
779
780* Introduce the (private) ``monkey`` module to encapsulate
781  the distutils monkeypatching behavior.
782
783v27.0.0
784-------
785
786* Now use Warehouse by default for
787  ``upload``, patching ``distutils.config.PyPIRCCommand`` to
788  affect default behavior.
789
790  Any config in .pypirc should be updated to replace
791
792    https://pypi.python.org/pypi/
793
794  with
795
796    https://upload.pypi.org/legacy/
797
798  Similarly, any passwords stored in the keyring should be
799  updated to use this new value for "system".
800
801  The ``upload_docs`` command will continue to use the python.org
802  site, but the command is now deprecated. Users are urged to use
803  Read The Docs instead.
804
805* #776: Use EXT_SUFFIX for py_limited_api renaming.
806
807* #774 and #775: Use LegacyVersion from packaging when
808  detecting numpy versions.
809
810v26.1.1
811-------
812
813* Re-release of 26.1.0 with pytest pinned to allow for automated
814  deployment and thus proper packaging environment variables,
815  fixing issues with missing executable launchers.
816
817v26.1.0
818-------
819
820* #763: ``pkg_resources.get_default_cache`` now defers to the
821  `appdirs project <https://pypi.org/project/appdirs>`_ to
822  resolve the cache directory. Adds a vendored dependency on
823  appdirs to pkg_resources.
824
825v26.0.0
826-------
827
828* #748: By default, sdists are now produced in gzipped tarfile
829  format by default on all platforms, adding forward compatibility
830  for the same behavior in Python 3.6 (See Python #27819).
831
832* #459 via #736: On Windows with script launchers,
833  sys.argv[0] now reflects
834  the name of the entry point, consistent with the behavior in
835  distlib and pip wrappers.
836
837* #752 via #753: When indicating ``py_limited_api`` to Extension,
838  it must be passed as a keyword argument.
839
840v25.4.0
841-------
842
843* Add Extension(py_limited_api=True). When set to a truthy value,
844  that extension gets a filename appropriate for code using Py_LIMITED_API.
845  When used correctly this allows a single compiled extension to work on
846  all future versions of CPython 3.
847  The py_limited_api argument only controls the filename. To be
848  compatible with multiple versions of Python 3, the C extension
849  will also need to set -DPy_LIMITED_API=... and be modified to use
850  only the functions in the limited API.
851
852v25.3.0
853-------
854
855* #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).
856
857* #731: Bump certifi.
858
859* Style updates. See #740, #741, #743, #744, #742, #747.
860
861* #735: include license file.
862
863v25.2.0
864-------
865
866* #612 via #730: Add a LICENSE file which needs to be provided by the terms of
867  the MIT license.
868
869v25.1.6
870-------
871
872* #725: revert `library_dir_option` patch (Error is related to `numpy.distutils` and make errors on non Numpy users).
873
874v25.1.5
875-------
876
877* #720
878* #723: Improve patch for `library_dir_option`.
879
880v25.1.4
881-------
882
883* #717
884* #713
885* #707: Fix Python 2 compatibility for MSVC by catching errors properly.
886* #715: Fix unquoted libpaths by patching `library_dir_option`.
887
888v25.1.3
889-------
890
891* #714 and #704: Revert fix as it breaks other components
892  downstream that can't handle unicode. See #709, #710,
893  and #712.
894
895v25.1.2
896-------
897
898* #704: Fix errors when installing a zip sdist that contained
899  files named with non-ascii characters on Windows would
900  crash the install when it attempted to clean up the build.
901* #646: MSVC compatibility - catch errors properly in
902  RegistryInfo.lookup.
903* #702: Prevent UnboundLocalError when initial working_set
904  is empty.
905
906v25.1.1
907-------
908
909* #686: Fix issue in sys.path ordering by pkg_resources when
910  rewrite technique is "raw".
911* #699: Fix typo in msvc support.
912
913v25.1.0
914-------
915
916* #609: Setuptools will now try to download a distribution from
917  the next possible download location if the first download fails.
918  This means you can now specify multiple links as ``dependency_links``
919  and all links will be tried until a working download link is encountered.
920
921v25.0.2
922-------
923
924* #688: Fix AttributeError in setup.py when invoked not from
925  the current directory.
926
927v25.0.1
928-------
929
930* Cleanup of setup.py script.
931
932* Fixed documentation builders by allowing setup.py
933  to be imported without having bootstrapped the
934  metadata.
935
936* More style cleanup. See #677, #678, #679, #681, #685.
937
938v25.0.0
939-------
940
941* #674: Default ``sys.path`` manipulation by easy-install.pth
942  is now "raw", meaning that when writing easy-install.pth
943  during any install operation, the ``sys.path`` will not be
944  rewritten and will no longer give preference to easy_installed
945  packages.
946
947  To retain the old behavior when using any easy_install
948  operation (including ``setup.py install`` when setuptools is
949  present), set the environment variable:
950
951    SETUPTOOLS_SYS_PATH_TECHNIQUE=rewrite
952
953  This project hopes that that few if any environments find it
954  necessary to retain the old behavior, and intends to drop
955  support for it altogether in a future release. Please report
956  any relevant concerns in the ticket for this change.
957
958v24.3.1
959-------
960
961* #398: Fix shebang handling on Windows in script
962  headers where spaces in ``sys.executable`` would
963  produce an improperly-formatted shebang header,
964  introduced in 12.0 with the fix for #188.
965
966* #663, #670: More style updates.
967
968v24.3.0
969-------
970
971* #516: Disable ``os.link`` to avoid hard linking
972  in ``sdist.make_distribution``, avoiding errors on
973  systems that support hard links but not on the
974  file system in which the build is occurring.
975
976v24.2.1
977-------
978
979* #667: Update Metadata-Version to 1.2 when
980  ``python_requires`` is supplied.
981
982v24.2.0
983-------
984
985* #631: Add support for ``python_requires`` keyword.
986
987v24.1.1
988-------
989
990* More style updates. See #660, #661, #641.
991
992v24.1.0
993-------
994
995* #659: ``setup.py`` now will fail fast and with a helpful
996  error message when the necessary metadata is missing.
997* More style updates. See #656, #635, #640,
998  #644, #650, #652, and #655.
999
1000v24.0.3
1001-------
1002
1003* Updated style in much of the codebase to match
1004  community expectations. See #632, #633, #634,
1005  #637, #639, #638, #642, #648.
1006
1007v24.0.2
1008-------
1009
1010* If MSVC++14 is needed ``setuptools.msvc`` now redirect
1011  user to Visual C++ Build Tools web page.
1012
1013v24.0.1
1014-------
1015
1016* #625 and #626: Fixes on ``setuptools.msvc`` mainly
1017  for Python 2 and Linux.
1018
1019v24.0.0
1020-------
1021
1022* Pull Request #174: Add more aggressive support for
1023  standalone Microsoft Visual C++ compilers in
1024  msvc9compiler patch.
1025  Particularly : Windows SDK 6.1 and 7.0
1026  (MSVC++ 9.0), Windows SDK 7.1 (MSVC++ 10.0),
1027  Visual C++ Build Tools 2015 (MSVC++14)
1028* Renamed ``setuptools.msvc9_support`` to
1029  ``setuptools.msvc``.
1030
1031v23.2.1
1032-------
1033
1034Re-release of v23.2.0, which was missing the intended
1035commits.
1036
1037* #623: Remove used of deprecated 'U' flag when reading
1038  manifests.
1039
1040v23.1.0
1041-------
1042
1043* #619: Deprecated ``tag_svn_revision`` distribution
1044  option.
1045
1046v23.0.0
1047-------
1048
1049* #611: Removed ARM executables for CLI and GUI script
1050  launchers on Windows. If this was a feature you cared
1051  about, please comment in the ticket.
1052* #604: Removed docs building support. The project
1053  now relies on documentation hosted at
1054  https://setuptools.readthedocs.io/.
1055
1056v22.0.5
1057-------
1058
1059* #604: Restore repository for upload_docs command
1060  to restore publishing of docs during release.
1061
1062v22.0.4
1063-------
1064
1065* #589: Upload releases to pypi.io using the upload
1066  hostname and legacy path.
1067
1068v22.0.3
1069-------
1070
1071* #589: Releases are now uploaded to pypi.io (Warehouse)
1072  even when releases are made on Twine via Travis.
1073
1074v22.0.2
1075-------
1076
1077* #589: Releases are now uploaded to pypi.io (Warehouse).
1078
1079v22.0.1
1080-------
1081
1082* #190: On Python 2, if unicode is passed for packages to
1083  ``build_py`` command, it will be handled just as with
1084  text on Python 3.
1085
1086v22.0.0
1087-------
1088
1089Intended to be v21.3.0, but jaraco accidentally released as
1090a major bump.
1091
1092* #598: Setuptools now lists itself first in the User-Agent
1093  for web requests, better following the guidelines in
1094  `RFC 7231
1095  <https://tools.ietf.org/html/rfc7231#section-5.5.3>`_.
1096
1097v21.2.2
1098-------
1099
1100* Minor fixes to changelog and docs.
1101
1102v21.2.1
1103-------
1104
1105* #261: Exclude directories when resolving globs in
1106  package_data.
1107
1108v21.2.0
1109-------
1110
1111* #539: In the easy_install get_site_dirs, honor all
1112  paths found in ``site.getsitepackages``.
1113
1114v21.1.0
1115-------
1116
1117* #572: In build_ext, now always import ``_CONFIG_VARS``
1118  from ``distutils`` rather than from ``sysconfig``
1119  to allow ``distutils.sysconfig.customize_compiler``
1120  configure the OS X compiler for ``-dynamiclib``.
1121
1122v21.0.0
1123-------
1124
1125* Removed ez_setup.py from Setuptools sdist. The
1126  bootstrap script will be maintained in its own
1127  branch and should be generally be retrieved from
1128  its canonical location at
1129  https://bootstrap.pypa.io/ez_setup.py.
1130
1131v20.10.0
1132--------
1133
1134* #553: egg_info section is now generated in a
1135  deterministic order, matching the order generated
1136  by earlier versions of Python. Except on Python 2.6,
1137  order is preserved when existing settings are present.
1138* #556: Update to Packaging 16.7, restoring support
1139  for deprecated ``python_implmentation`` marker.
1140* #555: Upload command now prompts for a password
1141  when uploading to PyPI (or other repository) if no
1142  password is present in .pypirc or in the keyring.
1143
1144v20.9.0
1145-------
1146
1147* #548: Update certify version to 2016.2.28
1148* #545: Safely handle deletion of non-zip eggs in rotate
1149  command.
1150
1151v20.8.1
1152-------
1153
1154* Issue #544: Fix issue with extra environment marker
1155  processing in WorkingSet due to refactor in v20.7.0.
1156
1157v20.8.0
1158-------
1159
1160* Issue #543: Re-release so that latest release doesn't
1161  cause déjà vu with distribute and setuptools 0.7 in
1162  older environments.
1163
1164v20.7.0
1165-------
1166
1167* Refactored extra environment marker processing
1168  in WorkingSet.
1169* Issue #533: Fixed intermittent test failures.
1170* Issue #536: In msvc9_support, trap additional exceptions
1171  that might occur when importing
1172  ``distutils.msvc9compiler`` in mingw environments.
1173* Issue #537: Provide better context when package
1174  metadata fails to decode in UTF-8.
1175
1176v20.6.8
1177-------
1178
1179* Issue #523: Restored support for environment markers,
1180  now honoring 'extra' environment markers.
1181
1182v20.6.7
1183-------
1184
1185* Issue #523: Disabled support for environment markers
1186  introduced in v20.5.
1187
1188v20.6.6
1189-------
1190
1191* Issue #503: Restore support for PEP 345 environment
1192  markers by updating to Packaging 16.6.
1193
1194v20.6.0
1195-------
1196
1197* New release process that relies on
1198  `bumpversion <https://github.com/peritus/bumpversion>`_
1199  and Travis CI for continuous deployment.
1200* Project versioning semantics now follow
1201  `semver <https://semver.org>`_ precisely.
1202  The 'v' prefix on version numbers now also allows
1203  version numbers to be referenced in the changelog,
1204  e.g. http://setuptools.readthedocs.io/en/latest/history.html#v20-6-0.
1205
120620.5
1207----
1208
1209* BB Pull Request #185, #470: Add support for environment markers
1210  in requirements in install_requires, setup_requires,
1211  tests_require as well as adding a test for the existing
1212  extra_requires machinery.
1213
121420.4
1215----
1216
1217* Issue #422: Moved hosting to
1218  `Github <https://github.com/pypa/setuptools>`_
1219  from `Bitbucket <https://bitbucket.org/pypa/setuptools>`_.
1220  Issues have been migrated, though all issues and comments
1221  are attributed to bb-migration. So if you have a particular
1222  issue or issues to which you've been subscribed, you will
1223  want to "watch" the equivalent issue in Github.
1224  The Bitbucket project will be retained for the indefinite
1225  future, but Github now hosts the canonical project repository.
1226
122720.3.1
1228------
1229
1230* Issue #519: Remove import hook when reloading the
1231  ``pkg_resources`` module.
1232* BB Pull Request #184: Update documentation in ``pkg_resources``
1233  around new ``Requirement`` implementation.
1234
123520.3
1236----
1237
1238* BB Pull Request #179: ``pkg_resources.Requirement`` objects are
1239  now a subclass of ``packaging.requirements.Requirement``,
1240  allowing any environment markers and url (if any) to be
1241  affiliated with the requirement
1242* BB Pull Request #179: Restore use of RequirementParseError
1243  exception unintentionally dropped in 20.2.
1244
124520.2.2
1246------
1247
1248* Issue #502: Correct regression in parsing of multiple
1249  version specifiers separated by commas and spaces.
1250
125120.2.1
1252------
1253
1254* Issue #499: Restore compatibility for legacy versions
1255  by bumping to packaging 16.4.
1256
125720.2
1258----
1259
1260* Changelog now includes release dates and links to PEPs.
1261* BB Pull Request #173: Replace dual PEP 345 _markerlib implementation
1262  and PEP 426 implementation of environment marker support from
1263  packaging 16.1 and PEP 508. Fixes Issue #122.
1264  See also BB Pull Request #175, BB Pull Request #168, and
1265  BB Pull Request #164. Additionally:
1266
1267   - ``Requirement.parse`` no longer retains the order of extras.
1268   - ``parse_requirements`` now requires that all versions be
1269     PEP-440 compliant, as revealed in #499. Packages released
1270     with invalid local versions should be re-released using
1271     the proper local version syntax, e.g. ``mypkg-1.0+myorg.1``.
1272
127320.1.1
1274------
1275
1276* Update ``upload_docs`` command to also honor keyring
1277  for password resolution.
1278
127920.1
1280----
1281
1282* Added support for using passwords from keyring in the upload
1283  command. See `the upload docs
1284  <https://setuptools.readthedocs.io/en/latest/setuptools.html#upload-upload-source-and-or-egg-distributions-to-pypi>`_
1285  for details.
1286
128720.0
1288----
1289
1290* Issue #118: Once again omit the package metadata (egg-info)
1291  from the list of outputs in ``--record``. This version of setuptools
1292  can no longer be used to upgrade pip earlier than 6.0.
1293
129419.7
1295----
1296
1297* `Off-project PR <https://github.com/jaraco/setuptools/pull/32>`_:
1298  For FreeBSD, also honor root certificates from ca_root_nss.
1299
130019.6.2
1301------
1302
1303* Issue #491: Correct regression incurred in 19.4 where
1304  a double-namespace package installed using pip would
1305  cause a TypeError.
1306
130719.6.1
1308------
1309
1310* Restore compatibility for PyPy 3 compatibility lost in
1311  19.4.1 addressing Issue #487.
1312* ``setuptools.launch`` shim now loads scripts in a new
1313  namespace, avoiding getting relative imports from
1314  the setuptools package on Python 2.
1315
131619.6
1317----
1318
1319* Added a new entry script ``setuptools.launch``,
1320  implementing the shim found in
1321  ``pip.util.setuptools_build``. Use this command to launch
1322  distutils-only packages under setuptools in the same way that
1323  pip does, causing the setuptools monkeypatching of distutils
1324  to be invoked prior to invoking a script. Useful for debugging
1325  or otherwise installing a distutils-only package under
1326  setuptools when pip isn't available or otherwise does not
1327  expose the desired functionality. For example::
1328
1329    $ python -m setuptools.launch setup.py develop
1330
1331* Issue #488: Fix dual manifestation of Extension class in
1332  extension packages installed as dependencies when Cython
1333  is present.
1334
133519.5
1336----
1337
1338* Issue #486: Correct TypeError when getfilesystemencoding
1339  returns None.
1340* Issue #139: Clarified the license as MIT.
1341* BB Pull Request #169: Removed special handling of command
1342  spec in scripts for Jython.
1343
134419.4.1
1345------
1346
1347* Issue #487: Use direct invocation of ``importlib.machinery``
1348  in ``pkg_resources`` to avoid missing detection on relevant
1349  platforms.
1350
135119.4
1352----
1353
1354* Issue #341: Correct error in path handling of package data
1355  files in ``build_py`` command when package is empty.
1356* Distribute #323, Issue #141, Issue #207, and
1357  BB Pull Request #167: Another implementation of
1358  ``pkg_resources.WorkingSet`` and ``pkg_resources.Distribution``
1359  that supports replacing an extant package with a new one,
1360  allowing for setup_requires dependencies to supersede installed
1361  packages for the session.
1362
136319.3
1364----
1365
1366* Issue #229: Implement new technique for readily incorporating
1367  dependencies conditionally from vendored copies or primary
1368  locations. Adds a new dependency on six.
1369
137019.2
1371----
1372
1373* BB Pull Request #163: Add get_command_list method to Distribution.
1374* BB Pull Request #162: Add missing whitespace to multiline string
1375  literals.
1376
137719.1.1
1378------
1379
1380* Issue #476: Cast version to string (using default encoding)
1381  to avoid creating Unicode types on Python 2 clients.
1382* Issue #477: In Powershell downloader, use explicit rendering
1383  of strings, rather than rely on ``repr``, which can be
1384  incorrect (especially on Python 2).
1385
138619.1
1387----
1388
1389* Issue #215: The bootstrap script ``ez_setup.py`` now
1390  automatically detects
1391  the latest version of setuptools (using PyPI JSON API) rather
1392  than hard-coding a particular value.
1393* Issue #475: Fix incorrect usage in _translate_metadata2.
1394
139519.0
1396----
1397
1398* Issue #442: Use RawConfigParser for parsing .pypirc file.
1399  Interpolated values are no longer honored in .pypirc files.
1400
140118.8.1
1402------
1403
1404* Issue #440: Prevent infinite recursion when a SandboxViolation
1405  or other UnpickleableException occurs in a sandbox context
1406  with setuptools hidden. Fixes regression introduced in Setuptools
1407  12.0.
1408
140918.8
1410----
1411
1412* Deprecated ``egg_info.get_pkg_info_revision``.
1413* Issue #471: Don't rely on repr for an HTML attribute value in
1414  package_index.
1415* Issue #419: Avoid errors in FileMetadata when the metadata directory
1416  is broken.
1417* Issue #472: Remove deprecated use of 'U' in mode parameter
1418  when opening files.
1419
142018.7.1
1421------
1422
1423* Issue #469: Refactored logic for Issue #419 fix to re-use metadata
1424  loading from Provider.
1425
142618.7
1427----
1428
1429* Update dependency on certify.
1430* BB Pull Request #160: Improve detection of gui script in
1431  ``easy_install._adjust_header``.
1432* Made ``test.test_args`` a non-data property; alternate fix
1433  for the issue reported in BB Pull Request #155.
1434* Issue #453: In ``ez_setup`` bootstrap module, unload all
1435  ``pkg_resources`` modules following download.
1436* BB Pull Request #158: Honor PEP-488 when excluding
1437  files for namespace packages.
1438* Issue #419 and BB Pull Request #144: Add experimental support for
1439  reading the version info from distutils-installed metadata rather
1440  than using the version in the filename.
1441
144218.6.1
1443------
1444
1445* Issue #464: Correct regression in invocation of superclass on old-style
1446  class on Python 2.
1447
144818.6
1449----
1450
1451* Issue #439: When installing entry_point scripts under development,
1452  omit the version number of the package, allowing any version of the
1453  package to be used.
1454
145518.5
1456----
1457
1458* In preparation for dropping support for Python 3.2, a warning is
1459  now logged when pkg_resources is imported on Python 3.2 or earlier
1460  Python 3 versions.
1461* `Add support for python_platform_implementation environment marker
1462  <https://github.com/jaraco/setuptools/pull/28>`_.
1463* `Fix dictionary mutation during iteration
1464  <https://github.com/jaraco/setuptools/pull/29>`_.
1465
146618.4
1467----
1468
1469* Issue #446: Test command now always invokes unittest, even
1470  if no test suite is supplied.
1471
147218.3.2
1473------
1474
1475* Correct another regression in setuptools.findall
1476  where the fix for Python #12885 was lost.
1477
147818.3.1
1479------
1480
1481* Issue #425: Correct regression in setuptools.findall.
1482
148318.3
1484----
1485
1486* BB Pull Request #135: Setuptools now allows disabling of
1487  the manipulation of the sys.path
1488  during the processing of the easy-install.pth file. To do so, set
1489  the environment variable ``SETUPTOOLS_SYS_PATH_TECHNIQUE`` to
1490  anything but "rewrite" (consider "raw"). During any install operation
1491  with manipulation disabled, setuptools packages will be appended to
1492  sys.path naturally.
1493
1494  Future versions may change the default behavior to disable
1495  manipulation. If so, the default behavior can be retained by setting
1496  the variable to "rewrite".
1497
1498* Issue #257: ``easy_install --version`` now shows more detail
1499  about the installation location and Python version.
1500
1501* Refactor setuptools.findall in preparation for re-submission
1502  back to distutils.
1503
150418.2
1505----
1506
1507* Issue #412: More efficient directory search in ``find_packages``.
1508
150918.1
1510----
1511
1512* Upgrade to vendored packaging 15.3.
1513
151418.0.1
1515------
1516
1517* Issue #401: Fix failure in test suite.
1518
151918.0
1520----
1521
1522* Dropped support for builds with Pyrex. Only Cython is supported.
1523* Issue #288: Detect Cython later in the build process, after
1524  ``setup_requires`` dependencies are resolved.
1525  Projects backed by Cython can now be readily built
1526  with a ``setup_requires`` dependency. For example::
1527
1528    ext = setuptools.Extension('mylib', ['src/CythonStuff.pyx', 'src/CStuff.c'])
1529    setuptools.setup(
1530        ...
1531        ext_modules=[ext],
1532        setup_requires=['cython'],
1533    )
1534
1535  For compatibility with older versions of setuptools, packagers should
1536  still include ``src/CythonMod.c`` in the source distributions or
1537  require that Cython be present before building source distributions.
1538  However, for systems with this build of setuptools, Cython will be
1539  downloaded on demand.
1540* Issue #396: Fixed test failure on OS X.
1541* BB Pull Request #136: Remove excessive quoting from shebang headers
1542  for Jython.
1543
154417.1.1
1545------
1546
1547* Backed out unintended changes to pkg_resources, restoring removal of
1548  deprecated imp module (`ref
1549  <https://bitbucket.org/pypa/setuptools/commits/f572ec9563d647fa8d4ffc534f2af8070ea07a8b#comment-1881283>`_).
1550
155117.1
1552----
1553
1554* Issue #380: Add support for range operators on environment
1555  marker evaluation.
1556
155717.0
1558----
1559
1560* Issue #378: Do not use internal importlib._bootstrap module.
1561* Issue #390: Disallow console scripts with path separators in
1562  the name. Removes unintended functionality and brings behavior
1563  into parity with pip.
1564
156516.0
1566----
1567
1568* BB Pull Request #130: Better error messages for errors in
1569  parsed requirements.
1570* BB Pull Request #133: Removed ``setuptools.tests`` from the
1571  installed packages.
1572* BB Pull Request #129: Address deprecation warning due to usage
1573  of imp module.
1574
157515.2
1576----
1577
1578* Issue #373: Provisionally expose
1579  ``pkg_resources._initialize_master_working_set``, allowing for
1580  imperative re-initialization of the master working set.
1581
158215.1
1583----
1584
1585* Updated to Packaging 15.1 to address Packaging #28.
1586* Fix ``setuptools.sandbox._execfile()`` with Python 3.1.
1587
158815.0
1589----
1590
1591* BB Pull Request #126: DistributionNotFound message now lists the package or
1592  packages that required it. E.g.::
1593
1594      pkg_resources.DistributionNotFound: The 'colorama>=0.3.1' distribution was not found and is required by smlib.log.
1595
1596  Note that zc.buildout once dependended on the string rendering of this
1597  message to determine the package that was not found. This expectation
1598  has since been changed, but older versions of buildout may experience
1599  problems. See Buildout #242 for details.
1600
160114.3.1
1602------
1603
1604* Issue #307: Removed PEP-440 warning during parsing of versions
1605  in ``pkg_resources.Distribution``.
1606* Issue #364: Replace deprecated usage with recommended usage of
1607  ``EntryPoint.load``.
1608
160914.3
1610----
1611
1612* Issue #254: When creating temporary egg cache on Unix, use mode 755
1613  for creating the directory to avoid the subsequent warning if
1614  the directory is group writable.
1615
161614.2
1617----
1618
1619* Issue #137: Update ``Distribution.hashcmp`` so that Distributions with
1620  None for pyversion or platform can be compared against Distributions
1621  defining those attributes.
1622
162314.1.1
1624------
1625
1626* Issue #360: Removed undesirable behavior from test runs, preventing
1627  write tests and installation to system site packages.
1628
162914.1
1630----
1631
1632* BB Pull Request #125: Add ``__ne__`` to Requirement class.
1633* Various refactoring of easy_install.
1634
163514.0
1636----
1637
1638* Bootstrap script now accepts ``--to-dir`` to customize save directory or
1639  allow for re-use of existing repository of setuptools versions. See
1640  BB Pull Request #112 for background.
1641* Issue #285: ``easy_install`` no longer will default to installing
1642  packages to the "user site packages" directory if it is itself installed
1643  there. Instead, the user must pass ``--user`` in all cases to install
1644  packages to the user site packages.
1645  This behavior now matches that of "pip install". To configure
1646  an environment to always install to the user site packages, consider
1647  using the "install-dir" and "scripts-dir" parameters to easy_install
1648  through an appropriate distutils config file.
1649
165013.0.2
1651------
1652
1653* Issue #359: Include pytest.ini in the sdist so invocation of py.test on the
1654  sdist honors the pytest configuration.
1655
165613.0.1
1657------
1658
1659Re-release of 13.0. Intermittent connectivity issues caused the release
1660process to fail and PyPI uploads no longer accept files for 13.0.
1661
166213.0
1663----
1664
1665* Issue #356: Back out BB Pull Request #119 as it requires Setuptools 10 or later
1666  as the source during an upgrade.
1667* Removed build_py class from setup.py. According to 892f439d216e, this
1668  functionality was added to support upgrades from old Distribute versions,
1669  0.6.5 and 0.6.6.
1670
167112.4
1672----
1673
1674* BB Pull Request #119: Restore writing of ``setup_requires`` to metadata
1675  (previously added in 8.4 and removed in 9.0).
1676
167712.3
1678----
1679
1680* Documentation is now linked using the rst.linker package.
1681* Fix ``setuptools.command.easy_install.extract_wininst_cfg()``
1682  with Python 2.6 and 2.7.
1683* Issue #354. Added documentation on building setuptools
1684  documentation.
1685
168612.2
1687----
1688
1689* Issue #345: Unload all modules under pkg_resources during
1690  ``ez_setup.use_setuptools()``.
1691* Issue #336: Removed deprecation from ``ez_setup.use_setuptools``,
1692  as it is clearly still used by buildout's bootstrap. ``ez_setup``
1693  remains deprecated for use by individual packages.
1694* Simplified implementation of ``ez_setup.use_setuptools``.
1695
169612.1
1697----
1698
1699* BB Pull Request #118: Soften warning for non-normalized versions in
1700  Distribution.
1701
170212.0.5
1703------
1704
1705* Issue #339: Correct Attribute reference in ``cant_write_to_target``.
1706* Issue #336: Deprecated ``ez_setup.use_setuptools``.
1707
170812.0.4
1709------
1710
1711* Issue #335: Fix script header generation on Windows.
1712
171312.0.3
1714------
1715
1716* Fixed incorrect class attribute in ``install_scripts``. Tests would be nice.
1717
171812.0.2
1719------
1720
1721* Issue #331: Fixed ``install_scripts`` command on Windows systems corrupting
1722  the header.
1723
172412.0.1
1725------
1726
1727* Restore ``setuptools.command.easy_install.sys_executable`` for pbr
1728  compatibility. For the future, tools should construct a CommandSpec
1729  explicitly.
1730
173112.0
1732----
1733
1734* Issue #188: Setuptools now support multiple entities in the value for
1735  ``build.executable``, such that an executable of "/usr/bin/env my-python" may
1736  be specified. This means that systems with a specified executable whose name
1737  has spaces in the path must be updated to escape or quote that value.
1738* Deprecated ``easy_install.ScriptWriter.get_writer``, replaced by ``.best()``
1739  with slightly different semantics (no force_windows flag).
1740
174111.3.1
1742------
1743
1744* Issue #327: Formalize and restore support for any printable character in an
1745  entry point name.
1746
174711.3
1748----
1749
1750* Expose ``EntryPoint.resolve`` in place of EntryPoint._load, implementing the
1751  simple, non-requiring load. Deprecated all uses of ``EntryPoint._load``
1752  except for calling with no parameters, which is just a shortcut for
1753  ``ep.require(); ep.resolve();``.
1754
1755  Apps currently invoking ``ep.load(require=False)`` should instead do the
1756  following if wanting to avoid the deprecating warning::
1757
1758    getattr(ep, "resolve", lambda: ep.load(require=False))()
1759
176011.2
1761----
1762
1763* Pip #2326: Report deprecation warning at stacklevel 2 for easier diagnosis.
1764
176511.1
1766----
1767
1768* Issue #281: Since Setuptools 6.1 (Issue #268), a ValueError would be raised
1769  in certain cases where VersionConflict was raised with two arguments, which
1770  occurred in ``pkg_resources.WorkingSet.find``. This release adds support
1771  for indicating the dependent packages while maintaining support for
1772  a VersionConflict when no dependent package context is known. New unit tests
1773  now capture the expected interface.
1774
177511.0
1776----
1777
1778* Interop #3: Upgrade to Packaging 15.0; updates to PEP 440 so that >1.7 does
1779  not exclude 1.7.1 but does exclude 1.7.0 and 1.7.0.post1.
1780
178110.2.1
1782------
1783
1784* Issue #323: Fix regression in entry point name parsing.
1785
178610.2
1787----
1788
1789* Deprecated use of EntryPoint.load(require=False). Passing a boolean to a
1790  function to select behavior is an anti-pattern. Instead use
1791  ``Entrypoint._load()``.
1792* Substantial refactoring of all unit tests. Tests are now much leaner and
1793  re-use a lot of fixtures and contexts for better clarity of purpose.
1794
179510.1
1796----
1797
1798* Issue #320: Added a compatibility implementation of
1799  ``sdist._default_revctrl``
1800  so that systems relying on that interface do not fail (namely, Ubuntu 12.04
1801  and similar Debian releases).
1802
180310.0.1
1804------
1805
1806* Issue #319: Fixed issue installing pure distutils packages.
1807
180810.0
1809----
1810
1811* Issue #313: Removed built-in support for subversion. Projects wishing to
1812  retain support for subversion will need to use a third party library. The
1813  extant implementation is being ported to `setuptools_svn
1814  <https://pypi.org/project/setuptools_svn/>`_.
1815* Issue #315: Updated setuptools to hide its own loaded modules during
1816  installation of another package. This change will enable setuptools to
1817  upgrade (or downgrade) itself even when its own metadata and implementation
1818  change.
1819
18209.1
1821---
1822
1823* Prefer vendored packaging library `as recommended
1824  <https://github.com/jaraco/setuptools/commit/170657b68f4b92e7e1bf82f5e19a831f5744af67#commitcomment-9109448>`_.
1825
18269.0.1
1827-----
1828
1829* Issue #312: Restored presence of pkg_resources API tests (doctest) to sdist.
1830
18319.0
1832---
1833
1834* Issue #314: Disabled support for ``setup_requires`` metadata to avoid issue
1835  where Setuptools was unable to upgrade over earlier versions.
1836
18378.4
1838---
1839
1840* BB Pull Request #106: Now write ``setup_requires`` metadata.
1841
18428.3
1843---
1844
1845* Issue #311: Decoupled pkg_resources from setuptools once again.
1846  ``pkg_resources`` is now a package instead of a module.
1847
18488.2.1
1849-----
1850
1851* Issue #306: Suppress warnings about Version format except in select scenarios
1852  (such as installation).
1853
18548.2
1855---
1856
1857* BB Pull Request #85: Search egg-base when adding egg-info to manifest.
1858
18598.1
1860---
1861
1862* Upgrade ``packaging`` to 14.5, giving preference to "rc" as designator for
1863  release candidates over "c".
1864* PEP-440 warnings are now raised as their own class,
1865  ``pkg_resources.PEP440Warning``, instead of RuntimeWarning.
1866* Disabled warnings on empty versions.
1867
18688.0.4
1869-----
1870
1871* Upgrade ``packaging`` to 14.4, fixing an error where there is a
1872  different result for if 2.0.5 is contained within >2.0dev and >2.0.dev even
1873  though normalization rules should have made them equal.
1874* Issue #296: Add warning when a version is parsed as legacy. This warning will
1875  make it easier for developers to recognize deprecated version numbers.
1876
18778.0.3
1878-----
1879
1880* Issue #296: Restored support for ``__hash__`` on parse_version results.
1881
18828.0.2
1883-----
1884
1885* Issue #296: Restored support for ``__getitem__`` and sort operations on
1886  parse_version result.
1887
18888.0.1
1889-----
1890
1891* Issue #296: Restore support for iteration over parse_version result, but
1892  deprecated that usage with a warning. Fixes failure with buildout.
1893
18948.0
1895---
1896
1897* Implement PEP 440 within
1898  pkg_resources and setuptools. This change
1899  deprecates some version numbers such that they will no longer be installable
1900  without using the ``===`` escape hatch. See `the changes to test_resources
1901  <https://bitbucket.org/pypa/setuptools/commits/dcd552da643c4448056de84c73d56da6d70769d5#chg-setuptools/tests/test_resources.py>`_
1902  for specific examples of version numbers and specifiers that are no longer
1903  supported. Setuptools now "vendors" the `packaging
1904  <https://github.com/pypa/packaging>`_ library.
1905
19067.0
1907---
1908
1909* Issue #80, Issue #209: Eggs that are downloaded for ``setup_requires``,
1910  ``test_requires``, etc. are now placed in a ``./.eggs`` directory instead of
1911  directly in the current directory. This choice of location means the files
1912  can be readily managed (removed, ignored). Additionally,
1913  later phases or invocations of setuptools will not detect the package as
1914  already installed and ignore it for permanent install (See #209).
1915
1916  This change is indicated as backward-incompatible as installations that
1917  depend on the installation in the current directory will need to account for
1918  the new location. Systems that ignore ``*.egg`` will probably need to be
1919  adapted to ignore ``.eggs``. The files will need to be manually moved or
1920  will be retrieved again. Most use cases will require no attention.
1921
19226.1
1923---
1924
1925* Issue #268: When resolving package versions, a VersionConflict now reports
1926  which package previously required the conflicting version.
1927
19286.0.2
1929-----
1930
1931* Issue #262: Fixed regression in pip install due to egg-info directories
1932  being omitted. Re-opens Issue #118.
1933
19346.0.1
1935-----
1936
1937* Issue #259: Fixed regression with namespace package handling on ``single
1938  version, externally managed`` installs.
1939
19406.0
1941---
1942
1943* Issue #100: When building a distribution, Setuptools will no longer match
1944  default files using platform-dependent case sensitivity, but rather will
1945  only match the files if their case matches exactly. As a result, on Windows
1946  and other case-insensitive file systems, files with names such as
1947  'readme.txt' or 'README.TXT' will be omitted from the distribution and a
1948  warning will be issued indicating that 'README.txt' was not found. Other
1949  filenames affected are:
1950
1951    - README.rst
1952    - README
1953    - setup.cfg
1954    - setup.py (or the script name)
1955    - test/test*.py
1956
1957  Any users producing distributions with filenames that match those above
1958  case-insensitively, but not case-sensitively, should rename those files in
1959  their repository for better portability.
1960* BB Pull Request #72: When using ``single_version_externally_managed``, the
1961  exclusion list now includes Python 3.2 ``__pycache__`` entries.
1962* BB Pull Request #76 and BB Pull Request #78: lines in top_level.txt are now
1963  ordered deterministically.
1964* Issue #118: The egg-info directory is now no longer included in the list
1965  of outputs.
1966* Issue #258: Setuptools now patches distutils msvc9compiler to
1967  recognize the specially-packaged compiler package for easy extension module
1968  support on Python 2.6, 2.7, and 3.2.
1969
19705.8
1971---
1972
1973* Issue #237: ``pkg_resources`` now uses explicit detection of Python 2 vs.
1974  Python 3, supporting environments where builtins have been patched to make
1975  Python 3 look more like Python 2.
1976
19775.7
1978---
1979
1980* Issue #240: Based on real-world performance measures against 5.4, zip
1981  manifests are now cached in all circumstances. The
1982  ``PKG_RESOURCES_CACHE_ZIP_MANIFESTS`` environment variable is no longer
1983  relevant. The observed "memory increase" referenced in the 5.4 release
1984  notes and detailed in Issue #154 was likely not an increase over the status
1985  quo, but rather only an increase over not storing the zip info at all.
1986
19875.6
1988---
1989
1990* Issue #242: Use absolute imports in svn_utils to avoid issues if the
1991  installing package adds an xml module to the path.
1992
19935.5.1
1994-----
1995
1996* Issue #239: Fix typo in 5.5 such that fix did not take.
1997
19985.5
1999---
2000
2001* Issue #239: Setuptools now includes the setup_requires directive on
2002  Distribution objects and validates the syntax just like install_requires
2003  and tests_require directives.
2004
20055.4.2
2006-----
2007
2008* Issue #236: Corrected regression in execfile implementation for Python 2.6.
2009
20105.4.1
2011-----
2012
2013* Python #7776: (ssl_support) Correct usage of host for validation when
2014  tunneling for HTTPS.
2015
20165.4
2017---
2018
2019* Issue #154: ``pkg_resources`` will now cache the zip manifests rather than
2020  re-processing the same file from disk multiple times, but only if the
2021  environment variable ``PKG_RESOURCES_CACHE_ZIP_MANIFESTS`` is set. Clients
2022  that package many modules in the same zip file will see some improvement
2023  in startup time by enabling this feature. This feature is not enabled by
2024  default because it causes a substantial increase in memory usage.
2025
20265.3
2027---
2028
2029* Issue #185: Make svn tagging work on the new style SVN metadata.
2030  Thanks cazabon!
2031* Prune revision control directories (e.g .svn) from base path
2032  as well as sub-directories.
2033
20345.2
2035---
2036
2037* Added a `Developer Guide
2038  <https://setuptools.readthedocs.io/en/latest/developer-guide.html>`_ to the official
2039  documentation.
2040* Some code refactoring and cleanup was done with no intended behavioral
2041  changes.
2042* During install_egg_info, the generated lines for namespace package .pth
2043  files are now processed even during a dry run.
2044
20455.1
2046---
2047
2048* Issue #202: Implemented more robust cache invalidation for the ZipImporter,
2049  building on the work in Issue #168. Special thanks to Jurko Gospodnetic and
2050  PJE.
2051
20525.0.2
2053-----
2054
2055* Issue #220: Restored script templates.
2056
20575.0.1
2058-----
2059
2060* Renamed script templates to end with .tmpl now that they no longer need
2061  to be processed by 2to3. Fixes spurious syntax errors during build/install.
2062
20635.0
2064---
2065
2066* Issue #218: Re-release of 3.8.1 to signal that it supersedes 4.x.
2067* Incidentally, script templates were updated not to include the triple-quote
2068  escaping.
2069
20703.7.1 and 3.8.1 and 4.0.1
2071-------------------------
2072
2073* Issue #213: Use legacy StringIO behavior for compatibility under pbr.
2074* Issue #218: Setuptools 3.8.1 superseded 4.0.1, and 4.x was removed
2075  from the available versions to install.
2076
20774.0
2078---
2079
2080* Issue #210: ``setup.py develop`` now copies scripts in binary mode rather
2081  than text mode, matching the behavior of the ``install`` command.
2082
20833.8
2084---
2085
2086* Extend Issue #197 workaround to include all Python 3 versions prior to
2087  3.2.2.
2088
20893.7
2090---
2091
2092* Issue #193: Improved handling of Unicode filenames when building manifests.
2093
20943.6
2095---
2096
2097* Issue #203: Honor proxy settings for Powershell downloader in the bootstrap
2098  routine.
2099
21003.5.2
2101-----
2102
2103* Issue #168: More robust handling of replaced zip files and stale caches.
2104  Fixes ZipImportError complaining about a 'bad local header'.
2105
21063.5.1
2107-----
2108
2109* Issue #199: Restored ``install._install`` for compatibility with earlier
2110  NumPy versions.
2111
21123.5
2113---
2114
2115* Issue #195: Follow symbolic links in find_packages (restoring behavior
2116  broken in 3.4).
2117* Issue #197: On Python 3.1, PKG-INFO is now saved in a UTF-8 encoding instead
2118  of ``sys.getpreferredencoding`` to match the behavior on Python 2.6-3.4.
2119* Issue #192: Preferred bootstrap location is now
2120  https://bootstrap.pypa.io/ez_setup.py (mirrored from former location).
2121
21223.4.4
2123-----
2124
2125* Issue #184: Correct failure where find_package over-matched packages
2126  when directory traversal isn't short-circuited.
2127
21283.4.3
2129-----
2130
2131* Issue #183: Really fix test command with Python 3.1.
2132
21333.4.2
2134-----
2135
2136* Issue #183: Fix additional regression in test command on Python 3.1.
2137
21383.4.1
2139-----
2140
2141* Issue #180: Fix regression in test command not caught by py.test-run tests.
2142
21433.4
2144---
2145
2146* Issue #176: Add parameter to the test command to support a custom test
2147  runner: --test-runner or -r.
2148* Issue #177: Now assume most common invocation to install command on
2149  platforms/environments without stack support (issuing a warning). Setuptools
2150  now installs naturally on IronPython. Behavior on CPython should be
2151  unchanged.
2152
21533.3
2154---
2155
2156* Add ``include`` parameter to ``setuptools.find_packages()``.
2157
21583.2
2159---
2160
2161* BB Pull Request #39: Add support for C++ targets from Cython ``.pyx`` files.
2162* Issue #162: Update dependency on certifi to 1.0.1.
2163* Issue #164: Update dependency on wincertstore to 0.2.
2164
21653.1
2166---
2167
2168* Issue #161: Restore Features functionality to allow backward compatibility
2169  (for Features) until the uses of that functionality is sufficiently removed.
2170
21713.0.2
2172-----
2173
2174* Correct typo in previous bugfix.
2175
21763.0.1
2177-----
2178
2179* Issue #157: Restore support for Python 2.6 in bootstrap script where
2180  ``zipfile.ZipFile`` does not yet have support for context managers.
2181
21823.0
2183---
2184
2185* Issue #125: Prevent Subversion support from creating a ~/.subversion
2186  directory just for checking the presence of a Subversion repository.
2187* Issue #12: Namespace packages are now imported lazily. That is, the mere
2188  declaration of a namespace package in an egg on ``sys.path`` no longer
2189  causes it to be imported when ``pkg_resources`` is imported. Note that this
2190  change means that all of a namespace package's ``__init__.py`` files must
2191  include a ``declare_namespace()`` call in order to ensure that they will be
2192  handled properly at runtime. In 2.x it was possible to get away without
2193  including the declaration, but only at the cost of forcing namespace
2194  packages to be imported early, which 3.0 no longer does.
2195* Issue #148: When building (bdist_egg), setuptools no longer adds
2196  ``__init__.py`` files to namespace packages. Any packages that rely on this
2197  behavior will need to create ``__init__.py`` files and include the
2198  ``declare_namespace()``.
2199* Issue #7: Setuptools itself is now distributed as a zip archive in addition to
2200  tar archive. ez_setup.py now uses zip archive. This approach avoids the potential
2201  security vulnerabilities presented by use of tar archives in ez_setup.py.
2202  It also leverages the security features added to ZipFile.extract in Python 2.7.4.
2203* Issue #65: Removed deprecated Features functionality.
2204* BB Pull Request #28: Remove backport of ``_bytecode_filenames`` which is
2205  available in Python 2.6 and later, but also has better compatibility with
2206  Python 3 environments.
2207* Issue #156: Fix spelling of __PYVENV_LAUNCHER__ variable.
2208
22092.2
2210---
2211
2212* Issue #141: Restored fix for allowing setup_requires dependencies to
2213  override installed dependencies during setup.
2214* Issue #128: Fixed issue where only the first dependency link was honored
2215  in a distribution where multiple dependency links were supplied.
2216
22172.1.2
2218-----
2219
2220* Issue #144: Read long_description using codecs module to avoid errors
2221  installing on systems where LANG=C.
2222
22232.1.1
2224-----
2225
2226* Issue #139: Fix regression in re_finder for CVS repos (and maybe Git repos
2227  as well).
2228
22292.1
2230---
2231
2232* Issue #129: Suppress inspection of ``*.whl`` files when searching for files
2233  in a zip-imported file.
2234* Issue #131: Fix RuntimeError when constructing an egg fetcher.
2235
22362.0.2
2237-----
2238
2239* Fix NameError during installation with Python implementations (e.g. Jython)
2240  not containing parser module.
2241* Fix NameError in ``sdist:re_finder``.
2242
22432.0.1
2244-----
2245
2246* Issue #124: Fixed error in list detection in upload_docs.
2247
22482.0
2249---
2250
2251* Issue #121: Exempt lib2to3 pickled grammars from DirectorySandbox.
2252* Issue #41: Dropped support for Python 2.4 and Python 2.5. Clients requiring
2253  setuptools for those versions of Python should use setuptools 1.x.
2254* Removed ``setuptools.command.easy_install.HAS_USER_SITE``. Clients
2255  expecting this boolean variable should use ``site.ENABLE_USER_SITE``
2256  instead.
2257* Removed ``pkg_resources.ImpWrapper``. Clients that expected this class
2258  should use ``pkgutil.ImpImporter`` instead.
2259
22601.4.2
2261-----
2262
2263* Issue #116: Correct TypeError when reading a local package index on Python
2264  3.
2265
22661.4.1
2267-----
2268
2269* Issue #114: Use ``sys.getfilesystemencoding`` for decoding config in
2270  ``bdist_wininst`` distributions.
2271
2272* Issue #105 and Issue #113: Establish a more robust technique for
2273  determining the terminal encoding::
2274
2275    1. Try ``getpreferredencoding``
2276    2. If that returns US_ASCII or None, try the encoding from
2277       ``getdefaultlocale``. If that encoding was a "fallback" because Python
2278       could not figure it out from the environment or OS, encoding remains
2279       unresolved.
2280    3. If the encoding is resolved, then make sure Python actually implements
2281       the encoding.
2282    4. On the event of an error or unknown codec, revert to fallbacks
2283       (UTF-8 on Darwin, ASCII on everything else).
2284    5. On the encoding is 'mac-roman' on Darwin, use UTF-8 as 'mac-roman' was
2285       a bug on older Python releases.
2286
2287    On a side note, it would seem that the encoding only matters for when SVN
2288    does not yet support ``--xml`` and when getting repository and svn version
2289    numbers. The ``--xml`` technique should yield UTF-8 according to some
2290    messages on the SVN mailing lists. So if the version numbers are always
2291    7-bit ASCII clean, it may be best to only support the file parsing methods
2292    for legacy SVN releases and support for SVN without the subprocess command
2293    would simple go away as support for the older SVNs does.
2294
22951.4
2296---
2297
2298* Issue #27: ``easy_install`` will now use credentials from .pypirc if
2299  present for connecting to the package index.
2300* BB Pull Request #21: Omit unwanted newlines in ``package_index._encode_auth``
2301  when the username/password pair length indicates wrapping.
2302
23031.3.2
2304-----
2305
2306* Issue #99: Fix filename encoding issues in SVN support.
2307
23081.3.1
2309-----
2310
2311* Remove exuberant warning in SVN support when SVN is not used.
2312
23131.3
2314---
2315
2316* Address security vulnerability in SSL match_hostname check as reported in
2317  Python #17997.
2318* Prefer `backports.ssl_match_hostname
2319  <https://pypi.org/project/backports.ssl_match_hostname/>`_ for backport
2320  implementation if present.
2321* Correct NameError in ``ssl_support`` module (``socket.error``).
2322
23231.2
2324---
2325
2326* Issue #26: Add support for SVN 1.7. Special thanks to Philip Thiem for the
2327  contribution.
2328* Issue #93: Wheels are now distributed with every release. Note that as
2329  reported in Issue #108, as of Pip 1.4, scripts aren't installed properly
2330  from wheels. Therefore, if using Pip to install setuptools from a wheel,
2331  the ``easy_install`` command will not be available.
2332* Setuptools "natural" launcher support, introduced in 1.0, is now officially
2333  supported.
2334
23351.1.7
2336-----
2337
2338* Fixed behavior of NameError handling in 'script template (dev).py' (script
2339  launcher for 'develop' installs).
2340* ``ez_setup.py`` now ensures partial downloads are cleaned up following
2341  a failed download.
2342* Distribute #363 and Issue #55: Skip an sdist test that fails on locales
2343  other than UTF-8.
2344
23451.1.6
2346-----
2347
2348* Distribute #349: ``sandbox.execfile`` now opens the target file in binary
2349  mode, thus honoring a BOM in the file when compiled.
2350
23511.1.5
2352-----
2353
2354* Issue #69: Second attempt at fix (logic was reversed).
2355
23561.1.4
2357-----
2358
2359* Issue #77: Fix error in upload command (Python 2.4).
2360
23611.1.3
2362-----
2363
2364* Fix NameError in previous patch.
2365
23661.1.2
2367-----
2368
2369* Issue #69: Correct issue where 404 errors are returned for URLs with
2370  fragments in them (such as #egg=).
2371
23721.1.1
2373-----
2374
2375* Issue #75: Add ``--insecure`` option to ez_setup.py to accommodate
2376  environments where a trusted SSL connection cannot be validated.
2377* Issue #76: Fix AttributeError in upload command with Python 2.4.
2378
23791.1
2380---
2381
2382* Issue #71 (Distribute #333): EasyInstall now puts less emphasis on the
2383  condition when a host is blocked via ``--allow-hosts``.
2384* Issue #72: Restored Python 2.4 compatibility in ``ez_setup.py``.
2385
23861.0
2387---
2388
2389* Issue #60: On Windows, Setuptools supports deferring to another launcher,
2390  such as Vinay Sajip's `pylauncher <https://bitbucket.org/pypa/pylauncher>`_
2391  (included with Python 3.3) to launch console and GUI scripts and not install
2392  its own launcher executables. This experimental functionality is currently
2393  only enabled if  the ``SETUPTOOLS_LAUNCHER`` environment variable is set to
2394  "natural". In the future, this behavior may become default, but only after
2395  it has matured and seen substantial adoption. The ``SETUPTOOLS_LAUNCHER``
2396  also accepts "executable" to force the default behavior of creating launcher
2397  executables.
2398* Issue #63: Bootstrap script (ez_setup.py) now prefers Powershell, curl, or
2399  wget for retrieving the Setuptools tarball for improved security of the
2400  install. The script will still fall back to a simple ``urlopen`` on
2401  platforms that do not have these tools.
2402* Issue #65: Deprecated the ``Features`` functionality.
2403* Issue #52: In ``VerifyingHTTPSConn``, handle a tunnelled (proxied)
2404  connection.
2405
2406Backward-Incompatible Changes
2407=============================
2408
2409This release includes a couple of backward-incompatible changes, but most if
2410not all users will find 1.0 a drop-in replacement for 0.9.
2411
2412* Issue #50: Normalized API of environment marker support. Specifically,
2413  removed line number and filename from SyntaxErrors when returned from
2414  `pkg_resources.invalid_marker`. Any clients depending on the specific
2415  string representation of exceptions returned by that function may need to
2416  be updated to account for this change.
2417* Issue #50: SyntaxErrors generated by `pkg_resources.invalid_marker` are
2418  normalized for cross-implementation consistency.
2419* Removed ``--ignore-conflicts-at-my-risk`` and ``--delete-conflicting``
2420  options to easy_install. These options have been deprecated since 0.6a11.
2421
24220.9.8
2423-----
2424
2425* Issue #53: Fix NameErrors in `_vcs_split_rev_from_url`.
2426
24270.9.7
2428-----
2429
2430* Issue #49: Correct AttributeError on PyPy where a hashlib.HASH object does
2431  not have a `.name` attribute.
2432* Issue #34: Documentation now refers to bootstrap script in code repository
2433  referenced by bookmark.
2434* Add underscore-separated keys to environment markers (markerlib).
2435
24360.9.6
2437-----
2438
2439* Issue #44: Test failure on Python 2.4 when MD5 hash doesn't have a `.name`
2440  attribute.
2441
24420.9.5
2443-----
2444
2445* Python #17980: Fix security vulnerability in SSL certificate validation.
2446
24470.9.4
2448-----
2449
2450* Issue #43: Fix issue (introduced in 0.9.1) with version resolution when
2451  upgrading over other releases of Setuptools.
2452
24530.9.3
2454-----
2455
2456* Issue #42: Fix new ``AttributeError`` introduced in last fix.
2457
24580.9.2
2459-----
2460
2461* Issue #42: Fix regression where blank checksums would trigger an
2462  ``AttributeError``.
2463
24640.9.1
2465-----
2466
2467* Distribute #386: Allow other positional and keyword arguments to os.open.
2468* Corrected dependency on certifi mis-referenced in 0.9.
2469
24700.9
2471---
2472
2473* `package_index` now validates hashes other than MD5 in download links.
2474
24750.8
2476---
2477
2478* Code base now runs on Python 2.4 - Python 3.3 without Python 2to3
2479  conversion.
2480
24810.7.8
2482-----
2483
2484* Distribute #375: Yet another fix for yet another regression.
2485
24860.7.7
2487-----
2488
2489* Distribute #375: Repair AttributeError created in last release (redo).
2490* Issue #30: Added test for get_cache_path.
2491
24920.7.6
2493-----
2494
2495* Distribute #375: Repair AttributeError created in last release.
2496
24970.7.5
2498-----
2499
2500* Issue #21: Restore Python 2.4 compatibility in ``test_easy_install``.
2501* Distribute #375: Merged additional warning from Distribute 0.6.46.
2502* Now honor the environment variable
2503  ``SETUPTOOLS_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT`` in addition to the now
2504  deprecated ``DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT``.
2505
25060.7.4
2507-----
2508
2509* Issue #20: Fix comparison of parsed SVN version on Python 3.
2510
25110.7.3
2512-----
2513
2514* Issue #1: Disable installation of Windows-specific files on non-Windows systems.
2515* Use new sysconfig module with Python 2.7 or >=3.2.
2516
25170.7.2
2518-----
2519
2520* Issue #14: Use markerlib when the `parser` module is not available.
2521* Issue #10: ``ez_setup.py`` now uses HTTPS to download setuptools from PyPI.
2522
25230.7.1
2524-----
2525
2526* Fix NameError (Issue #3) again - broken in bad merge.
2527
25280.7
2529---
2530
2531* Merged Setuptools and Distribute. See docs/merge.txt for details.
2532
2533Added several features that were slated for setuptools 0.6c12:
2534
2535* Index URL now defaults to HTTPS.
2536* Added experimental environment marker support. Now clients may designate a
2537  PEP-426 environment marker for "extra" dependencies. Setuptools uses this
2538  feature in ``setup.py`` for optional SSL and certificate validation support
2539  on older platforms. Based on Distutils-SIG discussions, the syntax is
2540  somewhat tentative. There should probably be a PEP with a firmer spec before
2541  the feature should be considered suitable for use.
2542* Added support for SSL certificate validation when installing packages from
2543  an HTTPS service.
2544
25450.7b4
2546-----
2547
2548* Issue #3: Fixed NameError in SSL support.
2549
25500.6.49
2551------
2552
2553* Move warning check in ``get_cache_path`` to follow the directory creation
2554  to avoid errors when the cache path does not yet exist. Fixes the error
2555  reported in Distribute #375.
2556
25570.6.48
2558------
2559
2560* Correct AttributeError in ``ResourceManager.get_cache_path`` introduced in
2561  0.6.46 (redo).
2562
25630.6.47
2564------
2565
2566* Correct AttributeError in ``ResourceManager.get_cache_path`` introduced in
2567  0.6.46.
2568
25690.6.46
2570------
2571
2572* Distribute #375: Issue a warning if the PYTHON_EGG_CACHE or otherwise
2573  customized egg cache location specifies a directory that's group- or
2574  world-writable.
2575
25760.6.45
2577------
2578
2579* Distribute #379: ``distribute_setup.py`` now traps VersionConflict as well,
2580  restoring ability to upgrade from an older setuptools version.
2581
25820.6.44
2583------
2584
2585* ``distribute_setup.py`` has been updated to allow Setuptools 0.7 to
2586  satisfy use_setuptools.
2587
25880.6.43
2589------
2590
2591* Distribute #378: Restore support for Python 2.4 Syntax (regression in 0.6.42).
2592
25930.6.42
2594------
2595
2596* External links finder no longer yields duplicate links.
2597* Distribute #337: Moved site.py to setuptools/site-patch.py (graft of very old
2598  patch from setuptools trunk which inspired PR #31).
2599
26000.6.41
2601------
2602
2603* Distribute #27: Use public api for loading resources from zip files rather than
2604  the private method `_zip_directory_cache`.
2605* Added a new function ``easy_install.get_win_launcher`` which may be used by
2606  third-party libraries such as buildout to get a suitable script launcher.
2607
26080.6.40
2609------
2610
2611* Distribute #376: brought back cli.exe and gui.exe that were deleted in the
2612  previous release.
2613
26140.6.39
2615------
2616
2617* Add support for console launchers on ARM platforms.
2618* Fix possible issue in GUI launchers where the subsystem was not supplied to
2619  the linker.
2620* Launcher build script now refactored for robustness.
2621* Distribute #375: Resources extracted from a zip egg to the file system now also
2622  check the contents of the file against the zip contents during each
2623  invocation of get_resource_filename.
2624
26250.6.38
2626------
2627
2628* Distribute #371: The launcher manifest file is now installed properly.
2629
26300.6.37
2631------
2632
2633* Distribute #143: Launcher scripts, including easy_install itself, are now
2634  accompanied by a manifest on 32-bit Windows environments to avoid the
2635  Installer Detection Technology and thus undesirable UAC elevation described
2636  in `this Microsoft article
2637  <http://technet.microsoft.com/en-us/library/cc709628%28WS.10%29.aspx>`_.
2638
26390.6.36
2640------
2641
2642* BB Pull Request #35: In Buildout #64, it was reported that
2643  under Python 3, installation of distutils scripts could attempt to copy
2644  the ``__pycache__`` directory as a file, causing an error, apparently only
2645  under Windows. Easy_install now skips all directories when processing
2646  metadata scripts.
2647
26480.6.35
2649------
2650
2651
2652Note this release is backward-incompatible with distribute 0.6.23-0.6.34 in
2653how it parses version numbers.
2654
2655* Distribute #278: Restored compatibility with distribute 0.6.22 and setuptools
2656  0.6. Updated the documentation to match more closely with the version
2657  parsing as intended in setuptools 0.6.
2658
26590.6.34
2660------
2661
2662* Distribute #341: 0.6.33 fails to build under Python 2.4.
2663
26640.6.33
2665------
2666
2667* Fix 2 errors with Jython 2.5.
2668* Fix 1 failure with Jython 2.5 and 2.7.
2669* Disable workaround for Jython scripts on Linux systems.
2670* Distribute #336: `setup.py` no longer masks failure exit code when tests fail.
2671* Fix issue in pkg_resources where try/except around a platform-dependent
2672  import would trigger hook load failures on Mercurial. See pull request 32
2673  for details.
2674* Distribute #341: Fix a ResourceWarning.
2675
26760.6.32
2677------
2678
2679* Fix test suite with Python 2.6.
2680* Fix some DeprecationWarnings and ResourceWarnings.
2681* Distribute #335: Backed out `setup_requires` superceding installed requirements
2682  until regression can be addressed.
2683
26840.6.31
2685------
2686
2687* Distribute #303: Make sure the manifest only ever contains UTF-8 in Python 3.
2688* Distribute #329: Properly close files created by tests for compatibility with
2689  Jython.
2690* Work around Jython #1980 and Jython #1981.
2691* Distribute #334: Provide workaround for packages that reference `sys.__stdout__`
2692  such as numpy does. This change should address
2693  `virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long
2694  as the system encoding is UTF-8 or the IO encoding is specified in the
2695  environment, i.e.::
2696
2697     PYTHONIOENCODING=utf8 pip install numpy
2698
2699* Fix for encoding issue when installing from Windows executable on Python 3.
2700* Distribute #323: Allow `setup_requires` requirements to supercede installed
2701  requirements. Added some new keyword arguments to existing pkg_resources
2702  methods. Also had to updated how __path__ is handled for namespace packages
2703  to ensure that when a new egg distribution containing a namespace package is
2704  placed on sys.path, the entries in __path__ are found in the same order they
2705  would have been in had that egg been on the path when pkg_resources was
2706  first imported.
2707
27080.6.30
2709------
2710
2711* Distribute #328: Clean up temporary directories in distribute_setup.py.
2712* Fix fatal bug in distribute_setup.py.
2713
27140.6.29
2715------
2716
2717* BB Pull Request #14: Honor file permissions in zip files.
2718* Distribute #327: Merged pull request #24 to fix a dependency problem with pip.
2719* Merged pull request #23 to fix https://github.com/pypa/virtualenv/issues/301.
2720* If Sphinx is installed, the `upload_docs` command now runs `build_sphinx`
2721  to produce uploadable documentation.
2722* Distribute #326: `upload_docs` provided mangled auth credentials under Python 3.
2723* Distribute #320: Fix check for "createable" in distribute_setup.py.
2724* Distribute #305: Remove a warning that was triggered during normal operations.
2725* Distribute #311: Print metadata in UTF-8 independent of platform.
2726* Distribute #303: Read manifest file with UTF-8 encoding under Python 3.
2727* Distribute #301: Allow to run tests of namespace packages when using 2to3.
2728* Distribute #304: Prevent import loop in site.py under Python 3.3.
2729* Distribute #283: Reenable scanning of `*.pyc` / `*.pyo` files on Python 3.3.
2730* Distribute #299: The develop command didn't work on Python 3, when using 2to3,
2731  as the egg link would go to the Python 2 source. Linking to the 2to3'd code
2732  in build/lib makes it work, although you will have to rebuild the module
2733  before testing it.
2734* Distribute #306: Even if 2to3 is used, we build in-place under Python 2.
2735* Distribute #307: Prints the full path when .svn/entries is broken.
2736* Distribute #313: Support for sdist subcommands (Python 2.7)
2737* Distribute #314: test_local_index() would fail an OS X.
2738* Distribute #310: Non-ascii characters in a namespace __init__.py causes errors.
2739* Distribute #218: Improved documentation on behavior of `package_data` and
2740  `include_package_data`. Files indicated by `package_data` are now included
2741  in the manifest.
2742* `distribute_setup.py` now allows a `--download-base` argument for retrieving
2743  distribute from a specified location.
2744
27450.6.28
2746------
2747
2748* Distribute #294: setup.py can now be invoked from any directory.
2749* Scripts are now installed honoring the umask.
2750* Added support for .dist-info directories.
2751* Distribute #283: Fix and disable scanning of `*.pyc` / `*.pyo` files on
2752  Python 3.3.
2753
27540.6.27
2755------
2756
2757* Support current snapshots of CPython 3.3.
2758* Distribute now recognizes README.rst as a standard, default readme file.
2759* Exclude 'encodings' modules when removing modules from sys.modules.
2760  Workaround for #285.
2761* Distribute #231: Don't fiddle with system python when used with buildout
2762  (bootstrap.py)
2763
27640.6.26
2765------
2766
2767* Distribute #183: Symlinked files are now extracted from source distributions.
2768* Distribute #227: Easy_install fetch parameters are now passed during the
2769  installation of a source distribution; now fulfillment of setup_requires
2770  dependencies will honor the parameters passed to easy_install.
2771
27720.6.25
2773------
2774
2775* Distribute #258: Workaround a cache issue
2776* Distribute #260: distribute_setup.py now accepts the --user parameter for
2777  Python 2.6 and later.
2778* Distribute #262: package_index.open_with_auth no longer throws LookupError
2779  on Python 3.
2780* Distribute #269: AttributeError when an exception occurs reading Manifest.in
2781  on late releases of Python.
2782* Distribute #272: Prevent TypeError when namespace package names are unicode
2783  and single-install-externally-managed is used. Also fixes PIP issue
2784  449.
2785* Distribute #273: Legacy script launchers now install with Python2/3 support.
2786
27870.6.24
2788------
2789
2790* Distribute #249: Added options to exclude 2to3 fixers
2791
27920.6.23
2793------
2794
2795* Distribute #244: Fixed a test
2796* Distribute #243: Fixed a test
2797* Distribute #239: Fixed a test
2798* Distribute #240: Fixed a test
2799* Distribute #241: Fixed a test
2800* Distribute #237: Fixed a test
2801* Distribute #238: easy_install now uses 64bit executable wrappers on 64bit Python
2802* Distribute #208: Fixed parsed_versions, it now honors post-releases as noted in the documentation
2803* Distribute #207: Windows cli and gui wrappers pass CTRL-C to child python process
2804* Distribute #227: easy_install now passes its arguments to setup.py bdist_egg
2805* Distribute #225: Fixed a NameError on Python 2.5, 2.4
2806
28070.6.21
2808------
2809
2810* Distribute #225: FIxed a regression on py2.4
2811
28120.6.20
2813------
2814
2815* Distribute #135: Include url in warning when processing URLs in package_index.
2816* Distribute #212: Fix issue where easy_instal fails on Python 3 on windows installer.
2817* Distribute #213: Fix typo in documentation.
2818
28190.6.19
2820------
2821
2822* Distribute #206: AttributeError: 'HTTPMessage' object has no attribute 'getheaders'
2823
28240.6.18
2825------
2826
2827* Distribute #210: Fixed a regression introduced by Distribute #204 fix.
2828
28290.6.17
2830------
2831
2832* Support 'DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT' environment
2833  variable to allow to disable installation of easy_install-${version} script.
2834* Support Python >=3.1.4 and >=3.2.1.
2835* Distribute #204: Don't try to import the parent of a namespace package in
2836  declare_namespace
2837* Distribute #196: Tolerate responses with multiple Content-Length headers
2838* Distribute #205: Sandboxing doesn't preserve working_set. Leads to setup_requires
2839  problems.
2840
28410.6.16
2842------
2843
2844* Builds sdist gztar even on Windows (avoiding Distribute #193).
2845* Distribute #192: Fixed metadata omitted on Windows when package_dir
2846  specified with forward-slash.
2847* Distribute #195: Cython build support.
2848* Distribute #200: Issues with recognizing 64-bit packages on Windows.
2849
28500.6.15
2851------
2852
2853* Fixed typo in bdist_egg
2854* Several issues under Python 3 has been solved.
2855* Distribute #146: Fixed missing DLL files after easy_install of windows exe package.
2856
28570.6.14
2858------
2859
2860* Distribute #170: Fixed unittest failure. Thanks to Toshio.
2861* Distribute #171: Fixed race condition in unittests cause deadlocks in test suite.
2862* Distribute #143: Fixed a lookup issue with easy_install.
2863  Thanks to David and Zooko.
2864* Distribute #174: Fixed the edit mode when its used with setuptools itself
2865
28660.6.13
2867------
2868
2869* Distribute #160: 2.7 gives ValueError("Invalid IPv6 URL")
2870* Distribute #150: Fixed using ~/.local even in a --no-site-packages virtualenv
2871* Distribute #163: scan index links before external links, and don't use the md5 when
2872  comparing two distributions
2873
28740.6.12
2875------
2876
2877* Distribute #149: Fixed various failures on 2.3/2.4
2878
28790.6.11
2880------
2881
2882* Found another case of SandboxViolation - fixed
2883* Distribute #15 and Distribute #48: Introduced a socket timeout of 15 seconds on url openings
2884* Added indexsidebar.html into MANIFEST.in
2885* Distribute #108: Fixed TypeError with Python3.1
2886* Distribute #121: Fixed --help install command trying to actually install.
2887* Distribute #112: Added an os.makedirs so that Tarek's solution will work.
2888* Distribute #133: Added --no-find-links to easy_install
2889* Added easy_install --user
2890* Distribute #100: Fixed develop --user not taking '.' in PYTHONPATH into account
2891* Distribute #134: removed spurious UserWarnings. Patch by VanLindberg
2892* Distribute #138: cant_write_to_target error when setup_requires is used.
2893* Distribute #147: respect the sys.dont_write_bytecode flag
2894
28950.6.10
2896------
2897
2898* Reverted change made for the DistributionNotFound exception because
2899  zc.buildout uses the exception message to get the name of the
2900  distribution.
2901
29020.6.9
2903-----
2904
2905* Distribute #90: unknown setuptools version can be added in the working set
2906* Distribute #87: setupt.py doesn't try to convert distribute_setup.py anymore
2907  Initial Patch by arfrever.
2908* Distribute #89: added a side bar with a download link to the doc.
2909* Distribute #86: fixed missing sentence in pkg_resources doc.
2910* Added a nicer error message when a DistributionNotFound is raised.
2911* Distribute #80: test_develop now works with Python 3.1
2912* Distribute #93: upload_docs now works if there is an empty sub-directory.
2913* Distribute #70: exec bit on non-exec files
2914* Distribute #99: now the standalone easy_install command doesn't uses a
2915  "setup.cfg" if any exists in the working directory. It will use it
2916  only if triggered by ``install_requires`` from a setup.py call
2917  (install, develop, etc).
2918* Distribute #101: Allowing ``os.devnull`` in Sandbox
2919* Distribute #92: Fixed the "no eggs" found error with MacPort
2920  (platform.mac_ver() fails)
2921* Distribute #103: test_get_script_header_jython_workaround not run
2922  anymore under py3 with C or POSIX local. Contributed by Arfrever.
2923* Distribute #104: remvoved the assertion when the installation fails,
2924  with a nicer message for the end user.
2925* Distribute #100: making sure there's no SandboxViolation when
2926  the setup script patches setuptools.
2927
29280.6.8
2929-----
2930
2931* Added "check_packages" in dist. (added in Setuptools 0.6c11)
2932* Fixed the DONT_PATCH_SETUPTOOLS state.
2933
29340.6.7
2935-----
2936
2937* Distribute #58: Added --user support to the develop command
2938* Distribute #11: Generated scripts now wrap their call to the script entry point
2939  in the standard "if name == 'main'"
2940* Added the 'DONT_PATCH_SETUPTOOLS' environment variable, so virtualenv
2941  can drive an installation that doesn't patch a global setuptools.
2942* Reviewed unladen-swallow specific change from
2943  http://code.google.com/p/unladen-swallow/source/detail?spec=svn875&r=719
2944  and determined that it no longer applies. Distribute should work fine with
2945  Unladen Swallow 2009Q3.
2946* Distribute #21: Allow PackageIndex.open_url to gracefully handle all cases of a
2947  httplib.HTTPException instead of just InvalidURL and BadStatusLine.
2948* Removed virtual-python.py from this distribution and updated documentation
2949  to point to the actively maintained virtualenv instead.
2950* Distribute #64: use_setuptools no longer rebuilds the distribute egg every
2951  time it is run
2952* use_setuptools now properly respects the requested version
2953* use_setuptools will no longer try to import a distribute egg for the
2954  wrong Python version
2955* Distribute #74: no_fake should be True by default.
2956* Distribute #72: avoid a bootstrapping issue with easy_install -U
2957
29580.6.6
2959-----
2960
2961* Unified the bootstrap file so it works on both py2.x and py3k without 2to3
2962  (patch by Holger Krekel)
2963
29640.6.5
2965-----
2966
2967* Distribute #65: cli.exe and gui.exe are now generated at build time,
2968  depending on the platform in use.
2969
2970* Distribute #67: Fixed doc typo (PEP 381/PEP 382).
2971
2972* Distribute no longer shadows setuptools if we require a 0.7-series
2973  setuptools. And an error is raised when installing a 0.7 setuptools with
2974  distribute.
2975
2976* When run from within buildout, no attempt is made to modify an existing
2977  setuptools egg, whether in a shared egg directory or a system setuptools.
2978
2979* Fixed a hole in sandboxing allowing builtin file to write outside of
2980  the sandbox.
2981
29820.6.4
2983-----
2984
2985* Added the generation of `distribute_setup_3k.py` during the release.
2986  This closes Distribute #52.
2987
2988* Added an upload_docs command to easily upload project documentation to
2989  PyPI's https://pythonhosted.org. This close issue Distribute #56.
2990
2991* Fixed a bootstrap bug on the use_setuptools() API.
2992
29930.6.3
2994-----
2995
2996setuptools
2997==========
2998
2999* Fixed a bunch of calls to file() that caused crashes on Python 3.
3000
3001bootstrapping
3002=============
3003
3004* Fixed a bug in sorting that caused bootstrap to fail on Python 3.
3005
30060.6.2
3007-----
3008
3009setuptools
3010==========
3011
3012* Added Python 3 support; see docs/python3.txt.
3013  This closes Old Setuptools #39.
3014
3015* Added option to run 2to3 automatically when installing on Python 3.
3016  This closes issue Distribute #31.
3017
3018* Fixed invalid usage of requirement.parse, that broke develop -d.
3019  This closes Old Setuptools #44.
3020
3021* Fixed script launcher for 64-bit Windows.
3022  This closes Old Setuptools #2.
3023
3024* KeyError when compiling extensions.
3025  This closes Old Setuptools #41.
3026
3027bootstrapping
3028=============
3029
3030* Fixed bootstrap not working on Windows. This closes issue Distribute #49.
3031
3032* Fixed 2.6 dependencies. This closes issue Distribute #50.
3033
3034* Make sure setuptools is patched when running through easy_install
3035  This closes Old Setuptools #40.
3036
30370.6.1
3038-----
3039
3040setuptools
3041==========
3042
3043* package_index.urlopen now catches BadStatusLine and malformed url errors.
3044  This closes Distribute #16 and Distribute #18.
3045
3046* zip_ok is now False by default. This closes Old Setuptools #33.
3047
3048* Fixed invalid URL error catching. Old Setuptools #20.
3049
3050* Fixed invalid bootstraping with easy_install installation (Distribute #40).
3051  Thanks to Florian Schulze for the help.
3052
3053* Removed buildout/bootstrap.py. A new repository will create a specific
3054  bootstrap.py script.
3055
3056
3057bootstrapping
3058=============
3059
3060* The boostrap process leave setuptools alone if detected in the system
3061  and --root or --prefix is provided, but is not in the same location.
3062  This closes Distribute #10.
3063
30640.6
3065---
3066
3067setuptools
3068==========
3069
3070* Packages required at build time where not fully present at install time.
3071  This closes Distribute #12.
3072
3073* Protected against failures in tarfile extraction. This closes Distribute #10.
3074
3075* Made Jython api_tests.txt doctest compatible. This closes Distribute #7.
3076
3077* sandbox.py replaced builtin type file with builtin function open. This
3078  closes Distribute #6.
3079
3080* Immediately close all file handles. This closes Distribute #3.
3081
3082* Added compatibility with Subversion 1.6. This references Distribute #1.
3083
3084pkg_resources
3085=============
3086
3087* Avoid a call to /usr/bin/sw_vers on OSX and use the official platform API
3088  instead. Based on a patch from ronaldoussoren. This closes issue #5.
3089
3090* Fixed a SandboxViolation for mkdir that could occur in certain cases.
3091  This closes Distribute #13.
3092
3093* Allow to find_on_path on systems with tight permissions to fail gracefully.
3094  This closes Distribute #9.
3095
3096* Corrected inconsistency between documentation and code of add_entry.
3097  This closes Distribute #8.
3098
3099* Immediately close all file handles. This closes Distribute #3.
3100
3101easy_install
3102============
3103
3104* Immediately close all file handles. This closes Distribute #3.
3105
31060.6c9
3107-----
3108
3109 * Fixed a missing files problem when using Windows source distributions on
3110   non-Windows platforms, due to distutils not handling manifest file line
3111   endings correctly.
3112
3113 * Updated Pyrex support to work with Pyrex 0.9.6 and higher.
3114
3115 * Minor changes for Jython compatibility, including skipping tests that can't
3116   work on Jython.
3117
3118 * Fixed not installing eggs in ``install_requires`` if they were also used for
3119   ``setup_requires`` or ``tests_require``.
3120
3121 * Fixed not fetching eggs in ``install_requires`` when running tests.
3122
3123 * Allow ``ez_setup.use_setuptools()`` to upgrade existing setuptools
3124   installations when called from a standalone ``setup.py``.
3125
3126 * Added a warning if a namespace package is declared, but its parent package
3127   is not also declared as a namespace.
3128
3129 * Support Subversion 1.5
3130
3131 * Removed use of deprecated ``md5`` module if ``hashlib`` is available
3132
3133 * Fixed ``bdist_wininst upload`` trying to upload the ``.exe`` twice
3134
3135 * Fixed ``bdist_egg`` putting a ``native_libs.txt`` in the source package's
3136   ``.egg-info``, when it should only be in the built egg's ``EGG-INFO``.
3137
3138 * Ensure that _full_name is set on all shared libs before extensions are
3139   checked for shared lib usage.  (Fixes a bug in the experimental shared
3140   library build support.)
3141
3142 * Fix to allow unpacked eggs containing native libraries to fail more
3143   gracefully under Google App Engine (with an ``ImportError`` loading the
3144   C-based module, instead of getting a ``NameError``).
3145
31460.6c7
3147-----
3148
3149 * Fixed ``distutils.filelist.findall()`` crashing on broken symlinks, and
3150   ``egg_info`` command failing on new, uncommitted SVN directories.
3151
3152 * Fix import problems with nested namespace packages installed via
3153   ``--root`` or ``--single-version-externally-managed``, due to the
3154   parent package not having the child package as an attribute.
3155
31560.6c6
3157-----
3158
3159 * Added ``--egg-path`` option to ``develop`` command, allowing you to force
3160   ``.egg-link`` files to use relative paths (allowing them to be shared across
3161   platforms on a networked drive).
3162
3163 * Fix not building binary RPMs correctly.
3164
3165 * Fix "eggsecutables" (such as setuptools' own egg) only being runnable with
3166   bash-compatible shells.
3167
3168 * Fix ``#!`` parsing problems in Windows ``.exe`` script wrappers, when there
3169   was whitespace inside a quoted argument or at the end of the ``#!`` line
3170   (a regression introduced in 0.6c4).
3171
3172 * Fix ``test`` command possibly failing if an older version of the project
3173   being tested was installed on ``sys.path`` ahead of the test source
3174   directory.
3175
3176 * Fix ``find_packages()`` treating ``ez_setup`` and directories with ``.`` in
3177   their names as packages.
3178
31790.6c5
3180-----
3181
3182 * Fix uploaded ``bdist_rpm`` packages being described as ``bdist_egg``
3183   packages under Python versions less than 2.5.
3184
3185 * Fix uploaded ``bdist_wininst`` packages being described as suitable for
3186   "any" version by Python 2.5, even if a ``--target-version`` was specified.
3187
31880.6c4
3189-----
3190
3191 * Overhauled Windows script wrapping to support ``bdist_wininst`` better.
3192   Scripts installed with ``bdist_wininst`` will always use ``#!python.exe`` or
3193   ``#!pythonw.exe`` as the executable name (even when built on non-Windows
3194   platforms!), and the wrappers will look for the executable in the script's
3195   parent directory (which should find the right version of Python).
3196
3197 * Fix ``upload`` command not uploading files built by ``bdist_rpm`` or
3198   ``bdist_wininst`` under Python 2.3 and 2.4.
3199
3200 * Add support for "eggsecutable" headers: a ``#!/bin/sh`` script that is
3201   prepended to an ``.egg`` file to allow it to be run as a script on Unix-ish
3202   platforms.  (This is mainly so that setuptools itself can have a single-file
3203   installer on Unix, without doing multiple downloads, dealing with firewalls,
3204   etc.)
3205
3206 * Fix problem with empty revision numbers in Subversion 1.4 ``entries`` files
3207
3208 * Use cross-platform relative paths in ``easy-install.pth`` when doing
3209   ``develop`` and the source directory is a subdirectory of the installation
3210   target directory.
3211
3212 * Fix a problem installing eggs with a system packaging tool if the project
3213   contained an implicit namespace package; for example if the ``setup()``
3214   listed a namespace package ``foo.bar`` without explicitly listing ``foo``
3215   as a namespace package.
3216
32170.6c3
3218-----
3219
3220 * Fixed breakages caused by Subversion 1.4's new "working copy" format
3221
32220.6c2
3223-----
3224
3225 * The ``ez_setup`` module displays the conflicting version of setuptools (and
3226   its installation location) when a script requests a version that's not
3227   available.
3228
3229 * Running ``setup.py develop`` on a setuptools-using project will now install
3230   setuptools if needed, instead of only downloading the egg.
3231
32320.6c1
3233-----
3234
3235 * Fixed ``AttributeError`` when trying to download a ``setup_requires``
3236   dependency when a distribution lacks a ``dependency_links`` setting.
3237
3238 * Made ``zip-safe`` and ``not-zip-safe`` flag files contain a single byte, so
3239   as to play better with packaging tools that complain about zero-length
3240   files.
3241
3242 * Made ``setup.py develop`` respect the ``--no-deps`` option, which it
3243   previously was ignoring.
3244
3245 * Support ``extra_path`` option to ``setup()`` when ``install`` is run in
3246   backward-compatibility mode.
3247
3248 * Source distributions now always include a ``setup.cfg`` file that explicitly
3249   sets ``egg_info`` options such that they produce an identical version number
3250   to the source distribution's version number.  (Previously, the default
3251   version number could be different due to the use of ``--tag-date``, or if
3252   the version was overridden on the command line that built the source
3253   distribution.)
3254
32550.6b4
3256-----
3257
3258 * Fix ``register`` not obeying name/version set by ``egg_info`` command, if
3259   ``egg_info`` wasn't explicitly run first on the same command line.
3260
3261 * Added ``--no-date`` and ``--no-svn-revision`` options to ``egg_info``
3262   command, to allow suppressing tags configured in ``setup.cfg``.
3263
3264 * Fixed redundant warnings about missing ``README`` file(s); it should now
3265   appear only if you are actually a source distribution.
3266
32670.6b3
3268-----
3269
3270 * Fix ``bdist_egg`` not including files in subdirectories of ``.egg-info``.
3271
3272 * Allow ``.py`` files found by the ``include_package_data`` option to be
3273   automatically included. Remove duplicate data file matches if both
3274   ``include_package_data`` and ``package_data`` are used to refer to the same
3275   files.
3276
32770.6b1
3278-----
3279
3280 * Strip ``module`` from the end of compiled extension modules when computing
3281   the name of a ``.py`` loader/wrapper.  (Python's import machinery ignores
3282   this suffix when searching for an extension module.)
3283
32840.6a11
3285------
3286
3287 * Added ``test_loader`` keyword to support custom test loaders
3288
3289 * Added ``setuptools.file_finders`` entry point group to allow implementing
3290   revision control plugins.
3291
3292 * Added ``--identity`` option to ``upload`` command.
3293
3294 * Added ``dependency_links`` to allow specifying URLs for ``--find-links``.
3295
3296 * Enhanced test loader to scan packages as well as modules, and call
3297   ``additional_tests()`` if present to get non-unittest tests.
3298
3299 * Support namespace packages in conjunction with system packagers, by omitting
3300   the installation of any ``__init__.py`` files for namespace packages, and
3301   adding a special ``.pth`` file to create a working package in
3302   ``sys.modules``.
3303
3304 * Made ``--single-version-externally-managed`` automatic when ``--root`` is
3305   used, so that most system packagers won't require special support for
3306   setuptools.
3307
3308 * Fixed ``setup_requires``, ``tests_require``, etc. not using ``setup.cfg`` or
3309   other configuration files for their option defaults when installing, and
3310   also made the install use ``--multi-version`` mode so that the project
3311   directory doesn't need to support .pth files.
3312
3313 * ``MANIFEST.in`` is now forcibly closed when any errors occur while reading
3314   it. Previously, the file could be left open and the actual error would be
3315   masked by problems trying to remove the open file on Windows systems.
3316
33170.6a10
3318------
3319
3320 * Fixed the ``develop`` command ignoring ``--find-links``.
3321
33220.6a9
3323-----
3324
3325 * The ``sdist`` command no longer uses the traditional ``MANIFEST`` file to
3326   create source distributions.  ``MANIFEST.in`` is still read and processed,
3327   as are the standard defaults and pruning. But the manifest is built inside
3328   the project's ``.egg-info`` directory as ``SOURCES.txt``, and it is rebuilt
3329   every time the ``egg_info`` command is run.
3330
3331 * Added the ``include_package_data`` keyword to ``setup()``, allowing you to
3332   automatically include any package data listed in revision control or
3333   ``MANIFEST.in``
3334
3335 * Added the ``exclude_package_data`` keyword to ``setup()``, allowing you to
3336   trim back files included via the ``package_data`` and
3337   ``include_package_data`` options.
3338
3339 * Fixed ``--tag-svn-revision`` not working when run from a source
3340   distribution.
3341
3342 * Added warning for namespace packages with missing ``declare_namespace()``
3343
3344 * Added ``tests_require`` keyword to ``setup()``, so that e.g. packages
3345   requiring ``nose`` to run unit tests can make this dependency optional
3346   unless the ``test`` command is run.
3347
3348 * Made all commands that use ``easy_install`` respect its configuration
3349   options, as this was causing some problems with ``setup.py install``.
3350
3351 * Added an ``unpack_directory()`` driver to ``setuptools.archive_util``, so
3352   that you can process a directory tree through a processing filter as if it
3353   were a zipfile or tarfile.
3354
3355 * Added an internal ``install_egg_info`` command to use as part of old-style
3356   ``install`` operations, that installs an ``.egg-info`` directory with the
3357   package.
3358
3359 * Added a ``--single-version-externally-managed`` option to the ``install``
3360   command so that you can more easily wrap a "flat" egg in a system package.
3361
3362 * Enhanced ``bdist_rpm`` so that it installs single-version eggs that
3363   don't rely on a ``.pth`` file. The ``--no-egg`` option has been removed,
3364   since all RPMs are now built in a more backwards-compatible format.
3365
3366 * Support full roundtrip translation of eggs to and from ``bdist_wininst``
3367   format. Running ``bdist_wininst`` on a setuptools-based package wraps the
3368   egg in an .exe that will safely install it as an egg (i.e., with metadata
3369   and entry-point wrapper scripts), and ``easy_install`` can turn the .exe
3370   back into an ``.egg`` file or directory and install it as such.
3371
3372
33730.6a8
3374-----
3375
3376 * Fixed some problems building extensions when Pyrex was installed, especially
3377   with Python 2.4 and/or packages using SWIG.
3378
3379 * Made ``develop`` command accept all the same options as ``easy_install``,
3380   and use the ``easy_install`` command's configuration settings as defaults.
3381
3382 * Made ``egg_info --tag-svn-revision`` fall back to extracting the revision
3383   number from ``PKG-INFO`` in case it is being run on a source distribution of
3384   a snapshot taken from a Subversion-based project.
3385
3386 * Automatically detect ``.dll``, ``.so`` and ``.dylib`` files that are being
3387   installed as data, adding them to ``native_libs.txt`` automatically.
3388
3389 * Fixed some problems with fresh checkouts of projects that don't include
3390   ``.egg-info/PKG-INFO`` under revision control and put the project's source
3391   code directly in the project directory. If such a package had any
3392   requirements that get processed before the ``egg_info`` command can be run,
3393   the setup scripts would fail with a "Missing 'Version:' header and/or
3394   PKG-INFO file" error, because the egg runtime interpreted the unbuilt
3395   metadata in a directory on ``sys.path`` (i.e. the current directory) as
3396   being a corrupted egg. Setuptools now monkeypatches the distribution
3397   metadata cache to pretend that the egg has valid version information, until
3398   it has a chance to make it actually be so (via the ``egg_info`` command).
3399
34000.6a5
3401-----
3402
3403 * Fixed missing gui/cli .exe files in distribution. Fixed bugs in tests.
3404
34050.6a3
3406-----
3407
3408 * Added ``gui_scripts`` entry point group to allow installing GUI scripts
3409   on Windows and other platforms.  (The special handling is only for Windows;
3410   other platforms are treated the same as for ``console_scripts``.)
3411
34120.6a2
3413-----
3414
3415 * Added ``console_scripts`` entry point group to allow installing scripts
3416   without the need to create separate script files. On Windows, console
3417   scripts get an ``.exe`` wrapper so you can just type their name. On other
3418   platforms, the scripts are written without a file extension.
3419
34200.6a1
3421-----
3422
3423 * Added support for building "old-style" RPMs that don't install an egg for
3424   the target package, using a ``--no-egg`` option.
3425
3426 * The ``build_ext`` command now works better when using the ``--inplace``
3427   option and multiple Python versions. It now makes sure that all extensions
3428   match the current Python version, even if newer copies were built for a
3429   different Python version.
3430
3431 * The ``upload`` command no longer attaches an extra ``.zip`` when uploading
3432   eggs, as PyPI now supports egg uploads without trickery.
3433
3434 * The ``ez_setup`` script/module now displays a warning before downloading
3435   the setuptools egg, and attempts to check the downloaded egg against an
3436   internal MD5 checksum table.
3437
3438 * Fixed the ``--tag-svn-revision`` option of ``egg_info`` not finding the
3439   latest revision number; it was using the revision number of the directory
3440   containing ``setup.py``, not the highest revision number in the project.
3441
3442 * Added ``eager_resources`` setup argument
3443
3444 * The ``sdist`` command now recognizes Subversion "deleted file" entries and
3445   does not include them in source distributions.
3446
3447 * ``setuptools`` now embeds itself more thoroughly into the distutils, so that
3448   other distutils extensions (e.g. py2exe, py2app) will subclass setuptools'
3449   versions of things, rather than the native distutils ones.
3450
3451 * Added ``entry_points`` and ``setup_requires`` arguments to ``setup()``;
3452   ``setup_requires`` allows you to automatically find and download packages
3453   that are needed in order to *build* your project (as opposed to running it).
3454
3455 * ``setuptools`` now finds its commands, ``setup()`` argument validators, and
3456   metadata writers using entry points, so that they can be extended by
3457   third-party packages. See `Creating distutils Extensions
3458   <https://setuptools.readthedocs.io/en/latest/setuptools.html#creating-distutils-extensions>`_
3459   for more details.
3460
3461 * The vestigial ``depends`` command has been removed. It was never finished
3462   or documented, and never would have worked without EasyInstall - which it
3463   pre-dated and was never compatible with.
3464
34650.5a12
3466------
3467
3468 * The zip-safety scanner now checks for modules that might be used with
3469   ``python -m``, and marks them as unsafe for zipping, since Python 2.4 can't
3470   handle ``-m`` on zipped modules.
3471
34720.5a11
3473------
3474
3475 * Fix breakage of the "develop" command that was caused by the addition of
3476   ``--always-unzip`` to the ``easy_install`` command.
3477
34780.5a9
3479-----
3480
3481 * Include ``svn:externals`` directories in source distributions as well as
3482   normal subversion-controlled files and directories.
3483
3484 * Added ``exclude=patternlist`` option to ``setuptools.find_packages()``
3485
3486 * Changed --tag-svn-revision to include an "r" in front of the revision number
3487   for better readability.
3488
3489 * Added ability to build eggs without including source files (except for any
3490   scripts, of course), using the ``--exclude-source-files`` option to
3491   ``bdist_egg``.
3492
3493 * ``setup.py install`` now automatically detects when an "unmanaged" package
3494   or module is going to be on ``sys.path`` ahead of a package being installed,
3495   thereby preventing the newer version from being imported. If this occurs,
3496   a warning message is output to ``sys.stderr``, but installation proceeds
3497   anyway. The warning message informs the user what files or directories
3498   need deleting, and advises them they can also use EasyInstall (with the
3499   ``--delete-conflicting`` option) to do it automatically.
3500
3501 * The ``egg_info`` command now adds a ``top_level.txt`` file to the metadata
3502   directory that lists all top-level modules and packages in the distribution.
3503   This is used by the ``easy_install`` command to find possibly-conflicting
3504   "unmanaged" packages when installing the distribution.
3505
3506 * Added ``zip_safe`` and ``namespace_packages`` arguments to ``setup()``.
3507   Added package analysis to determine zip-safety if the ``zip_safe`` flag
3508   is not given, and advise the author regarding what code might need changing.
3509
3510 * Fixed the swapped ``-d`` and ``-b`` options of ``bdist_egg``.
3511
35120.5a8
3513-----
3514
3515 * The "egg_info" command now always sets the distribution metadata to "safe"
3516   forms of the distribution name and version, so that distribution files will
3517   be generated with parseable names (i.e., ones that don't include '-' in the
3518   name or version). Also, this means that if you use the various ``--tag``
3519   options of "egg_info", any distributions generated will use the tags in the
3520   version, not just egg distributions.
3521
3522 * Added support for defining command aliases in distutils configuration files,
3523   under the "[aliases]" section. To prevent recursion and to allow aliases to
3524   call the command of the same name, a given alias can be expanded only once
3525   per command-line invocation. You can define new aliases with the "alias"
3526   command, either for the local, global, or per-user configuration.
3527
3528 * Added "rotate" command to delete old distribution files, given a set of
3529   patterns to match and the number of files to keep.  (Keeps the most
3530   recently-modified distribution files matching each pattern.)
3531
3532 * Added "saveopts" command that saves all command-line options for the current
3533   invocation to the local, global, or per-user configuration file. Useful for
3534   setting defaults without having to hand-edit a configuration file.
3535
3536 * Added a "setopt" command that sets a single option in a specified distutils
3537   configuration file.
3538
35390.5a7
3540-----
3541
3542 * Added "upload" support for egg and source distributions, including a bug
3543   fix for "upload" and a temporary workaround for lack of .egg support in
3544   PyPI.
3545
35460.5a6
3547-----
3548
3549 * Beefed up the "sdist" command so that if you don't have a MANIFEST.in, it
3550   will include all files under revision control (CVS or Subversion) in the
3551   current directory, and it will regenerate the list every time you create a
3552   source distribution, not just when you tell it to. This should make the
3553   default "do what you mean" more often than the distutils' default behavior
3554   did, while still retaining the old behavior in the presence of MANIFEST.in.
3555
3556 * Fixed the "develop" command always updating .pth files, even if you
3557   specified ``-n`` or ``--dry-run``.
3558
3559 * Slightly changed the format of the generated version when you use
3560   ``--tag-build`` on the "egg_info" command, so that you can make tagged
3561   revisions compare *lower* than the version specified in setup.py (e.g. by
3562   using ``--tag-build=dev``).
3563
35640.5a5
3565-----
3566
3567 * Added ``develop`` command to ``setuptools``-based packages. This command
3568   installs an ``.egg-link`` pointing to the package's source directory, and
3569   script wrappers that ``execfile()`` the source versions of the package's
3570   scripts. This lets you put your development checkout(s) on sys.path without
3571   having to actually install them.  (To uninstall the link, use
3572   use ``setup.py develop --uninstall``.)
3573
3574 * Added ``egg_info`` command to ``setuptools``-based packages. This command
3575   just creates or updates the "projectname.egg-info" directory, without
3576   building an egg.  (It's used by the ``bdist_egg``, ``test``, and ``develop``
3577   commands.)
3578
3579 * Enhanced the ``test`` command so that it doesn't install the package, but
3580   instead builds any C extensions in-place, updates the ``.egg-info``
3581   metadata, adds the source directory to ``sys.path``, and runs the tests
3582   directly on the source. This avoids an "unmanaged" installation of the
3583   package to ``site-packages`` or elsewhere.
3584
3585 * Made ``easy_install`` a standard ``setuptools`` command, moving it from
3586   the ``easy_install`` module to ``setuptools.command.easy_install``. Note
3587   that if you were importing or extending it, you must now change your imports
3588   accordingly.  ``easy_install.py`` is still installed as a script, but not as
3589   a module.
3590
35910.5a4
3592-----
3593
3594 * Setup scripts using setuptools can now list their dependencies directly in
3595   the setup.py file, without having to manually create a ``depends.txt`` file.
3596   The ``install_requires`` and ``extras_require`` arguments to ``setup()``
3597   are used to create a dependencies file automatically. If you are manually
3598   creating ``depends.txt`` right now, please switch to using these setup
3599   arguments as soon as practical, because ``depends.txt`` support will be
3600   removed in the 0.6 release cycle. For documentation on the new arguments,
3601   see the ``setuptools.dist.Distribution`` class.
3602
3603 * Setup scripts using setuptools now always install using ``easy_install``
3604   internally, for ease of uninstallation and upgrading.
3605
36060.5a1
3607-----
3608
3609 * Added support for "self-installation" bootstrapping. Packages can now
3610   include ``ez_setup.py`` in their source distribution, and add the following
3611   to their ``setup.py``, in order to automatically bootstrap installation of
3612   setuptools as part of their setup process::
3613
3614    from ez_setup import use_setuptools
3615    use_setuptools()
3616
3617    from setuptools import setup
3618    # etc...
3619
36200.4a2
3621-----
3622
3623 * Added ``ez_setup.py`` installer/bootstrap script to make initial setuptools
3624   installation easier, and to allow distributions using setuptools to avoid
3625   having to include setuptools in their source distribution.
3626
3627 * All downloads are now managed by the ``PackageIndex`` class (which is now
3628   subclassable and replaceable), so that embedders can more easily override
3629   download logic, give download progress reports, etc. The class has also
3630   been moved to the new ``setuptools.package_index`` module.
3631
3632 * The ``Installer`` class no longer handles downloading, manages a temporary
3633   directory, or tracks the ``zip_ok`` option. Downloading is now handled
3634   by ``PackageIndex``, and ``Installer`` has become an ``easy_install``
3635   command class based on ``setuptools.Command``.
3636
3637 * There is a new ``setuptools.sandbox.run_setup()`` API to invoke a setup
3638   script in a directory sandbox, and a new ``setuptools.archive_util`` module
3639   with an ``unpack_archive()`` API. These were split out of EasyInstall to
3640   allow reuse by other tools and applications.
3641
3642 * ``setuptools.Command`` now supports reinitializing commands using keyword
3643   arguments to set/reset options. Also, ``Command`` subclasses can now set
3644   their ``command_consumes_arguments`` attribute to ``True`` in order to
3645   receive an ``args`` option containing the rest of the command line.
3646
36470.3a2
3648-----
3649
3650 * Added new options to ``bdist_egg`` to allow tagging the egg's version number
3651   with a subversion revision number, the current date, or an explicit tag
3652   value. Run ``setup.py bdist_egg --help`` to get more information.
3653
3654 * Misc. bug fixes
3655
36560.3a1
3657-----
3658
3659 * Initial release.
3660
3661