Commit 062b9b95 authored by Jason R. Coombs's avatar Jason R. Coombs

Merged remaining changes from 1aae1efe5733 (setuptools 0.6c12dev)

--HG--
branch : Setuptools-Distribute merge
parents ff75a6cb a6e8eec3
...@@ -256,7 +256,7 @@ or directory (found in the installation directory). ...@@ -256,7 +256,7 @@ or directory (found in the installation directory).
If you want to delete the currently installed version of a package (or all If you want to delete the currently installed version of a package (or all
versions of a package), you should first run:: versions of a package), you should first run::
easy_install -m PackageName easy_install -mxN PackageName
This will ensure that Python doesn't continue to search for a package you're This will ensure that Python doesn't continue to search for a package you're
planning to remove. After you've done this, you can safely delete the .egg planning to remove. After you've done this, you can safely delete the .egg
...@@ -427,7 +427,7 @@ below, and also the section on the `Package Index "API"`_. ...@@ -427,7 +427,7 @@ below, and also the section on the `Package Index "API"`_.
Password-Protected Sites Password-Protected Sites
------------------------ ~~~~~~~~~~~~~~~~~~~~~~~~
If a site you want to download from is password-protected using HTTP "Basic" If a site you want to download from is password-protected using HTTP "Basic"
authentication, you can specify your credentials in the URL, like so:: authentication, you can specify your credentials in the URL, like so::
...@@ -1218,6 +1218,48 @@ Release Notes/Change History ...@@ -1218,6 +1218,48 @@ Release Notes/Change History
============================ ============================
0.6final 0.6final
* Fixed AttributeError under Python 2.3 when processing "HTTP authentication"
URLs (i.e., ones with a ``user:password@host``).
* Fixed bogus AttributeError when no local or downloadable packages are
available
* Fix for recent Sourceforge downloading changes
* Handle .exe's containing .pyd or .dll files installed as "data" on win32
* Extract copies of hardlinked and symlinked files in tarballs when extracting
source
* Support HTTP servers that return multiple 'Content-Length' headers
* Support user/password credentials in Subversion (svnserve) URLs
* Fixed problems accessing /dev/null inside the script sandbox, and the sandbox
swapping the ``open`` and file`` builtins.
* Fixed skipping extraction of files or directories containing '..' in their
names
0.6c11
* Fix installed script .exe files not working with 64-bit Python on Windows
(wasn't actually released in 0.6c10 due to a lost checkin)
0.6c10
* Fix easy_install.exe giving UAC errors on Windows Vista
* Support for the most recent Sourceforge download link insanity
* Stop crashing on certain types of HTTP error
* Stop re-trying URLs that already failed retrieval once
* Fixes for various dependency management problems such as looping builds,
re-downloading packages already present on sys.path (but not in a registered
"site" directory), and semi-randomly preferring local "-f" packages over
local installed packages
0.6c9
* Fixed ``win32.exe`` support for .pth files, so unnecessary directory nesting * Fixed ``win32.exe`` support for .pth files, so unnecessary directory nesting
is flattened out in the resulting egg. (There was a case-sensitivity is flattened out in the resulting egg. (There was a case-sensitivity
problem that affected some distributions, notably ``pywin32``.) problem that affected some distributions, notably ``pywin32``.)
......
...@@ -12,7 +12,17 @@ Installation Instructions ...@@ -12,7 +12,17 @@ Installation Instructions
Windows Windows
======= =======
Install setuptools using the provided ``.exe`` installer. If you've previously 32-bit version of Python
Install setuptools using the provided ``.exe`` installer.
64-bit versions of Python
Download `ez_setup.py`_ and run it; it will download the appropriate .egg file and install it for you. (Currently, the provided ``.exe`` installer does not support 64-bit versions of Python for Windows, due to a `distutils installer compatibility issue`_
.. _ez_setup.py: http://peak.telecommunity.com/dist/ez_setup.py
.. _distutils installer compatibility issue: http://bugs.python.org/issue6792
NOTE: Regardless of what sort of Python you're using, if you've previously
installed older versions of setuptools, please delete all ``setuptools*.egg`` installed older versions of setuptools, please delete all ``setuptools*.egg``
and ``setuptools.pth`` files from your system's ``site-packages`` directory and ``setuptools.pth`` files from your system's ``site-packages`` directory
(and any other ``sys.path`` directories) FIRST. (and any other ``sys.path`` directories) FIRST.
...@@ -90,7 +100,7 @@ Downloads ...@@ -90,7 +100,7 @@ Downloads
All setuptools downloads can be found at `the project's home page in the Python All setuptools downloads can be found at `the project's home page in the Python
Package Index`_. Scroll to the very bottom of the page to find the links. Package Index`_. Scroll to the very bottom of the page to find the links.
.. _the project's home page in the Python Package Index: http://pypi.python.org/pypi/setuptools .. _the project's home page in the Python Package Index: http://pypi.python.org/pypi/setuptools#files
In addition to the PyPI downloads, the development version of ``setuptools`` In addition to the PyPI downloads, the development version of ``setuptools``
is available from the `Python SVN sandbox`_, and in-development versions of the is available from the `Python SVN sandbox`_, and in-development versions of the
...@@ -159,3 +169,4 @@ Credits ...@@ -159,3 +169,4 @@ Credits
"Code Bear" Taylor) contributed their time and stress as guinea pigs for the "Code Bear" Taylor) contributed their time and stress as guinea pigs for the
use of eggs and setuptools, even before eggs were "cool". (Thanks, guys!) use of eggs and setuptools, even before eggs were "cool". (Thanks, guys!)
.. _files:
...@@ -14,37 +14,18 @@ the appropriate options to ``use_setuptools()``. ...@@ -14,37 +14,18 @@ the appropriate options to ``use_setuptools()``.
This file can also be run as a script to install or upgrade setuptools. This file can also be run as a script to install or upgrade setuptools.
""" """
import sys import sys
DEFAULT_VERSION = "0.6c9" DEFAULT_VERSION = "0.6c12"
DEFAULT_URL = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3] DEFAULT_URL = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3]
md5_data = { md5_data = {
'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca', 'setuptools-0.6c10-py2.3.egg': 'ce1e2ab5d3a0256456d9fc13800a7090',
'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb', 'setuptools-0.6c10-py2.4.egg': '57d6d9d6e9b80772c59a53a8433a5dd4',
'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b', 'setuptools-0.6c10-py2.5.egg': 'de46ac8b1c97c895572e5e8596aeb8c7',
'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a', 'setuptools-0.6c10-py2.6.egg': '58ea40aef06da02ce641495523a0b7f5',
'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618', 'setuptools-0.6c11-py2.3.egg': '2baeac6e13d414a9d28e7ba5b5a596de',
'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac', 'setuptools-0.6c11-py2.4.egg': 'bd639f9b0eac4c42497034dec2ec0c2b',
'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5', 'setuptools-0.6c11-py2.5.egg': '64c94f3bf7a72a13ec83e0b24f2749b2',
'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4', 'setuptools-0.6c11-py2.6.egg': 'bfa92100bd772d5a213eedd356d64086',
'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c',
'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b',
'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27',
'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277',
'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa',
'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e',
'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e',
'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f',
'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2',
'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc',
'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167',
'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64',
'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d',
'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20',
'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab',
'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53',
'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2',
'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e',
'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372',
'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902', 'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902',
'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de', 'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de',
'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b', 'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b',
...@@ -104,11 +85,11 @@ def use_setuptools( ...@@ -104,11 +85,11 @@ def use_setuptools(
"\n\n(Currently using %r)" "\n\n(Currently using %r)"
) % (version, e.args[0]) ) % (version, e.args[0])
sys.exit(2) sys.exit(2)
else:
del pkg_resources, sys.modules['pkg_resources'] # reload ok
return do_download()
except pkg_resources.DistributionNotFound: except pkg_resources.DistributionNotFound:
return do_download() pass
del pkg_resources, sys.modules['pkg_resources'] # reload ok
return do_download()
def download_setuptools( def download_setuptools(
version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
......
...@@ -81,17 +81,18 @@ char *quoted(char *data) { ...@@ -81,17 +81,18 @@ char *quoted(char *data) {
char *loadable_exe(char *exename) { char *loadable_exe(char *exename) {
HINSTANCE hPython; /* DLL handle for python executable */ /* HINSTANCE hPython; DLL handle for python executable */
char *result; char *result;
hPython = LoadLibraryEx(exename, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); /* hPython = LoadLibraryEx(exename, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
if (!hPython) return NULL; if (!hPython) return NULL; */
/* Return the absolute filename for spawnv */ /* Return the absolute filename for spawnv */
result = calloc(MAX_PATH, sizeof(char)); result = calloc(MAX_PATH, sizeof(char));
if (result) GetModuleFileName(hPython, result, MAX_PATH); strncpy(result, exename, MAX_PATH);
/*if (result) GetModuleFileName(hPython, result, MAX_PATH);
FreeLibrary(hPython); FreeLibrary(hPython); */
return result; return result;
} }
......
...@@ -269,7 +269,7 @@ instance: ...@@ -269,7 +269,7 @@ instance:
the global ``working_set`` to reflect the change. This method is also the global ``working_set`` to reflect the change. This method is also
called by the ``WorkingSet()`` constructor during initialization. called by the ``WorkingSet()`` constructor during initialization.
This method uses ``find_distributions(entry,False)`` to find distributions This method uses ``find_distributions(entry, True)`` to find distributions
corresponding to the path entry, and then ``add()`` them. `entry` is corresponding to the path entry, and then ``add()`` them. `entry` is
always appended to the ``entries`` attribute, even if it is already always appended to the ``entries`` attribute, even if it is already
present, however. (This is because ``sys.path`` can contain the same value present, however. (This is because ``sys.path`` can contain the same value
...@@ -1661,14 +1661,10 @@ PEP 302 Utilities ...@@ -1661,14 +1661,10 @@ PEP 302 Utilities
for obtaining an "importer" object. It first checks for an importer for for obtaining an "importer" object. It first checks for an importer for
the path item in ``sys.path_importer_cache``, and if not found it calls the path item in ``sys.path_importer_cache``, and if not found it calls
each of the ``sys.path_hooks`` and caches the result if a good importer is each of the ``sys.path_hooks`` and caches the result if a good importer is
found. If no importer is found, this routine returns an ``ImpWrapper`` found. If no importer is found, this routine returns a wrapper object
instance that wraps the builtin import machinery as a PEP 302-compliant that wraps the builtin import machinery as a PEP 302-compliant "importer"
"importer" object. This ``ImpWrapper`` is *not* cached; instead a new object. This wrapper object is *not* cached; instead a new instance is
instance is returned each time. returned each time.
(Note: When run under Python 2.5, this function is simply an alias for
``pkgutil.get_importer()``, and instead of ``pkg_resources.ImpWrapper``
instances, it may return ``pkgutil.ImpImporter`` instances.)
File/Path Utilities File/Path Utilities
...@@ -1692,7 +1688,11 @@ File/Path Utilities ...@@ -1692,7 +1688,11 @@ File/Path Utilities
Release Notes/Change History Release Notes/Change History
---------------------------- ----------------------------
0.6final 0.6c10
* Prevent lots of spurious "already imported from another path" warnings (e.g.
when pkg_resources is imported late).
0.6c9
* Fix ``resource_listdir('')`` always returning an empty list for zipped eggs. * Fix ``resource_listdir('')`` always returning an empty list for zipped eggs.
0.6c7 0.6c7
......
...@@ -7,11 +7,12 @@ ...@@ -7,11 +7,12 @@
# If your initials aren't PJE, don't run it. :) # If your initials aren't PJE, don't run it. :)
# #
export VERSION="0.6c9" export VERSION="0.6c12"
python2.3 setup.py -q egg_info # force upload to be available
python2.3 setup.py -q release source --target-version=2.3 upload && \ python2.3 setup.py -q release source --target-version=2.3 upload && \
python2.4 setup.py -q release binary --target-version=2.4 upload && \ python2.4 setup.py -q release binary --target-version=2.4 upload && \
python2.5 setup.py -q release binary --target-version=2.5 upload && \ python2.5 setup.py -q release binary --target-version=2.5 upload && \
python2.6 setup.py -q release binary --target-version=2.6 -p win32 upload && \
python2.3 ez_setup.py --md5update dist/setuptools-$VERSION*-py2.?.egg && \ python2.3 ez_setup.py --md5update dist/setuptools-$VERSION*-py2.?.egg && \
cp ez_setup.py virtual-python.py ~/distrib/ && \ cp ez_setup.py virtual-python.py ~/distrib/ && \
cp ez_setup.py ~/projects/ez_setup/__init__.py && \ cp ez_setup.py ~/projects/ez_setup/__init__.py && \
......
...@@ -7,7 +7,7 @@ d = {} ...@@ -7,7 +7,7 @@ d = {}
execfile(convert_path('setuptools/command/__init__.py'), d) execfile(convert_path('setuptools/command/__init__.py'), d)
SETUP_COMMANDS = d['__all__'] SETUP_COMMANDS = d['__all__']
VERSION = "0.6c9" VERSION = "0.6c12"
from setuptools import setup, find_packages from setuptools import setup, find_packages
import sys import sys
...@@ -53,8 +53,8 @@ setup( ...@@ -53,8 +53,8 @@ setup(
"include_package_data = setuptools.dist:assert_bool", "include_package_data = setuptools.dist:assert_bool",
"dependency_links = setuptools.dist:assert_string_list", "dependency_links = setuptools.dist:assert_string_list",
"test_loader = setuptools.dist:check_importable", "test_loader = setuptools.dist:check_importable",
"packages = setuptools.dist:check_packages",
], ],
"egg_info.writers": [ "egg_info.writers": [
"PKG-INFO = setuptools.command.egg_info:write_pkg_info", "PKG-INFO = setuptools.command.egg_info:write_pkg_info",
"requires.txt = setuptools.command.egg_info:write_requirements", "requires.txt = setuptools.command.egg_info:write_requirements",
......
...@@ -31,7 +31,7 @@ depends.txt = setuptools.command.egg_info:warn_depends_obsolete ...@@ -31,7 +31,7 @@ depends.txt = setuptools.command.egg_info:warn_depends_obsolete
[console_scripts] [console_scripts]
easy_install = setuptools.command.easy_install:main easy_install = setuptools.command.easy_install:main
easy_install-2.5 = setuptools.command.easy_install:main easy_install-2.6 = setuptools.command.easy_install:main
[setuptools.file_finders] [setuptools.file_finders]
svn_cvs = setuptools.command.sdist:_default_revctrl svn_cvs = setuptools.command.sdist:_default_revctrl
...@@ -49,6 +49,7 @@ test_suite = setuptools.dist:check_test_suite ...@@ -49,6 +49,7 @@ test_suite = setuptools.dist:check_test_suite
eager_resources = setuptools.dist:assert_string_list eager_resources = setuptools.dist:assert_string_list
zip_safe = setuptools.dist:assert_bool zip_safe = setuptools.dist:assert_bool
test_loader = setuptools.dist:check_importable test_loader = setuptools.dist:check_importable
packages = setuptools.dist:check_packages
tests_require = setuptools.dist:check_requirements tests_require = setuptools.dist:check_requirements
[setuptools.installation] [setuptools.installation]
......
...@@ -2569,6 +2569,27 @@ A few important points for writing revision control file finders: ...@@ -2569,6 +2569,27 @@ A few important points for writing revision control file finders:
inform the user of the missing program(s). inform the user of the missing program(s).
A Note Regarding Dependencies
-----------------------------
If the project *containing* your distutils/setuptools extension(s) depends on
any projects other than setuptools, you *must* also declare those dependencies
as part of your project's ``setup_requires`` keyword, so that they will
already be built (and at least temprorarily installed) before your extension
project is built.
So, if for example you create a project Foo that includes a new file finder
plugin, and Foo depends on Bar, then you *must* list Bar in both the
``install_requires`` **and** ``setup_requires`` arguments to ``setup()``.
If you don't do this, then in certain edge cases you may cause setuptools to
try to go into infinite recursion, trying to build your dependencies to resolve
your dependencies, while still building your dependencies. (It probably won't
happen on your development machine, but it *will* happen in a full build
pulling everything from revision control on a clean machine, and then you or
your users will be scratching their heads trying to figure it out!)
Subclassing ``Command`` Subclassing ``Command``
----------------------- -----------------------
...@@ -2611,7 +2632,18 @@ XXX ...@@ -2611,7 +2632,18 @@ XXX
Release Notes/Change History Release Notes/Change History
---------------------------- ----------------------------
0.6final 0.6c11
* Fix "bdist_wininst upload" trying to upload same file twice
0.6c10
* Fix for the Python 2.6.3 build_ext API change
* Ensure C libraries (as opposed to extensions) are also built when doing
bdist_egg
* Support for SVN 1.6
0.6c9
* Fixed a missing files problem when using Windows source distributions on * Fixed a missing files problem when using Windows source distributions on
non-Windows platforms, due to distutils not handling manifest file line non-Windows platforms, due to distutils not handling manifest file line
endings correctly. endings correctly.
......
No preview for this file type
No preview for this file type
[setuptools] [setuptools]
status = 'release candidate' status = 'release candidate'
major = 0 major = 0
build = 9 build = 12
minor = 6 minor = 6
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment