diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2013-07-13 21:51:15 -0400 |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2013-07-13 21:51:15 -0400 |
commit | c652e7e73d2ff6865085a8ca6af54f441104a908 (patch) | |
tree | 7a994ed3ffc2fa33b21fd28804d43d7a0c549b7e | |
parent | 5896424c4061b74ed9625077131df0f8e4cd2a10 (diff) | |
download | external_python_setuptools-c652e7e73d2ff6865085a8ca6af54f441104a908.tar.gz external_python_setuptools-c652e7e73d2ff6865085a8ca6af54f441104a908.tar.bz2 external_python_setuptools-c652e7e73d2ff6865085a8ca6af54f441104a908.zip |
Re-wrote link inference to now respect specific patterns and generate links to known issue trackers.
-rw-r--r-- | CHANGES.txt | 281 | ||||
-rw-r--r-- | release.py | 75 |
2 files changed, 165 insertions, 191 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index 23a198ce..94403c8f 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -106,7 +106,7 @@ Added several features that were slated for setuptools 0.6c12: * Move warning check in ``get_cache_path`` to follow the directory creation to avoid errors when the cache path does not yet exist. Fixes the error - reported in #375. + reported in Distribute #375. ------ 0.6.48 @@ -126,7 +126,7 @@ Added several features that were slated for setuptools 0.6c12: 0.6.46 ------ -* Issue #375: Issue a warning if the PYTHON_EGG_CACHE or otherwise +* Distribute #375: Issue a warning if the PYTHON_EGG_CACHE or otherwise customized egg cache location specifies a directory that's group- or world-writable. @@ -134,7 +134,7 @@ Added several features that were slated for setuptools 0.6c12: 0.6.45 ------ -* Issue #379: ``distribute_setup.py`` now traps VersionConflict as well, +* Distribute #379: ``distribute_setup.py`` now traps VersionConflict as well, restoring ability to upgrade from an older setuptools version. ------ @@ -148,21 +148,21 @@ Added several features that were slated for setuptools 0.6c12: 0.6.43 ------ -* Issue #378: Restore support for Python 2.4 Syntax (regression in 0.6.42). +* Distribute #378: Restore support for Python 2.4 Syntax (regression in 0.6.42). ------ 0.6.42 ------ * External links finder no longer yields duplicate links. -* Issue #337: Moved site.py to setuptools/site-patch.py (graft of very old +* Distribute #337: Moved site.py to setuptools/site-patch.py (graft of very old patch from setuptools trunk which inspired PR #31). ------ 0.6.41 ------ -* Issue #27: Use public api for loading resources from zip files rather than +* Distribute #27: Use public api for loading resources from zip files rather than the private method `_zip_directory_cache`. * Added a new function ``easy_install.get_win_launcher`` which may be used by third-party libraries such as buildout to get a suitable script launcher. @@ -171,7 +171,7 @@ Added several features that were slated for setuptools 0.6c12: 0.6.40 ------ -* Issue #376: brought back cli.exe and gui.exe that were deleted in the +* Distribute #376: brought back cli.exe and gui.exe that were deleted in the previous release. ------ @@ -182,7 +182,7 @@ Added several features that were slated for setuptools 0.6c12: * Fix possible issue in GUI launchers where the subsystem was not supplied to the linker. * Launcher build script now refactored for robustness. -* Issue #375: Resources extracted from a zip egg to the file system now also +* Distribute #375: Resources extracted from a zip egg to the file system now also check the contents of the file against the zip contents during each invocation of get_resource_filename. @@ -190,13 +190,13 @@ Added several features that were slated for setuptools 0.6c12: 0.6.38 ------ -* Issue #371: The launcher manifest file is now installed properly. +* Distribute #371: The launcher manifest file is now installed properly. ------ 0.6.37 ------ -* Issue #143: Launcher scripts, including easy_install itself, are now +* Distribute #143: Launcher scripts, including easy_install itself, are now accompanied by a manifest on 32-bit Windows environments to avoid the Installer Detection Technology and thus undesirable UAC elevation described in `this Microsoft article @@ -206,8 +206,7 @@ Added several features that were slated for setuptools 0.6c12: 0.6.36 ------ -* Pull Request #35: In `Buildout issue 64 - <https://github.com/buildout/buildout/issues/64>`_, it was reported that +* Pull Request #35: In Buildout #64, it was reported that under Python 3, installation of distutils scripts could attempt to copy the ``__pycache__`` directory as a file, causing an error, apparently only under Windows. Easy_install now skips all directories when processing @@ -221,7 +220,7 @@ Added several features that were slated for setuptools 0.6c12: Note this release is backward-incompatible with distribute 0.6.23-0.6.34 in how it parses version numbers. -* Issue #278: Restored compatibility with distribute 0.6.22 and setuptools +* Distribute #278: Restored compatibility with distribute 0.6.22 and setuptools 0.6. Updated the documentation to match more closely with the version parsing as intended in setuptools 0.6. @@ -229,7 +228,7 @@ how it parses version numbers. 0.6.34 ------ -* Issue #341: 0.6.33 fails to build under Python 2.4. +* Distribute #341: 0.6.33 fails to build under Python 2.4. ------ 0.6.33 @@ -238,11 +237,11 @@ how it parses version numbers. * Fix 2 errors with Jython 2.5. * Fix 1 failure with Jython 2.5 and 2.7. * Disable workaround for Jython scripts on Linux systems. -* Issue #336: `setup.py` no longer masks failure exit code when tests fail. +* Distribute #336: `setup.py` no longer masks failure exit code when tests fail. * Fix issue in pkg_resources where try/except around a platform-dependent import would trigger hook load failures on Mercurial. See pull request 32 for details. -* Issue #341: Fix a ResourceWarning. +* Distribute #341: Fix a ResourceWarning. ------ 0.6.32 @@ -250,19 +249,18 @@ how it parses version numbers. * Fix test suite with Python 2.6. * Fix some DeprecationWarnings and ResourceWarnings. -* Issue #335: Backed out `setup_requires` superceding installed requirements +* Distribute #335: Backed out `setup_requires` superceding installed requirements until regression can be addressed. ------ 0.6.31 ------ -* Issue #303: Make sure the manifest only ever contains UTF-8 in Python 3. -* Issue #329: Properly close files created by tests for compatibility with +* Distribute #303: Make sure the manifest only ever contains UTF-8 in Python 3. +* Distribute #329: Properly close files created by tests for compatibility with Jython. -* Work around Jython bugs `#1980 <http://bugs.jython.org/issue1980>`_ and - `#1981 <http://bugs.jython.org/issue1981>`_. -* Issue #334: Provide workaround for packages that reference `sys.__stdout__` +* Work around Jython #1980 and Jython #1981. +* Distribute #334: Provide workaround for packages that reference `sys.__stdout__` such as numpy does. This change should address `virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long as the system encoding is UTF-8 or the IO encoding is specified in the @@ -271,7 +269,7 @@ how it parses version numbers. PYTHONIOENCODING=utf8 pip install numpy * Fix for encoding issue when installing from Windows executable on Python 3. -* Issue #323: Allow `setup_requires` requirements to supercede installed +* Distribute #323: Allow `setup_requires` requirements to supercede installed requirements. Added some new keyword arguments to existing pkg_resources methods. Also had to updated how __path__ is handled for namespace packages to ensure that when a new egg distribution containing a namespace package is @@ -283,7 +281,7 @@ how it parses version numbers. 0.6.30 ------ -* Issue #328: Clean up temporary directories in distribute_setup.py. +* Distribute #328: Clean up temporary directories in distribute_setup.py. * Fix fatal bug in distribute_setup.py. ------ @@ -291,28 +289,28 @@ how it parses version numbers. ------ * Pull Request #14: Honor file permissions in zip files. -* Issue #327: Merged pull request #24 to fix a dependency problem with pip. +* Distribute #327: Merged pull request #24 to fix a dependency problem with pip. * Merged pull request #23 to fix https://github.com/pypa/virtualenv/issues/301. * If Sphinx is installed, the `upload_docs` command now runs `build_sphinx` to produce uploadable documentation. -* Issue #326: `upload_docs` provided mangled auth credentials under Python 3. -* Issue #320: Fix check for "createable" in distribute_setup.py. -* Issue #305: Remove a warning that was triggered during normal operations. -* Issue #311: Print metadata in UTF-8 independent of platform. -* Issue #303: Read manifest file with UTF-8 encoding under Python 3. -* Issue #301: Allow to run tests of namespace packages when using 2to3. -* Issue #304: Prevent import loop in site.py under Python 3.3. -* Issue #283: Reenable scanning of `*.pyc` / `*.pyo` files on Python 3.3. -* Issue #299: The develop command didn't work on Python 3, when using 2to3, +* Distribute #326: `upload_docs` provided mangled auth credentials under Python 3. +* Distribute #320: Fix check for "createable" in distribute_setup.py. +* Distribute #305: Remove a warning that was triggered during normal operations. +* Distribute #311: Print metadata in UTF-8 independent of platform. +* Distribute #303: Read manifest file with UTF-8 encoding under Python 3. +* Distribute #301: Allow to run tests of namespace packages when using 2to3. +* Distribute #304: Prevent import loop in site.py under Python 3.3. +* Distribute #283: Reenable scanning of `*.pyc` / `*.pyo` files on Python 3.3. +* Distribute #299: The develop command didn't work on Python 3, when using 2to3, as the egg link would go to the Python 2 source. Linking to the 2to3'd code in build/lib makes it work, although you will have to rebuild the module before testing it. -* Issue #306: Even if 2to3 is used, we build in-place under Python 2. -* Issue #307: Prints the full path when .svn/entries is broken. -* Issue #313: Support for sdist subcommands (Python 2.7) -* Issue #314: test_local_index() would fail an OS X. -* Issue #310: Non-ascii characters in a namespace __init__.py causes errors. -* Issue #218: Improved documentation on behavior of `package_data` and +* Distribute #306: Even if 2to3 is used, we build in-place under Python 2. +* Distribute #307: Prints the full path when .svn/entries is broken. +* Distribute #313: Support for sdist subcommands (Python 2.7) +* Distribute #314: test_local_index() would fail an OS X. +* Distribute #310: Non-ascii characters in a namespace __init__.py causes errors. +* Distribute #218: Improved documentation on behavior of `package_data` and `include_package_data`. Files indicated by `package_data` are now included in the manifest. * `distribute_setup.py` now allows a `--download-base` argument for retrieving @@ -322,10 +320,10 @@ how it parses version numbers. 0.6.28 ------ -* Issue #294: setup.py can now be invoked from any directory. +* Distribute #294: setup.py can now be invoked from any directory. * Scripts are now installed honoring the umask. * Added support for .dist-info directories. -* Issue #283: Fix and disable scanning of `*.pyc` / `*.pyo` files on +* Distribute #283: Fix and disable scanning of `*.pyc` / `*.pyo` files on Python 3.3. ------ @@ -336,15 +334,15 @@ how it parses version numbers. * Distribute now recognizes README.rst as a standard, default readme file. * Exclude 'encodings' modules when removing modules from sys.modules. Workaround for #285. -* Issue #231: Don't fiddle with system python when used with buildout +* Distribute #231: Don't fiddle with system python when used with buildout (bootstrap.py) ------ 0.6.26 ------ -* Issue #183: Symlinked files are now extracted from source distributions. -* Issue #227: Easy_install fetch parameters are now passed during the +* Distribute #183: Symlinked files are now extracted from source distributions. +* Distribute #227: Easy_install fetch parameters are now passed during the installation of a source distribution; now fulfillment of setup_requires dependencies will honor the parameters passed to easy_install. @@ -352,65 +350,65 @@ how it parses version numbers. 0.6.25 ------ -* Issue #258: Workaround a cache issue -* Issue #260: distribute_setup.py now accepts the --user parameter for +* Distribute #258: Workaround a cache issue +* Distribute #260: distribute_setup.py now accepts the --user parameter for Python 2.6 and later. -* Issue #262: package_index.open_with_auth no longer throws LookupError +* Distribute #262: package_index.open_with_auth no longer throws LookupError on Python 3. -* Issue #269: AttributeError when an exception occurs reading Manifest.in +* Distribute #269: AttributeError when an exception occurs reading Manifest.in on late releases of Python. -* Issue #272: Prevent TypeError when namespace package names are unicode +* Distribute #272: Prevent TypeError when namespace package names are unicode and single-install-externally-managed is used. Also fixes PIP issue 449. -* Issue #273: Legacy script launchers now install with Python2/3 support. +* Distribute #273: Legacy script launchers now install with Python2/3 support. ------ 0.6.24 ------ -* Issue #249: Added options to exclude 2to3 fixers +* Distribute #249: Added options to exclude 2to3 fixers ------ 0.6.23 ------ -* Issue #244: Fixed a test -* Issue #243: Fixed a test -* Issue #239: Fixed a test -* Issue #240: Fixed a test -* Issue #241: Fixed a test -* Issue #237: Fixed a test -* Issue #238: easy_install now uses 64bit executable wrappers on 64bit Python -* Issue #208: Fixed parsed_versions, it now honors post-releases as noted in the documentation -* Issue #207: Windows cli and gui wrappers pass CTRL-C to child python process -* Issue #227: easy_install now passes its arguments to setup.py bdist_egg -* Issue #225: Fixed a NameError on Python 2.5, 2.4 +* Distribute #244: Fixed a test +* Distribute #243: Fixed a test +* Distribute #239: Fixed a test +* Distribute #240: Fixed a test +* Distribute #241: Fixed a test +* Distribute #237: Fixed a test +* Distribute #238: easy_install now uses 64bit executable wrappers on 64bit Python +* Distribute #208: Fixed parsed_versions, it now honors post-releases as noted in the documentation +* Distribute #207: Windows cli and gui wrappers pass CTRL-C to child python process +* Distribute #227: easy_install now passes its arguments to setup.py bdist_egg +* Distribute #225: Fixed a NameError on Python 2.5, 2.4 ------ 0.6.21 ------ -* Issue #225: FIxed a regression on py2.4 +* Distribute #225: FIxed a regression on py2.4 ------ 0.6.20 ------ -* Issue #135: Include url in warning when processing URLs in package_index. -* Issue #212: Fix issue where easy_instal fails on Python 3 on windows installer. -* Issue #213: Fix typo in documentation. +* Distribute #135: Include url in warning when processing URLs in package_index. +* Distribute #212: Fix issue where easy_instal fails on Python 3 on windows installer. +* Distribute #213: Fix typo in documentation. ------ 0.6.19 ------ -* Issue 206: AttributeError: 'HTTPMessage' object has no attribute 'getheaders' +* Distribute #206: AttributeError: 'HTTPMessage' object has no attribute 'getheaders' ------ 0.6.18 ------ -* Issue 210: Fixed a regression introduced by Issue 204 fix. +* Distribute #210: Fixed a regression introduced by Distribute #204 fix. ------ 0.6.17 @@ -419,21 +417,21 @@ how it parses version numbers. * Support 'DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT' environment variable to allow to disable installation of easy_install-${version} script. * Support Python >=3.1.4 and >=3.2.1. -* Issue 204: Don't try to import the parent of a namespace package in +* Distribute #204: Don't try to import the parent of a namespace package in declare_namespace -* Issue 196: Tolerate responses with multiple Content-Length headers -* Issue 205: Sandboxing doesn't preserve working_set. Leads to setup_requires +* Distribute #196: Tolerate responses with multiple Content-Length headers +* Distribute #205: Sandboxing doesn't preserve working_set. Leads to setup_requires problems. ------ 0.6.16 ------ -* Builds sdist gztar even on Windows (avoiding Issue 193). -* Issue 192: Fixed metadata omitted on Windows when package_dir +* Builds sdist gztar even on Windows (avoiding Distribute #193). +* Distribute #192: Fixed metadata omitted on Windows when package_dir specified with forward-slash. -* Issue 195: Cython build support. -* Issue 200: Issues with recognizing 64-bit packages on Windows. +* Distribute #195: Cython build support. +* Distribute #200: Issues with recognizing 64-bit packages on Windows. ------ 0.6.15 @@ -441,49 +439,49 @@ how it parses version numbers. * Fixed typo in bdist_egg * Several issues under Python 3 has been solved. -* Issue 146: Fixed missing DLL files after easy_install of windows exe package. +* Distribute #146: Fixed missing DLL files after easy_install of windows exe package. ------ 0.6.14 ------ -* Issue 170: Fixed unittest failure. Thanks to Toshio. -* Issue 171: Fixed race condition in unittests cause deadlocks in test suite. -* Issue 143: Fixed a lookup issue with easy_install. +* Distribute #170: Fixed unittest failure. Thanks to Toshio. +* Distribute #171: Fixed race condition in unittests cause deadlocks in test suite. +* Distribute #143: Fixed a lookup issue with easy_install. Thanks to David and Zooko. -* Issue 174: Fixed the edit mode when its used with setuptools itself +* Distribute #174: Fixed the edit mode when its used with setuptools itself ------ 0.6.13 ------ -* Issue 160: 2.7 gives ValueError("Invalid IPv6 URL") -* Issue 150: Fixed using ~/.local even in a --no-site-packages virtualenv -* Issue 163: scan index links before external links, and don't use the md5 when +* Distribute #160: 2.7 gives ValueError("Invalid IPv6 URL") +* Distribute #150: Fixed using ~/.local even in a --no-site-packages virtualenv +* Distribute #163: scan index links before external links, and don't use the md5 when comparing two distributions ------ 0.6.12 ------ -* Issue 149: Fixed various failures on 2.3/2.4 +* Distribute #149: Fixed various failures on 2.3/2.4 ------ 0.6.11 ------ * Found another case of SandboxViolation - fixed -* Issue 15 and 48: Introduced a socket timeout of 15 seconds on url openings +* Distribute #15 and Distribute #48: Introduced a socket timeout of 15 seconds on url openings * Added indexsidebar.html into MANIFEST.in -* Issue 108: Fixed TypeError with Python3.1 -* Issue 121: Fixed --help install command trying to actually install. -* Issue 112: Added an os.makedirs so that Tarek's solution will work. -* Issue 133: Added --no-find-links to easy_install +* Distribute #108: Fixed TypeError with Python3.1 +* Distribute #121: Fixed --help install command trying to actually install. +* Distribute #112: Added an os.makedirs so that Tarek's solution will work. +* Distribute #133: Added --no-find-links to easy_install * Added easy_install --user -* Issue 100: Fixed develop --user not taking '.' in PYTHONPATH into account -* Issue 134: removed spurious UserWarnings. Patch by VanLindberg -* Issue 138: cant_write_to_target error when setup_requires is used. -* Issue 147: respect the sys.dont_write_bytecode flag +* Distribute #100: Fixed develop --user not taking '.' in PYTHONPATH into account +* Distribute #134: removed spurious UserWarnings. Patch by VanLindberg +* Distribute #138: cant_write_to_target error when setup_requires is used. +* Distribute #147: respect the sys.dont_write_bytecode flag ------ 0.6.10 @@ -497,27 +495,27 @@ how it parses version numbers. 0.6.9 ----- -* Issue 90: unknown setuptools version can be added in the working set -* Issue 87: setupt.py doesn't try to convert distribute_setup.py anymore +* Distribute #90: unknown setuptools version can be added in the working set +* Distribute #87: setupt.py doesn't try to convert distribute_setup.py anymore Initial Patch by arfrever. -* Issue 89: added a side bar with a download link to the doc. -* Issue 86: fixed missing sentence in pkg_resources doc. +* Distribute #89: added a side bar with a download link to the doc. +* Distribute #86: fixed missing sentence in pkg_resources doc. * Added a nicer error message when a DistributionNotFound is raised. -* Issue 80: test_develop now works with Python 3.1 -* Issue 93: upload_docs now works if there is an empty sub-directory. -* Issue 70: exec bit on non-exec files -* Issue 99: now the standalone easy_install command doesn't uses a +* Distribute #80: test_develop now works with Python 3.1 +* Distribute #93: upload_docs now works if there is an empty sub-directory. +* Distribute #70: exec bit on non-exec files +* Distribute #99: now the standalone easy_install command doesn't uses a "setup.cfg" if any exists in the working directory. It will use it only if triggered by ``install_requires`` from a setup.py call (install, develop, etc). -* Issue 101: Allowing ``os.devnull`` in Sandbox -* Issue 92: Fixed the "no eggs" found error with MacPort +* Distribute #101: Allowing ``os.devnull`` in Sandbox +* Distribute #92: Fixed the "no eggs" found error with MacPort (platform.mac_ver() fails) -* Issue 103: test_get_script_header_jython_workaround not run +* Distribute #103: test_get_script_header_jython_workaround not run anymore under py3 with C or POSIX local. Contributed by Arfrever. -* Issue 104: remvoved the assertion when the installation fails, +* Distribute #104: remvoved the assertion when the installation fails, with a nicer message for the end user. -* Issue 100: making sure there's no SandboxViolation when +* Distribute #100: making sure there's no SandboxViolation when the setup script patches setuptools. ----- @@ -531,8 +529,8 @@ how it parses version numbers. 0.6.7 ----- -* Issue 58: Added --user support to the develop command -* Issue 11: Generated scripts now wrap their call to the script entry point +* Distribute #58: Added --user support to the develop command +* Distribute #11: Generated scripts now wrap their call to the script entry point in the standard "if name == 'main'" * Added the 'DONT_PATCH_SETUPTOOLS' environment variable, so virtualenv can drive an installation that doesn't patch a global setuptools. @@ -540,17 +538,17 @@ how it parses version numbers. http://code.google.com/p/unladen-swallow/source/detail?spec=svn875&r=719 and determined that it no longer applies. Distribute should work fine with Unladen Swallow 2009Q3. -* Issue 21: Allow PackageIndex.open_url to gracefully handle all cases of a +* Distribute #21: Allow PackageIndex.open_url to gracefully handle all cases of a httplib.HTTPException instead of just InvalidURL and BadStatusLine. * Removed virtual-python.py from this distribution and updated documentation to point to the actively maintained virtualenv instead. -* Issue 64: use_setuptools no longer rebuilds the distribute egg every +* Distribute #64: use_setuptools no longer rebuilds the distribute egg every time it is run * use_setuptools now properly respects the requested version * use_setuptools will no longer try to import a distribute egg for the wrong Python version -* Issue 74: no_fake should be True by default. -* Issue 72: avoid a bootstrapping issue with easy_install -U +* Distribute #74: no_fake should be True by default. +* Distribute #72: avoid a bootstrapping issue with easy_install -U ----- 0.6.6 @@ -563,10 +561,10 @@ how it parses version numbers. 0.6.5 ----- -* Issue 65: cli.exe and gui.exe are now generated at build time, +* Distribute #65: cli.exe and gui.exe are now generated at build time, depending on the platform in use. -* Issue 67: Fixed doc typo (PEP 381/382) +* Distribute #67: Fixed doc typo (PEP 381/382) * Distribute no longer shadows setuptools if we require a 0.7-series setuptools. And an error is raised when installing a 0.7 setuptools with @@ -583,10 +581,10 @@ how it parses version numbers. ----- * Added the generation of `distribute_setup_3k.py` during the release. - This closes issue #52. + This closes Distribute #52. * Added an upload_docs command to easily upload project documentation to - PyPI's https://pythonhosted.org. This close issue #56. + PyPI's https://pythonhosted.org. This close issue Distribute #56. * Fixed a bootstrap bug on the use_setuptools() API. @@ -612,29 +610,29 @@ setuptools ========== * Added Python 3 support; see docs/python3.txt. - This closes http://bugs.python.org/setuptools/issue39. + This closes Old Setuptools #39. * Added option to run 2to3 automatically when installing on Python 3. - This closes issue #31. + This closes issue Distribute #31. * Fixed invalid usage of requirement.parse, that broke develop -d. - This closes http://bugs.python.org/setuptools/issue44. + This closes Old Setuptools #44. * Fixed script launcher for 64-bit Windows. - This closes http://bugs.python.org/setuptools/issue2. + This closes Old Setuptools #2. * KeyError when compiling extensions. - This closes http://bugs.python.org/setuptools/issue41. + This closes Old Setuptools #41. bootstrapping ============= -* Fixed bootstrap not working on Windows. This closes issue #49. +* Fixed bootstrap not working on Windows. This closes issue Distribute #49. -* Fixed 2.6 dependencies. This closes issue #50. +* Fixed 2.6 dependencies. This closes issue Distribute #50. * Make sure setuptools is patched when running through easy_install - This closes http://bugs.python.org/setuptools/issue40. + This closes Old Setuptools #40. ----- 0.6.1 @@ -644,14 +642,13 @@ setuptools ========== * package_index.urlopen now catches BadStatusLine and malformed url errors. - This closes issue #16 and issue #18. + This closes Distribute #16 and Distribute #18. -* zip_ok is now False by default. This closes - http://bugs.python.org/setuptools/issue33. +* zip_ok is now False by default. This closes Old Setuptools #33. -* Fixed invalid URL error catching. http://bugs.python.org/setuptools/issue20. +* Fixed invalid URL error catching. Old Setuptools #20. -* Fixed invalid bootstraping with easy_install installation (issue #40). +* Fixed invalid bootstraping with easy_install installation (Distribute #40). Thanks to Florian Schulze for the help. * Removed buildout/bootstrap.py. A new repository will create a specific @@ -663,7 +660,7 @@ bootstrapping * The boostrap process leave setuptools alone if detected in the system and --root or --prefix is provided, but is not in the same location. - This closes issue #10. + This closes Distribute #10. --- 0.6 @@ -673,18 +670,18 @@ setuptools ========== * Packages required at build time where not fully present at install time. - This closes issue #12. + This closes Distribute #12. -* Protected against failures in tarfile extraction. This closes issue #10. +* Protected against failures in tarfile extraction. This closes Distribute #10. -* Made Jython api_tests.txt doctest compatible. This closes issue #7. +* Made Jython api_tests.txt doctest compatible. This closes Distribute #7. * sandbox.py replaced builtin type file with builtin function open. This - closes issue #6. + closes Distribute #6. -* Immediately close all file handles. This closes issue #3. +* Immediately close all file handles. This closes Distribute #3. -* Added compatibility with Subversion 1.6. This references issue #1. +* Added compatibility with Subversion 1.6. This references Distribute #1. pkg_resources ============= @@ -693,18 +690,18 @@ pkg_resources instead. Based on a patch from ronaldoussoren. This closes issue #5. * Fixed a SandboxViolation for mkdir that could occur in certain cases. - This closes issue #13. + This closes Distribute #13. * Allow to find_on_path on systems with tight permissions to fail gracefully. - This closes issue #9. + This closes Distribute #9. * Corrected inconsistency between documentation and code of add_entry. - This closes issue #8. + This closes Distribute #8. -* Immediately close all file handles. This closes issue #3. +* Immediately close all file handles. This closes Distribute #3. easy_install ============ -* Immediately close all file handles. This closes issue #3. +* Immediately close all file handles. This closes Distribute #3. @@ -13,7 +13,7 @@ except AttributeError: zip_longest = itertools.izip_longest def before_upload(): - _linkify('CHANGES.txt', 'CHANGES (linked).txt') + _linkify('CHANGES.txt', 'CHANGES (links).txt') files_with_versions = ( 'ez_setup.py', 'setuptools/__init__.py', @@ -23,56 +23,33 @@ test_info = "Travis-CI tests: http://travis-ci.org/#!/jaraco/setuptools" os.environ["SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES"] = "1" +link_patterns = [ + r"(Issue )?#(?P<issue>\d+)", + r"Distribute #(?P<distribute>\d+)", + r"Buildout #(?P<buildout>\d+)", + r"Old Setuptools #(?P<old_setuptools>\d+)", + r"Jython #(?P<jython>\d+)", +] + +issue_urls = dict( + issue='https://bitbucket.org/pypa/setuptools/issue/{issue}', + distribute='https://bitbucket.org/tarek/distribute/issue/{distribute}', + buildout='https://github.com/buildout/buildout/issues/{buildout}', + old_setuptools='http://bugs.python.org/setuptools/issue{old_setuptools}', + jython='http://bugs.jython.org/issue{jython}', +) + def _linkify(source, dest): + pattern = '|'.join(link_patterns) with open(source) as source: - out = _linkified_text(source.read()) + out = re.sub(pattern, replacer, source.read()) with open(dest, 'w') as dest: dest.write(out) -def _linkified(rst_path): - "return contents of reStructureText file with linked issue references" - rst_file = open(rst_path) - rst_content = rst_file.read() - rst_file.close() - - return _linkified_text(rst_content) - -def _linkified_text(rst_content): - # first identify any existing HREFs so they're not changed - HREF_pattern = re.compile('`.*?`_', re.MULTILINE | re.DOTALL) - - # split on the HREF pattern, returning the parts to be linkified - plain_text_parts = HREF_pattern.split(rst_content) - anchors = [] - linkified_parts = [_linkified_part(part, anchors) - for part in plain_text_parts] - pairs = zip_longest( - linkified_parts, - HREF_pattern.findall(rst_content), - fillvalue='', - ) - rst_content = ''.join(flatten(pairs)) - - anchors = sorted(anchors) - - bitroot = 'https://bitbucket.org/tarek/distribute' - rst_content += "\n" - for x in anchors: - issue = re.findall(r'\d+', x)[0] - rst_content += '.. _`%s`: %s/issue/%s\n' % (x, bitroot, issue) - rst_content += "\n" - return rst_content - -def flatten(listOfLists): - "Flatten one level of nesting" - return itertools.chain.from_iterable(listOfLists) - - -def _linkified_part(text, anchors): - """ - Linkify a part and collect any anchors generated - """ - revision = re.compile(r'\b(issue\s+#?\d+)\b', re.M | re.I) - - anchors.extend(revision.findall(text)) # ['Issue #43', ...] - return revision.sub(r'`\1`_', text) +def replacer(match): + text = match.group(0) + match_dict = match.groupdict() + for key in match_dict: + if match_dict[key]: + url = issue_urls[key].format(**match_dict) + return "`{text} <{url}>`_".format(text=text, url=url) |