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