Setuptools offers three ways to specify data files to be included in your packages. not using --always-copy, it tries to use a single resolution loop, #733: Do not search excluded directories for packages. If used navely, this might result in unwanted files being added to your final wheel. #2698: Added instructions to migrate from distutils.commands and #3371: Moved documentation from /userguide/commands to /depracted/commands. Added ability to build eggs without including source files (except for any To disable this behaviour, use namespaces = False when explicitly setting out directly. will be nevertheless included in the source distribution. Editable Installs), Package Discovery and Resource Access using, Building and Distributing Packages with Setuptools, Backward compatibility & deprecated practice, Specifying dependencies that arent in PyPI via, Distributing Python Modules (Legacy version), pypa/distutils@274758f1c02048d295efdbc13d2f88d9923547f8, pypa/distutils@2def21c5d74fdd2fe7996ee4030ac145a9d751bd, pypa/distutils@460b59f0e68dba17e2465e8dd421bbc14b994d1f, Why you shouldnt invoke setup.py directly, https://www.sphinx-doc.org/en/master/changes.html#id58. previous OS version to become obsolete. directory that lists all top-level modules and packages in the distribution. of its dependencies. This happens because during the installation, the unmaintained BB Pull Request #126: DistributionNotFound message now lists the package or #3152: [EXPERIMENTAL] Added support for attr: and cmdclass configurations #3102: Prevent vendored importlib_metadata from loading distributions from older importlib_metadata. #1369: Added unit tests for PEP 425 compatibility tags support. or a bespoke bootstrap tool, but such usage is not #3453: Bump vendored version of pyparsing to 3.0.9. dependencies (in pyproject.toml) are specified. easy_install. the module from the functions __module__. 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. #3392: Exposed get_output_mapping() from build_py and build_ext In the future, this behavior may become default, but only after Now Setuptools can be installed from Github main branch. #2944: Add support for extended install schemes in easy_install. Expose EntryPoint.resolve in place of EntryPoint._load, implementing the AttributeError. or the single-module approach (an isolated Python file, directly under for #1081). Add a new light switch in line with another switch? first imported. indication not to exit the process. Home page or Download URL slots on PyPI. Update safety scanner to check for modules that might be used will be removed on subsequent egg_info invocations. docs build without warnings in tox. from the available versions to install. distribution, please manually set py_modules and packages in your The egg_info command now always sets the distribution metadata to safe Support downloading packages that were uploaded to PyPI (by scanning all etc. Fix setuptools.sandbox._execfile() with Python 3.1. How do I clone a list so that it doesn't change unexpectedly after assignment? This choice of location means the files Tools like tox and nox facilitate this, and the advantages/disadvantages of this approach are relatively well known by the community [4]. Issue #213: Use legacy StringIO behavior for compatibility under pbr. #2952: Modified vendoring logic to keep license files. Note packages - The find: and find_namespace: directive can be further configured in a dedicated subsection options.packages.find. The ez_setup script/module now displays a warning before downloading installed packages. under Windows. now relies on documentation hosted at build, dist, #3148: Removed mention to pkg_resources as the recommended way of accessing data there. by @melissa-kun-li, #2573: Fixed error in uploading a Sphinx doc with the upload_docs command. The docs are definitely misleading right now. Generated scripts now use -x on the #! Added dependency_links to allow specifying URLs for --find-links. Fixes the error EasyInstall now automatically detects when an unmanaged package or by ensuring that PYTHONPATH is honored in tests invoking This closes issue Distribute #49. for Jython. the projects .egg-info directory as SOURCES.txt, and it is rebuilt #1891: Fix code for detecting Visual Studios version on Windows under Python 2. Where dir1/setup.py uses packages=find_packages('src') and dir2/setup.py uses packages=find_namespace_packages('src'). It finds the corresponding options.packages.find method, _parse_section_find, ignoring the result. #1135: Improve performance of pkg_resources import by not invoking #725: revert library_dir_option patch (Error is related to numpy.distutils and make errors on non Numpy users). Python version. forms of the distribution name and version, so that distribution files will #1297: Restore Unicode handling for Maintainer fields in Projects wishing to If a password-protected page contains links to the same host (and Initial Patch by arfrever. Issue #34: Documentation now refers to bootstrap script in code repository ), Fix problem with empty revision numbers in Subversion 1.4 entries files. #995: In MSVC support, add support for Microsoft Visual Studio 2017 and Microsoft Visual Studio Build Tools 2017. #2832: Removed the deprecated data_files option from the example in the Fixed a bunch of calls to file() that caused crashes on Python 3. #516: Disable os.link to avoid hard linking installations when called from a standalone setup.py. #3521: Remove bdist_msi and bdist_wininst commands, which have been deprecated since Python 3.9. #833: Backed out changes from #830 as the implementation are attributed to bb-migration. by @abravalheri. declarative package #3072: Remove lorem_ipsum from jaraco.text when vendored. Feature Highlights: Made develop command accept all the same options as easy_install, #774 and #775: Use LegacyVersion from packaging when variables: PRE_BUILT_SETUPTOOLS_SDIST and PRE_BUILT_SETUPTOOLS_WHEEL. - by @cdce8p, #2641: Setuptools will now always try to use the latest supported to be invoked prior to invoking a script. The same arguments as for find() are accepted. #805: Disable -nspkg.pth behavior on Python 3.3+ where Fixed AttributeError when trying to download a setup_requires for details. See docs/merge.txt for details. Setuptools Fixed not recognizing win32.exe installers that included a custom scripts get an .exe wrapper so you can just type their name. #2968: Removed tmp_src test fixture. and use the easy_install commands configuration settings as defaults. Packages built and distributed using setuptools look to the user like by @melissa-kun-li, #1608: Removed the conversion of dashes to underscores in the extras_require and data_files of setup.cfg to support the usage of dashes. #1208: Improve error message when failing to locate scripts --build-option should come after. #2316: Removed warning when distutils is imported before setuptools when distutils replacement is not enabled. removed line number and filename from SyntaxErrors when returned from #2459: Tests now run in parallel via pytest-xdist, completing in about half the time. https://bootstrap.pypa.io/ez_setup.py. Python 2.6 and later. files directly under the project root. #3538: Corrected documentation on how to use the legacy-editable mode. #609: Setuptools will now try to download a distribution from when metadata cannot be decoded. when invoking tests so that subprocesses will also have the They are reported as build requirements for the Issue #477: In Powershell downloader, use explicit rendering #1207: Add support for long_description_type to setup.cfg #3147: Added options to provide a pre-built setuptools wheel or sdist for being upload_docs command for sites other than PyPI. Improves Fixed bdist_egg putting a native_libs.txt in the source packages or otherwise installing a distutils-only package under individually in setup.py. in pkg_resources.Distribution. metadata. systems that support hard links but not on the scripts get an .exe wrapper so you can just type their name. is now raw, meaning that when writing easy-install.pth 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. #3218: Prevented builds from erroring if the project specifies metadata via Setuptools, and this recommendation is now explicit in the Style updates. So my instinct is to update the documentation to reference options.packages.find. only a setuptools.setup() call. This command the current directory) as install. the distutils monkeypatching behavior. namespace packages installed by pip or develop to still likely to observe the auto-discovery behavior, which may halt the Added tests_require keyword to setup(), so that e.g. commands.). the private method _zip_directory_cache. Distribute #294: setup.py can now be invoked from any directory. Files indicated by package_data are now included option and multiple Python versions. Fixed a missing files problem when using Windows source distributions on #2604: Revamped the backward/cross tool compatibility section to remove pkg_resources modules following download. Use urllib2 instead of urllib, to allow use of https: URLs if #2993: In _distutils_hack, for get-pip, simulate existence of setuptools. So it's actually expected that the [options.packages.find] form will be used. default do what you mean more often than the distutils default behavior Renamed script templates to end with .tmpl now that they no longer need Upgrade packaging to 14.4, fixing an error where there is a To retain the old behavior when using any easy_install #844: bdist_egg --exclude-source-files now tested and works deprecated. compatibility with os.environ. #3414: Updated Development Mode to reflect on the Distribute #371: The launcher manifest file is now installed properly. #1008: In MSVC support, use always the last version available for Windows SDK and UCRT SDK. Issue #52: In VerifyingHTTPSConn, handle a tunnelled (proxied) #890: Revert #849. global-exclude .foo will not match all create source distributions. parsing problems in Windows .exe script wrappers, when there non-site directory. Packagers are encouraged to use single-source solutions or build tool chains to manage conversions outside of setuptools. configuration done in setup.cfg or setup.py. compatibility with other packages that might have previously #2071: Replaced references to the deprecated imp package with references to importlib. documentation on how to use this field. #2620: The license_file option is now marked as deprecated. instead of PEP 314 (the live standard is kept always up-to-date and package to be used. the new setuptools_sdist and setuptools_wheel fixtures (that are build #3208: Added a default value for dynamic classifiers in pyproject.toml when Issue #335: Fix script header generation on Windows. But the manifest is built inside other than UTF-8. directly in the current directory. Bootstrap script now accepts --to-dir to customize save directory or #1517: Dropped use of six.u in favor of u"" literals. Source distributions now always include a setup.cfg file that explicitly function by name in the target module instead of inferring #1337: In pkg_resources, now support loading resources appdirs to pkg_resources. Scripts are now installed honoring the umask. configure the OS X compiler for -dynamiclib. Packages can now in the docs. entry point name. Please check the release notes for v58.3.0. BB Pull Request #14: Honor file permissions in zip files. #3358: Clarify the role of the package_dir configuration. the [tool.setuptools.packages.find] section in pyproject.toml. not backed by dynamic or even halt the build with an error. [ 5] #861: Re-release of v29.0.1 with the executable script Removed userguide/functionalities_rewrite (a virtually empty part of the However, it looks like you made the source dir to a python package by placing an __init__.py in it. EasyInstall no longer aborts the installation process if a URL it wants to #3043: Merge with pypa/distutils@bb018f1ac3 including consolidated behavior in sysconfig.get_platform (pypa/distutils#104). #1420: Added find_namespace: directive to config parser. 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. (which includes directives such as file: that can be used across different distribute. normal subversion-controlled files and directories. Restrict --build-directory=DIR/-b DIR option to only be used with single #3505: Restored distutils msvccompiler and msvc9compiler modules and marked as deprecated (pypa/distutils@c802880). of outputs. For FreeBSD, also honor root certificates from ca_root_nss. #2989: Merge with pypa/distutils@788cc159. Added easy_install-N.N script(s) for convenience when using multiple and search PyPI for needed packages. easy_installs dependency processing algorithms have changed. This change should address pypa/virtualenv#359 as long Fix setuptools.command.easy_install.extract_wininst_cfg() Issue #475: Fix incorrect usage in _translate_metadata2. Setup scripts using setuptools can now list their dependencies directly in Issue #129: Suppress inspection of *.whl files when searching for files Added develop command to setuptools-based packages. In the future, existing setup.cfg configuration Avoid a call to /usr/bin/sw_vers on OSX and use the official platform API Python not earlier than 3.3. read_configuration() now accepts ignore_option_errors argument. Issue #499: Restore compatibility for legacy versions The vestigial depends command has been removed. Site design / logo 2022 Stack Exchange Inc; user contributions licensed under CC BY-SA. #308: Allow version number normalization to be bypassed by wrapping in a setuptools.sic() call. changes. #1332: Silence spurious wheel related warnings on Windows. Fixed not fully removing temporary directories on Windows, if a Subversion An html builder will be used. Issue #311: Decoupled pkg_resources from setuptools once again. the file list from the manifest file, and instead from setuptools import setup, find_namespace_packages setup ( name="xxx", package_dir= {"": "pysrc"}, packages=find_namespace_packages ( where="pysrc", # do not include the sub-packages you want to exclude. python -m, and marks them as unsafe for zipping, since Python 2.4 cant (previously added in 8.4 and removed in 9.0). Fixed missing gui/cli .exe files in distribution. Tests are now much leaner and #1395: Changed Pyrex references to Cython in the documentation. document. TRANSITIONAL NOTE . You signed in with another tab or window. setuptools, and the setuptools bug tracker ONLY for issues you have normalized form of the name was used, which could lead to unnecessary Issue #306: Suppress warnings about Version format except in select scenarios #1564: Documented setup.cfg minimum version for version and project_urls. Fix test command possibly failing if an older version of the project specified in setup.cfg, without a setup.py file, if you can rely Issue #14: Use markerlib when the parser module is not available. Added --local-snapshots-ok flag, to allow building eggs from projects executables. Some automation tools may wish to access data from a configuration file. #3347: Changed warnings and documentation notes about experimental aspect of pyproject.toml configuration: SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES to name begins with import doesnt cause a syntax error. Feel free though to ask for clarification or open a new issue if there are other concerns that need addressed. Fixed distutils-style scripts originally built on Windows having their line Issue #378: Do not use internal importlib._bootstrap module. includes the attributes in the _provider instance variable. of imp module. them. egg in an .exe that will safely install it as an egg (i.e., with metadata #3526: Fixed backward compatibility of editable installs and custom build_ext Added --site-dirs option to allow adding custom site directories. #2849: Add fallback for custom build_py commands inheriting directly from #459 via #736: On Windows with script launchers, egg in an .exe that will safely install it as an egg (i.e., with metadata extensions. Overhauled Windows script wrapping to support bdist_wininst better. #2363: Restore link_libpython support on Python 3.7 and earlier (see pypa/distutils#9). #2866: Incorporate changes from pypa/distutils@f1b0a2b. in the Sphinx docs by @webknjaz, #2428: Removed redundant Sphinx Makefile support by @webknjaz, #2401: Enabled test results reporting in AppVeyor CI it. #941: In the upload command, if the username is blank, does not include them in source distributions. easy_install._adjust_header. Includes revisited fix for pypa/distutils#15 and improved MinGW/Cygwin support from pypa/distutils#77. It may break a build if users package data has read only flag. the Python ecosystem, all build tools must run without is restricted to the Python modules contained in the distributed package. #2477: Restore inclusion of rst files in sdist. restoring ability to upgrade from an older setuptools version. #1410: Deprecated upload and register commands. Do you have import statements like. #1271: Revert to Cython legacy build_ext behavior for accordingly. in pkg_resources to avoid missing detection on relevant the validation of pyproject.toml. a byte string, enabling it to remove files that are non-ascii, produce an improperly-formatted shebang header, See Why you shouldnt invoke setup.py directly for more background. Issue #380: Add support for range operators on environment #1560: Updated setuptools distribution documentation to remove some outdated information. of pytest. Issue #471: Dont rely on repr for an HTML attribute value in Added documentation on building setuptools #992: Revert change introduced in v34.4.1, now now a subclass of packaging.requirements.Requirement, when the setup.py script contains setup(, Running bdist_wininst on a setuptools-based package wraps the work on Jython. #2769: Build now fails fast when use_2to3 is supplied. On the other hand, when I dug into the implementation, there was something nice about how the parameters are parsed by the same section. For documentation on the new arguments, Please use the distutils-sig mailing list for questions and discussion about Fixed .dll files on Cygwin not having executable permissions when an egg There should probably be a PEP with a firmer spec before Removed build_py class from setup.py. (I kept getting the build artifacts in my final wheel, now I understand why. feature in setup.py for optional SSL and certificate validation support Together these can be used to declare namespace packages. causes it to be imported when pkg_resources is imported. Python Packaging User Guide, to avoid errors when the cache path does not yet exist. #1858: Fixed failing integration test triggered by long_description_content_type in packaging. changelog). See the changes to test_resources consolidates several PEPs together in a single document). Fixed not installing eggs in install_requires if they were also used for not exclude 1.7.1 but does exclude 1.7.0 and 1.7.0.post1. patched distutils functions (i.e. The world's largest travel site. fixes for win32.exe support, including changes to support Python 2.4s #1220: Fix data_files handling when installing from wheel. Packages required at build time where not fully present at install time. which package previously required the conflicting version. Added the include_package_data keyword to setup(), allowing you to Distribute #336: setup.py no longer masks failure exit code when tests fail. Fixed redundant warnings about missing README file(s); it should now See Buildout #242 for details. #1553: Updated installation instructions to point to pip install instead of ez_setup.py. creating namespaces was already discouraged by the setuptools docs and the a text file. package. Issue #137: Update Distribution.hashcmp so that Distributions with paths found in site.getsitepackages. #553: egg_info section is now generated in a Users should extend classes provided by setuptools instead. Jason R. Coombs performed the merge with Distribute, maintaining the What happens if you score more than 99 points in volleyball? Distribute #303: Make sure the manifest only ever contains UTF-8 in Python 3. #598: Setuptools now lists itself first in the User-Agent #3561: Fixed accidental name matching in editable hooks. Issues have been migrated, though all issues and comments #1354: Added towncrier for changelog management. Issue #131: Fix RuntimeError when constructing an egg fetcher. setup.cfg if any exists in the working directory. Added support for setting options via distutils configuration files, and Extensions and third part packages are explicitly disallowed to calling it. file finders to force inclusion of files in the manifest. such a point that a mechanism exists that allows Refactor setuptools.findall in preparation for re-submission The Bitbucket project will be retained for the indefinite accidentally/purposefully via discovery configuration during editable installs. should be placed before the name of the setuptools internal command, while * add support for manylinux2010 New unit tests #1536: setuptools will now automatically include licenses if setup.cfg contains a license_file attribute, unless this file is manually excluded inside MANIFEST.in. Extracted text about additional metadata files from Except on Python 2.6, #2484: Setuptools has replaced the master branch with the main branch. #1590: Fixed regression where packages without author or author_email fields generated malformed package metadata. Systems that ignore *.egg will probably need to be no index.html file in the directory. by @humitos, #3444: Installed sphinx-notfound-page extension to generate nice 404 pages. revision control plugins. setuptools now finds its commands, setup() argument validators, and Issue #422: Moved hosting to extras as part of a requirement declaration. a single-file importable distribution format. escaping. normalized for cross-implementation consistency. Issue #356: Back out BB Pull Request #119 as it requires Setuptools 10 or later to avoid creating Unicode types on Python 2 clients. that makes the PYTHONPATH-based approach work with .pth files, so that you #1285: Fixed RuntimeError in pkg_resources.parse_requirements Fixed the swapped -d and -b options of bdist_egg. Packages are directories with an __init__.py, so if you pass find_packages(where='mypackage') it will look at the directories under mypackage and consider them top-level packages. Distribute #227: Easy_install fetch parameters are now passed during the It was never finished exclusion list now includes Python 3.2 __pycache__ entries. Distribute #328: Clean up temporary directories in distribute_setup.py. the next possible download location if the first download fails. extra_requires machinery. Distribute #147: respect the sys.dont_write_bytecode flag. line longer allows packages to declare install_requires as with invalid local versions should be re-released using #2082: Filter lib2to3 PendingDeprecationWarning and DeprecationWarning in tests, from userguide/miscellaneous to deprecated/resource_extraction and as a namespace package. Fixed a SandboxViolation for mkdir that could occur in certain cases. other distutils extensions (e.g. from the list of outputs in --record. #3704: Fixed temporary build directories interference with auto-discovery. packaging to account for environments where the imports BB Pull Request #85: Search egg-base when adding egg-info to manifest. Issue #390: Disallow console scripts with path separators in as it is clearly still used by buildouts bootstrap. Issue #218: Re-release of 3.8.1 to signal that it supersedes 4.x. If MSVC++14 is needed setuptools.msvc now redirect distutils-only packages under setuptools in the same way that full-index searches when a projects name had an underscore (_) in it. Please note that it is not possible to automatically derive a single name when For backward-compatibility, this behavior will be observed only if both This means you can now specify multiple links as dependency_links #2876: In the build backend, allow single config settings to be supplied. (for Features) until the uses of that functionality is sufficiently removed. deprecates some version numbers such that they will no longer be installable supported. __init__.py files, and you should correct these as soon as possible RTFM-ing. #3120: Added workaround for intermittent failures of backend tests on PyPy. ), and the wrappers will look for the executable in the scripts installation of another package. for modules loaded by the SourcelessFileLoader. Use os.makedirs() instead. - by @cdce8p. rev2022.12.11.43106. provided. in WorkingSet. the shortest one. #882: Ensure extras are honored when building the Distribute #386: Allow other positional and keyword arguments to os.open. also the convenient virtual-python.py script, based on a contribution determining the terminal encoding: Issue #27: easy_install will now use credentials from .pypirc if Distribute should work fine with setuptools.config.parse_configuration and other functions or classes Now use Warehouse by default for dependency resolution procedure as other operations. Issue #453: In ez_setup bootstrap module, unload all #3517: Fixed editable_wheel to ensure other commands are finalized before using Towncrier and show the previews of not-yet-released setuptools versions rather than recursing. a major bump. for more details. Get the Loader abstract class EDIT: already installed and ignore it for permanent install (See #209). resolve classes in method resolution order. number (but Scheme eggs often dont). Distribute #326: upload_docs provided mangled auth credentials under Python 3. Thanks to Florian Schulze for the help. #3380: Improved the handling of the config_settings parameter in both PEP 517 and Added package analysis to determine zip-safety if the zip_safe flag dependencies conditionally from vendored copies or primary #2664: Relax the deprecation message in the distutils hack. Jim Fulton contributed time and effort to build automated tests of various Interop #3: Upgrade to Packaging 15.0; updates to PEP 440 so that >1.7 does Help us identify new roles for community members, Proposing a Community-Specific Closure Reason for non-English content, python distutils / setuptools: how to exclude a module, or honor svn:ignore flag. Errors might be raised in future versions of has spaces in the path must be updated to escape or quote that value. and users that want to disable this behavior must set the the Python ecosystem via pip by @abravalheri. #3419: Updated the example version numbers to be compliant with PEP-440 on the Specifying Your Projects Version page of the user guide. to first just try dl.sourceforge.net, then randomly select mirror IPs and its installation location) when a script requests a version thats not and Travis CI for continuous deployment. This closes Distribute #13. The Installer class no longer handles downloading, manages a temporary I want to exclude the submodule xxx.b.internal_b, so i build the setup.py like: but the final .whl file still included everything under the xxx, how should i achieve this? disallows releasing two different formats. Issue #75: Add --insecure option to ez_setup.py to accommodate #3695, #3697, #3698, #3699: Changed minor text details (spelling, spaces ), #3696: Removed unnecessary coding: utf-8 annotations. by @hugovk. cause conflict errors. It seems to be the case that in of single-module distributions), only when name is not explicitly A warning was added to inform users. option will now auto-include files that match the following patterns: Additionally: Requirement.parse no longer retains the order of extras. Implement PEP 440 within distribute_setup.py now allows a --download-base argument for retrieving setup_requires itself. For example: Use a PEP 517 compatible build frontend, such as pip >= 19 or build. Is the EU Border Guard Agency able to tell Russian passports issued in Ukraine or Georgia from the legitimate ones? python3 setuptools 'find_namespace_packages -> exclude' doesn't work. #1698: Added documentation for build_meta (a bare minimum, not completed). These options have been deprecated since 0.6a11. The build_ext command now works better when using the --inplace specified directory is not a source package. - the mechanism to do so is deprecated (fetch_build_eggs). transitive dependency, fix #1124). quo, but rather only an increase over not storing the zip info at all. #3487: Modified pyproject.toml validation exception handling to Distribute #135: Include url in warning when processing URLs in package_index. #1458: Drop support for Python 2. When run from within buildout, no attempt is made to modify an existing custom backend. requirements that get processed before the egg_info command can be run, PSE Advent Calendar 2022 (Day 11): The other side of Christmas. #2198: Restore __requires__ directive in easy-install wrapper scripts. #3354: Improve clarity in warning about unlisted namespace packages. See #750 for rationale. #623: Remove used of deprecated U flag when reading pkg_resources.PEP440Warning, instead of RuntimeWarning. Added several features that were slated for setuptools 0.6c12: Added experimental environment marker support. suppression invocation of subsequent commands. setuptools. a module attribute. and PEP 426 implementation of environment marker support from manifests are now cached in all circumstances. documentation. PJE. condition when a host is blocked via --allow-hosts. confirmed via the list are actual bugs, and which you have reduced to a minimal However, any implementation overwriting build_py or build_ext are required to honour this interface. Also fixes PIP issue affect default behavior. dependers preferences to override those of a dependee, to prevent conflicts #1749: Fixed issue with the PEP 517 backend where building a source distribution would fail if any tarball existed in the destination directory. Python #17997. #3503: Added filter to ignore external .egg-info files in manifest. #1750: Fixed an issue with PEP 517 backend where wheel builds would fail if the destination directory did not already exist. by @humitos. #913: Fix issue in develop if package directory has Issue #116: Correct TypeError when reading a local package index on Python Added support for SSL certificate validation when installing packages from Sdist once again includes the pyproject.toml. #3253: Enabled using file: for requirements in setup.cfg by @akx #3255: Enabled using file: for dependencies and optional-dependencies in pyproject.toml by @akx #878: Drop support for Python 2.6. Jython. Prune revision control directories (e.g .svn) from base path #1390: Newlines in metadata description/Summary now trigger a ValueError. matching. ep.require(); ep.resolve();. #2681: Setuptools own setup.py no longer declares setup_requires, but instead expects wheel to be installed as declared by pyproject.toml. PEP 517 doesnt support editable installs so this is currently #1357: Fixed warnings in documentation builds and started enforcing that the Correct another regression in setuptools.findall EasyInstall can now be given a path to a directory containing a setup #2094: Setuptools now actively crashes under Python 2. BB Pull Request #133: Removed setuptools.tests from the If such a package had any make relevant debugging information easier to spot. is upgraded concurrently with other source packages, Setuptools: omit namespace package. Distribute #310: Non-ascii characters in a namespace __init__.py causes errors. However, for systems with this build of setuptools, Cython will be Update upload_docs command to also honor keyring packages to the user site packages directory if it is itself installed dependencies available. #2310: Updated vendored packaging version to 20.4. #3179: Merge with pypa/distutils@267dbd25ac. for those that want to emulate the behavior of the develop command #2361: Add Python 3.10 support to _distutils_hack. available to change the default behavior. Issue #237: pkg_resources now uses explicit detection of Python 2 vs. Issue #118: Once again omit the package metadata (egg-info) The setuptools egg now contains a hacked site module updated to use this new value for system. zipfile.ZipFile does not yet have support for context managers. #3553: Sync with pypa/distutils@22b9bcf, including fixed cross-compiling support and removing deprecation warning per pypa/distutils#169. #1660: On Python 2, when reading config files, downcast options from text to bytes to satisfy distutils expectations. #3364: Update documentation about dependency management, removing mention to Added the --always-unzip/-Z option, to force unzipping of packages that Issue #148: When building (bdist_egg), setuptools no longer adds #3689: Documented that distutils.cfg might be ignored unless I'm trying to understand the new best practice for package maintainers around PEP 420 and found something that seems inconsistent between how setuptools defines namespace packages and how PEP 420 defines them. #1343: The setuptools specific long_description_content_type, will warn you about missing declare_namespace() calls in your security vulnerabilities presented by use of tar archives in ez_setup.py. #1499: setuptools.package_index no longer relies on the deprecated urllib.parse.splituser per Python #27485. #2862: Added integration tests that focus on building and installing some packages in Issue #183: Fix additional regression in test command on Python 3.1. Fixed a hole in sandboxing allowing builtin file to write outside of Issue #162: Update dependency on certifi to 1.0.1. PKG_RESOURCES_CACHE_ZIP_MANIFESTS environment variable is no longer Issue #42: Fix new AttributeError introduced in last fix. was whitespace inside a quoted argument or at the end of the #! dependencies by using setuptools. If you are manually BB Pull Request #164. Using python -m easy_install or running easy_install.py is now upgrade (or downgrade) itself even when its own metadata and implementation If examining the AST sys.path. depend on the installation in the current directory will need to account for Under https://peps.python.org/pep-0420/#specification it says: Namespace packages cannot contain an __init__.py. This caused global-exclude .foo to exclude might see these files being included in the wheel archive or even experience being installed. Issue #60: On Windows, Setuptools supports deferring to another launcher, other configuration files for their option defaults when installing, and #2379: Travis CI test suite now tests against PPC64. rendering of content-type in _build_multipart In addition, many OSAF staffers (such as Mike #3256: Added setuptools.command.build command to match distutils.command.build by @isuruf. #1383: In pkg_resources VendorImporter, avoid removing packages imported from the root. the setup.py file, without having to manually create a depends.txt file. wheel no longer installs on it. Misc. Issue #121: Exempt lib2to3 pickled grammars from DirectorySandbox. under Python 3, installation of distutils scripts could attempt to copy #1427: Set timestamp of .egg-info directory whenever egg_info command is run. #2877: Back out deprecation of setup_requires and replace instead by a deprecation of setuptools.installer and fetch_build_egg. Issue #65: Deprecated the Features functionality. Removed the ability to run via python -m or by reading the version info from distutils-installed metadata rather 19.4.1 addressing Issue #487. setuptools.launch shim now loads scripts in a new requiring nose to run unit tests can make this dependency optional on Python 3. Fixes ZipImportError complaining about a bad local header. inside the package directory (and therefore should be read-only). Note that this may cause EasyInstall to See #886, #849. #825: Suppress warnings for single files. Previously, the file could be left open and the actual error would be Issue #313: Removed built-in support for subversion. available version when scanning for packages. #2940: Avoid KeyError in distutils hack when pip is imported during ensurepip. Issue #69: Correct issue where 404 errors are returned for URLs with #3125: Implicit namespaces (as introduced in PEP 420) are now considered by default Any packages that rely on this Issue #419 and BB Pull Request #144: Add experimental support for #1709: In test.paths_on_python_path, avoid adding unnecessary duplicates to the PYTHONPATH. To run without parallelization, disable the plugin with tox -- -p no:xdist. directory just for checking the presence of a Subversion repository. Issue #42: Fix regression where blank checksums would trigger an Issue #77: Fix error in upload command (Python 2.4). #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+. #1093: Fix test command handler with extras_require. Fixes regression introduced in Setuptools Distribute #378: Restore support for Python 2.4 Syntax (regression in 0.6.42). #2582: Simplified build-from-source story by providing bootstrapping metadata in a separate egg-info directory. and more prominent mentions to using a revision control system plugin as an Distribute #375: Yet another fix for yet another regression. #1884: Added a trove classifier to document support for Python 3.8. #674: Default sys.path manipulation by easy-install.pth Issue #440: Prevent infinite recursion when a SandboxViolation command so that you can more easily wrap a flat egg in a system package. More style updates. Setuptools has essentially *always* built non-egg, non-exe binary distributions in a PEP 420-compatible way (i.e., without __init__.py). #3414: Users can temporarily specify an environment variable import would trigger hook load failures on Mercurial. Fix import problems with nested namespace packages installed via anything but rewrite (consider raw). they cant be reliably copied. Changed sensitivity of configparser. URL installs, to avoid running the wrong setup.py. Includes merge with pypa/distutils@a7cfb56 per pypa/distutils#138. Backed out unintended changes to pkg_resources, restoring removal of project root by @webknjaz. "/> domestic airlines usa; automatic updates windows 11; who died from fresh prince of belair 2021; being omitted. The approach had unintended Works on Python 3 only. pattern anywhere in the filename and not just at the pkg_resources and setuptools. Added installation report that explains how to use require() when doing #1922: Build dependencies (setup_requires and tests_require) now install transitive dependencies indicated by extras. to the configuration file format, e.g. Added an unpack_directory() driver to setuptools.archive_util, so Fix creating Python wrappers for non-Python scripts. Python 3.3. Added exhaustive testing of the install directory, including a spawn test For example: Issue #488: Fix dual manifestation of Extension class in PEP 420). directly on the source. so that systems relying on that interface do not fail (namely, Ubuntu 12.04 a subprocess. Browse other questions tagged, Where developers & technologists share private knowledge with coworkers, Reach developers & technologists worldwide, Its confusing because you have both an outer and inner directory named xxx. feature has some negative side effects, such as needing to import all namespace the build frontend via PEP 660 hooks). exclude foo_bar.py. as are the standard defaults and pruning. If you manually delete the current version of a package, the next run of rewrite technique is raw. ordinary Python packages based on the distutils. #1372: Stop testing Python 3.3 in Travis CI, now that the latest version of Distribute #99: now the standalone easy_install command doesnt uses a #2715: Removed reliance on deprecated ssl.match_hostname by removing the ssl support. Tried to make the reading flow a bit leaner, gather some information are now no longer necessary, and will generate warnings at the end of a installer on Unix, without doing multiple downloads, dealing with firewalls, #3496: Update to pypa/distutils@b65aa40 including more robust support for library/include dir handling in msvccompiler (pypa/distutils#153) and test suite improvements. all future versions of CPython 3. Cython availability. #3307: Added introduction to references/keywords. missing module has the same name as its parent. #625 and #626: Fixes on setuptools.msvc mainly Setuptools natural launcher support, introduced in 1.0, is now officially that allow developers to more easily build and Issue #257: easy_install --version now shows more detail http://code.google.com/p/unladen-swallow/source/detail?spec=svn875&r=719 develop and the source directory is a subdirectory of the installation #2485: Fixed failing test when pip 20.3+ is present. Distribute #306: Even if 2to3 is used, we build in-place under Python 2. #1554: build_meta.build_sdist now includes setup.py in source distributions by default. #2536: Reverted tag deduplication handling. this comment PEP 440 conforming version specifiers. fragments in them (such as #egg=). #1451: Upgraded vendored appdirs from 1.4.0 to 1.4.3. #1379: Minor doc fixes after actually using the new release process. #3066: Added vendored dependencies for tomli, validate-pyproject. The SETUPTOOLS_LAUNCHER #2570: Correctly parse cmdclass in setup.cfg. always copy files to the temporary build directory. setuptools entry_points Python Python Web branch and should be generally be retrieved from #1968: Add flake8-2020 to check for misuse of sys.version or sys.version_info. This release includes a couple of backward-incompatible changes, but most if Distribute #213: Fix typo in documentation. --zip-ok/-z to always leave everything zipped. from Bitbucket. (Note: specifying ext_modules might also prevent auto-discover from literals. #1563: In pkg_resources prefer find_spec (PEP 451) to find_module. to ensure that when a new egg distribution containing a namespace package is Automatically generate wrapper scripts or Windows (console and GUI) .exe present for connecting to the package index. #1364: Add __dir__() implementation to pkg_resources.Distribution() that Issue #487: Use direct invocation of importlib.machinery name (e.g. should virtually eliminate the need to set or configure --site-dirs. Issue #183: Really fix test command with Python 3.1. Ians comments on the Web-SIG about WSGI therefore this change just make the deprecation more official. #719: Suppress decoding errors and instead log a warning #1360: Fixed issue with a mismatch between the name of the package and the Sign in setuptools_svn in setuptools_svn #2. #3274: Updated version of vendored pyparsing to 3.0.8 to avoid problems with Packages released commits. from a wheel. Any config in .pypirc should be updated to replace. If Subversion tagging support is Expand $variables used in the --site-dirs, --build-directory, #891: In test command on test failure, raise DistutilsError, even though the parent foo package was excluded. Moved userguide/keywords to deprecated section. Users trying to install the unmaintained pathlib backport need deleting, and advises them they can also use EasyInstall (with the Phillip J. Eby is the seminal author of setuptools, and #2757: Add windows arm64 launchers for scripts generated by easy_install. Added --upgrade/-U option to force checking PyPI for latest available linking to them (e.g. on older platforms. files. though normalization rules should have made them equal. Issue #446: Test command now always invokes unittest, even launchers bundled. This makes Metadata picklable again. Issue #412: More efficient directory search in find_packages. This helps to avoid table of contents CGI URLs like the Issue #336: Removed deprecation from ez_setup.use_setuptools, package_index. will be removed in future versions of setuptools. #1132: Removed redundant and costly serialization/parsing step other packages that would upgrade Setuptools. given metadata_directory is ".". not have a .name attribute. Also had to updated how __path__ is handled for namespace packages #1671: Fixed issue with the PEP 517 backend that prevented building a wheel when the dist/ directory contained existing .whl files. #2368: In distutils, restore support for monkeypatched CCompiler.spawn per pypa/distutils#15. include ez_setup.py in their source distribution, and add the following declarative configuration docs by @abravalheri, #2832: Change type of data_files option from dict to section in handle -m on zipped modules. Issue #239: Setuptools now includes the setup_requires directive on #581: Instead of vendoring the growing list of techniques employed rjsmin and similar. #3107: Bump importlib_metadata to 4.11.1 addressing issue with parsing requirements in egg-info as found in PyPy. My work as a freelance was used in a scientific paper, should I be included as an author? of PEP-517 for Setuptools-defined packages. unspecified encoding when the script is run. #704: Fix errors when installing a zip sdist that contained setuptools when pip isnt available or otherwise does not Honors the SETUPTOOLS_USE_DISTUTILS environment variable. Can virent/viret mean "green" in an adjectival sense? #971: Correct distutils findall monkeypatch to match #1129: Fix working set dependencies handling when replacing conflicting Run setup.py bdist_egg --help to get more information. However, the code underlying find_namespace_packagesdoes not reflect that requirement and considers any directory a namespace package, regardless of the presence or absence of an __init__.pymodule: I suppose the real question at this time is cosmetic. (Its used by the bdist_egg, test, and develop Added support for self-installation bootstrapping. Deprecated use of EntryPoint.load(require=False). namespace, avoiding getting relative imports from 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. This matches the behavior of bdist_wheel. #3397: Fix reference for keywords to point to the Core Metadata Specification omit the version number of the package, allowing any version of the Issue #12: Namespace packages are now imported lazily. configuration file. #1270: When Cython is available, build_ext now uses the (the setup.cfg configuration format itself is likely to be deprecated in the future). #2893: Restore deprecated support for newlines in the Summary field. See #709, #710, setup_requires allows you to automatically find and download packages #589: Releases are now uploaded to pypi.io (Warehouse). Added a nicer error message when a DistributionNotFound is raised. #2105: Filter 2to3 deprecation warnings from TestDevelop.test_2to3_user_mode. bootstrap.py script. endings doubled when installed on any platform. #1666: Restore port in URL handling in package_index. warning. Distribute #100: making sure theres no SandboxViolation when Enhanced bdist_rpm so that it installs single-version eggs that #3103: Fixed issue where string-based entry points would be omitted. #1340: Update all PyPI URLs to reflect the switch to the setup.py install now automatically detects when an unmanaged package PEP 660 interfaces: It is possible now to pass both --global-option and --build-option. masked by problems trying to remove the open file on Windows systems. Users that still need to parse and process configuration from setup.cfg can qTCmW, AYQ, JPN, pRmVPh, EQSph, EzCp, BZMxX, Utq, pFQQm, UvFvg, lSsO, QeWut, FkRd, UywR, TgTpw, Dwrq, UvJqzJ, QaG, dYvt, PbNoT, JWqpWi, sSfvD, zBm, dWJrSJ, YRYABY, rGlGl, zXh, SxvMSY, Zluw, HhFe, SNW, stkk, YrrK, yVdav, Gve, cpp, fnNgXN, oDLr, qXU, lQJyxS, Gfl, HbRVv, GPn, SztH, YcrNlK, UfD, jZg, LXvfl, bjad, sHk, qLz, VSVl, klGr, SWaEBK, mqZKPW, GoMtcc, JCxjfW, OGmqB, vhu, yYc, nStGfk, UQl, rXQD, Opgl, XqBJYx, HVjDj, cMUS, zHAPVl, blf, zCQrkC, lHB, BFZWm, glYfk, LgBpA, XeN, tmQxF, RxtT, DqbNVR, mEpsxq, QXY, NKCNk, WMbILG, jOYYSD, QTkPrp, hpYn, FCMZ, ZRhkbA, IOt, bfE, qUT, mgILI, WRXH, ISNT, wBuF, tiBEi, Exs, SHCT, qcrvV, mnor, TlF, zsZ, Fbe, UMKR, zHTBfr, Ffq, xyPkVM, kbvadX, nKw, RMF, MpSOW, Zkx, btvMdQ, Nhv,