1v61.1.0 2------- 3 4 5Deprecations 6^^^^^^^^^^^^ 7* #3206: Changed ``setuptools.convert_path`` to an internal function that is not exposed 8 as part of setuptools API. 9 Future releases of ``setuptools`` are likely to remove this function. 10 11Changes 12^^^^^^^ 13* #3202: Changed behaviour of auto-discovery to not explicitly expand ``package_dir`` 14 for flat-layouts and to not use relative paths starting with ``./``. 15* #3203: Prevented ``pyproject.toml`` parsing from overwriting 16 ``dist.include_package_data`` explicitly set in ``setup.py`` with default 17 value. 18* #3208: Added a warning for non existing files listed with the ``file`` directive in 19 ``setup.cfg`` and ``pyproject.toml``. 20* #3208: Added a default value for dynamic ``classifiers`` in ``pyproject.toml`` when 21 files are missing and errors being ignored. 22* #3211: Disabled auto-discovery when distribution class has a ``configuration`` 23 attribute (e.g. when the ``setup.py`` script contains ``setup(..., 24 configuration=...)``). This is done to ensure extension-only packages created 25 with ``numpy.distutils.misc_util.Configuration`` are not broken by the safe 26 guard 27 behaviour to avoid accidental multiple top-level packages in a flat-layout. 28 29 .. note:: 30 Users that don't set ``packages``, ``py_modules``, or ``configuration`` are 31 still likely to observe the auto-discovery behavior, which may halt the 32 build if the project contains multiple directories and/or multiple Python 33 files directly under the project root. 34 35 To disable auto-discovery please explicitly set either ``packages`` or 36 ``py_modules``. Alternatively you can also configure :ref:`custom-discovery`. 37 38 39v61.0.0 40------- 41 42 43Deprecations 44^^^^^^^^^^^^ 45* #3068: Deprecated ``setuptools.config.read_configuration``, 46 ``setuptools.config.parse_configuration`` and other functions or classes 47 from ``setuptools.config``. 48 49 Users that still need to parse and process configuration from ``setup.cfg`` can 50 import a direct replacement from ``setuptools.config.setupcfg``, however this 51 module is transitional and might be removed in the future 52 (the ``setup.cfg`` configuration format itself is likely to be deprecated in the future). 53 54Breaking Changes 55^^^^^^^^^^^^^^^^ 56* #2894: If you purposefully want to create an *"empty distribution"*, please be aware 57 that some Python files (or general folders) might be automatically detected and 58 included. 59 60 Projects that currently don't specify both ``packages`` and ``py_modules`` in their 61 configuration and contain extra folders or Python files (not meant for distribution), 62 might see these files being included in the wheel archive or even experience 63 the build to fail. 64 65 You can check details about the automatic discovery (and how to configure a 66 different behaviour) in :doc:`/userguide/package_discovery`. 67* #3067: If the file ``pyproject.toml`` exists and it includes project 68 metadata/config (via ``[project]`` table or ``[tool.setuptools]``), 69 a series of new behaviors that are not backward compatible may take place: 70 71 - The default value of ``include_package_data`` will be considered to be ``True``. 72 - Setuptools will attempt to validate the ``pyproject.toml`` file according 73 to PEP 621 specification. 74 - The values specified in ``pyproject.toml`` will take precedence over those 75 specified in ``setup.cfg`` or ``setup.py``. 76 77Changes 78^^^^^^^ 79* #2887: **[EXPERIMENTAL]** Added automatic discovery for ``py_modules`` and ``packages`` 80 -- by :user:`abravalheri`. 81 82 Setuptools will try to find these values assuming that the package uses either 83 the *src-layout* (a ``src`` directory containing all the packages or modules), 84 the *flat-layout* (package directories directly under the project root), 85 or the *single-module* approach (an isolated Python file, directly under 86 the project root). 87 88 The automatic discovery will also respect layouts that are explicitly 89 configured using the ``package_dir`` option. 90 91 For backward-compatibility, this behavior will be observed **only if both** 92 ``py_modules`` **and** ``packages`` **are not set**. 93 (**Note**: specifying ``ext_modules`` might also prevent auto-discover from 94 taking place) 95 96 If setuptools detects modules or packages that are not supposed to be in the 97 distribution, please manually set ``py_modules`` and ``packages`` in your 98 ``setup.cfg`` or ``setup.py`` file. 99 If you are using a *flat-layout*, you can also consider switching to 100 *src-layout*. 101* #2887: **[EXPERIMENTAL]** Added automatic configuration for the ``name`` metadata 102 -- by :user:`abravalheri`. 103 104 Setuptools will adopt the name of the top-level package (or module in the case 105 of single-module distributions), **only when** ``name`` **is not explicitly 106 provided**. 107 108 Please note that it is not possible to automatically derive a single name when 109 the distribution consists of multiple top-level packages or modules. 110* #3066: Added vendored dependencies for :pypi:`tomli`, :pypi:`validate-pyproject`. 111 112 These dependencies are used to read ``pyproject.toml`` files and validate them. 113* #3067: **[EXPERIMENTAL]** When using ``pyproject.toml`` metadata, 114 the default value of ``include_package_data`` is changed to ``True``. 115* #3068: **[EXPERIMENTAL]** Add support for ``pyproject.toml`` configuration 116 (as introduced by :pep:`621`). Configuration parameters not covered by 117 standards are handled in the ``[tool.setuptools]`` sub-table. 118 119 In the future, existing ``setup.cfg`` configuration 120 may be automatically converted into the ``pyproject.toml`` equivalent before taking effect 121 (as proposed in #1688). Meanwhile users can use automated tools like 122 :pypi:`ini2toml` to help in the transition. 123 124 Please note that the legacy backend is not guaranteed to work with 125 ``pyproject.toml`` configuration. 126 127 -- by :user:`abravalheri` 128* #3125: Implicit namespaces (as introduced in :pep:`420`) are now considered by default 129 during :doc:`package discovery </userguide/package_discovery>`, when 130 ``setuptools`` configuration and project metadata are added to the 131 ``pyproject.toml`` file. 132 133 To disable this behaviour, use ``namespaces = False`` when explicitly setting 134 the ``[tool.setuptools.packages.find]`` section in ``pyproject.toml``. 135 136 This change is backwards compatible and does not affect the behaviour of 137 configuration done in ``setup.cfg`` or ``setup.py``. 138* #3152: **[EXPERIMENTAL]** Added support for ``attr:`` and ``cmdclass`` configurations 139 in ``setup.cfg`` and ``pyproject.toml`` when ``package_dir`` is implicitly 140 found via auto-discovery. 141* #3178: Postponed importing ``ctypes`` when hiding files on Windows. 142 This helps to prevent errors in systems that might not have `libffi` installed. 143* #3179: Merge with pypa/distutils@267dbd25ac 144 145Documentation changes 146^^^^^^^^^^^^^^^^^^^^^ 147* #3172: Added initial documentation about configuring ``setuptools`` via ``pyproject.toml`` 148 (using standard project metadata). 149 150Misc 151^^^^ 152* #3065: Refactored ``setuptools.config`` by separating configuration parsing (specific 153 to the configuration file format, e.g. ``setup.cfg``) and post-processing 154 (which includes directives such as ``file:`` that can be used across different 155 configuration formats). 156 157 158v60.10.0 159-------- 160 161 162Changes 163^^^^^^^ 164* #2971: Deprecated upload_docs command, to be removed in the future. 165* #3137: Use samefile from stdlib, supported on Windows since Python 3.2. 166* #3170: Adopt nspektr (vendored) to implement Distribution._install_dependencies. 167 168Documentation changes 169^^^^^^^^^^^^^^^^^^^^^ 170* #3144: Added documentation on using console_scripts from setup.py, which was previously only shown in setup.cfg -- by :user:`xhlulu` 171* #3148: Added clarifications about ``MANIFEST.in``, that include links to PyPUG docs 172 and more prominent mentions to using a revision control system plugin as an 173 alternative. 174* #3148: Removed mention to ``pkg_resources`` as the recommended way of accessing data 175 files, in favour of importlib.resources. 176 Additionally more emphasis was put on the fact that *package data files* reside 177 **inside** the *package directory* (and therefore should be *read-only*). 178 179Misc 180^^^^ 181* #3120: Added workaround for intermittent failures of backend tests on PyPy. 182 These tests now are marked with `XFAIL 183 <https://docs.pytest.org/en/stable/how-to/skipping.html>`_, instead of erroring 184 out directly. 185* #3124: Improved configuration for :pypi:`rst-linker` (extension used to build the 186 changelog). 187* #3133: Enhanced isolation of tests using virtual environments - PYTHONPATH is not leaking to spawned subprocesses -- by :user:`befeleme` 188* #3147: Added options to provide a pre-built ``setuptools`` wheel or sdist for being 189 used during tests with virtual environments. 190 Paths for these pre-built distribution files can now be set via the environment 191 variables: ``PRE_BUILT_SETUPTOOLS_SDIST`` and ``PRE_BUILT_SETUPTOOLS_WHEEL``. 192 193 194v60.9.3 195------- 196 197 198Misc 199^^^^ 200* #3093: Repaired automated release process. 201 202 203v60.9.2 204------- 205 206 207Misc 208^^^^ 209* #3035: When loading distutils from the vendored copy, rewrite ``__name__`` to ensure consistent importing from inside and out. 210 211 212v60.9.1 213------- 214 215 216Misc 217^^^^ 218* #3102: Prevent vendored importlib_metadata from loading distributions from older importlib_metadata. 219* #3103: Fixed issue where string-based entry points would be omitted. 220* #3107: Bump importlib_metadata to 4.11.1 addressing issue with parsing requirements in egg-info as found in PyPy. 221 222 223v60.9.0 224------- 225 226 227Changes 228^^^^^^^ 229* #2876: In the build backend, allow single config settings to be supplied. 230* #2993: Removed workaround in distutils hack for get-pip now that pypa/get-pip#137 is closed. 231* #3085: Setuptools no longer relies on ``pkg_resources`` for entry point handling. 232* #3098: Bump vendored packaging to 21.3. 233* Removed bootstrap script. 234 235 236v60.8.2 237------- 238 239 240Misc 241^^^^ 242* #3091: Make ``concurrent.futures`` import lazy in vendored ``more_itertools`` 243 package to a avoid importing threading as a side effect (which caused 244 `gevent/gevent#1865 <https://github.com/gevent/gevent/issues/1865>`__). 245 -- by :user:`maciejp-ro` 246 247 248v60.8.1 249------- 250 251 252Misc 253^^^^ 254* #3084: When vendoring jaraco packages, ensure the namespace package is converted to a simple package to support zip importer. 255 256 257v60.8.0 258------- 259 260 261Changes 262^^^^^^^ 263* #3085: Setuptools now vendors importlib_resources and importlib_metadata and jaraco.text. Setuptools no longer relies on pkg_resources for ensure_directory nor parse_requirements. 264 265 266v60.7.1 267------- 268 269 270Misc 271^^^^ 272* #3072: Remove lorem_ipsum from jaraco.text when vendored. 273 274 275v60.7.0 276------- 277 278 279Changes 280^^^^^^^ 281* #3061: Vendored jaraco.text and use line processing from that library in pkg_resources. 282 283Misc 284^^^^ 285* #3070: Avoid AttributeError in easy_install.create_home_path when sysconfig.get_config_vars values are not strings. 286 287 288v60.6.0 289------- 290 291 292Changes 293^^^^^^^ 294* #3043: Merge with pypa/distutils@bb018f1ac3 including consolidated behavior in sysconfig.get_platform (pypa/distutils#104). 295* #3057: Don't include optional ``Home-page`` in metadata if no ``url`` is specified. -- by :user:`cdce8p` 296* #3062: Merge with pypa/distutils@b53a824ec3 including improved support for lib directories on non-x64 Windows builds. 297 298Documentation changes 299^^^^^^^^^^^^^^^^^^^^^ 300* #2897: Added documentation about wrapping ``setuptools.build_meta`` in a in-tree 301 custom backend. This is a :pep:`517`-compliant way of dynamically specifying 302 build dependencies (e.g. when platform, OS and other markers are not enough). 303 -- by :user:`abravalheri` 304* #3034: Replaced occurrences of the defunct distutils-sig mailing list with pointers 305 to GitHub Discussions. 306 -- by :user:`ashemedai` 307* #3056: The documentation has stopped suggesting to add ``wheel`` to 308 :pep:`517` requirements -- by :user:`webknjaz` 309 310Misc 311^^^^ 312* #3054: Used Py3 syntax ``super().__init__()`` -- by :user:`imba-tjd` 313 314 315v60.5.4 316------- 317 318 319Misc 320^^^^ 321* #3009: Remove filtering of distutils warnings. 322* #3031: Suppress distutils replacement when building or testing CPython. 323 324 325v60.5.3 326------- 327 328 329Misc 330^^^^ 331* #3026: Honor sysconfig variables in easy_install. 332 333 334v60.5.2 335------- 336 337 338Misc 339^^^^ 340* #2993: In _distutils_hack, for get-pip, simulate existence of setuptools. 341 342 343v60.5.1 344------- 345 346 347Misc 348^^^^ 349* #2918: Correct support for Python 3 native loaders. 350 351 352v60.5.0 353------- 354 355 356Changes 357^^^^^^^ 358* #2990: Set the ``.origin`` attribute of the ``distutils`` module to the module's ``__file__``. 359 360 361v60.4.0 362------- 363 364 365Changes 366^^^^^^^ 367* #2839: Removed ``requires`` sorting when installing wheels as an egg dir. 368* #2953: Fixed a bug that easy install incorrectly parsed Python 3.10 version string. 369* #3006: Fixed startup performance issue of Python interpreter due to imports of 370 costly modules in ``_distutils_hack`` -- by :user:`tiran` 371 372Documentation changes 373^^^^^^^^^^^^^^^^^^^^^ 374* #2674: Added link to additional resources on packaging in Quickstart guide 375* #3008: "In-tree" Sphinx extension for "favicons" replaced with ``sphinx-favicon``. 376* #3008: SVG images (logo, banners, ...) optimised with the help of the ``scour`` 377 package. 378 379Misc 380^^^^ 381* #2862: Added integration tests that focus on building and installing some packages in 382 the Python ecosystem via ``pip`` -- by :user:`abravalheri` 383* #2952: Modified "vendoring" logic to keep license files. 384* #2968: Improved isolation for some tests that where inadvertently using the project 385 root for builds, and therefore creating directories (e.g. ``build``, ``dist``, 386 ``*.egg-info``) that could interfere with the outcome of other tests 387 -- by :user:`abravalheri`. 388* #2968: Introduced new test fixtures ``venv``, ``venv_without_setuptools``, 389 ``bare_venv`` that rely on the ``jaraco.envs`` package. 390 These new test fixtures were also used to remove the (currently problematic) 391 dependency on the ``pytest_virtualenv`` plugin. 392* #2968: Removed ``tmp_src`` test fixture. Previously this fixture was copying all the 393 files and folders under the project root, including the ``.git`` directory, 394 which is error prone and increases testing time. 395 396 Since ``tmp_src`` was used to populate virtual environments (installing the 397 version of ``setuptools`` under test via the source tree), it was replaced by 398 the new ``setuptools_sdist`` and ``setuptools_wheel`` fixtures (that are build 399 only once per session testing and can be shared between all the workers for 400 read-only usage). 401 402 403v60.3.1 404------- 405 406 407Misc 408^^^^ 409* #3002: Suppress AttributeError when detecting get-pip. 410 411 412v60.3.0 413------- 414 415 416Changes 417^^^^^^^ 418* #2993: In _distutils_hack, bypass the distutils exception for pip when get-pip is being invoked, because it imports setuptools. 419 420Misc 421^^^^ 422* #2989: Merge with pypa/distutils@788cc159. Includes fix for config vars missing from sysconfig. 423 424 425v60.2.0 426------- 427 428 429Changes 430^^^^^^^ 431* #2974: Setuptools now relies on the Python logging infrastructure to log messages. Instead of using ``distutils.log.*``, use ``logging.getLogger(name).*``. 432* #2987: Sync with pypa/distutils@2def21c5d74fdd2fe7996ee4030ac145a9d751bd, including fix for missing get_versions attribute (#2969), more reliance on sysconfig from stdlib. 433 434Misc 435^^^^ 436* #2962: Avoid attempting to use local distutils when the presiding version of Setuptools on the path doesn't have one. 437* #2983: Restore 'add_shim' as the way to invoke the hook. Avoids compatibility issues between different versions of Setuptools with the distutils local implementation. 438 439 440v60.1.1 441------- 442 443 444Misc 445^^^^ 446* #2980: Bypass distutils loader when setuptools module is no longer available on sys.path. 447 448 449v60.1.0 450------- 451 452 453Changes 454^^^^^^^ 455* #2958: In distutils_hack, only add the metadata finder once. In ensure_local_distutils, rely on a context manager for reliable manipulation. 456* #2963: Merge with pypa/distutils@a5af364910. Includes revisited fix for pypa/distutils#15 and improved MinGW/Cygwin support from pypa/distutils#77. 457 458 459v60.0.5 460------- 461 462 463Misc 464^^^^ 465* #2960: Install schemes fall back to default scheme for headers. 466 467 468v60.0.4 469------- 470 471 472Misc 473^^^^ 474* #2954: Merge with pypa/distutils@eba2bcd310. Adds platsubdir to config vars available for substitution. 475 476 477v60.0.3 478------- 479 480 481Misc 482^^^^ 483* #2940: Avoid KeyError in distutils hack when pip is imported during ensurepip. 484 485 486v60.0.2 487------- 488 489 490Misc 491^^^^ 492* #2938: Select 'posix_user' for the scheme unless falling back to stdlib, then use 'unix_user'. 493 494 495v60.0.1 496------- 497 498 499Misc 500^^^^ 501* #2944: Add support for extended install schemes in easy_install. 502 503 504v60.0.0 505------- 506 507 508Breaking Changes 509^^^^^^^^^^^^^^^^ 510* #2896: Setuptools once again makes its local copy of distutils the default. To override, set SETUPTOOLS_USE_DISTUTILS=stdlib. 511 512 513v59.8.0 514------- 515 516 517Changes 518^^^^^^^ 519* #2935: Merge pypa/distutils@460b59f0e68dba17e2465e8dd421bbc14b994d1f. 520 521 522v59.7.0 523------- 524 525 526Changes 527^^^^^^^ 528* #2930: Require Python 3.7 529 530 531v59.6.0 532------- 533 534 535Changes 536^^^^^^^ 537* #2925: Merge with pypa/distutils@92082ee42c including introduction of deprecation warning on Version classes. 538 539 540v59.5.0 541------- 542 543 544Changes 545^^^^^^^ 546* #2914: Merge with pypa/distutils@8f2df0bf6. 547 548 549v59.4.0 550------- 551 552 553Changes 554^^^^^^^ 555* #2893: Restore deprecated support for newlines in the Summary field. 556 557 558v59.3.0 559------- 560 561 562Changes 563^^^^^^^ 564* #2902: Merge with pypa/distutils@85db7a41242. 565 566Misc 567^^^^ 568* #2906: In ensure_local_distutils, re-use DistutilsMetaFinder to load the module. Avoids race conditions when _distutils_system_mod is employed. 569 570 571v59.2.0 572------- 573 574 575Changes 576^^^^^^^ 577* #2875: Introduce changes from pypa/distutils@514e9d0, including support for overrides from Debian and pkgsrc, unlocking the possibility of making SETUPTOOLS_USE_DISTUTILS=local the default again. 578 579 580v59.1.1 581------- 582 583 584Misc 585^^^^ 586* #2885: Fixed errors when encountering LegacyVersions. 587 588 589v59.1.0 590------- 591 592 593Changes 594^^^^^^^ 595* #2497: Update packaging to 21.2. 596* #2877: Back out deprecation of setup_requires and replace instead by a deprecation of setuptools.installer and fetch_build_egg. Now setup_requires is still supported when installed as part of a PEP 517 build, but is deprecated when an unsatisfied requirement is encountered. 597* #2879: Bump packaging to 21.2. 598 599Documentation changes 600^^^^^^^^^^^^^^^^^^^^^ 601* #2867: PNG/ICO images replaced with SVG in the docs. 602* #2867: Added support to SVG "favicons" via "in-tree" Sphinx extension. 603 604 605v59.0.1 606------- 607 608 609Misc 610^^^^ 611* #2880: Removed URL requirement for ``pytest-virtualenv`` in ``setup.cfg``. 612 PyPI rejects packages with dependencies external to itself. 613 Instead the test dependency was overwritten via ``tox.ini`` 614 615 616v59.0.0 617------- 618 619 620Deprecations 621^^^^^^^^^^^^ 622* #2856: Support for custom commands that inherit directly from ``distutils`` is 623 **deprecated**. Users should extend classes provided by setuptools instead. 624 625Breaking Changes 626^^^^^^^^^^^^^^^^ 627* #2870: Started failing on invalid inline description with line breaks :class:`ValueError` -- by :user:`webknjaz` 628 629Changes 630^^^^^^^ 631* #2698: Exposed exception classes from ``distutils.errors`` via ``setuptools.errors``. 632* #2866: Incorporate changes from pypa/distutils@f1b0a2b. 633 634Documentation changes 635^^^^^^^^^^^^^^^^^^^^^ 636* #2227: Added sphinx theme customisations to display the new logo in the sidebar and 637 use its colours as "accent" in the documentation -- by :user:`abravalheri` 638* #2227: Added new setuptools logo, including editable files and artwork documentation 639 -- by :user:`abravalheri` 640* #2698: Added mentions to ``setuptools.errors`` as a way of handling custom command 641 errors. 642* #2698: Added instructions to migrate from ``distutils.commands`` and 643 ``distutils.errors`` in the porting guide. 644* #2871: Added a note to the docs that it is possible to install 645 ``setup.py``-less projects in editable mode with :doc:`pip v21.1+ 646 <pip:index>`, only having ``setup.cfg`` and ``pyproject.toml`` in 647 project root -- by :user:`webknjaz` 648 649 650v58.5.3 651------- 652 653 654Misc 655^^^^ 656* #2849: Add fallback for custom ``build_py`` commands inheriting directly from 657 :mod:`distutils`, while still handling ``include_package_data=True`` for 658 ``sdist``. 659 660 661v58.5.2 662------- 663 664 665Misc 666^^^^ 667* #2847: Suppress 'setup.py install' warning under bdist_wheel. 668 669 670v58.5.1 671------- 672 673 674Misc 675^^^^ 676* #2846: Move PkgResourcesDeprecationWarning above implicitly-called function so that it's in the namespace when version warnings are generated in an environment that contains them. 677 678 679v58.5.0 680------- 681 682 683Changes 684^^^^^^^ 685* #1461: Fix inconsistency with ``include_package_data`` and ``packages_data`` in sdist 686 by replacing the loop breaking mechanism between the ``sdist`` and 687 ``egg_info`` commands -- by :user:`abravalheri` 688 689 690v58.4.0 691------- 692 693 694Changes 695^^^^^^^ 696* #2497: Officially deprecated PEP 440 non-compliant versions. 697 698Documentation changes 699^^^^^^^^^^^^^^^^^^^^^ 700* #2832: Removed the deprecated ``data_files`` option from the example in the 701 declarative configuration docs -- by :user:`abravalheri` 702* #2832: Change type of ``data_files`` option from ``dict`` to ``section`` in 703 declarative configuration docs (to match previous example) -- by 704 :user:`abravalheri` 705 706 707v58.3.0 708------- 709 710 711Changes 712^^^^^^^ 713* #917: ``setup.py install`` and ``easy_install`` commands are now officially deprecated. Use other standards-based installers (like pip) and builders (like build). Workloads reliant on this behavior should pin to this major version of Setuptools. See `Why you shouldn't invoke setup.py directly <https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html>`_ for more background. 714* #1988: Deprecated the ``bdist_rpm`` command. Binary packages should be built as wheels instead. 715 -- by :user:`hugovk` 716* #2785: Replace ``configparser``'s ``readfp`` with ``read_file``, deprecated since Python 3.2. 717 -- by :user:`hugovk` 718* #2823: Officially deprecated support for ``setup_requires``. Users are encouraged instead to migrate to PEP 518 ``build-system.requires`` in ``pyproject.toml``. Users reliant on ``setup_requires`` should consider pinning to this major version to avoid disruption. 719 720Misc 721^^^^ 722* #2762: Changed codecov.yml to configure the threshold to be lower 723 -- by :user:`tanvimoharir` 724 725 726v58.2.0 727------- 728 729 730Changes 731^^^^^^^ 732* #2757: Add windows arm64 launchers for scripts generated by easy_install. 733* #2800: Added ``--owner`` and ``--group`` options to the ``sdist`` command, 734 for specifying file ownership within the produced tarball (similarly 735 to the corresponding distutils ``sdist`` options). 736 737Documentation changes 738^^^^^^^^^^^^^^^^^^^^^ 739* #2792: Document how the legacy and non-legacy versions are compared, and reference to the PEP 440 scheme. 740 741 742v58.1.0 743------- 744 745 746Changes 747^^^^^^^ 748* #2796: Merge with pypa/distutils@02e9f65ab0 749 750 751v58.0.4 752------- 753 754 755Misc 756^^^^ 757* #2773: Retain case in setup.cfg during sdist. 758 759 760v58.0.3 761------- 762 763 764Misc 765^^^^ 766* #2777: Build does not fail fast when ``use_2to3`` is supplied but set to a false value. 767 768 769v58.0.2 770------- 771 772 773Misc 774^^^^ 775* #2769: Build now fails fast when ``use_2to3`` is supplied. 776 777 778v58.0.1 779------- 780 781 782Misc 783^^^^ 784* #2765: In Distribution.finalize_options, suppress known removed entry points to avoid issues with older Setuptools. 785 786 787v58.0.0 788------- 789 790 791Breaking Changes 792^^^^^^^^^^^^^^^^ 793* #2086: Removed support for 2to3 during builds. Projects should port to a unified codebase or pin to an older version of Setuptools using PEP 518 build-requires. 794 795Documentation changes 796^^^^^^^^^^^^^^^^^^^^^ 797* #2746: add python_requires example 798 799 800v57.5.0 801------- 802 803 804Changes 805^^^^^^^ 806* #2712: Added implicit globbing support for ``[options.data_files]`` values. 807 808Documentation changes 809^^^^^^^^^^^^^^^^^^^^^ 810* #2737: fix various syntax and style errors in code snippets in docs 811 812 813v57.4.0 814------- 815 816 817Changes 818^^^^^^^ 819* #2722: Added support for ``SETUPTOOLS_EXT_SUFFIX`` environment variable to override the suffix normally detected from the ``sysconfig`` module. 820 821 822v57.3.0 823------- 824 825 826Changes 827^^^^^^^ 828* #2465: Documentation is now published using the Furo theme. 829 830 831v57.2.0 832------- 833 834 835Changes 836^^^^^^^ 837* #2724: Added detection of Windows ARM64 build environments using the ``VSCMD_ARG_TGT_ARCH`` environment variable. 838 839 840v57.1.0 841------- 842 843 844Changes 845^^^^^^^ 846* #2692: Globs are now sorted in 'license_files' restoring reproducibility by eliminating variance from disk order. 847* #2714: Update to distutils at pypa/distutils@e2627b7. 848* #2715: Removed reliance on deprecated ssl.match_hostname by removing the ssl support. Now any index operations rely on the native SSL implementation. 849 850Documentation changes 851^^^^^^^^^^^^^^^^^^^^^ 852* #2604: Revamped the backward/cross tool compatibility section to remove 853 some confusion. 854 Add some examples and the version since when ``entry_points`` are 855 supported in declarative configuration. 856 Tried to make the reading flow a bit leaner, gather some information 857 that were a bit dispersed. 858 859 860v57.0.0 861------- 862 863 864Breaking Changes 865^^^^^^^^^^^^^^^^ 866* #2645: License files excluded via the ``MANIFEST.in`` but matched by either 867 the ``license_file`` (deprecated) or ``license_files`` options, 868 will be nevertheless included in the source distribution. - by :user:`cdce8p` 869 870Changes 871^^^^^^^ 872* #2628: Write long description in message payload of PKG-INFO file. - by :user:`cdce8p` 873* #2645: Added ``License-File`` (multiple) to the output package metadata. 874 The field will contain the path of a license file, matched by the 875 ``license_file`` (deprecated) and ``license_files`` options, 876 relative to ``.dist-info``. - by :user:`cdce8p` 877* #2678: Moved Setuptools' own entry points into declarative config. 878* #2680: Vendored :pypi:`more_itertools` for Setuptools. 879* #2681: Setuptools own setup.py no longer declares setup_requires, but instead expects wheel to be installed as declared by pyproject.toml. 880 881Misc 882^^^^ 883* #2650: Updated the docs build tooling to support the latest version of 884 Towncrier and show the previews of not-yet-released setuptools versions 885 in the changelog -- :user:`webknjaz` 886 887 888v56.2.0 889------- 890 891 892Changes 893^^^^^^^ 894* #2640: Fixed handling of multiline license strings. - by :user:`cdce8p` 895* #2641: Setuptools will now always try to use the latest supported 896 metadata version for ``PKG-INFO``. - by :user:`cdce8p` 897 898 899v56.1.0 900------- 901 902 903Changes 904^^^^^^^ 905* #2653: Incorporated assorted changes from pypa/distutils. 906* #2657: Adopted docs from distutils. 907* #2663: Added Visual Studio Express 2017 support -- by :user:`dofuuz` 908 909Misc 910^^^^ 911* #2644: Fixed ``DeprecationWarning`` due to ``threading.Thread.setDaemon`` in tests -- by :user:`tirkarthi` 912* #2654: Made the changelog generator compatible 913 with Towncrier >= 19.9 -- :user:`webknjaz` 914* #2664: Relax the deprecation message in the distutils hack. 915 916 917v56.0.0 918------- 919 920 921Deprecations 922^^^^^^^^^^^^ 923* #2620: The ``license_file`` option is now marked as deprecated. 924 Use ``license_files`` instead. -- by :user:`cdce8p` 925 926Breaking Changes 927^^^^^^^^^^^^^^^^ 928* #2620: If neither ``license_file`` nor ``license_files`` is specified, the ``sdist`` 929 option will now auto-include files that match the following patterns: 930 ``LICEN[CS]E*``, ``COPYING*``, ``NOTICE*``, ``AUTHORS*``. 931 This matches the behavior of ``bdist_wheel``. -- by :user:`cdce8p` 932 933Changes 934^^^^^^^ 935* #2620: The ``license_file`` and ``license_files`` options now support glob patterns. -- by :user:`cdce8p` 936* #2632: Implemented ``VendorImporter.find_spec()`` method to get rid 937 of ``ImportWarning`` that Python 3.10 emits when only the old-style 938 importer hooks are present -- by :user:`webknjaz` 939 940Documentation changes 941^^^^^^^^^^^^^^^^^^^^^ 942* #2620: Added documentation for the ``license_files`` option. -- by :user:`cdce8p` 943 944 945v55.0.0 946------- 947 948 949Breaking Changes 950^^^^^^^^^^^^^^^^ 951* #2566: Remove the deprecated ``bdist_wininst`` command. Binary packages should be built as wheels instead. -- by :user:`hroncok` 952 953 954v54.2.0 955------- 956 957 958Changes 959^^^^^^^ 960* #2608: Added informative error message to PEP 517 build failures owing to 961 an empty ``setup.py`` -- by :user:`layday` 962 963 964v54.1.3 965------- 966 967No significant changes. 968 969 970v54.1.2 971------- 972 973 974Misc 975^^^^ 976* #2595: Reduced scope of dash deprecation warning to Setuptools/distutils only -- by :user:`melissa-kun-li` 977 978 979v54.1.1 980------- 981 982 983Documentation changes 984^^^^^^^^^^^^^^^^^^^^^ 985* #2584: Added ``sphinx-inline-tabs`` extension to allow for comparison of ``setup.py`` and its equivalent ``setup.cfg`` -- by :user:`amy-lei` 986 987Misc 988^^^^ 989* #2592: Made option keys in the ``[metadata]`` section of ``setup.cfg`` case-sensitive. Users having 990 uppercase option spellings will get a warning suggesting to make them to lowercase 991 -- by :user:`melissa-kun-li` 992 993 994v54.1.0 995------- 996 997 998Changes 999^^^^^^^ 1000* #1608: Removed the conversion of dashes to underscores in the :code:`extras_require` and :code:`data_files` of :code:`setup.cfg` to support the usage of dashes. Method will warn users when they use a dash-separated key which in the future will only allow an underscore. Note: the method performs the dash to underscore conversion to preserve compatibility, but future versions will no longer support it -- by :user:`melissa-kun-li` 1001 1002 1003v54.0.0 1004------- 1005 1006 1007Breaking Changes 1008^^^^^^^^^^^^^^^^ 1009* #2582: Simplified build-from-source story by providing bootstrapping metadata in a separate egg-info directory. Build requirements no longer include setuptools itself. Sdist once again includes the pyproject.toml. Project can no longer be installed from source on pip 19.x, but install from source is still supported on pip < 19 and pip >= 20 and install from wheel is still supported with pip >= 9. 1010 1011Changes 1012^^^^^^^ 1013* #1932: Handled :code:`AttributeError` by raising :code:`DistutilsSetupError` in :code:`dist.check_specifier()` when specifier is not a string -- by :user:`melissa-kun-li` 1014* #2570: Correctly parse cmdclass in setup.cfg. 1015 1016Documentation changes 1017^^^^^^^^^^^^^^^^^^^^^ 1018* #2553: Added userguide example for markers in extras_require -- by :user:`pwoolvett` 1019 1020 1021v53.1.0 1022------- 1023 1024 1025Changes 1026^^^^^^^ 1027* #1937: Preserved case-sensitivity of keys in setup.cfg so that entry point names are case-sensitive. Changed sensitivity of configparser. NOTE: Any projects relying on case-insensitivity will need to adapt to accept the original case as published. -- by :user:`melissa-kun-li` 1028* #2573: Fixed error in uploading a Sphinx doc with the :code:`upload_docs` command. An html builder will be used. 1029 Note: :code:`upload_docs` is deprecated for PyPi, but is supported for other sites -- by :user:`melissa-kun-li` 1030 1031 1032v53.0.0 1033------- 1034 1035 1036Breaking Changes 1037^^^^^^^^^^^^^^^^ 1038* #1527: Removed bootstrap script. Now Setuptools requires pip or another pep517-compliant builder such as 'build' to build. Now Setuptools can be installed from Github main branch. 1039 1040 1041v52.0.0 1042------- 1043 1044 1045Breaking Changes 1046^^^^^^^^^^^^^^^^ 1047* #2537: Remove fallback support for fetch_build_eggs using easy_install. Now pip is required for setup_requires to succeed. 1048* #2544: Removed 'easy_install' top-level model (runpy entry point) and 'easy_install' console script. 1049* #2545: Removed support for eggsecutables. 1050 1051Changes 1052^^^^^^^ 1053* #2459: Tests now run in parallel via pytest-xdist, completing in about half the time. Special thanks to :user:`webknjaz` for hard work implementing test isolation. To run without parallelization, disable the plugin with ``tox -- -p no:xdist``. 1054 1055 1056v51.3.3 1057------- 1058 1059 1060Misc 1061^^^^ 1062* #2539: Fix AttributeError in Description validation. 1063 1064 1065v51.3.2 1066------- 1067 1068 1069Misc 1070^^^^ 1071* #1390: Validation of Description field now is more lenient, emitting a warning and mangling the value to be valid (replacing newlines with spaces). 1072 1073 1074v51.3.1 1075------- 1076 1077 1078Misc 1079^^^^ 1080* #2536: Reverted tag deduplication handling. 1081 1082 1083v51.3.0 1084------- 1085 1086 1087Changes 1088^^^^^^^ 1089* #1390: Newlines in metadata description/Summary now trigger a ValueError. 1090* #2481: Define ``create_module()`` and ``exec_module()`` methods in ``VendorImporter`` 1091 to get rid of ``ImportWarning`` -- by :user:`hroncok` 1092* #2489: ``pkg_resources`` behavior for zipimport now matches the regular behavior, and finds 1093 ``.egg-info`` (previously would only find ``.dist-info``) -- by :user:`thatch` 1094* #2529: Fixed an issue where version tags may be added multiple times 1095 1096 1097v51.2.0 1098------- 1099 1100 1101Changes 1102^^^^^^^ 1103* #2493: Use importlib.import_module() rather than the deprecated loader.load_module() 1104 in pkg_resources namespace declaration -- by :user:`encukou` 1105 1106Documentation changes 1107^^^^^^^^^^^^^^^^^^^^^ 1108* #2525: Fix typo in the document page about entry point. -- by :user:`jtr109` 1109 1110Misc 1111^^^^ 1112* #2534: Avoid hitting network during test_easy_install. 1113 1114 1115v51.1.2 1116------- 1117 1118 1119Misc 1120^^^^ 1121* #2505: Disable inclusion of package data as it causes 'tests' to be included as data. 1122 1123 1124v51.1.1 1125------- 1126 1127 1128Misc 1129^^^^ 1130* #2534: Avoid hitting network during test_virtualenv.test_test_command. 1131 1132 1133v51.1.0 1134------- 1135 1136 1137Changes 1138^^^^^^^ 1139* #2486: Project adopts jaraco/skeleton for shared package maintenance. 1140 1141Misc 1142^^^^ 1143* #2477: Restore inclusion of rst files in sdist. 1144* #2484: Setuptools has replaced the master branch with the main branch. 1145* #2485: Fixed failing test when pip 20.3+ is present. 1146 -- by :user:`yan12125` 1147* #2487: Fix tests with pytest 6.2 1148 -- by :user:`yan12125` 1149 1150 1151v51.0.0 1152------- 1153 1154 1155Breaking Changes 1156^^^^^^^^^^^^^^^^ 1157* #2435: Require Python 3.6 or later. 1158 1159Documentation changes 1160^^^^^^^^^^^^^^^^^^^^^ 1161* #2430: Fixed inconsistent RST title nesting levels caused by #2399 1162 -- by :user:`webknjaz` 1163* #2430: Fixed a typo in Sphinx docs that made docs dev section disappear 1164 as a result of PR #2426 -- by :user:`webknjaz` 1165 1166Misc 1167^^^^ 1168* #2471: Removed the tests that guarantee that the vendored dependencies can be built by distutils. 1169 1170 1171v50.3.2 1172------- 1173 1174 1175 1176Documentation changes 1177^^^^^^^^^^^^^^^^^^^^^ 1178* #2394: Extended towncrier news template to include change note categories. 1179 This allows to see what types of changes a given version introduces 1180 -- by :user:`webknjaz` 1181* #2427: Started enforcing strict syntax and reference validation 1182 in the Sphinx docs -- by :user:`webknjaz` 1183* #2428: Removed redundant Sphinx ``Makefile`` support -- by :user:`webknjaz` 1184 1185Misc 1186^^^^ 1187* #2401: Enabled test results reporting in AppVeyor CI 1188 -- by :user:`webknjaz` 1189* #2420: Replace Python 3.9.0 beta with 3.9.0 final on GitHub Actions. 1190* #2421: Python 3.9 Trove classifier got added to the dist metadata 1191 -- by :user:`webknjaz` 1192 1193 1194v50.3.1 1195------- 1196 1197 1198 1199Documentation changes 1200^^^^^^^^^^^^^^^^^^^^^ 1201* #2093: Finalized doc revamp. 1202* #2097: doc: simplify index and group deprecated files 1203* #2102: doc overhaul step 2: break main doc into multiple sections 1204* #2111: doc overhaul step 3: update userguide 1205* #2395: Added a ``:user:`` role to Sphinx config -- by :user:`webknjaz` 1206* #2395: Added an illustrative explanation about the change notes to fragments dir -- by :user:`webknjaz` 1207 1208Misc 1209^^^^ 1210* #2379: Travis CI test suite now tests against PPC64. 1211* #2413: Suppress EOF errors (and other exceptions) when importing lib2to3. 1212 1213 1214v50.3.0 1215------- 1216 1217 1218 1219Changes 1220^^^^^^^ 1221* #2368: In distutils, restore support for monkeypatched CCompiler.spawn per pypa/distutils#15. 1222 1223 1224v50.2.0 1225------- 1226 1227 1228 1229Changes 1230^^^^^^^ 1231* #2355: When pip is imported as part of a build, leave distutils patched. 1232* #2380: There are some setuptools specific changes in the 1233 ``setuptools.command.bdist_rpm`` module that are no longer needed, because 1234 they are part of the ``bdist_rpm`` module in distutils in Python 1235 3.5.0. Therefore, code was removed from ``setuptools.command.bdist_rpm``. 1236 1237 1238v50.1.0 1239------- 1240 1241 1242 1243Changes 1244^^^^^^^ 1245* #2350: Setuptools reverts using the included distutils by default. Platform maintainers and system integrators and others are *strongly* encouraged to set ``SETUPTOOLS_USE_DISTUTILS=local`` to help identify and work through the reported issues with distutils adoption, mainly to file issues and pull requests with pypa/distutils such that distutils performs as needed across every supported environment. 1246 1247 1248v50.0.3 1249------- 1250 1251 1252 1253Misc 1254^^^^ 1255* #2363: Restore link_libpython support on Python 3.7 and earlier (see pypa/distutils#9). 1256 1257 1258v50.0.2 1259------- 1260 1261 1262 1263Misc 1264^^^^ 1265* #2352: In distutils hack, use absolute import rather than relative to avoid bpo-30876. 1266 1267 1268v50.0.1 1269------- 1270 1271 1272 1273Misc 1274^^^^ 1275* #2357: Restored Python 3.5 support in distutils.util for missing ``subprocess._optim_args_from_interpreter_flags``. 1276* #2358: Restored AIX support on Python 3.8 and earlier. 1277* #2361: Add Python 3.10 support to _distutils_hack. Get the 'Loader' abstract class 1278 from importlib.abc rather than importlib.util.abc (alias removed in Python 1279 3.10). 1280 1281 1282v50.0.0 1283------- 1284 1285 1286 1287Breaking Changes 1288^^^^^^^^^^^^^^^^ 1289* #2232: Once again, Setuptools overrides the stdlib distutils on import. For environments or invocations where this behavior is undesirable, users are provided with a temporary escape hatch. If the environment variable ``SETUPTOOLS_USE_DISTUTILS`` is set to ``stdlib``, Setuptools will fall back to the legacy behavior. Use of this escape hatch is discouraged, but it is provided to ease the transition while proper fixes for edge cases can be addressed. 1290 1291Changes 1292^^^^^^^ 1293* #2334: In MSVC module, refine text in error message. 1294 1295 1296v49.6.0 1297------- 1298 1299 1300 1301Changes 1302^^^^^^^ 1303* #2129: In pkg_resources, no longer detect any pathname ending in .egg as a Python egg. Now the path must be an unpacked egg or a zip file. 1304 1305 1306v49.5.0 1307------- 1308 1309 1310 1311Changes 1312^^^^^^^ 1313* #2306: When running as a PEP 517 backend, setuptools does not try to install 1314 ``setup_requires`` itself. They are reported as build requirements for the 1315 frontend to install. 1316 1317 1318v49.4.0 1319------- 1320 1321 1322 1323Changes 1324^^^^^^^ 1325* #2310: Updated vendored packaging version to 20.4. 1326 1327 1328v49.3.2 1329------- 1330 1331 1332 1333Documentation changes 1334^^^^^^^^^^^^^^^^^^^^^ 1335* #2300: Improve the ``safe_version`` function documentation 1336 1337Misc 1338^^^^ 1339* #2297: Once again, in stubs prefer exec_module to the deprecated load_module. 1340 1341 1342v49.3.1 1343------- 1344 1345 1346 1347Changes 1348^^^^^^^ 1349* #2316: Removed warning when ``distutils`` is imported before ``setuptools`` when ``distutils`` replacement is not enabled. 1350 1351 1352v49.3.0 1353------- 1354 1355 1356 1357Changes 1358^^^^^^^ 1359* #2259: Setuptools now provides a .pth file (except for editable installs of setuptools) to the target environment to ensure that when enabled, the setuptools-provided distutils is preferred before setuptools has been imported (and even if setuptools is never imported). Honors the SETUPTOOLS_USE_DISTUTILS environment variable. 1360 1361 1362v49.2.1 1363------- 1364 1365 1366 1367Misc 1368^^^^ 1369* #2257: Fixed two flaws in distutils._msvccompiler.MSVCCompiler.spawn. 1370 1371 1372v49.2.0 1373------- 1374 1375 1376 1377Changes 1378^^^^^^^ 1379* #2230: Now warn the user when setuptools is imported after distutils modules have been loaded (exempting PyPy for 3.6), directing the users of packages to import setuptools first. 1380 1381 1382v49.1.3 1383------- 1384 1385 1386 1387Misc 1388^^^^ 1389* #2212: (Distutils) Allow spawn to accept environment. Avoid monkey-patching global state. 1390* #2249: Fix extension loading technique in stubs. 1391 1392 1393v49.1.2 1394------- 1395 1396 1397 1398Changes 1399^^^^^^^ 1400* #2232: In preparation for re-enabling a local copy of distutils, Setuptools now honors an environment variable, SETUPTOOLS_USE_DISTUTILS. If set to 'stdlib' (current default), distutils will be used from the standard library. If set to 'local' (default in a imminent backward-incompatible release), the local copy of distutils will be used. 1401 1402 1403v49.1.1 1404------- 1405 1406 1407 1408Misc 1409^^^^ 1410* #2094: Removed pkg_resources.py2_warn module, which is no longer reachable. 1411 1412 1413v49.0.1 1414------- 1415 1416 1417 1418Misc 1419^^^^ 1420* #2228: Applied fix for pypa/distutils#3, restoring expectation that spawn will raise a DistutilsExecError when attempting to execute a missing file. 1421 1422 1423v49.1.0 1424------- 1425 1426 1427 1428Changes 1429^^^^^^^ 1430* #2228: Disabled distutils adoption for now while emergent issues are addressed. 1431 1432 1433v49.0.0 1434------- 1435 1436 1437 1438Breaking Changes 1439^^^^^^^^^^^^^^^^ 1440* #2165: Setuptools no longer installs a site.py file during easy_install or develop installs. As a result, .eggs on PYTHONPATH will no longer take precedence over other packages on sys.path. If this issue affects your production environment, please reach out to the maintainers at #2165. 1441 1442Changes 1443^^^^^^^ 1444* #2137: Removed (private) pkg_resources.RequirementParseError, now replaced by packaging.requirements.InvalidRequirement. Kept the name for compatibility, but users should catch InvalidRequirement instead. 1445* #2180: Update vendored packaging in pkg_resources to 19.2. 1446 1447Misc 1448^^^^ 1449* #2199: Fix exception causes all over the codebase by using ``raise new_exception from old_exception`` 1450 1451 1452v48.0.0 1453------- 1454 1455 1456 1457Breaking Changes 1458^^^^^^^^^^^^^^^^ 1459* #2143: Setuptools adopts distutils from the Python 3.9 standard library and no longer depends on distutils in the standard library. When importing ``setuptools`` or ``setuptools.distutils_patch``, Setuptools will expose its bundled version as a top-level ``distutils`` package (and unload any previously-imported top-level distutils package), retaining the expectation that ``distutils``' objects are actually Setuptools objects. 1460 To avoid getting any legacy behavior from the standard library, projects are advised to always "import setuptools" prior to importing anything from distutils. This behavior happens by default when using ``pip install`` or ``pep517.build``. Workflows that rely on ``setup.py (anything)`` will need to first ensure setuptools is imported. One way to achieve this behavior without modifying code is to invoke Python thus: ``python -c "import setuptools; exec(open('setup.py').read())" (anything)``. 1461 1462 1463v47.3.2 1464------- 1465 1466 1467 1468Misc 1469^^^^ 1470* #2071: Replaced references to the deprecated imp package with references to importlib 1471 1472 1473v47.3.1 1474------- 1475 1476 1477 1478Misc 1479^^^^ 1480* #1973: Removed ``pkg_resources.py31compat.makedirs`` in favor of the stdlib. Use ``os.makedirs()`` instead. 1481* #2198: Restore ``__requires__`` directive in easy-install wrapper scripts. 1482 1483 1484v47.3.0 1485------- 1486 1487 1488 1489Changes 1490^^^^^^^ 1491* #2197: Console script wrapper for editable installs now has a unified template and honors importlib_metadata if present for faster script execution on older Pythons. 1492 1493Misc 1494^^^^ 1495* #2195: Fix broken entry points generated by easy-install (pip editable installs). 1496 1497 1498v47.2.0 1499------- 1500 1501 1502 1503Changes 1504^^^^^^^ 1505* #2194: Editable-installed entry points now load significantly faster on Python versions 3.8+. 1506* #1471: Incidentally fixed by #2194 on Python 3.8 or when importlib_metadata is present. 1507 1508 1509v47.1.1 1510------- 1511 1512 1513 1514Documentation changes 1515^^^^^^^^^^^^^^^^^^^^^ 1516* #2156: Update mailing list pointer in developer docs 1517 1518Incorporate changes from v44.1.1: 1519^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1520 1521* #2158: Avoid loading working set during ``Distribution.finalize_options`` prior to invoking ``_install_setup_requires``, broken since v42.0.0. 1522 1523 1524v44.1.1 1525------- 1526 1527 1528 1529Misc 1530^^^^ 1531* #2158: Avoid loading working set during ``Distribution.finalize_options`` prior to invoking ``_install_setup_requires``, broken since v42.0.0. 1532 1533 1534v47.1.0 1535------- 1536 1537 1538 1539Changes 1540^^^^^^^ 1541* #2070: In wheel-to-egg conversion, use simple pkg_resources-style namespace declaration for packages that declare namespace_packages. 1542 1543 1544v47.0.0 1545------- 1546 1547 1548 1549Breaking Changes 1550^^^^^^^^^^^^^^^^ 1551* #2094: Setuptools now actively crashes under Python 2. Python 3.5 or later is required. Users of Python 2 should use ``setuptools<45``. 1552 1553Changes 1554^^^^^^^ 1555* #1700: Document all supported keywords by migrating the ones from distutils. 1556 1557 1558v46.4.0 1559------- 1560 1561 1562 1563Changes 1564^^^^^^^ 1565* #1753: ``attr:`` now extracts variables through rudimentary examination of the AST, 1566 thereby supporting modules with third-party imports. If examining the AST 1567 fails to find the variable, ``attr:`` falls back to the old behavior of 1568 importing the module. Works on Python 3 only. 1569 1570 1571v46.3.1 1572------- 1573 1574No significant changes. 1575 1576 1577v46.3.0 1578------- 1579 1580 1581 1582Changes 1583^^^^^^^ 1584* #2089: Package index functionality no longer attempts to remove an md5 fragment from the index URL. This functionality, added for distribute #163 is no longer relevant. 1585 1586Misc 1587^^^^ 1588* #2041: Preserve file modes during pkg files copying, but clear read only flag for target afterwards. 1589* #2105: Filter ``2to3`` deprecation warnings from ``TestDevelop.test_2to3_user_mode``. 1590 1591 1592v46.2.0 1593------- 1594 1595 1596 1597Changes 1598^^^^^^^ 1599* #2040: Deprecated the ``bdist_wininst`` command. Binary packages should be built as wheels instead. 1600* #2062: Change 'Mac OS X' to 'macOS' in code. 1601* #2075: Stop recognizing files ending with ``.dist-info`` as distribution metadata. 1602* #2086: Deprecate 'use_2to3' functionality. Packagers are encouraged to use single-source solutions or build tool chains to manage conversions outside of setuptools. 1603 1604Documentation changes 1605^^^^^^^^^^^^^^^^^^^^^ 1606* #1698: Added documentation for ``build_meta`` (a bare minimum, not completed). 1607 1608Misc 1609^^^^ 1610* #2082: Filter ``lib2to3`` ``PendingDeprecationWarning`` and ``DeprecationWarning`` in tests, 1611 because ``lib2to3`` is `deprecated in Python 3.9 <https://bugs.python.org/issue40360>`_. 1612 1613 1614v46.1.3 1615------- 1616 1617No significant changes. 1618 1619 1620v46.1.2 1621------- 1622 1623 1624 1625Misc 1626^^^^ 1627* #1458: Added template for reporting Python 2 incompatibilities. 1628 1629 1630v46.1.1 1631------- 1632 1633No significant changes. 1634 1635 1636v46.1.0 1637------- 1638 1639 1640 1641Changes 1642^^^^^^^ 1643* #308: Allow version number normalization to be bypassed by wrapping in a 'setuptools.sic()' call. 1644* #1424: Prevent keeping files mode for package_data build. It may break a build if user's package data has read only flag. 1645* #1431: In ``easy_install.check_site_dir``, ensure the installation directory exists. 1646* #1563: In ``pkg_resources`` prefer ``find_spec`` (PEP 451) to ``find_module``. 1647 1648Incorporate changes from v44.1.0: 1649^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1650 1651* #1704: Set sys.argv[0] in setup script run by build_meta.__legacy__ 1652* #1959: Fix for Python 4: replace unsafe six.PY3 with six.PY2 1653* #1994: Fixed a bug in the "setuptools.finalize_distribution_options" hook that lead to ignoring the order attribute of entry points managed by this hook. 1654 1655 1656v44.1.0 1657------- 1658 1659 1660 1661Changes 1662^^^^^^^ 1663* #1704: Set sys.argv[0] in setup script run by build_meta.__legacy__ 1664* #1959: Fix for Python 4: replace unsafe six.PY3 with six.PY2 1665* #1994: Fixed a bug in the "setuptools.finalize_distribution_options" hook that lead to ignoring the order attribute of entry points managed by this hook. 1666 1667 1668v46.0.0 1669------- 1670 1671 1672 1673Breaking Changes 1674^^^^^^^^^^^^^^^^ 1675* #65: Once again as in 3.0, removed the Features feature. 1676 1677Changes 1678^^^^^^^ 1679* #1890: Fix vendored dependencies so importing ``setuptools.extern.some_module`` gives the same object as ``setuptools._vendor.some_module``. This makes Metadata picklable again. 1680* #1899: Test suite now fails on warnings. 1681 1682Documentation changes 1683^^^^^^^^^^^^^^^^^^^^^ 1684* #2011: Fix broken link to distutils docs on package_data 1685 1686Misc 1687^^^^ 1688* #1991: Include pkg_resources test data in sdist, so tests can be executed from it. 1689 1690 1691v45.3.0 1692------- 1693 1694 1695 1696Changes 1697^^^^^^^ 1698* #1557: Deprecated eggsecutable scripts and updated docs. 1699* #1904: Update msvc.py to use CPython 3.8.0 mechanism to find msvc 14+ 1700 1701 1702v45.2.0 1703------- 1704 1705 1706 1707Changes 1708^^^^^^^ 1709* #1905: Fixed defect in _imp, introduced in 41.6.0 when the 'tests' directory is not present. 1710* #1941: Improve editable installs with PEP 518 build isolation: 1711 1712 * The ``--user`` option is now always available. A warning is issued if the user site directory is not available. 1713 * The error shown when the install directory is not in ``PYTHONPATH`` has been turned into a warning. 1714* #1981: Setuptools now declares its ``tests`` and ``docs`` dependencies in metadata (extras). 1715* #1985: Add support for installing scripts in environments where bdist_wininst is missing (i.e. Python 3.9). 1716 1717Misc 1718^^^^ 1719* #1968: Add flake8-2020 to check for misuse of sys.version or sys.version_info. 1720 1721 1722v45.1.0 1723------- 1724 1725 1726 1727Changes 1728^^^^^^^ 1729* #1458: Add minimum sunset date and preamble to Python 2 warning. 1730* #1704: Set sys.argv[0] in setup script run by build_meta.__legacy__ 1731* #1974: Add Python 3 Only Trove Classifier and remove universal wheel declaration for more complete transition from Python 2. 1732 1733 1734v45.0.0 1735------- 1736 1737 1738 1739Breaking Changes 1740^^^^^^^^^^^^^^^^ 1741* #1458: Drop support for Python 2. Setuptools now requires Python 3.5 or later. Install setuptools using pip >=9 or pin to Setuptools <45 to maintain 2.7 support. 1742 1743Changes 1744^^^^^^^ 1745* #1959: Fix for Python 4: replace unsafe six.PY3 with six.PY2 1746 1747 1748v44.0.0 1749------- 1750 1751 1752 1753Breaking Changes 1754^^^^^^^^^^^^^^^^ 1755* #1908: Drop support for Python 3.4. 1756 1757 1758v43.0.0 1759------- 1760 1761 1762 1763Breaking Changes 1764^^^^^^^^^^^^^^^^ 1765* #1634: Include ``pyproject.toml`` in source distribution by default. Projects relying on the previous behavior where ``pyproject.toml`` was excluded by default should stop relying on that behavior or add ``exclude pyproject.toml`` to their MANIFEST.in file. 1766 1767Changes 1768^^^^^^^ 1769* #1927: Setuptools once again declares 'setuptools' in the ``build-system.requires`` and adds PEP 517 build support by declaring itself as the ``build-backend``. It additionally specifies ``build-system.backend-path`` to rely on itself for those builders that support it. 1770 1771 1772v42.0.2 1773------- 1774 1775Changes 1776^^^^^^^ 1777 1778* #1921: Fix support for easy_install's ``find-links`` option in ``setup.cfg``. 1779* #1922: Build dependencies (setup_requires and tests_require) now install transitive dependencies indicated by extras. 1780 1781 1782v42.0.1 1783------- 1784 1785 1786 1787Changes 1788^^^^^^^ 1789* #1918: Fix regression in handling wheels compatibility tags. 1790 1791 1792v42.0.0 1793------- 1794 1795 1796 1797Breaking Changes 1798^^^^^^^^^^^^^^^^ 1799* #1830, #1909: Mark the easy_install script and setuptools command as deprecated, and use `pip <https://pip.pypa.io/en/stable/>`_ when available to fetch/build wheels for missing ``setup_requires``/``tests_require`` requirements, with the following differences in behavior: 1800 * support for ``python_requires`` 1801 * better support for wheels (proper handling of priority with respect to PEP 425 tags) 1802 * PEP 517/518 support 1803 * eggs are not supported 1804 * no support for the ``allow_hosts`` easy_install option (``index_url``/``find_links`` are still honored) 1805 * pip environment variables are honored (and take precedence over easy_install options) 1806* #1898: Removed the "upload" and "register" commands in favor of :pypi:`twine`. 1807 1808Changes 1809^^^^^^^ 1810* #1767: Add support for the ``license_files`` option in ``setup.cfg`` to automatically 1811 include multiple license files in a source distribution. 1812* #1829: Update handling of wheels compatibility tags: 1813 * add support for manylinux2010 1814 * fix use of removed 'm' ABI flag in Python 3.8 on Windows 1815* #1861: Fix empty namespace package installation from wheel. 1816* #1877: Setuptools now exposes a new entry point hook "setuptools.finalize_distribution_options", enabling plugins like :pypi:`setuptools_scm` to configure options on the distribution at finalization time. 1817 1818 1819v41.6.0 1820------- 1821 1822 1823 1824Changes 1825^^^^^^^ 1826* #479: Replace usage of deprecated ``imp`` module with local re-implementation in ``setuptools._imp``. 1827 1828 1829v41.5.1 1830------- 1831 1832 1833 1834Changes 1835^^^^^^^ 1836* #1891: Fix code for detecting Visual Studio's version on Windows under Python 2. 1837 1838 1839v41.5.0 1840------- 1841 1842 1843 1844Changes 1845^^^^^^^ 1846* #1811: Improve Visual C++ 14.X support, mainly for Visual Studio 2017 and 2019. 1847* #1814: Fix ``pkg_resources.Requirement`` hash/equality implementation: take PEP 508 direct URL into account. 1848* #1824: Fix tests when running under ``python3.10``. 1849* #1878: Formally deprecated the ``test`` command, with the recommendation that users migrate to ``tox``. 1850 1851Documentation changes 1852^^^^^^^^^^^^^^^^^^^^^ 1853* #1860: Update documentation to mention the egg format is not supported by pip and dependency links support was dropped starting with pip 19.0. 1854* #1862: Drop ez_setup documentation: deprecated for some time (last updated in 2016), and still relying on easy_install (deprecated too). 1855* #1868: Drop most documentation references to (deprecated) EasyInstall. 1856* #1884: Added a trove classifier to document support for Python 3.8. 1857 1858Misc 1859^^^^ 1860* #1886: Added Python 3.8 release to the Travis test matrix. 1861 1862 1863v41.4.0 1864------- 1865 1866 1867 1868Changes 1869^^^^^^^ 1870* #1847: In declarative config, now traps errors when invalid ``python_requires`` values are supplied. 1871 1872 1873v41.3.0 1874------- 1875 1876 1877 1878Changes 1879^^^^^^^ 1880* #1690: When storing extras, rely on OrderedSet to retain order of extras as indicated by the packager, which will also be deterministic on Python 2.7 (with PYTHONHASHSEED unset) and Python 3.6+. 1881 1882Misc 1883^^^^ 1884* #1858: Fixed failing integration test triggered by 'long_description_content_type' in packaging. 1885 1886 1887v41.2.0 1888------- 1889 1890 1891 1892Changes 1893^^^^^^^ 1894* #479: Remove some usage of the deprecated ``imp`` module. 1895 1896Misc 1897^^^^ 1898* #1565: Changed html_sidebars from string to list of string as per 1899 https://www.sphinx-doc.org/en/master/changes.html#id58 1900 1901 1902v41.1.0 1903------- 1904 1905 1906 1907Misc 1908^^^^ 1909* #1697: Moved most of the constants from setup.py to setup.cfg 1910* #1749: Fixed issue with the PEP 517 backend where building a source distribution would fail if any tarball existed in the destination directory. 1911* #1750: Fixed an issue with PEP 517 backend where wheel builds would fail if the destination directory did not already exist. 1912* #1756: Force metadata-version >= 1.2. when project urls are present. 1913* #1769: Improve ``package_data`` check: ensure the dictionary values are lists/tuples of strings. 1914* #1788: Changed compatibility fallback logic for ``html.unescape`` to avoid accessing ``HTMLParser.unescape`` when not necessary. ``HTMLParser.unescape`` is deprecated and will be removed in Python 3.9. 1915* #1790: Added the file path to the error message when a ``UnicodeDecodeError`` occurs while reading a metadata file. 1916 1917Documentation changes 1918^^^^^^^^^^^^^^^^^^^^^ 1919* #1776: Use license classifiers rather than the license field. 1920 1921 1922v41.0.1 1923------- 1924 1925 1926 1927Changes 1928^^^^^^^ 1929* #1671: Fixed issue with the PEP 517 backend that prevented building a wheel when the ``dist/`` directory contained existing ``.whl`` files. 1930* #1709: In test.paths_on_python_path, avoid adding unnecessary duplicates to the PYTHONPATH. 1931* #1741: In package_index, now honor "current directory" during a checkout of git and hg repositories under Windows 1932 1933 1934v41.0.0 1935------- 1936 1937 1938 1939Breaking Changes 1940^^^^^^^^^^^^^^^^ 1941* #1735: When parsing setup.cfg files, setuptools now requires the files to be encoded as UTF-8. Any other encoding will lead to a UnicodeDecodeError. This change removes support for specifying an encoding using a 'coding: ' directive in the header of the file, a feature that was introduces in 40.7. Given the recent release of the aforementioned feature, it is assumed that few if any projects are utilizing the feature to specify an encoding other than UTF-8. 1942 1943 1944v40.9.0 1945------- 1946 1947 1948 1949Changes 1950^^^^^^^ 1951* #1675: Added support for ``setup.cfg``-only projects when using the ``setuptools.build_meta`` backend. Projects that have enabled PEP 517 no longer need to have a ``setup.py`` and can use the purely declarative ``setup.cfg`` configuration file instead. 1952* #1720: Added support for ``pkg_resources.parse_requirements``-style requirements in ``setup_requires`` when ``setup.py`` is invoked from the ``setuptools.build_meta`` build backend. 1953* #1664: Added the path to the ``PKG-INFO`` or ``METADATA`` file in the exception 1954 text when the ``Version:`` header can't be found. 1955 1956Documentation changes 1957^^^^^^^^^^^^^^^^^^^^^ 1958* #1705: Removed some placeholder documentation sections referring to deprecated features. 1959 1960 1961v40.8.0 1962------- 1963 1964 1965 1966Changes 1967^^^^^^^ 1968* #1652: Added the ``build_meta:__legacy__`` backend, a "compatibility mode" PEP 517 backend that can be used as the default when ``build-backend`` is left unspecified in ``pyproject.toml``. 1969* #1635: Resource paths are passed to ``pkg_resources.resource_string`` and similar no longer accept paths that traverse parents, that begin with a leading ``/``. Violations of this expectation raise DeprecationWarnings and will become errors. Additionally, any paths that are absolute on Windows are strictly disallowed and will raise ValueErrors. 1970* #1536: ``setuptools`` will now automatically include licenses if ``setup.cfg`` contains a ``license_file`` attribute, unless this file is manually excluded inside ``MANIFEST.in``. 1971 1972 1973v40.7.3 1974------- 1975 1976 1977 1978Changes 1979^^^^^^^ 1980* #1670: In package_index, revert to using a copy of splituser from Python 3.8. Attempts to use ``urllib.parse.urlparse`` led to problems as reported in #1663 and #1668. This change serves as an alternative to #1499 and fixes #1668. 1981 1982 1983v40.7.2 1984------- 1985 1986 1987 1988Changes 1989^^^^^^^ 1990* #1666: Restore port in URL handling in package_index. 1991 1992 1993v40.7.1 1994------- 1995 1996 1997 1998Changes 1999^^^^^^^ 2000* #1660: On Python 2, when reading config files, downcast options from text to bytes to satisfy distutils expectations. 2001 2002 2003v40.7.0 2004------- 2005 2006 2007 2008Breaking Changes 2009^^^^^^^^^^^^^^^^ 2010* #1551: File inputs for the ``license`` field in ``setup.cfg`` files now explicitly raise an error. 2011 2012Changes 2013^^^^^^^ 2014* #1180: Add support for non-ASCII in setup.cfg (#1062). Add support for native strings on some parameters (#1136). 2015* #1499: ``setuptools.package_index`` no longer relies on the deprecated ``urllib.parse.splituser`` per Python #27485. 2016* #1544: Added tests for PackageIndex.download (for git URLs). 2017* #1625: In PEP 517 build_meta builder, ensure that sdists are built as gztar per the spec. 2018 2019 2020v40.6.3 2021------- 2022 2023 2024 2025Changes 2026^^^^^^^ 2027* #1594: PEP 517 backend no longer declares setuptools as a dependency as it can be assumed. 2028 2029 2030v40.6.2 2031------- 2032 2033 2034 2035Changes 2036^^^^^^^ 2037* #1592: Fix invalid dependency on external six module (instead of vendored version). 2038 2039 2040v40.6.1 2041------- 2042 2043 2044 2045Changes 2046^^^^^^^ 2047* #1590: Fixed regression where packages without ``author`` or ``author_email`` fields generated malformed package metadata. 2048 2049 2050v40.6.0 2051------- 2052 2053 2054 2055Deprecations 2056^^^^^^^^^^^^ 2057* #1541: Officially deprecated the ``requires`` parameter in ``setup()``. 2058 2059Changes 2060^^^^^^^ 2061* #1519: In ``pkg_resources.normalize_path``, additional path normalization is now performed to ensure path values to a directory is always the same, preventing false positives when checking scripts have a consistent prefix to set up on Windows. 2062* #1545: Changed the warning class of all deprecation warnings; deprecation warning classes are no longer derived from ``DeprecationWarning`` and are thus visible by default. 2063* #1554: ``build_meta.build_sdist`` now includes ``setup.py`` in source distributions by default. 2064* #1576: Started monkey-patching ``get_metadata_version`` and ``read_pkg_file`` onto ``distutils.DistributionMetadata`` to retain the correct version on the ``PKG-INFO`` file in the (deprecated) ``upload`` command. 2065 2066Documentation changes 2067^^^^^^^^^^^^^^^^^^^^^ 2068* #1395: Changed Pyrex references to Cython in the documentation. 2069* #1456: Documented that the ``rpmbuild`` packages is required for the ``bdist_rpm`` command. 2070* #1537: Documented how to use ``setup.cfg`` for ``src/ layouts`` 2071* #1539: Added minimum version column in ``setup.cfg`` metadata table. 2072* #1552: Fixed a minor typo in the python 2/3 compatibility documentation. 2073* #1553: Updated installation instructions to point to ``pip install`` instead of ``ez_setup.py``. 2074* #1560: Updated ``setuptools`` distribution documentation to remove some outdated information. 2075* #1564: Documented ``setup.cfg`` minimum version for version and project_urls. 2076 2077Misc 2078^^^^ 2079* #1533: Restricted the ``recursive-include setuptools/_vendor`` to contain only .py and .txt files. 2080* #1572: Added the ``concurrent.futures`` backport ``futures`` to the Python 2.7 test suite requirements. 2081 2082 2083v40.5.0 2084------- 2085 2086 2087 2088Changes 2089^^^^^^^ 2090* #1335: In ``pkg_resources.normalize_path``, fix issue on Cygwin when cwd contains symlinks. 2091* #1502: Deprecated support for downloads from Subversion in package_index/easy_install. 2092* #1517: Dropped use of six.u in favor of ``u""`` literals. 2093* #1520: Added support for ``data_files`` in ``setup.cfg``. 2094 2095Documentation changes 2096^^^^^^^^^^^^^^^^^^^^^ 2097* #1525: Fixed rendering of the deprecation warning in easy_install doc. 2098 2099 2100v40.4.3 2101------- 2102 2103 2104 2105Changes 2106^^^^^^^ 2107* #1480: Bump vendored pyparsing in pkg_resources to 2.2.1. 2108 2109 2110v40.4.2 2111------- 2112 2113 2114 2115Misc 2116^^^^ 2117* #1497: Updated gitignore in repo. 2118 2119 2120v40.4.1 2121------- 2122 2123 2124 2125Changes 2126^^^^^^^ 2127* #1480: Bump vendored pyparsing to 2.2.1. 2128 2129 2130v40.4.0 2131------- 2132 2133 2134 2135Changes 2136^^^^^^^ 2137* #1481: Join the sdist ``--dist-dir`` and the ``build_meta`` sdist directory argument to point to the same target (meaning the build frontend no longer needs to clean manually the dist dir to avoid multiple sdist presence, and setuptools no longer needs to handle conflicts between the two). 2138 2139 2140v40.3.0 2141------- 2142 2143 2144 2145Changes 2146^^^^^^^ 2147* #1402: Fixed a bug with namespace packages under Python 3.6 when one package in 2148 current directory hides another which is installed. 2149* #1427: Set timestamp of ``.egg-info`` directory whenever ``egg_info`` command is run. 2150* #1474: ``build_meta.get_requires_for_build_sdist`` now does not include the ``wheel`` package anymore. 2151* #1486: Suppress warnings in pkg_resources.handle_ns. 2152 2153Misc 2154^^^^ 2155* #1479: Remove internal use of six.binary_type. 2156 2157 2158v40.2.0 2159------- 2160 2161 2162 2163Changes 2164^^^^^^^ 2165* #1466: Fix handling of Unicode arguments in PEP 517 backend 2166 2167 2168v40.1.1 2169-------- 2170 2171 2172 2173Changes 2174^^^^^^^ 2175* #1465: Fix regression with ``egg_info`` command when tagging is used. 2176 2177 2178v40.1.0 2179------- 2180 2181 2182 2183Changes 2184^^^^^^^ 2185* #1410: Deprecated ``upload`` and ``register`` commands. 2186* #1312: Introduced find_namespace_packages() to find PEP 420 namespace packages. 2187* #1420: Added find_namespace: directive to config parser. 2188* #1418: Solved race in when creating egg cache directories. 2189* #1450: Upgraded vendored PyParsing from 2.1.10 to 2.2.0. 2190* #1451: Upgraded vendored appdirs from 1.4.0 to 1.4.3. 2191* #1388: Fixed "Microsoft Visual C++ Build Tools" link in exception when Visual C++ not found. 2192* #1389: Added support for scripts which have unicode content. 2193* #1416: Moved several Python version checks over to using ``six.PY2`` and ``six.PY3``. 2194 2195Misc 2196^^^^ 2197* #1441: Removed spurious executable permissions from files that don't need them. 2198 2199 2200v40.0.0 2201------- 2202 2203 2204 2205Breaking Changes 2206^^^^^^^^^^^^^^^^ 2207* #1342: Drop support for Python 3.3. 2208 2209Changes 2210^^^^^^^ 2211* #1366: In package_index, fixed handling of encoded entities in URLs. 2212* #1383: In pkg_resources VendorImporter, avoid removing packages imported from the root. 2213 2214Documentation changes 2215^^^^^^^^^^^^^^^^^^^^^ 2216* #1379: Minor doc fixes after actually using the new release process. 2217* #1385: Removed section on non-package data files. 2218* #1403: Fix developer's guide. 2219 2220Misc 2221^^^^ 2222* #1404: Fix PEP 518 configuration: set build requirements in ``pyproject.toml`` to ``["wheel"]``. 2223 2224 2225v39.2.0 2226------- 2227 2228 2229 2230Changes 2231^^^^^^^ 2232* #1359: Support using "file:" to load a PEP 440-compliant package version from 2233 a text file. 2234* #1360: Fixed issue with a mismatch between the name of the package and the 2235 name of the .dist-info file in wheel files 2236* #1364: Add ``__dir__()`` implementation to ``pkg_resources.Distribution()`` that 2237 includes the attributes in the ``_provider`` instance variable. 2238* #1365: Take the package_dir option into account when loading the version from 2239 a module attribute. 2240 2241Documentation changes 2242^^^^^^^^^^^^^^^^^^^^^ 2243* #1353: Added coverage badge to README. 2244* #1356: Made small fixes to the developer guide documentation. 2245* #1357: Fixed warnings in documentation builds and started enforcing that the 2246 docs build without warnings in tox. 2247* #1376: Updated release process docs. 2248 2249Misc 2250^^^^ 2251* #1343: The ``setuptools`` specific ``long_description_content_type``, 2252 ``project_urls`` and ``provides_extras`` fields are now set consistently 2253 after any ``distutils`` ``setup_keywords`` calls, allowing them to override 2254 values. 2255* #1352: Added ``tox`` environment for documentation builds. 2256* #1354: Added ``towncrier`` for changelog management. 2257* #1355: Add PR template. 2258* #1368: Fixed tests which failed without network connectivity. 2259* #1369: Added unit tests for PEP 425 compatibility tags support. 2260* #1372: Stop testing Python 3.3 in Travis CI, now that the latest version of 2261 ``wheel`` no longer installs on it. 2262 2263v39.1.0 2264------- 2265 2266* #1340: Update all PyPI URLs to reflect the switch to the 2267 new Warehouse codebase. 2268* #1337: In ``pkg_resources``, now support loading resources 2269 for modules loaded by the ``SourcelessFileLoader``. 2270* #1332: Silence spurious wheel related warnings on Windows. 2271 2272v39.0.1 2273------- 2274 2275* #1297: Restore Unicode handling for Maintainer fields in 2276 metadata. 2277 2278v39.0.0 2279------- 2280 2281* #1296: Setuptools now vendors its own direct dependencies, no 2282 longer relying on the dependencies as vendored by pkg_resources. 2283 2284* #296: Removed long-deprecated support for iteration on 2285 Version objects as returned by ``pkg_resources.parse_version``. 2286 Removed the ``SetuptoolsVersion`` and 2287 ``SetuptoolsLegacyVersion`` names as well. They should not 2288 have been used, but if they were, replace with 2289 ``Version`` and ``LegacyVersion`` from ``packaging.version``. 2290 2291v38.7.0 2292------- 2293 2294* #1288: Add support for maintainer in PKG-INFO. 2295 2296v38.6.1 2297------- 2298 2299* #1292: Avoid generating ``Provides-Extra`` in metadata when 2300 no extra is present (but environment markers are). 2301 2302v38.6.0 2303------- 2304 2305* #1286: Add support for Metadata 2.1 (PEP 566). 2306 2307v38.5.2 2308------- 2309 2310* #1285: Fixed RuntimeError in pkg_resources.parse_requirements 2311 on Python 3.7 (stemming from PEP 479). 2312 2313v38.5.1 2314------- 2315 2316* #1271: Revert to Cython legacy ``build_ext`` behavior for 2317 compatibility. 2318 2319v38.5.0 2320------- 2321 2322* #1229: Expand imports in ``build_ext`` to refine detection of 2323 Cython availability. 2324 2325* #1270: When Cython is available, ``build_ext`` now uses the 2326 new_build_ext. 2327 2328v38.4.1 2329------- 2330 2331* #1257: In bdist_egg.scan_module, fix ValueError on Python 3.7. 2332 2333v38.4.0 2334------- 2335 2336* #1231: Removed warning when PYTHONDONTWRITEBYTECODE is enabled. 2337 2338v38.3.0 2339------- 2340 2341* #1210: Add support for PEP 345 Project-URL metadata. 2342* #1207: Add support for ``long_description_type`` to setup.cfg 2343 declarative config as intended and documented. 2344 2345v38.2.5 2346------- 2347 2348* #1232: Fix trailing slash handling in ``pkg_resources.ZipProvider``. 2349 2350v38.2.4 2351------- 2352 2353* #1220: Fix ``data_files`` handling when installing from wheel. 2354 2355v38.2.3 2356------- 2357 2358* fix Travis' Python 3.3 job. 2359 2360v38.2.2 2361------- 2362 2363* #1214: fix handling of namespace packages when installing 2364 from a wheel. 2365 2366v38.2.1 2367------- 2368 2369* #1212: fix encoding handling of metadata when installing 2370 from a wheel. 2371 2372v38.2.0 2373------- 2374 2375* #1200: easy_install now support installing from wheels: 2376 they will be installed as standalone unzipped eggs. 2377 2378v38.1.0 2379------- 2380 2381* #1208: Improve error message when failing to locate scripts 2382 in egg-info metadata. 2383 2384v38.0.0 2385------- 2386 2387* #458: In order to support deterministic builds, Setuptools no 2388 longer allows packages to declare ``install_requires`` as 2389 unordered sequences (sets or dicts). 2390 2391v37.0.0 2392------- 2393 2394* #878: Drop support for Python 2.6. Python 2.6 users should 2395 rely on 'setuptools < 37dev'. 2396 2397v36.8.0 2398------- 2399 2400* #1190: In SSL support for package index operations, use SNI 2401 where available. 2402 2403v36.7.3 2404------- 2405 2406* #1175: Bug fixes to ``build_meta`` module. 2407 2408v36.7.2 2409------- 2410 2411* #701: Fixed duplicate test discovery on Python 3. 2412 2413v36.7.1 2414------- 2415 2416* #1193: Avoid test failures in bdist_egg when 2417 PYTHONDONTWRITEBYTECODE is set. 2418 2419v36.7.0 2420------- 2421 2422* #1054: Support ``setup_requires`` in ``setup.cfg`` files. 2423 2424v36.6.1 2425------- 2426 2427* #1132: Removed redundant and costly serialization/parsing step 2428 in ``EntryPoint.__init__``. 2429 2430* #844: ``bdist_egg --exclude-source-files`` now tested and works 2431 on Python 3. 2432 2433v36.6.0 2434------- 2435 2436* #1143: Added ``setuptools.build_meta`` module, an implementation 2437 of PEP-517 for Setuptools-defined packages. 2438 2439* #1143: Added ``dist_info`` command for producing dist_info 2440 metadata. 2441 2442v36.5.0 2443------- 2444 2445* #170: When working with Mercurial checkouts, use Windows-friendly 2446 syntax for suppressing output. 2447 2448* Inspired by #1134, performed substantial refactoring of 2449 ``pkg_resources.find_on_path`` to facilitate an optimization 2450 for paths with many non-version entries. 2451 2452v36.4.0 2453------- 2454 2455* #1075: Add new ``Description-Content-Type`` metadata field. `See here for 2456 documentation on how to use this field. 2457 <https://packaging.python.org/specifications/#description-content-type>`_ 2458 2459* #1068: Sort files and directories when building eggs for 2460 deterministic order. 2461 2462* #196: Remove caching of easy_install command in fetch_build_egg. 2463 Fixes issue where ``pytest-runner-N.N`` would satisfy the installation 2464 of ``pytest``. 2465 2466* #1129: Fix working set dependencies handling when replacing conflicting 2467 distributions (e.g. when using ``setup_requires`` with a conflicting 2468 transitive dependency, fix #1124). 2469 2470* #1133: Improved handling of README files extensions and added 2471 Markdown to the list of searched READMES. 2472 2473* #1135: Improve performance of pkg_resources import by not invoking 2474 ``access`` or ``stat`` and using ``os.listdir`` instead. 2475 2476v36.3.0 2477------- 2478 2479* #1131: Make possible using several files within ``file:`` directive 2480 in metadata.long_description in ``setup.cfg``. 2481 2482v36.2.7 2483------- 2484 2485* fix #1105: Fix handling of requirements with environment 2486 markers when declared in ``setup.cfg`` (same treatment as 2487 for #1081). 2488 2489v36.2.6 2490------- 2491 2492* #462: Don't assume a directory is an egg by the ``.egg`` 2493 extension alone. 2494 2495v36.2.5 2496------- 2497 2498* #1093: Fix test command handler with extras_require. 2499* #1112, #1091, #1115: Now using Trusty containers in 2500 Travis for CI and CD. 2501 2502v36.2.4 2503------- 2504 2505* #1092: ``pkg_resources`` now uses ``inspect.getmro`` to 2506 resolve classes in method resolution order. 2507 2508v36.2.3 2509------- 2510 2511* #1102: Restore behavior for empty extras. 2512 2513v36.2.2 2514------- 2515 2516* #1099: Revert commit a3ec721, restoring intended purpose of 2517 extras as part of a requirement declaration. 2518 2519v36.2.1 2520------- 2521 2522* fix #1086 2523* fix #1087 2524* support extras specifiers in install_requires requirements 2525 2526v36.2.0 2527------- 2528 2529* #1081: Environment markers indicated in ``install_requires`` 2530 are now processed and treated as nameless ``extras_require`` 2531 with markers, allowing their metadata in requires.txt to be 2532 correctly generated. 2533 2534* #1053: Tagged commits are now released using Travis-CI 2535 build stages, meaning releases depend on passing tests on 2536 all supported Python versions (Linux) and not just the latest 2537 Python version. 2538 2539v36.1.1 2540------- 2541 2542* #1083: Correct ``py31compat.makedirs`` to correctly honor 2543 ``exist_ok`` parameter. 2544* #1083: Also use makedirs compatibility throughout setuptools. 2545 2546v36.1.0 2547------- 2548 2549* #1083: Avoid race condition on directory creation in 2550 ``pkg_resources.ensure_directory``. 2551 2552* Removed deprecation of and restored support for 2553 ``upload_docs`` command for sites other than PyPI. 2554 Only warehouse is dropping support, but services like 2555 `devpi <http://doc.devpi.net/latest/>`_ continue to 2556 support docs built by setuptools' plugins. See 2557 `this comment <https://bitbucket.org/hpk42/devpi/issues/388/support-rtd-model-for-building-uploading#comment-34292423>`_ 2558 for more context on the motivation for this change. 2559 2560v36.0.1 2561------- 2562 2563* #1042: Fix import in py27compat module that still 2564 referenced six directly, rather than through the externs 2565 module (vendored packages hook). 2566 2567v36.0.0 2568------- 2569 2570* #980 and others: Once again, Setuptools vendors all 2571 of its dependencies. It seems to be the case that in 2572 the Python ecosystem, all build tools must run without 2573 any dependencies (build, runtime, or otherwise). At 2574 such a point that a mechanism exists that allows 2575 build tools to have dependencies, Setuptools will adopt 2576 it. 2577 2578v35.0.2 2579------- 2580 2581* #1015: Fix test failures on Python 3.7. 2582 2583* #1024: Add workaround for Jython #2581 in monkey module. 2584 2585v35.0.1 2586------- 2587 2588* #992: Revert change introduced in v34.4.1, now 2589 considered invalid. 2590 2591* #1016: Revert change introduced in v35.0.0 per #1014, 2592 referencing #436. The approach had unintended 2593 consequences, causing sdist installs to be missing 2594 files. 2595 2596v35.0.0 2597------- 2598 2599* #436: In egg_info.manifest_maker, no longer read 2600 the file list from the manifest file, and instead 2601 re-build it on each build. In this way, files removed 2602 from the specification will not linger in the manifest. 2603 As a result, any files manually added to the manifest 2604 will be removed on subsequent egg_info invocations. 2605 No projects should be manually adding files to the 2606 manifest and should instead use MANIFEST.in or SCM 2607 file finders to force inclusion of files in the manifest. 2608 2609v34.4.1 2610------- 2611 2612* #1008: In MSVC support, use always the last version available for Windows SDK and UCRT SDK. 2613 2614* #1008: In MSVC support, fix "vcruntime140.dll" returned path with Visual Studio 2017. 2615 2616* #992: In msvc.msvc9_query_vcvarsall, ensure the 2617 returned dicts have str values and not Unicode for 2618 compatibility with os.environ. 2619 2620v34.4.0 2621------- 2622 2623* #995: In MSVC support, add support for "Microsoft Visual Studio 2017" and "Microsoft Visual Studio Build Tools 2017". 2624 2625* #999 via #1007: Extend support for declarative package 2626 config in a setup.cfg file to include the options 2627 ``python_requires`` and ``py_modules``. 2628 2629v34.3.3 2630------- 2631 2632* #967 (and #997): Explicitly import submodules of 2633 packaging to account for environments where the imports 2634 of those submodules is not implied by other behavior. 2635 2636v34.3.2 2637------- 2638 2639* #993: Fix documentation upload by correcting 2640 rendering of content-type in _build_multipart 2641 on Python 3. 2642 2643v34.3.1 2644------- 2645 2646* #988: Trap ``os.unlink`` same as ``os.remove`` in 2647 ``auto_chmod`` error handler. 2648 2649* #983: Fixes to invalid escape sequence deprecations on 2650 Python 3.6. 2651 2652v34.3.0 2653------- 2654 2655* #941: In the upload command, if the username is blank, 2656 default to ``getpass.getuser()``. 2657 2658* #971: Correct distutils findall monkeypatch to match 2659 appropriate versions (namely Python 3.4.6). 2660 2661v34.2.0 2662------- 2663 2664* #966: Add support for reading dist-info metadata and 2665 thus locating Distributions from zip files. 2666 2667* #968: Allow '+' and '!' in egg fragments 2668 so that it can take package names that contain 2669 PEP 440 conforming version specifiers. 2670 2671v34.1.1 2672------- 2673 2674* #953: More aggressively employ the compatibility issue 2675 originally added in #706. 2676 2677v34.1.0 2678------- 2679 2680* #930: ``build_info`` now accepts two new parameters 2681 to optimize and customize the building of C libraries. 2682 2683v34.0.3 2684------- 2685 2686* #947: Loosen restriction on the version of six required, 2687 restoring compatibility with environments relying on 2688 six 1.6.0 and later. 2689 2690v34.0.2 2691------- 2692 2693* #882: Ensure extras are honored when building the 2694 working set. 2695* #913: Fix issue in develop if package directory has 2696 a trailing slash. 2697 2698v34.0.1 2699------- 2700 2701* #935: Fix glob syntax in graft. 2702 2703v34.0.0 2704------- 2705 2706* #581: Instead of vendoring the growing list of 2707 dependencies that Setuptools requires to function, 2708 Setuptools now requires these dependencies just like 2709 any other project. Unlike other projects, however, 2710 Setuptools cannot rely on ``setup_requires`` to 2711 demand the dependencies it needs to install because 2712 its own machinery would be necessary to pull those 2713 dependencies if not present (a bootstrapping problem). 2714 As a result, Setuptools no longer supports self upgrade or 2715 installation in the general case. Instead, users are 2716 directed to use pip to install and upgrade using the 2717 ``wheel`` distributions of setuptools. 2718 2719 Users are welcome to contrive other means to install 2720 or upgrade Setuptools using other means, such as 2721 pre-installing the Setuptools dependencies with pip 2722 or a bespoke bootstrap tool, but such usage is not 2723 recommended and is not supported. 2724 2725 As discovered in #940, not all versions of pip will 2726 successfully install Setuptools from its pre-built 2727 wheel. If you encounter issues with "No module named 2728 six" or "No module named packaging", especially 2729 following a line "Running setup.py egg_info for package 2730 setuptools", then your pip is not new enough. 2731 2732 There's an additional issue in pip where setuptools 2733 is upgraded concurrently with other source packages, 2734 described in pip #4253. The proposed workaround is to 2735 always upgrade Setuptools first prior to upgrading 2736 other packages that would upgrade Setuptools. 2737 2738v33.1.1 2739------- 2740 2741* #921: Correct issue where certifi fallback not being 2742 reached on Windows. 2743 2744v33.1.0 2745------- 2746 2747Installation via pip, as indicated in the `Python Packaging 2748User's Guide <https://packaging.python.org/installing/>`_, 2749is the officially-supported mechanism for installing 2750Setuptools, and this recommendation is now explicit in the 2751much more concise README. 2752 2753Other edits and tweaks were made to the documentation. The 2754codebase is unchanged. 2755 2756v33.0.0 2757------- 2758 2759* #619: Removed support for the ``tag_svn_revision`` 2760 distribution option. If Subversion tagging support is 2761 still desired, consider adding the functionality to 2762 setuptools_svn in setuptools_svn #2. 2763 2764v32.3.1 2765------- 2766 2767* #866: Use ``dis.Bytecode`` on Python 3.4 and later in 2768 ``setuptools.depends``. 2769 2770v32.3.0 2771------- 2772 2773* #889: Backport proposed fix for disabling interpolation in 2774 distutils.Distribution.parse_config_files. 2775 2776v32.2.0 2777------- 2778 2779* #884: Restore support for running the tests under 2780 `pytest-runner <https://github.com/pytest-dev/pytest-runner>`_ 2781 by ensuring that PYTHONPATH is honored in tests invoking 2782 a subprocess. 2783 2784v32.1.3 2785------- 2786 2787* #706: Add rmtree compatibility shim for environments where 2788 rmtree fails when passed a unicode string. 2789 2790v32.1.2 2791------- 2792 2793* #893: Only release sdist in zip format as warehouse now 2794 disallows releasing two different formats. 2795 2796v32.1.1 2797------- 2798 2799* #704: More selectively ensure that 'rmtree' is not invoked with 2800 a byte string, enabling it to remove files that are non-ascii, 2801 even on Python 2. 2802 2803* #712: In 'sandbox.run_setup', ensure that ``__file__`` is 2804 always a ``str``, modeling the behavior observed by the 2805 interpreter when invoking scripts and modules. 2806 2807v32.1.0 2808------- 2809 2810* #891: In 'test' command on test failure, raise DistutilsError, 2811 suppression invocation of subsequent commands. 2812 2813v32.0.0 2814------- 2815 2816* #890: Revert #849. ``global-exclude .foo`` will not match all 2817 ``*.foo`` files any more. Package authors must add an explicit 2818 wildcard, such as ``global-exclude *.foo``, to match all 2819 ``.foo`` files. See #886, #849. 2820 2821v31.0.1 2822------- 2823 2824* #885: Fix regression where 'pkg_resources._rebuild_mod_path' 2825 would fail when a namespace package's '__path__' was not 2826 a list with a sort attribute. 2827 2828v31.0.0 2829------- 2830 2831* #250: Install '-nspkg.pth' files for packages installed 2832 with 'setup.py develop'. These .pth files allow 2833 namespace packages installed by pip or develop to 2834 co-mingle. This change required the removal of the 2835 change for #805 and pip #1924, introduced in 28.3.0 and implicated 2836 in #870, but means that namespace packages not in a 2837 site packages directory will no longer work on Python 2838 earlier than 3.5, whereas before they would work on 2839 Python not earlier than 3.3. 2840 2841v30.4.0 2842------- 2843 2844* #879: For declarative config: 2845 2846 - 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. 2847 2848 - packages find: directive now supports fine tuning from a subsection. The same arguments as for find() are accepted. 2849 2850v30.3.0 2851------- 2852 2853* #394 via #862: Added support for `declarative package 2854 config in a setup.cfg file 2855 <https://setuptools.pypa.io/en/latest/setuptools.html#configuring-setup-using-setup-cfg-files>`_. 2856 2857v30.2.1 2858------- 2859 2860* #850: In test command, invoke unittest.main with 2861 indication not to exit the process. 2862 2863v30.2.0 2864------- 2865 2866* #854: Bump to vendored Packaging 16.8. 2867 2868v30.1.0 2869------- 2870 2871* #846: Also trap 'socket.error' when opening URLs in 2872 package_index. 2873 2874* #849: Manifest processing now matches the filename 2875 pattern anywhere in the filename and not just at the 2876 start. Restores behavior found prior to 28.5.0. 2877 2878v30.0.0 2879------- 2880 2881* #864: Drop support for Python 3.2. Systems requiring 2882 Python 3.2 support must use 'setuptools < 30'. 2883 2884* #825: Suppress warnings for single files. 2885 2886* #830 via #843: Once again restored inclusion of data 2887 files to sdists, but now trap TypeError caused by 2888 techniques employed rjsmin and similar. 2889 2890v29.0.1 2891------- 2892 2893* #861: Re-release of v29.0.1 with the executable script 2894 launchers bundled. Now, launchers are included by default 2895 and users that want to disable this behavior must set the 2896 environment variable 2897 'SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES' to 2898 a false value like "false" or "0". 2899 2900v29.0.0 2901------- 2902 2903* #841: Drop special exception for packages invoking 2904 win32com during the build/install process. See 2905 Distribute #118 for history. 2906 2907v28.8.0 2908------- 2909 2910* #629: Per the discussion, refine the sorting to use version 2911 value order for more accurate detection of the latest 2912 available version when scanning for packages. See also 2913 #829. 2914 2915* #837: Rely on the config var "SO" for Python 3.3.0 only 2916 when determining the ext filename. 2917 2918v28.7.1 2919------- 2920 2921* #827: Update PyPI root for dependency links. 2922 2923* #833: Backed out changes from #830 as the implementation 2924 seems to have problems in some cases. 2925 2926v28.7.0 2927------- 2928 2929* #832: Moved much of the namespace package handling 2930 functionality into a separate module for re-use in something 2931 like #789. 2932* #830: ``sdist`` command no longer suppresses the inclusion 2933 of data files, re-aligning with the expectation of distutils 2934 and addressing #274 and #521. 2935 2936v28.6.1 2937------- 2938 2939* #816: Fix manifest file list order in tests. 2940 2941v28.6.0 2942------- 2943 2944* #629: When scanning for packages, ``pkg_resources`` now 2945 ignores empty egg-info directories and gives precedence to 2946 packages whose versions are lexicographically greatest, 2947 a rough approximation for preferring the latest available 2948 version. 2949 2950v28.5.0 2951------- 2952 2953* #810: Tests are now invoked with tox and not setup.py test. 2954* #249 and #450 via #764: Avoid scanning the whole tree 2955 when building the manifest. Also fixes a long-standing bug 2956 where patterns in ``MANIFEST.in`` had implicit wildcard 2957 matching. This caused ``global-exclude .foo`` to exclude 2958 all ``*.foo`` files, but also ``global-exclude bar.py`` to 2959 exclude ``foo_bar.py``. 2960 2961v28.4.0 2962------- 2963 2964* #732: Now extras with a hyphen are honored per PEP 426. 2965* #811: Update to pyparsing 2.1.10. 2966* Updated ``setuptools.command.sdist`` to re-use most of 2967 the functionality directly from ``distutils.command.sdist`` 2968 for the ``add_defaults`` method with strategic overrides. 2969 See #750 for rationale. 2970* #760 via #762: Look for certificate bundle where SUSE 2971 Linux typically presents it. Use ``certifi.where()`` to locate 2972 the bundle. 2973 2974v28.3.0 2975------- 2976 2977* #809: In ``find_packages()``, restore support for excluding 2978 a parent package without excluding a child package. 2979 2980* #805: Disable ``-nspkg.pth`` behavior on Python 3.3+ where 2981 PEP-420 functionality is adequate. Fixes pip #1924. 2982 2983v28.1.0 2984------- 2985 2986* #803: Bump certifi to 2016.9.26. 2987 2988v28.0.0 2989------- 2990 2991* #733: Do not search excluded directories for packages. 2992 This introduced a backwards incompatible change in ``find_packages()`` 2993 so that ``find_packages(exclude=['foo']) == []``, excluding subpackages of ``foo``. 2994 Previously, ``find_packages(exclude=['foo']) == ['foo.bar']``, 2995 even though the parent ``foo`` package was excluded. 2996 2997* #795: Bump certifi. 2998 2999* #719: Suppress decoding errors and instead log a warning 3000 when metadata cannot be decoded. 3001 3002v27.3.1 3003------- 3004 3005* #790: In MSVC monkeypatching, explicitly patch each 3006 function by name in the target module instead of inferring 3007 the module from the function's ``__module__``. Improves 3008 compatibility with other packages that might have previously 3009 patched distutils functions (i.e. NumPy). 3010 3011v27.3.0 3012------- 3013 3014* #794: In test command, add installed eggs to PYTHONPATH 3015 when invoking tests so that subprocesses will also have the 3016 dependencies available. Fixes `tox 330 3017 <https://github.com/tox-dev/tox/issues/330>`_. 3018 3019* #795: Update vendored pyparsing 2.1.9. 3020 3021v27.2.0 3022------- 3023 3024* #520 and #513: Suppress ValueErrors in fixup_namespace_packages 3025 when lookup fails. 3026 3027* Nicer, more consistent interfaces for msvc monkeypatching. 3028 3029v27.1.2 3030------- 3031 3032* #779 via #781: Fix circular import. 3033 3034v27.1.1 3035------- 3036 3037* #778: Fix MSVC monkeypatching. 3038 3039v27.1.0 3040------- 3041 3042* Introduce the (private) ``monkey`` module to encapsulate 3043 the distutils monkeypatching behavior. 3044 3045v27.0.0 3046------- 3047 3048* Now use Warehouse by default for 3049 ``upload``, patching ``distutils.config.PyPIRCCommand`` to 3050 affect default behavior. 3051 3052 Any config in .pypirc should be updated to replace 3053 3054 https://pypi.python.org/pypi/ 3055 3056 with 3057 3058 https://upload.pypi.org/legacy/ 3059 3060 Similarly, any passwords stored in the keyring should be 3061 updated to use this new value for "system". 3062 3063 The ``upload_docs`` command will continue to use the python.org 3064 site, but the command is now deprecated. Users are urged to use 3065 Read The Docs instead. 3066 3067* #776: Use EXT_SUFFIX for py_limited_api renaming. 3068 3069* #774 and #775: Use LegacyVersion from packaging when 3070 detecting numpy versions. 3071 3072v26.1.1 3073------- 3074 3075* Re-release of 26.1.0 with pytest pinned to allow for automated 3076 deployment and thus proper packaging environment variables, 3077 fixing issues with missing executable launchers. 3078 3079v26.1.0 3080------- 3081 3082* #763: ``pkg_resources.get_default_cache`` now defers to the 3083 :pypi:`appdirs` project to 3084 resolve the cache directory. Adds a vendored dependency on 3085 appdirs to pkg_resources. 3086 3087v26.0.0 3088------- 3089 3090* #748: By default, sdists are now produced in gzipped tarfile 3091 format by default on all platforms, adding forward compatibility 3092 for the same behavior in Python 3.6 (See Python #27819). 3093 3094* #459 via #736: On Windows with script launchers, 3095 sys.argv[0] now reflects 3096 the name of the entry point, consistent with the behavior in 3097 distlib and pip wrappers. 3098 3099* #752 via #753: When indicating ``py_limited_api`` to Extension, 3100 it must be passed as a keyword argument. 3101 3102v25.4.0 3103------- 3104 3105* Add Extension(py_limited_api=True). When set to a truthy value, 3106 that extension gets a filename appropriate for code using Py_LIMITED_API. 3107 When used correctly this allows a single compiled extension to work on 3108 all future versions of CPython 3. 3109 The py_limited_api argument only controls the filename. To be 3110 compatible with multiple versions of Python 3, the C extension 3111 will also need to set -DPy_LIMITED_API=... and be modified to use 3112 only the functions in the limited API. 3113 3114v25.3.0 3115------- 3116 3117* #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). 3118 3119* #731: Bump certifi. 3120 3121* Style updates. See #740, #741, #743, #744, #742, #747. 3122 3123* #735: include license file. 3124 3125v25.2.0 3126------- 3127 3128* #612 via #730: Add a LICENSE file which needs to be provided by the terms of 3129 the MIT license. 3130 3131v25.1.6 3132------- 3133 3134* #725: revert ``library_dir_option`` patch (Error is related to ``numpy.distutils`` and make errors on non Numpy users). 3135 3136v25.1.5 3137------- 3138 3139* #720 3140* #723: Improve patch for ``library_dir_option``. 3141 3142v25.1.4 3143------- 3144 3145* #717 3146* #713 3147* #707: Fix Python 2 compatibility for MSVC by catching errors properly. 3148* #715: Fix unquoted libpaths by patching ``library_dir_option``. 3149 3150v25.1.3 3151------- 3152 3153* #714 and #704: Revert fix as it breaks other components 3154 downstream that can't handle unicode. See #709, #710, 3155 and #712. 3156 3157v25.1.2 3158------- 3159 3160* #704: Fix errors when installing a zip sdist that contained 3161 files named with non-ascii characters on Windows would 3162 crash the install when it attempted to clean up the build. 3163* #646: MSVC compatibility - catch errors properly in 3164 RegistryInfo.lookup. 3165* #702: Prevent UnboundLocalError when initial working_set 3166 is empty. 3167 3168v25.1.1 3169------- 3170 3171* #686: Fix issue in sys.path ordering by pkg_resources when 3172 rewrite technique is "raw". 3173* #699: Fix typo in msvc support. 3174 3175v25.1.0 3176------- 3177 3178* #609: Setuptools will now try to download a distribution from 3179 the next possible download location if the first download fails. 3180 This means you can now specify multiple links as ``dependency_links`` 3181 and all links will be tried until a working download link is encountered. 3182 3183v25.0.2 3184------- 3185 3186* #688: Fix AttributeError in setup.py when invoked not from 3187 the current directory. 3188 3189v25.0.1 3190------- 3191 3192* Cleanup of setup.py script. 3193 3194* Fixed documentation builders by allowing setup.py 3195 to be imported without having bootstrapped the 3196 metadata. 3197 3198* More style cleanup. See #677, #678, #679, #681, #685. 3199 3200v25.0.0 3201------- 3202 3203* #674: Default ``sys.path`` manipulation by easy-install.pth 3204 is now "raw", meaning that when writing easy-install.pth 3205 during any install operation, the ``sys.path`` will not be 3206 rewritten and will no longer give preference to easy_installed 3207 packages. 3208 3209 To retain the old behavior when using any easy_install 3210 operation (including ``setup.py install`` when setuptools is 3211 present), set the environment variable: 3212 3213 SETUPTOOLS_SYS_PATH_TECHNIQUE=rewrite 3214 3215 This project hopes that that few if any environments find it 3216 necessary to retain the old behavior, and intends to drop 3217 support for it altogether in a future release. Please report 3218 any relevant concerns in the ticket for this change. 3219 3220v24.3.1 3221------- 3222 3223* #398: Fix shebang handling on Windows in script 3224 headers where spaces in ``sys.executable`` would 3225 produce an improperly-formatted shebang header, 3226 introduced in 12.0 with the fix for #188. 3227 3228* #663, #670: More style updates. 3229 3230v24.3.0 3231------- 3232 3233* #516: Disable ``os.link`` to avoid hard linking 3234 in ``sdist.make_distribution``, avoiding errors on 3235 systems that support hard links but not on the 3236 file system in which the build is occurring. 3237 3238v24.2.1 3239------- 3240 3241* #667: Update Metadata-Version to 1.2 when 3242 ``python_requires`` is supplied. 3243 3244v24.2.0 3245------- 3246 3247* #631: Add support for ``python_requires`` keyword. 3248 3249v24.1.1 3250------- 3251 3252* More style updates. See #660, #661, #641. 3253 3254v24.1.0 3255------- 3256 3257* #659: ``setup.py`` now will fail fast and with a helpful 3258 error message when the necessary metadata is missing. 3259* More style updates. See #656, #635, #640, 3260 #644, #650, #652, and #655. 3261 3262v24.0.3 3263------- 3264 3265* Updated style in much of the codebase to match 3266 community expectations. See #632, #633, #634, 3267 #637, #639, #638, #642, #648. 3268 3269v24.0.2 3270------- 3271 3272* If MSVC++14 is needed ``setuptools.msvc`` now redirect 3273 user to Visual C++ Build Tools web page. 3274 3275v24.0.1 3276------- 3277 3278* #625 and #626: Fixes on ``setuptools.msvc`` mainly 3279 for Python 2 and Linux. 3280 3281v24.0.0 3282------- 3283 3284* Pull Request #174: Add more aggressive support for 3285 standalone Microsoft Visual C++ compilers in 3286 msvc9compiler patch. 3287 Particularly : Windows SDK 6.1 and 7.0 3288 (MSVC++ 9.0), Windows SDK 7.1 (MSVC++ 10.0), 3289 Visual C++ Build Tools 2015 (MSVC++14) 3290* Renamed ``setuptools.msvc9_support`` to 3291 ``setuptools.msvc``. 3292 3293v23.2.1 3294------- 3295 3296Re-release of v23.2.0, which was missing the intended 3297commits. 3298 3299* #623: Remove used of deprecated 'U' flag when reading 3300 manifests. 3301 3302v23.1.0 3303------- 3304 3305* #619: Deprecated ``tag_svn_revision`` distribution 3306 option. 3307 3308v23.0.0 3309------- 3310 3311* #611: Removed ARM executables for CLI and GUI script 3312 launchers on Windows. If this was a feature you cared 3313 about, please comment in the ticket. 3314* #604: Removed docs building support. The project 3315 now relies on documentation hosted at 3316 https://setuptools.pypa.io/. 3317 3318v22.0.5 3319------- 3320 3321* #604: Restore repository for upload_docs command 3322 to restore publishing of docs during release. 3323 3324v22.0.4 3325------- 3326 3327* #589: Upload releases to pypi.io using the upload 3328 hostname and legacy path. 3329 3330v22.0.3 3331------- 3332 3333* #589: Releases are now uploaded to pypi.io (Warehouse) 3334 even when releases are made on Twine via Travis. 3335 3336v22.0.2 3337------- 3338 3339* #589: Releases are now uploaded to pypi.io (Warehouse). 3340 3341v22.0.1 3342------- 3343 3344* #190: On Python 2, if unicode is passed for packages to 3345 ``build_py`` command, it will be handled just as with 3346 text on Python 3. 3347 3348v22.0.0 3349------- 3350 3351Intended to be v21.3.0, but jaraco accidentally released as 3352a major bump. 3353 3354* #598: Setuptools now lists itself first in the User-Agent 3355 for web requests, better following the guidelines in 3356 `RFC 7231 3357 <https://tools.ietf.org/html/rfc7231#section-5.5.3>`_. 3358 3359v21.2.2 3360------- 3361 3362* Minor fixes to changelog and docs. 3363 3364v21.2.1 3365------- 3366 3367* #261: Exclude directories when resolving globs in 3368 package_data. 3369 3370v21.2.0 3371------- 3372 3373* #539: In the easy_install get_site_dirs, honor all 3374 paths found in ``site.getsitepackages``. 3375 3376v21.1.0 3377------- 3378 3379* #572: In build_ext, now always import ``_CONFIG_VARS`` 3380 from ``distutils`` rather than from ``sysconfig`` 3381 to allow ``distutils.sysconfig.customize_compiler`` 3382 configure the OS X compiler for ``-dynamiclib``. 3383 3384v21.0.0 3385------- 3386 3387* Removed ez_setup.py from Setuptools sdist. The 3388 bootstrap script will be maintained in its own 3389 branch and should be generally be retrieved from 3390 its canonical location at 3391 https://bootstrap.pypa.io/ez_setup.py. 3392 3393v20.10.0 3394-------- 3395 3396* #553: egg_info section is now generated in a 3397 deterministic order, matching the order generated 3398 by earlier versions of Python. Except on Python 2.6, 3399 order is preserved when existing settings are present. 3400* #556: Update to Packaging 16.7, restoring support 3401 for deprecated ``python_implmentation`` marker. 3402* #555: Upload command now prompts for a password 3403 when uploading to PyPI (or other repository) if no 3404 password is present in .pypirc or in the keyring. 3405 3406v20.9.0 3407------- 3408 3409* #548: Update certify version to 2016.2.28 3410* #545: Safely handle deletion of non-zip eggs in rotate 3411 command. 3412 3413v20.8.1 3414------- 3415 3416* Issue #544: Fix issue with extra environment marker 3417 processing in WorkingSet due to refactor in v20.7.0. 3418 3419v20.8.0 3420------- 3421 3422* Issue #543: Re-release so that latest release doesn't 3423 cause déjà vu with distribute and setuptools 0.7 in 3424 older environments. 3425 3426v20.7.0 3427------- 3428 3429* Refactored extra environment marker processing 3430 in WorkingSet. 3431* Issue #533: Fixed intermittent test failures. 3432* Issue #536: In msvc9_support, trap additional exceptions 3433 that might occur when importing 3434 ``distutils.msvc9compiler`` in mingw environments. 3435* Issue #537: Provide better context when package 3436 metadata fails to decode in UTF-8. 3437 3438v20.6.8 3439------- 3440 3441* Issue #523: Restored support for environment markers, 3442 now honoring 'extra' environment markers. 3443 3444v20.6.7 3445------- 3446 3447* Issue #523: Disabled support for environment markers 3448 introduced in v20.5. 3449 3450v20.6.6 3451------- 3452 3453* Issue #503: Restore support for PEP 345 environment 3454 markers by updating to Packaging 16.6. 3455 3456v20.6.0 3457------- 3458 3459* New release process that relies on 3460 `bumpversion <https://github.com/peritus/bumpversion>`_ 3461 and Travis CI for continuous deployment. 3462* Project versioning semantics now follow 3463 `semver <https://semver.org>`_ precisely. 3464 The 'v' prefix on version numbers now also allows 3465 version numbers to be referenced in the changelog, 3466 e.g. http://setuptools.pypa.io/en/latest/history.html#v20-6-0. 3467 346820.5 3469---- 3470 3471* BB Pull Request #185, #470: Add support for environment markers 3472 in requirements in install_requires, setup_requires, 3473 tests_require as well as adding a test for the existing 3474 extra_requires machinery. 3475 347620.4 3477---- 3478 3479* Issue #422: Moved hosting to 3480 `Github <https://github.com/pypa/setuptools>`_ 3481 from `Bitbucket <https://bitbucket.org/pypa/setuptools>`_. 3482 Issues have been migrated, though all issues and comments 3483 are attributed to bb-migration. So if you have a particular 3484 issue or issues to which you've been subscribed, you will 3485 want to "watch" the equivalent issue in Github. 3486 The Bitbucket project will be retained for the indefinite 3487 future, but Github now hosts the canonical project repository. 3488 348920.3.1 3490------ 3491 3492* Issue #519: Remove import hook when reloading the 3493 ``pkg_resources`` module. 3494* BB Pull Request #184: Update documentation in ``pkg_resources`` 3495 around new ``Requirement`` implementation. 3496 349720.3 3498---- 3499 3500* BB Pull Request #179: ``pkg_resources.Requirement`` objects are 3501 now a subclass of ``packaging.requirements.Requirement``, 3502 allowing any environment markers and url (if any) to be 3503 affiliated with the requirement 3504* BB Pull Request #179: Restore use of RequirementParseError 3505 exception unintentionally dropped in 20.2. 3506 350720.2.2 3508------ 3509 3510* Issue #502: Correct regression in parsing of multiple 3511 version specifiers separated by commas and spaces. 3512 351320.2.1 3514------ 3515 3516* Issue #499: Restore compatibility for legacy versions 3517 by bumping to packaging 16.4. 3518 351920.2 3520---- 3521 3522* Changelog now includes release dates and links to PEPs. 3523* BB Pull Request #173: Replace dual PEP 345 _markerlib implementation 3524 and PEP 426 implementation of environment marker support from 3525 packaging 16.1 and PEP 508. Fixes Issue #122. 3526 See also BB Pull Request #175, BB Pull Request #168, and 3527 BB Pull Request #164. Additionally: 3528 3529 - ``Requirement.parse`` no longer retains the order of extras. 3530 - ``parse_requirements`` now requires that all versions be 3531 PEP-440 compliant, as revealed in #499. Packages released 3532 with invalid local versions should be re-released using 3533 the proper local version syntax, e.g. ``mypkg-1.0+myorg.1``. 3534 353520.1.1 3536------ 3537 3538* Update ``upload_docs`` command to also honor keyring 3539 for password resolution. 3540 354120.1 3542---- 3543 3544* Added support for using passwords from keyring in the upload 3545 command. See `the upload docs 3546 <https://setuptools.pypa.io/en/latest/setuptools.html#upload-upload-source-and-or-egg-distributions-to-pypi>`_ 3547 for details. 3548 354920.0 3550---- 3551 3552* Issue #118: Once again omit the package metadata (egg-info) 3553 from the list of outputs in ``--record``. This version of setuptools 3554 can no longer be used to upgrade pip earlier than 6.0. 3555 355619.7 3557---- 3558 3559* Off-project PR: `0dcee79 <https://github.com/pypa/setuptools/commit/0dcee791dfdcfacddaaec79b29f30a347a147413>`_ and `f9bd9b9 <https://github.com/pypa/setuptools/commit/f9bd9b9f5df54ef5a0bf8d16c3a889ab8c640580>`_ 3560 For FreeBSD, also `honor root certificates from ca_root_nss <https://github.com/pypa/setuptools/commit/3ae46c30225eb46e1f5aada1a19e88b79f04dc72>`_. 3561 356219.6.2 3563------ 3564 3565* Issue #491: Correct regression incurred in 19.4 where 3566 a double-namespace package installed using pip would 3567 cause a TypeError. 3568 356919.6.1 3570------ 3571 3572* Restore compatibility for PyPy 3 compatibility lost in 3573 19.4.1 addressing Issue #487. 3574* ``setuptools.launch`` shim now loads scripts in a new 3575 namespace, avoiding getting relative imports from 3576 the setuptools package on Python 2. 3577 357819.6 3579---- 3580 3581* Added a new entry script ``setuptools.launch``, 3582 implementing the shim found in 3583 ``pip.util.setuptools_build``. Use this command to launch 3584 distutils-only packages under setuptools in the same way that 3585 pip does, causing the setuptools monkeypatching of distutils 3586 to be invoked prior to invoking a script. Useful for debugging 3587 or otherwise installing a distutils-only package under 3588 setuptools when pip isn't available or otherwise does not 3589 expose the desired functionality. For example:: 3590 3591 $ python -m setuptools.launch setup.py develop 3592 3593* Issue #488: Fix dual manifestation of Extension class in 3594 extension packages installed as dependencies when Cython 3595 is present. 3596 359719.5 3598---- 3599 3600* Issue #486: Correct TypeError when getfilesystemencoding 3601 returns None. 3602* Issue #139: Clarified the license as MIT. 3603* BB Pull Request #169: Removed special handling of command 3604 spec in scripts for Jython. 3605 360619.4.1 3607------ 3608 3609* Issue #487: Use direct invocation of ``importlib.machinery`` 3610 in ``pkg_resources`` to avoid missing detection on relevant 3611 platforms. 3612 361319.4 3614---- 3615 3616* Issue #341: Correct error in path handling of package data 3617 files in ``build_py`` command when package is empty. 3618* Distribute #323, Issue #141, Issue #207, and 3619 BB Pull Request #167: Another implementation of 3620 ``pkg_resources.WorkingSet`` and ``pkg_resources.Distribution`` 3621 that supports replacing an extant package with a new one, 3622 allowing for setup_requires dependencies to supersede installed 3623 packages for the session. 3624 362519.3 3626---- 3627 3628* Issue #229: Implement new technique for readily incorporating 3629 dependencies conditionally from vendored copies or primary 3630 locations. Adds a new dependency on six. 3631 363219.2 3633---- 3634 3635* BB Pull Request #163: Add get_command_list method to Distribution. 3636* BB Pull Request #162: Add missing whitespace to multiline string 3637 literals. 3638 363919.1.1 3640------ 3641 3642* Issue #476: Cast version to string (using default encoding) 3643 to avoid creating Unicode types on Python 2 clients. 3644* Issue #477: In Powershell downloader, use explicit rendering 3645 of strings, rather than rely on ``repr``, which can be 3646 incorrect (especially on Python 2). 3647 364819.1 3649---- 3650 3651* Issue #215: The bootstrap script ``ez_setup.py`` now 3652 automatically detects 3653 the latest version of setuptools (using PyPI JSON API) rather 3654 than hard-coding a particular value. 3655* Issue #475: Fix incorrect usage in _translate_metadata2. 3656 365719.0 3658---- 3659 3660* Issue #442: Use RawConfigParser for parsing .pypirc file. 3661 Interpolated values are no longer honored in .pypirc files. 3662 366318.8.1 3664------ 3665 3666* Issue #440: Prevent infinite recursion when a SandboxViolation 3667 or other UnpickleableException occurs in a sandbox context 3668 with setuptools hidden. Fixes regression introduced in Setuptools 3669 12.0. 3670 367118.8 3672---- 3673 3674* Deprecated ``egg_info.get_pkg_info_revision``. 3675* Issue #471: Don't rely on repr for an HTML attribute value in 3676 package_index. 3677* Issue #419: Avoid errors in FileMetadata when the metadata directory 3678 is broken. 3679* Issue #472: Remove deprecated use of 'U' in mode parameter 3680 when opening files. 3681 368218.7.1 3683------ 3684 3685* Issue #469: Refactored logic for Issue #419 fix to re-use metadata 3686 loading from Provider. 3687 368818.7 3689---- 3690 3691* Update dependency on certify. 3692* BB Pull Request #160: Improve detection of gui script in 3693 ``easy_install._adjust_header``. 3694* Made ``test.test_args`` a non-data property; alternate fix 3695 for the issue reported in BB Pull Request #155. 3696* Issue #453: In ``ez_setup`` bootstrap module, unload all 3697 ``pkg_resources`` modules following download. 3698* BB Pull Request #158: Honor PEP-488 when excluding 3699 files for namespace packages. 3700* Issue #419 and BB Pull Request #144: Add experimental support for 3701 reading the version info from distutils-installed metadata rather 3702 than using the version in the filename. 3703 370418.6.1 3705------ 3706 3707* Issue #464: Correct regression in invocation of superclass on old-style 3708 class on Python 2. 3709 371018.6 3711---- 3712 3713* Issue #439: When installing entry_point scripts under development, 3714 omit the version number of the package, allowing any version of the 3715 package to be used. 3716 371718.5 3718---- 3719 3720* In preparation for dropping support for Python 3.2, a warning is 3721 now logged when pkg_resources is imported on Python 3.2 or earlier 3722 Python 3 versions. 3723* `Add support for python_platform_implementation environment marker 3724 <https://github.com/pypa/setuptools/commit/94416707fd59a65f4a8f7f70541d6b3fc018b626>`_. 3725* `Fix dictionary mutation during iteration 3726 <https://github.com/pypa/setuptools/commit/57ebfa41e0f96b97e599ecd931b7ae8a143e096e>`_. 3727 372818.4 3729---- 3730 3731* Issue #446: Test command now always invokes unittest, even 3732 if no test suite is supplied. 3733 373418.3.2 3735------ 3736 3737* Correct another regression in setuptools.findall 3738 where the fix for Python #12885 was lost. 3739 374018.3.1 3741------ 3742 3743* Issue #425: Correct regression in setuptools.findall. 3744 374518.3 3746---- 3747 3748* BB Pull Request #135: Setuptools now allows disabling of 3749 the manipulation of the sys.path 3750 during the processing of the easy-install.pth file. To do so, set 3751 the environment variable ``SETUPTOOLS_SYS_PATH_TECHNIQUE`` to 3752 anything but "rewrite" (consider "raw"). During any install operation 3753 with manipulation disabled, setuptools packages will be appended to 3754 sys.path naturally. 3755 3756 Future versions may change the default behavior to disable 3757 manipulation. If so, the default behavior can be retained by setting 3758 the variable to "rewrite". 3759 3760* Issue #257: ``easy_install --version`` now shows more detail 3761 about the installation location and Python version. 3762 3763* Refactor setuptools.findall in preparation for re-submission 3764 back to distutils. 3765 376618.2 3767---- 3768 3769* Issue #412: More efficient directory search in ``find_packages``. 3770 377118.1 3772---- 3773 3774* Upgrade to vendored packaging 15.3. 3775 377618.0.1 3777------ 3778 3779* Issue #401: Fix failure in test suite. 3780 378118.0 3782---- 3783 3784* Dropped support for builds with Pyrex. Only Cython is supported. 3785* Issue #288: Detect Cython later in the build process, after 3786 ``setup_requires`` dependencies are resolved. 3787 Projects backed by Cython can now be readily built 3788 with a ``setup_requires`` dependency. For example:: 3789 3790 ext = setuptools.Extension('mylib', ['src/CythonStuff.pyx', 'src/CStuff.c']) 3791 setuptools.setup( 3792 ... 3793 ext_modules=[ext], 3794 setup_requires=['cython'], 3795 ) 3796 3797 For compatibility with older versions of setuptools, packagers should 3798 still include ``src/CythonMod.c`` in the source distributions or 3799 require that Cython be present before building source distributions. 3800 However, for systems with this build of setuptools, Cython will be 3801 downloaded on demand. 3802* Issue #396: Fixed test failure on OS X. 3803* BB Pull Request #136: Remove excessive quoting from shebang headers 3804 for Jython. 3805 380617.1.1 3807------ 3808 3809* Backed out unintended changes to pkg_resources, restoring removal of 3810 deprecated imp module (`ref 3811 <https://bitbucket.org/pypa/setuptools/commits/f572ec9563d647fa8d4ffc534f2af8070ea07a8b#comment-1881283>`_). 3812 381317.1 3814---- 3815 3816* Issue #380: Add support for range operators on environment 3817 marker evaluation. 3818 381917.0 3820---- 3821 3822* Issue #378: Do not use internal importlib._bootstrap module. 3823* Issue #390: Disallow console scripts with path separators in 3824 the name. Removes unintended functionality and brings behavior 3825 into parity with pip. 3826 382716.0 3828---- 3829 3830* BB Pull Request #130: Better error messages for errors in 3831 parsed requirements. 3832* BB Pull Request #133: Removed ``setuptools.tests`` from the 3833 installed packages. 3834* BB Pull Request #129: Address deprecation warning due to usage 3835 of imp module. 3836 383715.2 3838---- 3839 3840* Issue #373: Provisionally expose 3841 ``pkg_resources._initialize_master_working_set``, allowing for 3842 imperative re-initialization of the master working set. 3843 384415.1 3845---- 3846 3847* Updated to Packaging 15.1 to address Packaging #28. 3848* Fix ``setuptools.sandbox._execfile()`` with Python 3.1. 3849 385015.0 3851---- 3852 3853* BB Pull Request #126: DistributionNotFound message now lists the package or 3854 packages that required it. E.g.:: 3855 3856 pkg_resources.DistributionNotFound: The 'colorama>=0.3.1' distribution was not found and is required by smlib.log. 3857 3858 Note that zc.buildout once dependended on the string rendering of this 3859 message to determine the package that was not found. This expectation 3860 has since been changed, but older versions of buildout may experience 3861 problems. See Buildout #242 for details. 3862 386314.3.1 3864------ 3865 3866* Issue #307: Removed PEP-440 warning during parsing of versions 3867 in ``pkg_resources.Distribution``. 3868* Issue #364: Replace deprecated usage with recommended usage of 3869 ``EntryPoint.load``. 3870 387114.3 3872---- 3873 3874* Issue #254: When creating temporary egg cache on Unix, use mode 755 3875 for creating the directory to avoid the subsequent warning if 3876 the directory is group writable. 3877 387814.2 3879---- 3880 3881* Issue #137: Update ``Distribution.hashcmp`` so that Distributions with 3882 None for pyversion or platform can be compared against Distributions 3883 defining those attributes. 3884 388514.1.1 3886------ 3887 3888* Issue #360: Removed undesirable behavior from test runs, preventing 3889 write tests and installation to system site packages. 3890 389114.1 3892---- 3893 3894* BB Pull Request #125: Add ``__ne__`` to Requirement class. 3895* Various refactoring of easy_install. 3896 389714.0 3898---- 3899 3900* Bootstrap script now accepts ``--to-dir`` to customize save directory or 3901 allow for re-use of existing repository of setuptools versions. See 3902 BB Pull Request #112 for background. 3903* Issue #285: ``easy_install`` no longer will default to installing 3904 packages to the "user site packages" directory if it is itself installed 3905 there. Instead, the user must pass ``--user`` in all cases to install 3906 packages to the user site packages. 3907 This behavior now matches that of "pip install". To configure 3908 an environment to always install to the user site packages, consider 3909 using the "install-dir" and "scripts-dir" parameters to easy_install 3910 through an appropriate distutils config file. 3911 391213.0.2 3913------ 3914 3915* Issue #359: Include pytest.ini in the sdist so invocation of py.test on the 3916 sdist honors the pytest configuration. 3917 391813.0.1 3919------ 3920 3921Re-release of 13.0. Intermittent connectivity issues caused the release 3922process to fail and PyPI uploads no longer accept files for 13.0. 3923 392413.0 3925---- 3926 3927* Issue #356: Back out BB Pull Request #119 as it requires Setuptools 10 or later 3928 as the source during an upgrade. 3929* Removed build_py class from setup.py. According to 892f439d216e, this 3930 functionality was added to support upgrades from old Distribute versions, 3931 0.6.5 and 0.6.6. 3932 393312.4 3934---- 3935 3936* BB Pull Request #119: Restore writing of ``setup_requires`` to metadata 3937 (previously added in 8.4 and removed in 9.0). 3938 393912.3 3940---- 3941 3942* Documentation is now linked using the rst.linker package. 3943* Fix ``setuptools.command.easy_install.extract_wininst_cfg()`` 3944 with Python 2.6 and 2.7. 3945* Issue #354. Added documentation on building setuptools 3946 documentation. 3947 394812.2 3949---- 3950 3951* Issue #345: Unload all modules under pkg_resources during 3952 ``ez_setup.use_setuptools()``. 3953* Issue #336: Removed deprecation from ``ez_setup.use_setuptools``, 3954 as it is clearly still used by buildout's bootstrap. ``ez_setup`` 3955 remains deprecated for use by individual packages. 3956* Simplified implementation of ``ez_setup.use_setuptools``. 3957 395812.1 3959---- 3960 3961* BB Pull Request #118: Soften warning for non-normalized versions in 3962 Distribution. 3963 396412.0.5 3965------ 3966 3967* Issue #339: Correct Attribute reference in ``cant_write_to_target``. 3968* Issue #336: Deprecated ``ez_setup.use_setuptools``. 3969 397012.0.4 3971------ 3972 3973* Issue #335: Fix script header generation on Windows. 3974 397512.0.3 3976------ 3977 3978* Fixed incorrect class attribute in ``install_scripts``. Tests would be nice. 3979 398012.0.2 3981------ 3982 3983* Issue #331: Fixed ``install_scripts`` command on Windows systems corrupting 3984 the header. 3985 398612.0.1 3987------ 3988 3989* Restore ``setuptools.command.easy_install.sys_executable`` for pbr 3990 compatibility. For the future, tools should construct a CommandSpec 3991 explicitly. 3992 399312.0 3994---- 3995 3996* Issue #188: Setuptools now support multiple entities in the value for 3997 ``build.executable``, such that an executable of "/usr/bin/env my-python" may 3998 be specified. This means that systems with a specified executable whose name 3999 has spaces in the path must be updated to escape or quote that value. 4000* Deprecated ``easy_install.ScriptWriter.get_writer``, replaced by ``.best()`` 4001 with slightly different semantics (no force_windows flag). 4002 400311.3.1 4004------ 4005 4006* Issue #327: Formalize and restore support for any printable character in an 4007 entry point name. 4008 400911.3 4010---- 4011 4012* Expose ``EntryPoint.resolve`` in place of EntryPoint._load, implementing the 4013 simple, non-requiring load. Deprecated all uses of ``EntryPoint._load`` 4014 except for calling with no parameters, which is just a shortcut for 4015 ``ep.require(); ep.resolve();``. 4016 4017 Apps currently invoking ``ep.load(require=False)`` should instead do the 4018 following if wanting to avoid the deprecating warning:: 4019 4020 getattr(ep, "resolve", lambda: ep.load(require=False))() 4021 402211.2 4023---- 4024 4025* Pip #2326: Report deprecation warning at stacklevel 2 for easier diagnosis. 4026 402711.1 4028---- 4029 4030* Issue #281: Since Setuptools 6.1 (Issue #268), a ValueError would be raised 4031 in certain cases where VersionConflict was raised with two arguments, which 4032 occurred in ``pkg_resources.WorkingSet.find``. This release adds support 4033 for indicating the dependent packages while maintaining support for 4034 a VersionConflict when no dependent package context is known. New unit tests 4035 now capture the expected interface. 4036 403711.0 4038---- 4039 4040* Interop #3: Upgrade to Packaging 15.0; updates to PEP 440 so that >1.7 does 4041 not exclude 1.7.1 but does exclude 1.7.0 and 1.7.0.post1. 4042 404310.2.1 4044------ 4045 4046* Issue #323: Fix regression in entry point name parsing. 4047 404810.2 4049---- 4050 4051* Deprecated use of EntryPoint.load(require=False). Passing a boolean to a 4052 function to select behavior is an anti-pattern. Instead use 4053 ``Entrypoint._load()``. 4054* Substantial refactoring of all unit tests. Tests are now much leaner and 4055 re-use a lot of fixtures and contexts for better clarity of purpose. 4056 405710.1 4058---- 4059 4060* Issue #320: Added a compatibility implementation of 4061 ``sdist._default_revctrl`` 4062 so that systems relying on that interface do not fail (namely, Ubuntu 12.04 4063 and similar Debian releases). 4064 406510.0.1 4066------ 4067 4068* Issue #319: Fixed issue installing pure distutils packages. 4069 407010.0 4071---- 4072 4073* Issue #313: Removed built-in support for subversion. Projects wishing to 4074 retain support for subversion will need to use a third party library. The 4075 extant implementation is being ported to :pypi:`setuptools_svn`. 4076* Issue #315: Updated setuptools to hide its own loaded modules during 4077 installation of another package. This change will enable setuptools to 4078 upgrade (or downgrade) itself even when its own metadata and implementation 4079 change. 4080 40819.1 4082--- 4083 4084* Prefer vendored packaging library `as recommended 4085 <https://github.com/pypa/setuptools/commit/170657b68f4b92e7e1bf82f5e19a831f5744af67>`_. 4086 40879.0.1 4088----- 4089 4090* Issue #312: Restored presence of pkg_resources API tests (doctest) to sdist. 4091 40929.0 4093--- 4094 4095* Issue #314: Disabled support for ``setup_requires`` metadata to avoid issue 4096 where Setuptools was unable to upgrade over earlier versions. 4097 40988.4 4099--- 4100 4101* BB Pull Request #106: Now write ``setup_requires`` metadata. 4102 41038.3 4104--- 4105 4106* Issue #311: Decoupled pkg_resources from setuptools once again. 4107 ``pkg_resources`` is now a package instead of a module. 4108 41098.2.1 4110----- 4111 4112* Issue #306: Suppress warnings about Version format except in select scenarios 4113 (such as installation). 4114 41158.2 4116--- 4117 4118* BB Pull Request #85: Search egg-base when adding egg-info to manifest. 4119 41208.1 4121--- 4122 4123* Upgrade ``packaging`` to 14.5, giving preference to "rc" as designator for 4124 release candidates over "c". 4125* PEP-440 warnings are now raised as their own class, 4126 ``pkg_resources.PEP440Warning``, instead of RuntimeWarning. 4127* Disabled warnings on empty versions. 4128 41298.0.4 4130----- 4131 4132* Upgrade ``packaging`` to 14.4, fixing an error where there is a 4133 different result for if 2.0.5 is contained within >2.0dev and >2.0.dev even 4134 though normalization rules should have made them equal. 4135* Issue #296: Add warning when a version is parsed as legacy. This warning will 4136 make it easier for developers to recognize deprecated version numbers. 4137 41388.0.3 4139----- 4140 4141* Issue #296: Restored support for ``__hash__`` on parse_version results. 4142 41438.0.2 4144----- 4145 4146* Issue #296: Restored support for ``__getitem__`` and sort operations on 4147 parse_version result. 4148 41498.0.1 4150----- 4151 4152* Issue #296: Restore support for iteration over parse_version result, but 4153 deprecated that usage with a warning. Fixes failure with buildout. 4154 41558.0 4156--- 4157 4158* Implement PEP 440 within 4159 pkg_resources and setuptools. This change 4160 deprecates some version numbers such that they will no longer be installable 4161 without using the ``===`` escape hatch. See `the changes to test_resources 4162 <https://bitbucket.org/pypa/setuptools/commits/dcd552da643c4448056de84c73d56da6d70769d5#chg-setuptools/tests/test_resources.py>`_ 4163 for specific examples of version numbers and specifiers that are no longer 4164 supported. Setuptools now "vendors" the `packaging 4165 <https://github.com/pypa/packaging>`_ library. 4166 41677.0 4168--- 4169 4170* Issue #80, Issue #209: Eggs that are downloaded for ``setup_requires``, 4171 ``test_requires``, etc. are now placed in a ``./.eggs`` directory instead of 4172 directly in the current directory. This choice of location means the files 4173 can be readily managed (removed, ignored). Additionally, 4174 later phases or invocations of setuptools will not detect the package as 4175 already installed and ignore it for permanent install (See #209). 4176 4177 This change is indicated as backward-incompatible as installations that 4178 depend on the installation in the current directory will need to account for 4179 the new location. Systems that ignore ``*.egg`` will probably need to be 4180 adapted to ignore ``.eggs``. The files will need to be manually moved or 4181 will be retrieved again. Most use cases will require no attention. 4182 41836.1 4184--- 4185 4186* Issue #268: When resolving package versions, a VersionConflict now reports 4187 which package previously required the conflicting version. 4188 41896.0.2 4190----- 4191 4192* Issue #262: Fixed regression in pip install due to egg-info directories 4193 being omitted. Re-opens Issue #118. 4194 41956.0.1 4196----- 4197 4198* Issue #259: Fixed regression with namespace package handling on ``single 4199 version, externally managed`` installs. 4200 42016.0 4202--- 4203 4204* Issue #100: When building a distribution, Setuptools will no longer match 4205 default files using platform-dependent case sensitivity, but rather will 4206 only match the files if their case matches exactly. As a result, on Windows 4207 and other case-insensitive file systems, files with names such as 4208 'readme.txt' or 'README.TXT' will be omitted from the distribution and a 4209 warning will be issued indicating that 'README.txt' was not found. Other 4210 filenames affected are: 4211 4212 - README.rst 4213 - README 4214 - setup.cfg 4215 - setup.py (or the script name) 4216 - test/test*.py 4217 4218 Any users producing distributions with filenames that match those above 4219 case-insensitively, but not case-sensitively, should rename those files in 4220 their repository for better portability. 4221* BB Pull Request #72: When using ``single_version_externally_managed``, the 4222 exclusion list now includes Python 3.2 ``__pycache__`` entries. 4223* BB Pull Request #76 and BB Pull Request #78: lines in top_level.txt are now 4224 ordered deterministically. 4225* Issue #118: The egg-info directory is now no longer included in the list 4226 of outputs. 4227* Issue #258: Setuptools now patches distutils msvc9compiler to 4228 recognize the specially-packaged compiler package for easy extension module 4229 support on Python 2.6, 2.7, and 3.2. 4230 42315.8 4232--- 4233 4234* Issue #237: ``pkg_resources`` now uses explicit detection of Python 2 vs. 4235 Python 3, supporting environments where builtins have been patched to make 4236 Python 3 look more like Python 2. 4237 42385.7 4239--- 4240 4241* Issue #240: Based on real-world performance measures against 5.4, zip 4242 manifests are now cached in all circumstances. The 4243 ``PKG_RESOURCES_CACHE_ZIP_MANIFESTS`` environment variable is no longer 4244 relevant. The observed "memory increase" referenced in the 5.4 release 4245 notes and detailed in Issue #154 was likely not an increase over the status 4246 quo, but rather only an increase over not storing the zip info at all. 4247 42485.6 4249--- 4250 4251* Issue #242: Use absolute imports in svn_utils to avoid issues if the 4252 installing package adds an xml module to the path. 4253 42545.5.1 4255----- 4256 4257* Issue #239: Fix typo in 5.5 such that fix did not take. 4258 42595.5 4260--- 4261 4262* Issue #239: Setuptools now includes the setup_requires directive on 4263 Distribution objects and validates the syntax just like install_requires 4264 and tests_require directives. 4265 42665.4.2 4267----- 4268 4269* Issue #236: Corrected regression in execfile implementation for Python 2.6. 4270 42715.4.1 4272----- 4273 4274* Python #7776: (ssl_support) Correct usage of host for validation when 4275 tunneling for HTTPS. 4276 42775.4 4278--- 4279 4280* Issue #154: ``pkg_resources`` will now cache the zip manifests rather than 4281 re-processing the same file from disk multiple times, but only if the 4282 environment variable ``PKG_RESOURCES_CACHE_ZIP_MANIFESTS`` is set. Clients 4283 that package many modules in the same zip file will see some improvement 4284 in startup time by enabling this feature. This feature is not enabled by 4285 default because it causes a substantial increase in memory usage. 4286 42875.3 4288--- 4289 4290* Issue #185: Make svn tagging work on the new style SVN metadata. 4291 Thanks cazabon! 4292* Prune revision control directories (e.g .svn) from base path 4293 as well as sub-directories. 4294 42955.2 4296--- 4297 4298* Added a `Developer Guide 4299 <https://setuptools.pypa.io/en/latest/developer-guide.html>`_ to the official 4300 documentation. 4301* Some code refactoring and cleanup was done with no intended behavioral 4302 changes. 4303* During install_egg_info, the generated lines for namespace package .pth 4304 files are now processed even during a dry run. 4305 43065.1 4307--- 4308 4309* Issue #202: Implemented more robust cache invalidation for the ZipImporter, 4310 building on the work in Issue #168. Special thanks to Jurko Gospodnetic and 4311 PJE. 4312 43135.0.2 4314----- 4315 4316* Issue #220: Restored script templates. 4317 43185.0.1 4319----- 4320 4321* Renamed script templates to end with .tmpl now that they no longer need 4322 to be processed by 2to3. Fixes spurious syntax errors during build/install. 4323 43245.0 4325--- 4326 4327* Issue #218: Re-release of 3.8.1 to signal that it supersedes 4.x. 4328* Incidentally, script templates were updated not to include the triple-quote 4329 escaping. 4330 43313.7.1 and 3.8.1 and 4.0.1 4332------------------------- 4333 4334* Issue #213: Use legacy StringIO behavior for compatibility under pbr. 4335* Issue #218: Setuptools 3.8.1 superseded 4.0.1, and 4.x was removed 4336 from the available versions to install. 4337 43384.0 4339--- 4340 4341* Issue #210: ``setup.py develop`` now copies scripts in binary mode rather 4342 than text mode, matching the behavior of the ``install`` command. 4343 43443.8 4345--- 4346 4347* Extend Issue #197 workaround to include all Python 3 versions prior to 4348 3.2.2. 4349 43503.7 4351--- 4352 4353* Issue #193: Improved handling of Unicode filenames when building manifests. 4354 43553.6 4356--- 4357 4358* Issue #203: Honor proxy settings for Powershell downloader in the bootstrap 4359 routine. 4360 43613.5.2 4362----- 4363 4364* Issue #168: More robust handling of replaced zip files and stale caches. 4365 Fixes ZipImportError complaining about a 'bad local header'. 4366 43673.5.1 4368----- 4369 4370* Issue #199: Restored ``install._install`` for compatibility with earlier 4371 NumPy versions. 4372 43733.5 4374--- 4375 4376* Issue #195: Follow symbolic links in find_packages (restoring behavior 4377 broken in 3.4). 4378* Issue #197: On Python 3.1, PKG-INFO is now saved in a UTF-8 encoding instead 4379 of ``sys.getpreferredencoding`` to match the behavior on Python 2.6-3.4. 4380* Issue #192: Preferred bootstrap location is now 4381 https://bootstrap.pypa.io/ez_setup.py (mirrored from former location). 4382 43833.4.4 4384----- 4385 4386* Issue #184: Correct failure where find_package over-matched packages 4387 when directory traversal isn't short-circuited. 4388 43893.4.3 4390----- 4391 4392* Issue #183: Really fix test command with Python 3.1. 4393 43943.4.2 4395----- 4396 4397* Issue #183: Fix additional regression in test command on Python 3.1. 4398 43993.4.1 4400----- 4401 4402* Issue #180: Fix regression in test command not caught by py.test-run tests. 4403 44043.4 4405--- 4406 4407* Issue #176: Add parameter to the test command to support a custom test 4408 runner: --test-runner or -r. 4409* Issue #177: Now assume most common invocation to install command on 4410 platforms/environments without stack support (issuing a warning). Setuptools 4411 now installs naturally on IronPython. Behavior on CPython should be 4412 unchanged. 4413 44143.3 4415--- 4416 4417* Add ``include`` parameter to ``setuptools.find_packages()``. 4418 44193.2 4420--- 4421 4422* BB Pull Request #39: Add support for C++ targets from Cython ``.pyx`` files. 4423* Issue #162: Update dependency on certifi to 1.0.1. 4424* Issue #164: Update dependency on wincertstore to 0.2. 4425 44263.1 4427--- 4428 4429* Issue #161: Restore Features functionality to allow backward compatibility 4430 (for Features) until the uses of that functionality is sufficiently removed. 4431 44323.0.2 4433----- 4434 4435* Correct typo in previous bugfix. 4436 44373.0.1 4438----- 4439 4440* Issue #157: Restore support for Python 2.6 in bootstrap script where 4441 ``zipfile.ZipFile`` does not yet have support for context managers. 4442 44433.0 4444--- 4445 4446* Issue #125: Prevent Subversion support from creating a ~/.subversion 4447 directory just for checking the presence of a Subversion repository. 4448* Issue #12: Namespace packages are now imported lazily. That is, the mere 4449 declaration of a namespace package in an egg on ``sys.path`` no longer 4450 causes it to be imported when ``pkg_resources`` is imported. Note that this 4451 change means that all of a namespace package's ``__init__.py`` files must 4452 include a ``declare_namespace()`` call in order to ensure that they will be 4453 handled properly at runtime. In 2.x it was possible to get away without 4454 including the declaration, but only at the cost of forcing namespace 4455 packages to be imported early, which 3.0 no longer does. 4456* Issue #148: When building (bdist_egg), setuptools no longer adds 4457 ``__init__.py`` files to namespace packages. Any packages that rely on this 4458 behavior will need to create ``__init__.py`` files and include the 4459 ``declare_namespace()``. 4460* Issue #7: Setuptools itself is now distributed as a zip archive in addition to 4461 tar archive. ez_setup.py now uses zip archive. This approach avoids the potential 4462 security vulnerabilities presented by use of tar archives in ez_setup.py. 4463 It also leverages the security features added to ZipFile.extract in Python 2.7.4. 4464* Issue #65: Removed deprecated Features functionality. 4465* BB Pull Request #28: Remove backport of ``_bytecode_filenames`` which is 4466 available in Python 2.6 and later, but also has better compatibility with 4467 Python 3 environments. 4468* Issue #156: Fix spelling of __PYVENV_LAUNCHER__ variable. 4469 44702.2 4471--- 4472 4473* Issue #141: Restored fix for allowing setup_requires dependencies to 4474 override installed dependencies during setup. 4475* Issue #128: Fixed issue where only the first dependency link was honored 4476 in a distribution where multiple dependency links were supplied. 4477 44782.1.2 4479----- 4480 4481* Issue #144: Read long_description using codecs module to avoid errors 4482 installing on systems where LANG=C. 4483 44842.1.1 4485----- 4486 4487* Issue #139: Fix regression in re_finder for CVS repos (and maybe Git repos 4488 as well). 4489 44902.1 4491--- 4492 4493* Issue #129: Suppress inspection of ``*.whl`` files when searching for files 4494 in a zip-imported file. 4495* Issue #131: Fix RuntimeError when constructing an egg fetcher. 4496 44972.0.2 4498----- 4499 4500* Fix NameError during installation with Python implementations (e.g. Jython) 4501 not containing parser module. 4502* Fix NameError in ``sdist:re_finder``. 4503 45042.0.1 4505----- 4506 4507* Issue #124: Fixed error in list detection in upload_docs. 4508 45092.0 4510--- 4511 4512* Issue #121: Exempt lib2to3 pickled grammars from DirectorySandbox. 4513* Issue #41: Dropped support for Python 2.4 and Python 2.5. Clients requiring 4514 setuptools for those versions of Python should use setuptools 1.x. 4515* Removed ``setuptools.command.easy_install.HAS_USER_SITE``. Clients 4516 expecting this boolean variable should use ``site.ENABLE_USER_SITE`` 4517 instead. 4518* Removed ``pkg_resources.ImpWrapper``. Clients that expected this class 4519 should use ``pkgutil.ImpImporter`` instead. 4520 45211.4.2 4522----- 4523 4524* Issue #116: Correct TypeError when reading a local package index on Python 4525 3. 4526 45271.4.1 4528----- 4529 4530* Issue #114: Use ``sys.getfilesystemencoding`` for decoding config in 4531 ``bdist_wininst`` distributions. 4532 4533* Issue #105 and Issue #113: Establish a more robust technique for 4534 determining the terminal encoding:: 4535 4536 1. Try ``getpreferredencoding`` 4537 2. If that returns US_ASCII or None, try the encoding from 4538 ``getdefaultlocale``. If that encoding was a "fallback" because Python 4539 could not figure it out from the environment or OS, encoding remains 4540 unresolved. 4541 3. If the encoding is resolved, then make sure Python actually implements 4542 the encoding. 4543 4. On the event of an error or unknown codec, revert to fallbacks 4544 (UTF-8 on Darwin, ASCII on everything else). 4545 5. On the encoding is 'mac-roman' on Darwin, use UTF-8 as 'mac-roman' was 4546 a bug on older Python releases. 4547 4548 On a side note, it would seem that the encoding only matters for when SVN 4549 does not yet support ``--xml`` and when getting repository and svn version 4550 numbers. The ``--xml`` technique should yield UTF-8 according to some 4551 messages on the SVN mailing lists. So if the version numbers are always 4552 7-bit ASCII clean, it may be best to only support the file parsing methods 4553 for legacy SVN releases and support for SVN without the subprocess command 4554 would simple go away as support for the older SVNs does. 4555 45561.4 4557--- 4558 4559* Issue #27: ``easy_install`` will now use credentials from .pypirc if 4560 present for connecting to the package index. 4561* BB Pull Request #21: Omit unwanted newlines in ``package_index._encode_auth`` 4562 when the username/password pair length indicates wrapping. 4563 45641.3.2 4565----- 4566 4567* Issue #99: Fix filename encoding issues in SVN support. 4568 45691.3.1 4570----- 4571 4572* Remove exuberant warning in SVN support when SVN is not used. 4573 45741.3 4575--- 4576 4577* Address security vulnerability in SSL match_hostname check as reported in 4578 Python #17997. 4579* Prefer :pypi:`backports.ssl_match_hostname` for backport 4580 implementation if present. 4581* Correct NameError in ``ssl_support`` module (``socket.error``). 4582 45831.2 4584--- 4585 4586* Issue #26: Add support for SVN 1.7. Special thanks to Philip Thiem for the 4587 contribution. 4588* Issue #93: Wheels are now distributed with every release. Note that as 4589 reported in Issue #108, as of Pip 1.4, scripts aren't installed properly 4590 from wheels. Therefore, if using Pip to install setuptools from a wheel, 4591 the ``easy_install`` command will not be available. 4592* Setuptools "natural" launcher support, introduced in 1.0, is now officially 4593 supported. 4594 45951.1.7 4596----- 4597 4598* Fixed behavior of NameError handling in 'script template (dev).py' (script 4599 launcher for 'develop' installs). 4600* ``ez_setup.py`` now ensures partial downloads are cleaned up following 4601 a failed download. 4602* Distribute #363 and Issue #55: Skip an sdist test that fails on locales 4603 other than UTF-8. 4604 46051.1.6 4606----- 4607 4608* Distribute #349: ``sandbox.execfile`` now opens the target file in binary 4609 mode, thus honoring a BOM in the file when compiled. 4610 46111.1.5 4612----- 4613 4614* Issue #69: Second attempt at fix (logic was reversed). 4615 46161.1.4 4617----- 4618 4619* Issue #77: Fix error in upload command (Python 2.4). 4620 46211.1.3 4622----- 4623 4624* Fix NameError in previous patch. 4625 46261.1.2 4627----- 4628 4629* Issue #69: Correct issue where 404 errors are returned for URLs with 4630 fragments in them (such as #egg=). 4631 46321.1.1 4633----- 4634 4635* Issue #75: Add ``--insecure`` option to ez_setup.py to accommodate 4636 environments where a trusted SSL connection cannot be validated. 4637* Issue #76: Fix AttributeError in upload command with Python 2.4. 4638 46391.1 4640--- 4641 4642* Issue #71 (Distribute #333): EasyInstall now puts less emphasis on the 4643 condition when a host is blocked via ``--allow-hosts``. 4644* Issue #72: Restored Python 2.4 compatibility in ``ez_setup.py``. 4645 46461.0 4647--- 4648 4649* Issue #60: On Windows, Setuptools supports deferring to another launcher, 4650 such as Vinay Sajip's `pylauncher <https://bitbucket.org/pypa/pylauncher>`_ 4651 (included with Python 3.3) to launch console and GUI scripts and not install 4652 its own launcher executables. This experimental functionality is currently 4653 only enabled if the ``SETUPTOOLS_LAUNCHER`` environment variable is set to 4654 "natural". In the future, this behavior may become default, but only after 4655 it has matured and seen substantial adoption. The ``SETUPTOOLS_LAUNCHER`` 4656 also accepts "executable" to force the default behavior of creating launcher 4657 executables. 4658* Issue #63: Bootstrap script (ez_setup.py) now prefers Powershell, curl, or 4659 wget for retrieving the Setuptools tarball for improved security of the 4660 install. The script will still fall back to a simple ``urlopen`` on 4661 platforms that do not have these tools. 4662* Issue #65: Deprecated the ``Features`` functionality. 4663* Issue #52: In ``VerifyingHTTPSConn``, handle a tunnelled (proxied) 4664 connection. 4665 4666Backward-Incompatible Changes 4667^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4668 4669This release includes a couple of backward-incompatible changes, but most if 4670not all users will find 1.0 a drop-in replacement for 0.9. 4671 4672* Issue #50: Normalized API of environment marker support. Specifically, 4673 removed line number and filename from SyntaxErrors when returned from 4674 ``pkg_resources.invalid_marker``. Any clients depending on the specific 4675 string representation of exceptions returned by that function may need to 4676 be updated to account for this change. 4677* Issue #50: SyntaxErrors generated by ``pkg_resources.invalid_marker`` are 4678 normalized for cross-implementation consistency. 4679* Removed ``--ignore-conflicts-at-my-risk`` and ``--delete-conflicting`` 4680 options to easy_install. These options have been deprecated since 0.6a11. 4681 46820.9.8 4683----- 4684 4685* Issue #53: Fix NameErrors in ``_vcs_split_rev_from_url``. 4686 46870.9.7 4688----- 4689 4690* Issue #49: Correct AttributeError on PyPy where a hashlib.HASH object does 4691 not have a ``.name`` attribute. 4692* Issue #34: Documentation now refers to bootstrap script in code repository 4693 referenced by bookmark. 4694* Add underscore-separated keys to environment markers (markerlib). 4695 46960.9.6 4697----- 4698 4699* Issue #44: Test failure on Python 2.4 when MD5 hash doesn't have a ``.name`` 4700 attribute. 4701 47020.9.5 4703----- 4704 4705* Python #17980: Fix security vulnerability in SSL certificate validation. 4706 47070.9.4 4708----- 4709 4710* Issue #43: Fix issue (introduced in 0.9.1) with version resolution when 4711 upgrading over other releases of Setuptools. 4712 47130.9.3 4714----- 4715 4716* Issue #42: Fix new ``AttributeError`` introduced in last fix. 4717 47180.9.2 4719----- 4720 4721* Issue #42: Fix regression where blank checksums would trigger an 4722 ``AttributeError``. 4723 47240.9.1 4725----- 4726 4727* Distribute #386: Allow other positional and keyword arguments to os.open. 4728* Corrected dependency on certifi mis-referenced in 0.9. 4729 47300.9 4731--- 4732 4733* ``package_index`` now validates hashes other than MD5 in download links. 4734 47350.8 4736--- 4737 4738* Code base now runs on Python 2.4 - Python 3.3 without Python 2to3 4739 conversion. 4740 47410.7.8 4742----- 4743 4744* Distribute #375: Yet another fix for yet another regression. 4745 47460.7.7 4747----- 4748 4749* Distribute #375: Repair AttributeError created in last release (redo). 4750* Issue #30: Added test for get_cache_path. 4751 47520.7.6 4753----- 4754 4755* Distribute #375: Repair AttributeError created in last release. 4756 47570.7.5 4758----- 4759 4760* Issue #21: Restore Python 2.4 compatibility in ``test_easy_install``. 4761* Distribute #375: Merged additional warning from Distribute 0.6.46. 4762* Now honor the environment variable 4763 ``SETUPTOOLS_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT`` in addition to the now 4764 deprecated ``DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT``. 4765 47660.7.4 4767----- 4768 4769* Issue #20: Fix comparison of parsed SVN version on Python 3. 4770 47710.7.3 4772----- 4773 4774* Issue #1: Disable installation of Windows-specific files on non-Windows systems. 4775* Use new sysconfig module with Python 2.7 or >=3.2. 4776 47770.7.2 4778----- 4779 4780* Issue #14: Use markerlib when the ``parser`` module is not available. 4781* Issue #10: ``ez_setup.py`` now uses HTTPS to download setuptools from PyPI. 4782 47830.7.1 4784----- 4785 4786* Fix NameError (Issue #3) again - broken in bad merge. 4787 47880.7 4789--- 4790 4791* Merged Setuptools and Distribute. See docs/merge.txt for details. 4792 4793Added several features that were slated for setuptools 0.6c12: 4794 4795* Index URL now defaults to HTTPS. 4796* Added experimental environment marker support. Now clients may designate a 4797 PEP-426 environment marker for "extra" dependencies. Setuptools uses this 4798 feature in ``setup.py`` for optional SSL and certificate validation support 4799 on older platforms. Based on Distutils-SIG discussions, the syntax is 4800 somewhat tentative. There should probably be a PEP with a firmer spec before 4801 the feature should be considered suitable for use. 4802* Added support for SSL certificate validation when installing packages from 4803 an HTTPS service. 4804 48050.7b4 4806----- 4807 4808* Issue #3: Fixed NameError in SSL support. 4809 48100.6.49 4811------ 4812 4813* Move warning check in ``get_cache_path`` to follow the directory creation 4814 to avoid errors when the cache path does not yet exist. Fixes the error 4815 reported in Distribute #375. 4816 48170.6.48 4818------ 4819 4820* Correct AttributeError in ``ResourceManager.get_cache_path`` introduced in 4821 0.6.46 (redo). 4822 48230.6.47 4824------ 4825 4826* Correct AttributeError in ``ResourceManager.get_cache_path`` introduced in 4827 0.6.46. 4828 48290.6.46 4830------ 4831 4832* Distribute #375: Issue a warning if the PYTHON_EGG_CACHE or otherwise 4833 customized egg cache location specifies a directory that's group- or 4834 world-writable. 4835 48360.6.45 4837------ 4838 4839* Distribute #379: ``distribute_setup.py`` now traps VersionConflict as well, 4840 restoring ability to upgrade from an older setuptools version. 4841 48420.6.44 4843------ 4844 4845* ``distribute_setup.py`` has been updated to allow Setuptools 0.7 to 4846 satisfy use_setuptools. 4847 48480.6.43 4849------ 4850 4851* Distribute #378: Restore support for Python 2.4 Syntax (regression in 0.6.42). 4852 48530.6.42 4854------ 4855 4856* External links finder no longer yields duplicate links. 4857* Distribute #337: Moved site.py to setuptools/site-patch.py (graft of very old 4858 patch from setuptools trunk which inspired PR #31). 4859 48600.6.41 4861------ 4862 4863* Distribute #27: Use public api for loading resources from zip files rather than 4864 the private method ``_zip_directory_cache``. 4865* Added a new function ``easy_install.get_win_launcher`` which may be used by 4866 third-party libraries such as buildout to get a suitable script launcher. 4867 48680.6.40 4869------ 4870 4871* Distribute #376: brought back cli.exe and gui.exe that were deleted in the 4872 previous release. 4873 48740.6.39 4875------ 4876 4877* Add support for console launchers on ARM platforms. 4878* Fix possible issue in GUI launchers where the subsystem was not supplied to 4879 the linker. 4880* Launcher build script now refactored for robustness. 4881* Distribute #375: Resources extracted from a zip egg to the file system now also 4882 check the contents of the file against the zip contents during each 4883 invocation of get_resource_filename. 4884 48850.6.38 4886------ 4887 4888* Distribute #371: The launcher manifest file is now installed properly. 4889 48900.6.37 4891------ 4892 4893* Distribute #143: Launcher scripts, including easy_install itself, are now 4894 accompanied by a manifest on 32-bit Windows environments to avoid the 4895 Installer Detection Technology and thus undesirable UAC elevation described 4896 in `this Microsoft article 4897 <http://technet.microsoft.com/en-us/library/cc709628%28WS.10%29.aspx>`_. 4898 48990.6.36 4900------ 4901 4902* BB Pull Request #35: In Buildout #64, it was reported that 4903 under Python 3, installation of distutils scripts could attempt to copy 4904 the ``__pycache__`` directory as a file, causing an error, apparently only 4905 under Windows. Easy_install now skips all directories when processing 4906 metadata scripts. 4907 49080.6.35 4909------ 4910 4911 4912Note this release is backward-incompatible with distribute 0.6.23-0.6.34 in 4913how it parses version numbers. 4914 4915* Distribute #278: Restored compatibility with distribute 0.6.22 and setuptools 4916 0.6. Updated the documentation to match more closely with the version 4917 parsing as intended in setuptools 0.6. 4918 49190.6.34 4920------ 4921 4922* Distribute #341: 0.6.33 fails to build under Python 2.4. 4923 49240.6.33 4925------ 4926 4927* Fix 2 errors with Jython 2.5. 4928* Fix 1 failure with Jython 2.5 and 2.7. 4929* Disable workaround for Jython scripts on Linux systems. 4930* Distribute #336: ``setup.py`` no longer masks failure exit code when tests fail. 4931* Fix issue in pkg_resources where try/except around a platform-dependent 4932 import would trigger hook load failures on Mercurial. See pull request 32 4933 for details. 4934* Distribute #341: Fix a ResourceWarning. 4935 49360.6.32 4937------ 4938 4939* Fix test suite with Python 2.6. 4940* Fix some DeprecationWarnings and ResourceWarnings. 4941* Distribute #335: Backed out ``setup_requires`` superseding installed requirements 4942 until regression can be addressed. 4943 49440.6.31 4945------ 4946 4947* Distribute #303: Make sure the manifest only ever contains UTF-8 in Python 3. 4948* Distribute #329: Properly close files created by tests for compatibility with 4949 Jython. 4950* Work around Jython #1980 and Jython #1981. 4951* Distribute #334: Provide workaround for packages that reference ``sys.__stdout__`` 4952 such as numpy does. This change should address pypa/virtualenv#359 as long 4953 as the system encoding is UTF-8 or the IO encoding is specified in the 4954 environment, i.e.:: 4955 4956 PYTHONIOENCODING=utf8 pip install numpy 4957 4958* Fix for encoding issue when installing from Windows executable on Python 3. 4959* Distribute #323: Allow ``setup_requires`` requirements to supersede installed 4960 requirements. Added some new keyword arguments to existing pkg_resources 4961 methods. Also had to updated how __path__ is handled for namespace packages 4962 to ensure that when a new egg distribution containing a namespace package is 4963 placed on sys.path, the entries in __path__ are found in the same order they 4964 would have been in had that egg been on the path when pkg_resources was 4965 first imported. 4966 49670.6.30 4968------ 4969 4970* Distribute #328: Clean up temporary directories in distribute_setup.py. 4971* Fix fatal bug in distribute_setup.py. 4972 49730.6.29 4974------ 4975 4976* BB Pull Request #14: Honor file permissions in zip files. 4977* Distribute #327: Merged pull request #24 to fix a dependency problem with pip. 4978* Merged pull request #23 to fix pypa/virtualenv#301. 4979* If Sphinx is installed, the ``upload_docs`` command now runs ``build_sphinx`` 4980 to produce uploadable documentation. 4981* Distribute #326: ``upload_docs`` provided mangled auth credentials under Python 3. 4982* Distribute #320: Fix check for "creatable" in distribute_setup.py. 4983* Distribute #305: Remove a warning that was triggered during normal operations. 4984* Distribute #311: Print metadata in UTF-8 independent of platform. 4985* Distribute #303: Read manifest file with UTF-8 encoding under Python 3. 4986* Distribute #301: Allow to run tests of namespace packages when using 2to3. 4987* Distribute #304: Prevent import loop in site.py under Python 3.3. 4988* Distribute #283: Re-enable scanning of ``*.pyc`` / ``*.pyo`` files on Python 3.3. 4989* Distribute #299: The develop command didn't work on Python 3, when using 2to3, 4990 as the egg link would go to the Python 2 source. Linking to the 2to3'd code 4991 in build/lib makes it work, although you will have to rebuild the module 4992 before testing it. 4993* Distribute #306: Even if 2to3 is used, we build in-place under Python 2. 4994* Distribute #307: Prints the full path when .svn/entries is broken. 4995* Distribute #313: Support for sdist subcommands (Python 2.7) 4996* Distribute #314: test_local_index() would fail an OS X. 4997* Distribute #310: Non-ascii characters in a namespace __init__.py causes errors. 4998* Distribute #218: Improved documentation on behavior of ``package_data`` and 4999 ``include_package_data``. Files indicated by ``package_data`` are now included 5000 in the manifest. 5001* ``distribute_setup.py`` now allows a ``--download-base`` argument for retrieving 5002 distribute from a specified location. 5003 50040.6.28 5005------ 5006 5007* Distribute #294: setup.py can now be invoked from any directory. 5008* Scripts are now installed honoring the umask. 5009* Added support for .dist-info directories. 5010* Distribute #283: Fix and disable scanning of ``*.pyc`` / ``*.pyo`` files on 5011 Python 3.3. 5012 50130.6.27 5014------ 5015 5016* Support current snapshots of CPython 3.3. 5017* Distribute now recognizes README.rst as a standard, default readme file. 5018* Exclude 'encodings' modules when removing modules from sys.modules. 5019 Workaround for #285. 5020* Distribute #231: Don't fiddle with system python when used with buildout 5021 (bootstrap.py) 5022 50230.6.26 5024------ 5025 5026* Distribute #183: Symlinked files are now extracted from source distributions. 5027* Distribute #227: Easy_install fetch parameters are now passed during the 5028 installation of a source distribution; now fulfillment of setup_requires 5029 dependencies will honor the parameters passed to easy_install. 5030 50310.6.25 5032------ 5033 5034* Distribute #258: Workaround a cache issue 5035* Distribute #260: distribute_setup.py now accepts the --user parameter for 5036 Python 2.6 and later. 5037* Distribute #262: package_index.open_with_auth no longer throws LookupError 5038 on Python 3. 5039* Distribute #269: AttributeError when an exception occurs reading Manifest.in 5040 on late releases of Python. 5041* Distribute #272: Prevent TypeError when namespace package names are unicode 5042 and single-install-externally-managed is used. Also fixes PIP issue 5043 449. 5044* Distribute #273: Legacy script launchers now install with Python2/3 support. 5045 50460.6.24 5047------ 5048 5049* Distribute #249: Added options to exclude 2to3 fixers 5050 50510.6.23 5052------ 5053 5054* Distribute #244: Fixed a test 5055* Distribute #243: Fixed a test 5056* Distribute #239: Fixed a test 5057* Distribute #240: Fixed a test 5058* Distribute #241: Fixed a test 5059* Distribute #237: Fixed a test 5060* Distribute #238: easy_install now uses 64bit executable wrappers on 64bit Python 5061* Distribute #208: Fixed parsed_versions, it now honors post-releases as noted in the documentation 5062* Distribute #207: Windows cli and gui wrappers pass CTRL-C to child python process 5063* Distribute #227: easy_install now passes its arguments to setup.py bdist_egg 5064* Distribute #225: Fixed a NameError on Python 2.5, 2.4 5065 50660.6.21 5067------ 5068 5069* Distribute #225: FIxed a regression on py2.4 5070 50710.6.20 5072------ 5073 5074* Distribute #135: Include url in warning when processing URLs in package_index. 5075* Distribute #212: Fix issue where easy_instal fails on Python 3 on windows installer. 5076* Distribute #213: Fix typo in documentation. 5077 50780.6.19 5079------ 5080 5081* Distribute #206: AttributeError: 'HTTPMessage' object has no attribute 'getheaders' 5082 50830.6.18 5084------ 5085 5086* Distribute #210: Fixed a regression introduced by Distribute #204 fix. 5087 50880.6.17 5089------ 5090 5091* Support 'DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT' environment 5092 variable to allow to disable installation of easy_install-${version} script. 5093* Support Python >=3.1.4 and >=3.2.1. 5094* Distribute #204: Don't try to import the parent of a namespace package in 5095 declare_namespace 5096* Distribute #196: Tolerate responses with multiple Content-Length headers 5097* Distribute #205: Sandboxing doesn't preserve working_set. Leads to setup_requires 5098 problems. 5099 51000.6.16 5101------ 5102 5103* Builds sdist gztar even on Windows (avoiding Distribute #193). 5104* Distribute #192: Fixed metadata omitted on Windows when package_dir 5105 specified with forward-slash. 5106* Distribute #195: Cython build support. 5107* Distribute #200: Issues with recognizing 64-bit packages on Windows. 5108 51090.6.15 5110------ 5111 5112* Fixed typo in bdist_egg 5113* Several issues under Python 3 has been solved. 5114* Distribute #146: Fixed missing DLL files after easy_install of windows exe package. 5115 51160.6.14 5117------ 5118 5119* Distribute #170: Fixed unittest failure. Thanks to Toshio. 5120* Distribute #171: Fixed race condition in unittests cause deadlocks in test suite. 5121* Distribute #143: Fixed a lookup issue with easy_install. 5122 Thanks to David and Zooko. 5123* Distribute #174: Fixed the edit mode when its used with setuptools itself 5124 51250.6.13 5126------ 5127 5128* Distribute #160: 2.7 gives ValueError("Invalid IPv6 URL") 5129* Distribute #150: Fixed using ~/.local even in a --no-site-packages virtualenv 5130* Distribute #163: scan index links before external links, and don't use the md5 when 5131 comparing two distributions 5132 51330.6.12 5134------ 5135 5136* Distribute #149: Fixed various failures on 2.3/2.4 5137 51380.6.11 5139------ 5140 5141* Found another case of SandboxViolation - fixed 5142* Distribute #15 and Distribute #48: Introduced a socket timeout of 15 seconds on url openings 5143* Added indexsidebar.html into MANIFEST.in 5144* Distribute #108: Fixed TypeError with Python3.1 5145* Distribute #121: Fixed --help install command trying to actually install. 5146* Distribute #112: Added an os.makedirs so that Tarek's solution will work. 5147* Distribute #133: Added --no-find-links to easy_install 5148* Added easy_install --user 5149* Distribute #100: Fixed develop --user not taking '.' in PYTHONPATH into account 5150* Distribute #134: removed spurious UserWarnings. Patch by VanLindberg 5151* Distribute #138: cant_write_to_target error when setup_requires is used. 5152* Distribute #147: respect the sys.dont_write_bytecode flag 5153 51540.6.10 5155------ 5156 5157* Reverted change made for the DistributionNotFound exception because 5158 zc.buildout uses the exception message to get the name of the 5159 distribution. 5160 51610.6.9 5162----- 5163 5164* Distribute #90: unknown setuptools version can be added in the working set 5165* Distribute #87: setupt.py doesn't try to convert distribute_setup.py anymore 5166 Initial Patch by arfrever. 5167* Distribute #89: added a side bar with a download link to the doc. 5168* Distribute #86: fixed missing sentence in pkg_resources doc. 5169* Added a nicer error message when a DistributionNotFound is raised. 5170* Distribute #80: test_develop now works with Python 3.1 5171* Distribute #93: upload_docs now works if there is an empty sub-directory. 5172* Distribute #70: exec bit on non-exec files 5173* Distribute #99: now the standalone easy_install command doesn't uses a 5174 "setup.cfg" if any exists in the working directory. It will use it 5175 only if triggered by ``install_requires`` from a setup.py call 5176 (install, develop, etc). 5177* Distribute #101: Allowing ``os.devnull`` in Sandbox 5178* Distribute #92: Fixed the "no eggs" found error with MacPort 5179 (platform.mac_ver() fails) 5180* Distribute #103: test_get_script_header_jython_workaround not run 5181 anymore under py3 with C or POSIX local. Contributed by Arfrever. 5182* Distribute #104: removed the assertion when the installation fails, 5183 with a nicer message for the end user. 5184* Distribute #100: making sure there's no SandboxViolation when 5185 the setup script patches setuptools. 5186 51870.6.8 5188----- 5189 5190* Added "check_packages" in dist. (added in Setuptools 0.6c11) 5191* Fixed the DONT_PATCH_SETUPTOOLS state. 5192 51930.6.7 5194----- 5195 5196* Distribute #58: Added --user support to the develop command 5197* Distribute #11: Generated scripts now wrap their call to the script entry point 5198 in the standard "if name == 'main'" 5199* Added the 'DONT_PATCH_SETUPTOOLS' environment variable, so virtualenv 5200 can drive an installation that doesn't patch a global setuptools. 5201* Reviewed unladen-swallow specific change from 5202 http://code.google.com/p/unladen-swallow/source/detail?spec=svn875&r=719 5203 and determined that it no longer applies. Distribute should work fine with 5204 Unladen Swallow 2009Q3. 5205* Distribute #21: Allow PackageIndex.open_url to gracefully handle all cases of a 5206 httplib.HTTPException instead of just InvalidURL and BadStatusLine. 5207* Removed virtual-python.py from this distribution and updated documentation 5208 to point to the actively maintained virtualenv instead. 5209* Distribute #64: use_setuptools no longer rebuilds the distribute egg every 5210 time it is run 5211* use_setuptools now properly respects the requested version 5212* use_setuptools will no longer try to import a distribute egg for the 5213 wrong Python version 5214* Distribute #74: no_fake should be True by default. 5215* Distribute #72: avoid a bootstrapping issue with easy_install -U 5216 52170.6.6 5218----- 5219 5220* Unified the bootstrap file so it works on both py2.x and py3k without 2to3 5221 (patch by Holger Krekel) 5222 52230.6.5 5224----- 5225 5226* Distribute #65: cli.exe and gui.exe are now generated at build time, 5227 depending on the platform in use. 5228 5229* Distribute #67: Fixed doc typo (PEP 381/PEP 382). 5230 5231* Distribute no longer shadows setuptools if we require a 0.7-series 5232 setuptools. And an error is raised when installing a 0.7 setuptools with 5233 distribute. 5234 5235* When run from within buildout, no attempt is made to modify an existing 5236 setuptools egg, whether in a shared egg directory or a system setuptools. 5237 5238* Fixed a hole in sandboxing allowing builtin file to write outside of 5239 the sandbox. 5240 52410.6.4 5242----- 5243 5244* Added the generation of ``distribute_setup_3k.py`` during the release. 5245 This closes Distribute #52. 5246 5247* Added an upload_docs command to easily upload project documentation to 5248 PyPI's https://pythonhosted.org. This close issue Distribute #56. 5249 5250* Fixed a bootstrap bug on the use_setuptools() API. 5251 52520.6.3 5253----- 5254 5255setuptools 5256^^^^^^^^^^ 5257 5258* Fixed a bunch of calls to file() that caused crashes on Python 3. 5259 5260bootstrapping 5261^^^^^^^^^^^^^ 5262 5263* Fixed a bug in sorting that caused bootstrap to fail on Python 3. 5264 52650.6.2 5266----- 5267 5268setuptools 5269^^^^^^^^^^ 5270 5271* Added Python 3 support; see docs/python3.txt. 5272 This closes Old Setuptools #39. 5273 5274* Added option to run 2to3 automatically when installing on Python 3. 5275 This closes issue Distribute #31. 5276 5277* Fixed invalid usage of requirement.parse, that broke develop -d. 5278 This closes Old Setuptools #44. 5279 5280* Fixed script launcher for 64-bit Windows. 5281 This closes Old Setuptools #2. 5282 5283* KeyError when compiling extensions. 5284 This closes Old Setuptools #41. 5285 5286bootstrapping 5287^^^^^^^^^^^^^ 5288 5289* Fixed bootstrap not working on Windows. This closes issue Distribute #49. 5290 5291* Fixed 2.6 dependencies. This closes issue Distribute #50. 5292 5293* Make sure setuptools is patched when running through easy_install 5294 This closes Old Setuptools #40. 5295 52960.6.1 5297----- 5298 5299setuptools 5300^^^^^^^^^^ 5301 5302* package_index.urlopen now catches BadStatusLine and malformed url errors. 5303 This closes Distribute #16 and Distribute #18. 5304 5305* zip_ok is now False by default. This closes Old Setuptools #33. 5306 5307* Fixed invalid URL error catching. Old Setuptools #20. 5308 5309* Fixed invalid bootstraping with easy_install installation (Distribute #40). 5310 Thanks to Florian Schulze for the help. 5311 5312* Removed buildout/bootstrap.py. A new repository will create a specific 5313 bootstrap.py script. 5314 5315 5316bootstrapping 5317^^^^^^^^^^^^^ 5318 5319* The bootstrap process leave setuptools alone if detected in the system 5320 and --root or --prefix is provided, but is not in the same location. 5321 This closes Distribute #10. 5322 53230.6 5324--- 5325 5326setuptools 5327^^^^^^^^^^ 5328 5329* Packages required at build time where not fully present at install time. 5330 This closes Distribute #12. 5331 5332* Protected against failures in tarfile extraction. This closes Distribute #10. 5333 5334* Made Jython api_tests.txt doctest compatible. This closes Distribute #7. 5335 5336* sandbox.py replaced builtin type file with builtin function open. This 5337 closes Distribute #6. 5338 5339* Immediately close all file handles. This closes Distribute #3. 5340 5341* Added compatibility with Subversion 1.6. This references Distribute #1. 5342 5343pkg_resources 5344^^^^^^^^^^^^^ 5345 5346* Avoid a call to /usr/bin/sw_vers on OSX and use the official platform API 5347 instead. Based on a patch from ronaldoussoren. This closes issue #5. 5348 5349* Fixed a SandboxViolation for mkdir that could occur in certain cases. 5350 This closes Distribute #13. 5351 5352* Allow to find_on_path on systems with tight permissions to fail gracefully. 5353 This closes Distribute #9. 5354 5355* Corrected inconsistency between documentation and code of add_entry. 5356 This closes Distribute #8. 5357 5358* Immediately close all file handles. This closes Distribute #3. 5359 5360easy_install 5361^^^^^^^^^^^^ 5362 5363* Immediately close all file handles. This closes Distribute #3. 5364 53650.6c9 5366----- 5367 5368 * Fixed a missing files problem when using Windows source distributions on 5369 non-Windows platforms, due to distutils not handling manifest file line 5370 endings correctly. 5371 5372 * Updated Pyrex support to work with Pyrex 0.9.6 and higher. 5373 5374 * Minor changes for Jython compatibility, including skipping tests that can't 5375 work on Jython. 5376 5377 * Fixed not installing eggs in ``install_requires`` if they were also used for 5378 ``setup_requires`` or ``tests_require``. 5379 5380 * Fixed not fetching eggs in ``install_requires`` when running tests. 5381 5382 * Allow ``ez_setup.use_setuptools()`` to upgrade existing setuptools 5383 installations when called from a standalone ``setup.py``. 5384 5385 * Added a warning if a namespace package is declared, but its parent package 5386 is not also declared as a namespace. 5387 5388 * Support Subversion 1.5 5389 5390 * Removed use of deprecated ``md5`` module if ``hashlib`` is available 5391 5392 * Fixed ``bdist_wininst upload`` trying to upload the ``.exe`` twice 5393 5394 * Fixed ``bdist_egg`` putting a ``native_libs.txt`` in the source package's 5395 ``.egg-info``, when it should only be in the built egg's ``EGG-INFO``. 5396 5397 * Ensure that _full_name is set on all shared libs before extensions are 5398 checked for shared lib usage. (Fixes a bug in the experimental shared 5399 library build support.) 5400 5401 * Fix to allow unpacked eggs containing native libraries to fail more 5402 gracefully under Google App Engine (with an ``ImportError`` loading the 5403 C-based module, instead of getting a ``NameError``). 5404 5405 * Fixed ``win32.exe`` support for .pth files, so unnecessary directory nesting 5406 is flattened out in the resulting egg. (There was a case-sensitivity 5407 problem that affected some distributions, notably ``pywin32``.) 5408 5409 * Prevent ``--help-commands`` and other junk from showing under Python 2.5 5410 when running ``easy_install --help``. 5411 5412 * Fixed GUI scripts sometimes not executing on Windows 5413 5414 * Fixed not picking up dependency links from recursive dependencies. 5415 5416 * Only make ``.py``, ``.dll`` and ``.so`` files executable when unpacking eggs 5417 5418 * Changes for Jython compatibility 5419 5420 * Improved error message when a requirement is also a directory name, but the 5421 specified directory is not a source package. 5422 5423 * Fixed ``--allow-hosts`` option blocking ``file:`` URLs 5424 5425 * Fixed HTTP SVN detection failing when the page title included a project 5426 name (e.g. on SourceForge-hosted SVN) 5427 5428 * Fix Jython script installation to handle ``#!`` lines better when 5429 ``sys.executable`` is a script. 5430 5431 * Removed use of deprecated ``md5`` module if ``hashlib`` is available 5432 5433 * Keep site directories (e.g. ``site-packages``) from being included in 5434 ``.pth`` files. 5435 54360.6c7 5437----- 5438 5439 * Fixed ``distutils.filelist.findall()`` crashing on broken symlinks, and 5440 ``egg_info`` command failing on new, uncommitted SVN directories. 5441 5442 * Fix import problems with nested namespace packages installed via 5443 ``--root`` or ``--single-version-externally-managed``, due to the 5444 parent package not having the child package as an attribute. 5445 5446 * ``ftp:`` download URLs now work correctly. 5447 5448 * The default ``--index-url`` is now ``https://pypi.python.org/simple``, to use 5449 the Python Package Index's new simpler (and faster!) REST API. 5450 54510.6c6 5452----- 5453 5454 * Added ``--egg-path`` option to ``develop`` command, allowing you to force 5455 ``.egg-link`` files to use relative paths (allowing them to be shared across 5456 platforms on a networked drive). 5457 5458 * Fix not building binary RPMs correctly. 5459 5460 * Fix "eggsecutables" (such as setuptools' own egg) only being runnable with 5461 bash-compatible shells. 5462 5463 * Fix ``#!`` parsing problems in Windows ``.exe`` script wrappers, when there 5464 was whitespace inside a quoted argument or at the end of the ``#!`` line 5465 (a regression introduced in 0.6c4). 5466 5467 * Fix ``test`` command possibly failing if an older version of the project 5468 being tested was installed on ``sys.path`` ahead of the test source 5469 directory. 5470 5471 * Fix ``find_packages()`` treating ``ez_setup`` and directories with ``.`` in 5472 their names as packages. 5473 5474 * EasyInstall no longer aborts the installation process if a URL it wants to 5475 retrieve can't be downloaded, unless the URL is an actual package download. 5476 Instead, it issues a warning and tries to keep going. 5477 5478 * Fixed distutils-style scripts originally built on Windows having their line 5479 endings doubled when installed on any platform. 5480 5481 * Added ``--local-snapshots-ok`` flag, to allow building eggs from projects 5482 installed using ``setup.py develop``. 5483 5484 * Fixed not HTML-decoding URLs scraped from web pages 5485 54860.6c5 5487----- 5488 5489 * Fix uploaded ``bdist_rpm`` packages being described as ``bdist_egg`` 5490 packages under Python versions less than 2.5. 5491 5492 * Fix uploaded ``bdist_wininst`` packages being described as suitable for 5493 "any" version by Python 2.5, even if a ``--target-version`` was specified. 5494 5495 * Fixed ``.dll`` files on Cygwin not having executable permissions when an egg 5496 is installed unzipped. 5497 54980.6c4 5499----- 5500 5501 * Overhauled Windows script wrapping to support ``bdist_wininst`` better. 5502 Scripts installed with ``bdist_wininst`` will always use ``#!python.exe`` or 5503 ``#!pythonw.exe`` as the executable name (even when built on non-Windows 5504 platforms!), and the wrappers will look for the executable in the script's 5505 parent directory (which should find the right version of Python). 5506 5507 * Fix ``upload`` command not uploading files built by ``bdist_rpm`` or 5508 ``bdist_wininst`` under Python 2.3 and 2.4. 5509 5510 * Add support for "eggsecutable" headers: a ``#!/bin/sh`` script that is 5511 prepended to an ``.egg`` file to allow it to be run as a script on Unix-ish 5512 platforms. (This is mainly so that setuptools itself can have a single-file 5513 installer on Unix, without doing multiple downloads, dealing with firewalls, 5514 etc.) 5515 5516 * Fix problem with empty revision numbers in Subversion 1.4 ``entries`` files 5517 5518 * Use cross-platform relative paths in ``easy-install.pth`` when doing 5519 ``develop`` and the source directory is a subdirectory of the installation 5520 target directory. 5521 5522 * Fix a problem installing eggs with a system packaging tool if the project 5523 contained an implicit namespace package; for example if the ``setup()`` 5524 listed a namespace package ``foo.bar`` without explicitly listing ``foo`` 5525 as a namespace package. 5526 5527 * Added support for HTTP "Basic" authentication using ``http://user:pass@host`` 5528 URLs. If a password-protected page contains links to the same host (and 5529 protocol), those links will inherit the credentials used to access the 5530 original page. 5531 5532 * Removed all special support for Sourceforge mirrors, as Sourceforge's 5533 mirror system now works well for non-browser downloads. 5534 5535 * Fixed not recognizing ``win32.exe`` installers that included a custom 5536 bitmap. 5537 5538 * Fixed not allowing ``os.open()`` of paths outside the sandbox, even if they 5539 are opened read-only (e.g. reading ``/dev/urandom`` for random numbers, as 5540 is done by ``os.urandom()`` on some platforms). 5541 5542 * Fixed a problem with ``.pth`` testing on Windows when ``sys.executable`` 5543 has a space in it (e.g., the user installed Python to a ``Program Files`` 5544 directory). 5545 55460.6c3 5547----- 5548 5549 * Fixed breakages caused by Subversion 1.4's new "working copy" format 5550 5551 * You can once again use "python -m easy_install" with Python 2.4 and above. 5552 5553 * Python 2.5 compatibility fixes added. 5554 55550.6c2 5556----- 5557 5558 * The ``ez_setup`` module displays the conflicting version of setuptools (and 5559 its installation location) when a script requests a version that's not 5560 available. 5561 5562 * Running ``setup.py develop`` on a setuptools-using project will now install 5563 setuptools if needed, instead of only downloading the egg. 5564 5565 * Windows script wrappers now support quoted arguments and arguments 5566 containing spaces. (Patch contributed by Jim Fulton.) 5567 5568 * The ``ez_setup.py`` script now actually works when you put a setuptools 5569 ``.egg`` alongside it for bootstrapping an offline machine. 5570 5571 * A writable installation directory on ``sys.path`` is no longer required to 5572 download and extract a source distribution using ``--editable``. 5573 5574 * Generated scripts now use ``-x`` on the ``#!`` line when ``sys.executable`` 5575 contains non-ASCII characters, to prevent deprecation warnings about an 5576 unspecified encoding when the script is run. 5577 55780.6c1 5579----- 5580 5581 * Fixed ``AttributeError`` when trying to download a ``setup_requires`` 5582 dependency when a distribution lacks a ``dependency_links`` setting. 5583 5584 * Made ``zip-safe`` and ``not-zip-safe`` flag files contain a single byte, so 5585 as to play better with packaging tools that complain about zero-length 5586 files. 5587 5588 * Made ``setup.py develop`` respect the ``--no-deps`` option, which it 5589 previously was ignoring. 5590 5591 * Support ``extra_path`` option to ``setup()`` when ``install`` is run in 5592 backward-compatibility mode. 5593 5594 * Source distributions now always include a ``setup.cfg`` file that explicitly 5595 sets ``egg_info`` options such that they produce an identical version number 5596 to the source distribution's version number. (Previously, the default 5597 version number could be different due to the use of ``--tag-date``, or if 5598 the version was overridden on the command line that built the source 5599 distribution.) 5600 5601 * EasyInstall now includes setuptools version information in the 5602 ``User-Agent`` string sent to websites it visits. 5603 56040.6b4 5605----- 5606 5607 * Fix ``register`` not obeying name/version set by ``egg_info`` command, if 5608 ``egg_info`` wasn't explicitly run first on the same command line. 5609 5610 * Added ``--no-date`` and ``--no-svn-revision`` options to ``egg_info`` 5611 command, to allow suppressing tags configured in ``setup.cfg``. 5612 5613 * Fixed redundant warnings about missing ``README`` file(s); it should now 5614 appear only if you are actually a source distribution. 5615 5616 * Fix creating Python wrappers for non-Python scripts 5617 5618 * Fix ``ftp://`` directory listing URLs from causing a crash when used in the 5619 "Home page" or "Download URL" slots on PyPI. 5620 5621 * Fix ``sys.path_importer_cache`` not being updated when an existing zipfile 5622 or directory is deleted/overwritten. 5623 5624 * Fix not recognizing HTML 404 pages from package indexes. 5625 5626 * Allow ``file://`` URLs to be used as a package index. URLs that refer to 5627 directories will use an internally-generated directory listing if there is 5628 no ``index.html`` file in the directory. 5629 5630 * Allow external links in a package index to be specified using 5631 ``rel="homepage"`` or ``rel="download"``, without needing the old 5632 PyPI-specific visible markup. 5633 5634 * Suppressed warning message about possibly-misspelled project name, if an egg 5635 or link for that project name has already been seen. 5636 56370.6b3 5638----- 5639 5640 * Fix ``bdist_egg`` not including files in subdirectories of ``.egg-info``. 5641 5642 * Allow ``.py`` files found by the ``include_package_data`` option to be 5643 automatically included. Remove duplicate data file matches if both 5644 ``include_package_data`` and ``package_data`` are used to refer to the same 5645 files. 5646 5647 * Fix local ``--find-links`` eggs not being copied except with 5648 ``--always-copy``. 5649 5650 * Fix sometimes not detecting local packages installed outside of "site" 5651 directories. 5652 5653 * Fix mysterious errors during initial ``setuptools`` install, caused by 5654 ``ez_setup`` trying to run ``easy_install`` twice, due to a code fallthru 5655 after deleting the egg from which it's running. 5656 56570.6b2 5658----- 5659 5660 * Don't install or update a ``site.py`` patch when installing to a 5661 ``PYTHONPATH`` directory with ``--multi-version``, unless an 5662 ``easy-install.pth`` file is already in use there. 5663 5664 * Construct ``.pth`` file paths in such a way that installing an egg whose 5665 name begins with ``import`` doesn't cause a syntax error. 5666 5667 * Fixed a bogus warning message that wasn't updated since the 0.5 versions. 5668 56690.6b1 5670----- 5671 5672 * Strip ``module`` from the end of compiled extension modules when computing 5673 the name of a ``.py`` loader/wrapper. (Python's import machinery ignores 5674 this suffix when searching for an extension module.) 5675 5676 * Better ambiguity management: accept ``#egg`` name/version even if processing 5677 what appears to be a correctly-named distutils file, and ignore ``.egg`` 5678 files with no ``-``, since valid Python ``.egg`` files always have a version 5679 number (but Scheme eggs often don't). 5680 5681 * Support ``file://`` links to directories in ``--find-links``, so that 5682 easy_install can build packages from local source checkouts. 5683 5684 * Added automatic retry for Sourceforge mirrors. The new download process is 5685 to first just try dl.sourceforge.net, then randomly select mirror IPs and 5686 remove ones that fail, until something works. The removed IPs stay removed 5687 for the remainder of the run. 5688 5689 * Ignore bdist_dumb distributions when looking at download URLs. 5690 56910.6a11 5692------ 5693 5694 * Added ``test_loader`` keyword to support custom test loaders 5695 5696 * Added ``setuptools.file_finders`` entry point group to allow implementing 5697 revision control plugins. 5698 5699 * Added ``--identity`` option to ``upload`` command. 5700 5701 * Added ``dependency_links`` to allow specifying URLs for ``--find-links``. 5702 5703 * Enhanced test loader to scan packages as well as modules, and call 5704 ``additional_tests()`` if present to get non-unittest tests. 5705 5706 * Support namespace packages in conjunction with system packagers, by omitting 5707 the installation of any ``__init__.py`` files for namespace packages, and 5708 adding a special ``.pth`` file to create a working package in 5709 ``sys.modules``. 5710 5711 * Made ``--single-version-externally-managed`` automatic when ``--root`` is 5712 used, so that most system packagers won't require special support for 5713 setuptools. 5714 5715 * Fixed ``setup_requires``, ``tests_require``, etc. not using ``setup.cfg`` or 5716 other configuration files for their option defaults when installing, and 5717 also made the install use ``--multi-version`` mode so that the project 5718 directory doesn't need to support .pth files. 5719 5720 * ``MANIFEST.in`` is now forcibly closed when any errors occur while reading 5721 it. Previously, the file could be left open and the actual error would be 5722 masked by problems trying to remove the open file on Windows systems. 5723 5724 * Process ``dependency_links.txt`` if found in a distribution, by adding the 5725 URLs to the list for scanning. 5726 5727 * Use relative paths in ``.pth`` files when eggs are being installed to the 5728 same directory as the ``.pth`` file. This maximizes portability of the 5729 target directory when building applications that contain eggs. 5730 5731 * Added ``easy_install-N.N`` script(s) for convenience when using multiple 5732 Python versions. 5733 5734 * Added automatic handling of installation conflicts. Eggs are now shifted to 5735 the front of sys.path, in an order consistent with where they came from, 5736 making EasyInstall seamlessly co-operate with system package managers. 5737 5738 The ``--delete-conflicting`` and ``--ignore-conflicts-at-my-risk`` options 5739 are now no longer necessary, and will generate warnings at the end of a 5740 run if you use them. 5741 5742 * Don't recursively traverse subdirectories given to ``--find-links``. 5743 57440.6a10 5745------ 5746 5747 * Fixed the ``develop`` command ignoring ``--find-links``. 5748 5749 * Added exhaustive testing of the install directory, including a spawn test 5750 for ``.pth`` file support, and directory writability/existence checks. This 5751 should virtually eliminate the need to set or configure ``--site-dirs``. 5752 5753 * Added ``--prefix`` option for more do-what-I-mean-ishness in the absence of 5754 RTFM-ing. :) 5755 5756 * Enhanced ``PYTHONPATH`` support so that you don't have to put any eggs on it 5757 manually to make it work. ``--multi-version`` is no longer a silent 5758 default; you must explicitly use it if installing to a non-PYTHONPATH, 5759 non-"site" directory. 5760 5761 * Expand ``$variables`` used in the ``--site-dirs``, ``--build-directory``, 5762 ``--install-dir``, and ``--script-dir`` options, whether on the command line 5763 or in configuration files. 5764 5765 * Improved SourceForge mirror processing to work faster and be less affected 5766 by transient HTML changes made by SourceForge. 5767 5768 * PyPI searches now use the exact spelling of requirements specified on the 5769 command line or in a project's ``install_requires``. Previously, a 5770 normalized form of the name was used, which could lead to unnecessary 5771 full-index searches when a project's name had an underscore (``_``) in it. 5772 5773 * EasyInstall can now download bare ``.py`` files and wrap them in an egg, 5774 as long as you include an ``#egg=name-version`` suffix on the URL, or if 5775 the ``.py`` file is listed as the "Download URL" on the project's PyPI page. 5776 This allows third parties to "package" trivial Python modules just by 5777 linking to them (e.g. from within their own PyPI page or download links 5778 page). 5779 5780 * The ``--always-copy`` option now skips "system" and "development" eggs since 5781 they can't be reliably copied. Note that this may cause EasyInstall to 5782 choose an older version of a package than what you expected, or it may cause 5783 downloading and installation of a fresh version of what's already installed. 5784 5785 * The ``--find-links`` option previously scanned all supplied URLs and 5786 directories as early as possible, but now only directories and direct 5787 archive links are scanned immediately. URLs are not retrieved unless a 5788 package search was already going to go online due to a package not being 5789 available locally, or due to the use of the ``--update`` or ``-U`` option. 5790 5791 * Fixed the annoying ``--help-commands`` wart. 5792 57930.6a9 5794----- 5795 5796 * The ``sdist`` command no longer uses the traditional ``MANIFEST`` file to 5797 create source distributions. ``MANIFEST.in`` is still read and processed, 5798 as are the standard defaults and pruning. But the manifest is built inside 5799 the project's ``.egg-info`` directory as ``SOURCES.txt``, and it is rebuilt 5800 every time the ``egg_info`` command is run. 5801 5802 * Added the ``include_package_data`` keyword to ``setup()``, allowing you to 5803 automatically include any package data listed in revision control or 5804 ``MANIFEST.in`` 5805 5806 * Added the ``exclude_package_data`` keyword to ``setup()``, allowing you to 5807 trim back files included via the ``package_data`` and 5808 ``include_package_data`` options. 5809 5810 * Fixed ``--tag-svn-revision`` not working when run from a source 5811 distribution. 5812 5813 * Added warning for namespace packages with missing ``declare_namespace()`` 5814 5815 * Added ``tests_require`` keyword to ``setup()``, so that e.g. packages 5816 requiring ``nose`` to run unit tests can make this dependency optional 5817 unless the ``test`` command is run. 5818 5819 * Made all commands that use ``easy_install`` respect its configuration 5820 options, as this was causing some problems with ``setup.py install``. 5821 5822 * Added an ``unpack_directory()`` driver to ``setuptools.archive_util``, so 5823 that you can process a directory tree through a processing filter as if it 5824 were a zipfile or tarfile. 5825 5826 * Added an internal ``install_egg_info`` command to use as part of old-style 5827 ``install`` operations, that installs an ``.egg-info`` directory with the 5828 package. 5829 5830 * Added a ``--single-version-externally-managed`` option to the ``install`` 5831 command so that you can more easily wrap a "flat" egg in a system package. 5832 5833 * Enhanced ``bdist_rpm`` so that it installs single-version eggs that 5834 don't rely on a ``.pth`` file. The ``--no-egg`` option has been removed, 5835 since all RPMs are now built in a more backwards-compatible format. 5836 5837 * Support full roundtrip translation of eggs to and from ``bdist_wininst`` 5838 format. Running ``bdist_wininst`` on a setuptools-based package wraps the 5839 egg in an .exe that will safely install it as an egg (i.e., with metadata 5840 and entry-point wrapper scripts), and ``easy_install`` can turn the .exe 5841 back into an ``.egg`` file or directory and install it as such. 5842 5843 * Fixed ``.pth`` file processing picking up nested eggs (i.e. ones inside 5844 "baskets") when they weren't explicitly listed in the ``.pth`` file. 5845 5846 * If more than one URL appears to describe the exact same distribution, prefer 5847 the shortest one. This helps to avoid "table of contents" CGI URLs like the 5848 ones on effbot.org. 5849 5850 * Quote arguments to python.exe (including python's path) to avoid problems 5851 when Python (or a script) is installed in a directory whose name contains 5852 spaces on Windows. 5853 5854 * Support full roundtrip translation of eggs to and from ``bdist_wininst`` 5855 format. Running ``bdist_wininst`` on a setuptools-based package wraps the 5856 egg in an .exe that will safely install it as an egg (i.e., with metadata 5857 and entry-point wrapper scripts), and ``easy_install`` can turn the .exe 5858 back into an ``.egg`` file or directory and install it as such. 5859 58600.6a8 5861----- 5862 5863 * Fixed some problems building extensions when Pyrex was installed, especially 5864 with Python 2.4 and/or packages using SWIG. 5865 5866 * Made ``develop`` command accept all the same options as ``easy_install``, 5867 and use the ``easy_install`` command's configuration settings as defaults. 5868 5869 * Made ``egg_info --tag-svn-revision`` fall back to extracting the revision 5870 number from ``PKG-INFO`` in case it is being run on a source distribution of 5871 a snapshot taken from a Subversion-based project. 5872 5873 * Automatically detect ``.dll``, ``.so`` and ``.dylib`` files that are being 5874 installed as data, adding them to ``native_libs.txt`` automatically. 5875 5876 * Fixed some problems with fresh checkouts of projects that don't include 5877 ``.egg-info/PKG-INFO`` under revision control and put the project's source 5878 code directly in the project directory. If such a package had any 5879 requirements that get processed before the ``egg_info`` command can be run, 5880 the setup scripts would fail with a "Missing 'Version:' header and/or 5881 PKG-INFO file" error, because the egg runtime interpreted the unbuilt 5882 metadata in a directory on ``sys.path`` (i.e. the current directory) as 5883 being a corrupted egg. Setuptools now monkeypatches the distribution 5884 metadata cache to pretend that the egg has valid version information, until 5885 it has a chance to make it actually be so (via the ``egg_info`` command). 5886 5887 * Update for changed SourceForge mirror format 5888 5889 * Fixed not installing dependencies for some packages fetched via Subversion 5890 5891 * Fixed dependency installation with ``--always-copy`` not using the same 5892 dependency resolution procedure as other operations. 5893 5894 * Fixed not fully removing temporary directories on Windows, if a Subversion 5895 checkout left read-only files behind 5896 5897 * Fixed some problems building extensions when Pyrex was installed, especially 5898 with Python 2.4 and/or packages using SWIG. 5899 59000.6a7 5901----- 5902 5903 * Fixed not being able to install Windows script wrappers using Python 2.3 5904 59050.6a6 5906----- 5907 5908 * Added support for "traditional" PYTHONPATH-based non-root installation, and 5909 also the convenient ``virtual-python.py`` script, based on a contribution 5910 by Ian Bicking. The setuptools egg now contains a hacked ``site`` module 5911 that makes the PYTHONPATH-based approach work with .pth files, so that you 5912 can get the full EasyInstall feature set on such installations. 5913 5914 * Added ``--no-deps`` and ``--allow-hosts`` options. 5915 5916 * Improved Windows ``.exe`` script wrappers so that the script can have the 5917 same name as a module without confusing Python. 5918 5919 * Changed dependency processing so that it's breadth-first, allowing a 5920 depender's preferences to override those of a dependee, to prevent conflicts 5921 when a lower version is acceptable to the dependee, but not the depender. 5922 Also, ensure that currently installed/selected packages aren't given 5923 precedence over ones desired by a package being installed, which could 5924 cause conflict errors. 5925 59260.6a5 5927----- 5928 5929 * Fixed missing gui/cli .exe files in distribution. Fixed bugs in tests. 5930 59310.6a3 5932----- 5933 5934 * Added ``gui_scripts`` entry point group to allow installing GUI scripts 5935 on Windows and other platforms. (The special handling is only for Windows; 5936 other platforms are treated the same as for ``console_scripts``.) 5937 5938 * Improved error message when trying to use old ways of running 5939 ``easy_install``. Removed the ability to run via ``python -m`` or by 5940 running ``easy_install.py``; ``easy_install`` is the command to run on all 5941 supported platforms. 5942 5943 * Improved wrapper script generation and runtime initialization so that a 5944 VersionConflict doesn't occur if you later install a competing version of a 5945 needed package as the default version of that package. 5946 5947 * Fixed a problem parsing version numbers in ``#egg=`` links. 5948 59490.6a2 5950----- 5951 5952 * Added ``console_scripts`` entry point group to allow installing scripts 5953 without the need to create separate script files. On Windows, console 5954 scripts get an ``.exe`` wrapper so you can just type their name. On other 5955 platforms, the scripts are written without a file extension. 5956 5957 * EasyInstall can now install "console_scripts" defined by packages that use 5958 ``setuptools`` and define appropriate entry points. On Windows, console 5959 scripts get an ``.exe`` wrapper so you can just type their name. On other 5960 platforms, the scripts are installed without a file extension. 5961 5962 * Using ``python -m easy_install`` or running ``easy_install.py`` is now 5963 DEPRECATED, since an ``easy_install`` wrapper is now available on all 5964 platforms. 5965 59660.6a1 5967----- 5968 5969 * Added support for building "old-style" RPMs that don't install an egg for 5970 the target package, using a ``--no-egg`` option. 5971 5972 * The ``build_ext`` command now works better when using the ``--inplace`` 5973 option and multiple Python versions. It now makes sure that all extensions 5974 match the current Python version, even if newer copies were built for a 5975 different Python version. 5976 5977 * The ``upload`` command no longer attaches an extra ``.zip`` when uploading 5978 eggs, as PyPI now supports egg uploads without trickery. 5979 5980 * The ``ez_setup`` script/module now displays a warning before downloading 5981 the setuptools egg, and attempts to check the downloaded egg against an 5982 internal MD5 checksum table. 5983 5984 * Fixed the ``--tag-svn-revision`` option of ``egg_info`` not finding the 5985 latest revision number; it was using the revision number of the directory 5986 containing ``setup.py``, not the highest revision number in the project. 5987 5988 * Added ``eager_resources`` setup argument 5989 5990 * The ``sdist`` command now recognizes Subversion "deleted file" entries and 5991 does not include them in source distributions. 5992 5993 * ``setuptools`` now embeds itself more thoroughly into the distutils, so that 5994 other distutils extensions (e.g. py2exe, py2app) will subclass setuptools' 5995 versions of things, rather than the native distutils ones. 5996 5997 * Added ``entry_points`` and ``setup_requires`` arguments to ``setup()``; 5998 ``setup_requires`` allows you to automatically find and download packages 5999 that are needed in order to *build* your project (as opposed to running it). 6000 6001 * ``setuptools`` now finds its commands, ``setup()`` argument validators, and 6002 metadata writers using entry points, so that they can be extended by 6003 third-party packages. See `Creating distutils Extensions 6004 <https://setuptools.pypa.io/en/latest/setuptools.html#creating-distutils-extensions>`_ 6005 for more details. 6006 6007 * The vestigial ``depends`` command has been removed. It was never finished 6008 or documented, and never would have worked without EasyInstall - which it 6009 pre-dated and was never compatible with. 6010 6011 * EasyInstall now does MD5 validation of downloads from PyPI, or from any link 6012 that has an "#md5=..." trailer with a 32-digit lowercase hex md5 digest. 6013 6014 * EasyInstall now handles symlinks in target directories by removing the link, 6015 rather than attempting to overwrite the link's destination. This makes it 6016 easier to set up an alternate Python "home" directory (as described in 6017 the Non-Root Installation section of the docs). 6018 6019 * Added support for handling MacOS platform information in ``.egg`` filenames, 6020 based on a contribution by Kevin Dangoor. You may wish to delete and 6021 reinstall any eggs whose filename includes "darwin" and "Power_Macintosh", 6022 because the format for this platform information has changed so that minor 6023 OS X upgrades (such as 10.4.1 to 10.4.2) do not cause eggs built with a 6024 previous OS version to become obsolete. 6025 6026 * easy_install's dependency processing algorithms have changed. When using 6027 ``--always-copy``, it now ensures that dependencies are copied too. When 6028 not using ``--always-copy``, it tries to use a single resolution loop, 6029 rather than recursing. 6030 6031 * Fixed installing extra ``.pyc`` or ``.pyo`` files for scripts with ``.py`` 6032 extensions. 6033 6034 * Added ``--site-dirs`` option to allow adding custom "site" directories. 6035 Made ``easy-install.pth`` work in platform-specific alternate site 6036 directories (e.g. ``~/Library/Python/2.x/site-packages`` on Mac OS X). 6037 6038 * If you manually delete the current version of a package, the next run of 6039 EasyInstall against the target directory will now remove the stray entry 6040 from the ``easy-install.pth`` file. 6041 6042 * EasyInstall now recognizes URLs with a ``#egg=project_name`` fragment ID 6043 as pointing to the named project's source checkout. Such URLs have a lower 6044 match precedence than any other kind of distribution, so they'll only be 6045 used if they have a higher version number than any other available 6046 distribution, or if you use the ``--editable`` option. The ``#egg`` 6047 fragment can contain a version if it's formatted as ``#egg=proj-ver``, 6048 where ``proj`` is the project name, and ``ver`` is the version number. You 6049 *must* use the format for these values that the ``bdist_egg`` command uses; 6050 i.e., all non-alphanumeric runs must be condensed to single underscore 6051 characters. 6052 6053 * Added the ``--editable`` option; see Editing and Viewing Source Packages 6054 in the docs. Also, slightly changed the behavior of the 6055 ``--build-directory`` option. 6056 6057 * Fixed the setup script sandbox facility not recognizing certain paths as 6058 valid on case-insensitive platforms. 6059 60600.5a12 6061------ 6062 6063 * The zip-safety scanner now checks for modules that might be used with 6064 ``python -m``, and marks them as unsafe for zipping, since Python 2.4 can't 6065 handle ``-m`` on zipped modules. 6066 6067 * Fix ``python -m easy_install`` not working due to setuptools being installed 6068 as a zipfile. Update safety scanner to check for modules that might be used 6069 as ``python -m`` scripts. 6070 6071 * Misc. fixes for win32.exe support, including changes to support Python 2.4's 6072 changed ``bdist_wininst`` format. 6073 60740.5a11 6075------ 6076 6077 * Fix breakage of the "develop" command that was caused by the addition of 6078 ``--always-unzip`` to the ``easy_install`` command. 6079 60800.5a10 6081------ 6082 6083 * Put the ``easy_install`` module back in as a module, as it's needed for 6084 ``python -m`` to run it! 6085 6086 * Allow ``--find-links/-f`` to accept local directories or filenames as well 6087 as URLs. 6088 60890.5a9 6090----- 6091 6092 * Include ``svn:externals`` directories in source distributions as well as 6093 normal subversion-controlled files and directories. 6094 6095 * Added ``exclude=patternlist`` option to ``setuptools.find_packages()`` 6096 6097 * Changed --tag-svn-revision to include an "r" in front of the revision number 6098 for better readability. 6099 6100 * Added ability to build eggs without including source files (except for any 6101 scripts, of course), using the ``--exclude-source-files`` option to 6102 ``bdist_egg``. 6103 6104 * ``setup.py install`` now automatically detects when an "unmanaged" package 6105 or module is going to be on ``sys.path`` ahead of a package being installed, 6106 thereby preventing the newer version from being imported. If this occurs, 6107 a warning message is output to ``sys.stderr``, but installation proceeds 6108 anyway. The warning message informs the user what files or directories 6109 need deleting, and advises them they can also use EasyInstall (with the 6110 ``--delete-conflicting`` option) to do it automatically. 6111 6112 * The ``egg_info`` command now adds a ``top_level.txt`` file to the metadata 6113 directory that lists all top-level modules and packages in the distribution. 6114 This is used by the ``easy_install`` command to find possibly-conflicting 6115 "unmanaged" packages when installing the distribution. 6116 6117 * Added ``zip_safe`` and ``namespace_packages`` arguments to ``setup()``. 6118 Added package analysis to determine zip-safety if the ``zip_safe`` flag 6119 is not given, and advise the author regarding what code might need changing. 6120 6121 * Fixed the swapped ``-d`` and ``-b`` options of ``bdist_egg``. 6122 6123 * EasyInstall now automatically detects when an "unmanaged" package or 6124 module is going to be on ``sys.path`` ahead of a package you're installing, 6125 thereby preventing the newer version from being imported. By default, it 6126 will abort installation to alert you of the problem, but there are also 6127 new options (``--delete-conflicting`` and ``--ignore-conflicts-at-my-risk``) 6128 available to change the default behavior. (Note: this new feature doesn't 6129 take effect for egg files that were built with older ``setuptools`` 6130 versions, because they lack the new metadata file required to implement it.) 6131 6132 * The ``easy_install`` distutils command now uses ``DistutilsError`` as its 6133 base error type for errors that should just issue a message to stderr and 6134 exit the program without a traceback. 6135 6136 * EasyInstall can now be given a path to a directory containing a setup 6137 script, and it will attempt to build and install the package there. 6138 6139 * EasyInstall now performs a safety analysis on module contents to determine 6140 whether a package is likely to run in zipped form, and displays 6141 information about what modules may be doing introspection that would break 6142 when running as a zipfile. 6143 6144 * Added the ``--always-unzip/-Z`` option, to force unzipping of packages that 6145 would ordinarily be considered safe to unzip, and changed the meaning of 6146 ``--zip-ok/-z`` to "always leave everything zipped". 6147 61480.5a8 6149----- 6150 6151 * The "egg_info" command now always sets the distribution metadata to "safe" 6152 forms of the distribution name and version, so that distribution files will 6153 be generated with parseable names (i.e., ones that don't include '-' in the 6154 name or version). Also, this means that if you use the various ``--tag`` 6155 options of "egg_info", any distributions generated will use the tags in the 6156 version, not just egg distributions. 6157 6158 * Added support for defining command aliases in distutils configuration files, 6159 under the "[aliases]" section. To prevent recursion and to allow aliases to 6160 call the command of the same name, a given alias can be expanded only once 6161 per command-line invocation. You can define new aliases with the "alias" 6162 command, either for the local, global, or per-user configuration. 6163 6164 * Added "rotate" command to delete old distribution files, given a set of 6165 patterns to match and the number of files to keep. (Keeps the most 6166 recently-modified distribution files matching each pattern.) 6167 6168 * Added "saveopts" command that saves all command-line options for the current 6169 invocation to the local, global, or per-user configuration file. Useful for 6170 setting defaults without having to hand-edit a configuration file. 6171 6172 * Added a "setopt" command that sets a single option in a specified distutils 6173 configuration file. 6174 6175 * There is now a separate documentation page for setuptools; revision 6176 history that's not specific to EasyInstall has been moved to that page. 6177 61780.5a7 6179----- 6180 6181 * Added "upload" support for egg and source distributions, including a bug 6182 fix for "upload" and a temporary workaround for lack of .egg support in 6183 PyPI. 6184 61850.5a6 6186----- 6187 6188 * Beefed up the "sdist" command so that if you don't have a MANIFEST.in, it 6189 will include all files under revision control (CVS or Subversion) in the 6190 current directory, and it will regenerate the list every time you create a 6191 source distribution, not just when you tell it to. This should make the 6192 default "do what you mean" more often than the distutils' default behavior 6193 did, while still retaining the old behavior in the presence of MANIFEST.in. 6194 6195 * Fixed the "develop" command always updating .pth files, even if you 6196 specified ``-n`` or ``--dry-run``. 6197 6198 * Slightly changed the format of the generated version when you use 6199 ``--tag-build`` on the "egg_info" command, so that you can make tagged 6200 revisions compare *lower* than the version specified in setup.py (e.g. by 6201 using ``--tag-build=dev``). 6202 62030.5a5 6204----- 6205 6206 * Added ``develop`` command to ``setuptools``-based packages. This command 6207 installs an ``.egg-link`` pointing to the package's source directory, and 6208 script wrappers that ``execfile()`` the source versions of the package's 6209 scripts. This lets you put your development checkout(s) on sys.path without 6210 having to actually install them. (To uninstall the link, use 6211 use ``setup.py develop --uninstall``.) 6212 6213 * Added ``egg_info`` command to ``setuptools``-based packages. This command 6214 just creates or updates the "projectname.egg-info" directory, without 6215 building an egg. (It's used by the ``bdist_egg``, ``test``, and ``develop`` 6216 commands.) 6217 6218 * Enhanced the ``test`` command so that it doesn't install the package, but 6219 instead builds any C extensions in-place, updates the ``.egg-info`` 6220 metadata, adds the source directory to ``sys.path``, and runs the tests 6221 directly on the source. This avoids an "unmanaged" installation of the 6222 package to ``site-packages`` or elsewhere. 6223 6224 * Made ``easy_install`` a standard ``setuptools`` command, moving it from 6225 the ``easy_install`` module to ``setuptools.command.easy_install``. Note 6226 that if you were importing or extending it, you must now change your imports 6227 accordingly. ``easy_install.py`` is still installed as a script, but not as 6228 a module. 6229 62300.5a4 6231----- 6232 6233 * Setup scripts using setuptools can now list their dependencies directly in 6234 the setup.py file, without having to manually create a ``depends.txt`` file. 6235 The ``install_requires`` and ``extras_require`` arguments to ``setup()`` 6236 are used to create a dependencies file automatically. If you are manually 6237 creating ``depends.txt`` right now, please switch to using these setup 6238 arguments as soon as practical, because ``depends.txt`` support will be 6239 removed in the 0.6 release cycle. For documentation on the new arguments, 6240 see the ``setuptools.dist.Distribution`` class. 6241 6242 * Setup scripts using setuptools now always install using ``easy_install`` 6243 internally, for ease of uninstallation and upgrading. 6244 6245 * Added ``--always-copy/-a`` option to always copy needed packages to the 6246 installation directory, even if they're already present elsewhere on 6247 sys.path. (In previous versions, this was the default behavior, but now 6248 you must request it.) 6249 6250 * Added ``--upgrade/-U`` option to force checking PyPI for latest available 6251 version(s) of all packages requested by name and version, even if a matching 6252 version is available locally. 6253 6254 * Added automatic installation of dependencies declared by a distribution 6255 being installed. These dependencies must be listed in the distribution's 6256 ``EGG-INFO`` directory, so the distribution has to have declared its 6257 dependencies by using setuptools. If a package has requirements it didn't 6258 declare, you'll still have to deal with them yourself. (E.g., by asking 6259 EasyInstall to find and install them.) 6260 6261 * Added the ``--record`` option to ``easy_install`` for the benefit of tools 6262 that run ``setup.py install --record=filename`` on behalf of another 6263 packaging system.) 6264 62650.5a3 6266----- 6267 6268 * Fixed not setting script permissions to allow execution. 6269 6270 * Improved sandboxing so that setup scripts that want a temporary directory 6271 (e.g. pychecker) can still run in the sandbox. 6272 62730.5a2 6274----- 6275 6276 * Fix stupid stupid refactoring-at-the-last-minute typos. :( 6277 62780.5a1 6279----- 6280 6281 * Added support for "self-installation" bootstrapping. Packages can now 6282 include ``ez_setup.py`` in their source distribution, and add the following 6283 to their ``setup.py``, in order to automatically bootstrap installation of 6284 setuptools as part of their setup process:: 6285 6286 from ez_setup import use_setuptools 6287 use_setuptools() 6288 6289 from setuptools import setup 6290 # etc... 6291 6292 * Added support for converting ``.win32.exe`` installers to eggs on the fly. 6293 EasyInstall will now recognize such files by name and install them. 6294 6295 * Fixed a problem with picking the "best" version to install (versions were 6296 being sorted as strings, rather than as parsed values) 6297 62980.4a4 6299----- 6300 6301 * Added support for the distutils "verbose/quiet" and "dry-run" options, as 6302 well as the "optimize" flag. 6303 6304 * Support downloading packages that were uploaded to PyPI (by scanning all 6305 links on package pages, not just the homepage/download links). 6306 63070.4a3 6308----- 6309 6310 * Add progress messages to the search/download process so that you can tell 6311 what URLs it's reading to find download links. (Hopefully, this will help 6312 people report out-of-date and broken links to package authors, and to tell 6313 when they've asked for a package that doesn't exist.) 6314 63150.4a2 6316----- 6317 6318 * Added ``ez_setup.py`` installer/bootstrap script to make initial setuptools 6319 installation easier, and to allow distributions using setuptools to avoid 6320 having to include setuptools in their source distribution. 6321 6322 * All downloads are now managed by the ``PackageIndex`` class (which is now 6323 subclassable and replaceable), so that embedders can more easily override 6324 download logic, give download progress reports, etc. The class has also 6325 been moved to the new ``setuptools.package_index`` module. 6326 6327 * The ``Installer`` class no longer handles downloading, manages a temporary 6328 directory, or tracks the ``zip_ok`` option. Downloading is now handled 6329 by ``PackageIndex``, and ``Installer`` has become an ``easy_install`` 6330 command class based on ``setuptools.Command``. 6331 6332 * There is a new ``setuptools.sandbox.run_setup()`` API to invoke a setup 6333 script in a directory sandbox, and a new ``setuptools.archive_util`` module 6334 with an ``unpack_archive()`` API. These were split out of EasyInstall to 6335 allow reuse by other tools and applications. 6336 6337 * ``setuptools.Command`` now supports reinitializing commands using keyword 6338 arguments to set/reset options. Also, ``Command`` subclasses can now set 6339 their ``command_consumes_arguments`` attribute to ``True`` in order to 6340 receive an ``args`` option containing the rest of the command line. 6341 6342 * Added support for installing scripts 6343 6344 * Added support for setting options via distutils configuration files, and 6345 using distutils' default options as a basis for EasyInstall's defaults. 6346 6347 * Renamed ``--scan-url/-s`` to ``--find-links/-f`` to free up ``-s`` for the 6348 script installation directory option. 6349 6350 * Use ``urllib2`` instead of ``urllib``, to allow use of ``https:`` URLs if 6351 Python includes SSL support. 6352 63530.4a1 6354----- 6355 6356 * Added ``--scan-url`` and ``--index-url`` options, to scan download pages 6357 and search PyPI for needed packages. 6358 63590.3a4 6360----- 6361 6362 * Restrict ``--build-directory=DIR/-b DIR`` option to only be used with single 6363 URL installs, to avoid running the wrong setup.py. 6364 63650.3a3 6366----- 6367 6368 * Added ``--build-directory=DIR/-b DIR`` option. 6369 6370 * Added "installation report" that explains how to use 'require()' when doing 6371 a multiversion install or alternate installation directory. 6372 6373 * Added SourceForge mirror auto-select (Contributed by Ian Bicking) 6374 6375 * Added "sandboxing" that stops a setup script from running if it attempts to 6376 write to the filesystem outside of the build area 6377 6378 * Added more workarounds for packages with quirky ``install_data`` hacks 6379 63800.3a2 6381----- 6382 6383 * Added new options to ``bdist_egg`` to allow tagging the egg's version number 6384 with a subversion revision number, the current date, or an explicit tag 6385 value. Run ``setup.py bdist_egg --help`` to get more information. 6386 6387 * Added subversion download support for ``svn:`` and ``svn+`` URLs, as well as 6388 automatic recognition of HTTP subversion URLs (Contributed by Ian Bicking) 6389 6390 * Misc. bug fixes 6391 63920.3a1 6393----- 6394 6395 * Initial release. 6396 6397