mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 23:10:16 +00:00
Compare commits
31 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f964209589 | |||
| 2e699d392e | |||
| 431ecee509 | |||
| 90696215ae | |||
| 5b55261700 | |||
| 727ff90acf | |||
| 0060fdacd8 | |||
| 85ad1fa988 | |||
| 56c022ca41 | |||
| f68e0989ea | |||
| 7381117bb8 | |||
| c9209ebb3d | |||
| 35345d11f5 | |||
| 6ee17b4c26 | |||
| 86267f93a1 | |||
| 50642e7069 | |||
| 8349f291d2 | |||
| 1aad21382e | |||
| 686ee087a5 | |||
| f137ba213a | |||
| 5ae51010cc | |||
| 29d8e7f670 | |||
| 5be3e0ce52 | |||
| ddde30a12e | |||
| 2db5578998 | |||
| 290250836f | |||
| 0ff4df4dc3 | |||
| 9177aa2c08 | |||
| ad791dc7f8 | |||
| 6b298ff7f3 | |||
| 01e30e938c |
+33
-51
@@ -1,34 +1,10 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# This script serves as the
|
# Usage:
|
||||||
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
|
|
||||||
# compiler.
|
|
||||||
#
|
|
||||||
# A [buildpack](http://devcenter.heroku.com/articles/buildpacks) is an
|
|
||||||
# adapter between a Python application and Heroku's runtime.
|
|
||||||
#
|
|
||||||
# You can intreract with the Heroku API directly with [heroku.py](https://github.com/heroku/heroku.py/).
|
|
||||||
#
|
|
||||||
# See also: [Release history](/changelog.html), [Detection](/detect.html).
|
|
||||||
#
|
|
||||||
# ## Usage
|
|
||||||
# Compiling an app into a slug is simple:
|
|
||||||
#
|
#
|
||||||
# $ bin/compile <build-dir> <cache-dir>
|
# $ bin/compile <build-dir> <cache-dir>
|
||||||
|
|
||||||
|
|
||||||
# ## Assumptions
|
|
||||||
#
|
|
||||||
# This buildpack makes the following assumptions:
|
|
||||||
#
|
|
||||||
# - The desired Python VM is available on the base system.
|
|
||||||
# - Library dependencies are available on the base system.
|
|
||||||
# - Django applications should not require any platform-specific configuration.
|
|
||||||
|
|
||||||
# <hr />
|
|
||||||
|
|
||||||
# ## Context
|
|
||||||
|
|
||||||
# Fail fast and fail hard.
|
# Fail fast and fail hard.
|
||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
|
|
||||||
@@ -49,8 +25,10 @@ LEGACY_TRIGGER="lib/python2.7"
|
|||||||
PROFILE_PATH="$BUILD_DIR/.profile.d/python.sh"
|
PROFILE_PATH="$BUILD_DIR/.profile.d/python.sh"
|
||||||
|
|
||||||
# Python version. This will be used in the future to specify custom Pythons.
|
# Python version. This will be used in the future to specify custom Pythons.
|
||||||
DEFAULT_PYTHON_VERSION="python-2.7.3"
|
DEFAULT_PYTHON_VERSION="python-2.7.4"
|
||||||
PYTHON_EXE="/app/.heroku/python/bin/python"
|
PYTHON_EXE="/app/.heroku/python/bin/python"
|
||||||
|
PIP_VERSION="1.3.1"
|
||||||
|
DISTRIBUTE_VERSION="0.6.36"
|
||||||
|
|
||||||
# Sanitizing environment variables.
|
# Sanitizing environment variables.
|
||||||
unset GIT_DIR PYTHONHOME PYTHONPATH LD_LIBRARY_PATH LIBRARY_PATH
|
unset GIT_DIR PYTHONHOME PYTHONPATH LD_LIBRARY_PATH LIBRARY_PATH
|
||||||
@@ -79,9 +57,9 @@ BUILD_DIR=$APP_DIR
|
|||||||
# Prepend proper path buildpack use.
|
# Prepend proper path buildpack use.
|
||||||
export PATH=$BUILD_DIR/.heroku/python/bin:$PATH
|
export PATH=$BUILD_DIR/.heroku/python/bin:$PATH
|
||||||
export PYTHONUNBUFFERED=1
|
export PYTHONUNBUFFERED=1
|
||||||
|
export LANG=en_US.UTF-8
|
||||||
# ## Build Time
|
export LIBRARY_PATH=/app/.heroku/vendor/lib
|
||||||
#
|
export LD_LIBRARY_PATH=/app/.heroku/vendor/lib
|
||||||
|
|
||||||
# Switch to the repo's context.
|
# Switch to the repo's context.
|
||||||
cd $BUILD_DIR
|
cd $BUILD_DIR
|
||||||
@@ -146,38 +124,44 @@ if [ ! "$SKIP_INSTALL" ]; then
|
|||||||
|
|
||||||
# Record for future reference.
|
# Record for future reference.
|
||||||
echo $PYTHON_VERSION > .heroku/python-version
|
echo $PYTHON_VERSION > .heroku/python-version
|
||||||
WORKING_DIR=$(pwd)
|
FRESH_PYTHON=true
|
||||||
|
|
||||||
# Prepare it for the real world
|
|
||||||
puts-step "Installing Distribute (0.6.34)"
|
|
||||||
cd $ROOT_DIR/vendor/distribute-0.6.34/
|
|
||||||
python setup.py install &> /dev/null
|
|
||||||
cd $WORKING_DIR
|
|
||||||
|
|
||||||
puts-step "Installing Pip (1.2.1)"
|
|
||||||
cd $ROOT_DIR/vendor/pip-1.2.1/
|
|
||||||
python setup.py install &> /dev/null
|
|
||||||
cd $WORKING_DIR
|
|
||||||
|
|
||||||
hash -r
|
hash -r
|
||||||
else
|
else
|
||||||
puts-step "Using Python runtime ($PYTHON_VERSION)"
|
puts-step "Using Python runtime ($PYTHON_VERSION)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# If Pip isn't up to date:
|
||||||
|
if [ "$FRESH_PYTHON" ] || [[ ! $(pip --version) == *$PIP_VERSION* ]]; then
|
||||||
|
WORKING_DIR=$(pwd)
|
||||||
|
|
||||||
|
# Prepare it for the real world
|
||||||
|
puts-step "Installing Distribute ($DISTRIBUTE_VERSION)"
|
||||||
|
cd $ROOT_DIR/vendor/distribute-$DISTRIBUTE_VERSION/
|
||||||
|
python setup.py install &> /dev/null
|
||||||
|
cd $WORKING_DIR
|
||||||
|
|
||||||
|
puts-step "Installing Pip ($PIP_VERSION)"
|
||||||
|
cd $ROOT_DIR/vendor/pip-$PIP_VERSION/
|
||||||
|
python setup.py install &> /dev/null
|
||||||
|
cd $WORKING_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
hash -r
|
||||||
|
|
||||||
# Pylibmc support.
|
# Pylibmc support.
|
||||||
# See [`bin/steps/pylibmc`](pylibmc.html).
|
# See [`bin/steps/pylibmc`](pylibmc.html).
|
||||||
source $BIN_DIR/steps/pylibmc
|
source $BIN_DIR/steps/pylibmc
|
||||||
|
|
||||||
# Install Mercurial if it appears to be required.
|
# Install Mercurial if it appears to be required.
|
||||||
if (in-req "hg+" requirements.txt) then
|
if (grep -Fiq "hg+" requirements.txt) then
|
||||||
pip install --use-mirrors mercurial | cleanup | indent
|
/app/.heroku/python/bin/pip install --use-mirrors mercurial | cleanup | indent
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install dependencies with Pip.
|
# Install dependencies with Pip.
|
||||||
puts-step "Installing dependencies using Pip (1.2.1)"
|
puts-step "Installing dependencies using Pip ($PIP_VERSION)"
|
||||||
pip install --use-mirrors -r requirements.txt --exists-action=w --src=./.heroku/src | cleanup | indent
|
/app/.heroku/python/bin/pip install --use-mirrors -r requirements.txt --exists-action=w --src=./.heroku/src | cleanup | indent
|
||||||
|
|
||||||
# Django collectstatic support.
|
# Django collectstatic support.
|
||||||
source $BIN_DIR/steps/collectstatic
|
source $BIN_DIR/steps/collectstatic
|
||||||
@@ -193,21 +177,19 @@ done
|
|||||||
|
|
||||||
# Set context environment variables.
|
# Set context environment variables.
|
||||||
set-env PATH '$HOME/.heroku/python/bin:$PATH'
|
set-env PATH '$HOME/.heroku/python/bin:$PATH'
|
||||||
# set-env PYTHONHOME /app/.heroku/python/
|
|
||||||
set-env PYTHONUNBUFFERED true
|
set-env PYTHONUNBUFFERED true
|
||||||
|
set-env PYTHONHOME /app/.heroku/python
|
||||||
set-default-env LIBRARY_PATH /app/.heroku/vendor/lib
|
set-default-env LIBRARY_PATH /app/.heroku/vendor/lib
|
||||||
set-default-env LD_LIBRARY_PATH /app/.heroku/vendor/lib
|
set-default-env LD_LIBRARY_PATH /app/.heroku/vendor/lib
|
||||||
set-default-env LANG en_US.UTF-8
|
set-default-env LANG en_US.UTF-8
|
||||||
set-default-env PYTHONHASHSEED random
|
set-default-env PYTHONHASHSEED random
|
||||||
set-default-env PYTHONPATH /app/
|
set-default-env PYTHONPATH /app/
|
||||||
un-set-env PYTHONHOME
|
|
||||||
|
|
||||||
|
|
||||||
|
# Experimental post_compile hook.
|
||||||
|
source $BIN_DIR/steps/hooks/post_compile
|
||||||
|
|
||||||
# ### Fin.
|
# ### Fin.
|
||||||
|
|
||||||
deep-mv $BUILD_DIR $ORIG_BUILD_DIR
|
deep-mv $BUILD_DIR $ORIG_BUILD_DIR
|
||||||
deep-mv $TMP_APP_DIR $APP_DIR
|
deep-mv $TMP_APP_DIR $APP_DIR
|
||||||
|
|
||||||
|
|
||||||
# Experimental post_compile hook.
|
|
||||||
source $BIN_DIR/steps/hooks/post_compile
|
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@ VENDORED_MEMCACHED="http://cl.ly/0a191R3K160t1w1P0N25/vendor-libmemcached.tar.gz
|
|||||||
source $BIN_DIR/utils
|
source $BIN_DIR/utils
|
||||||
|
|
||||||
# If pylibmc exists within requirements, use vendored libmemcached.
|
# If pylibmc exists within requirements, use vendored libmemcached.
|
||||||
if (in-req "pylibmc" requirements.txt) then
|
if (grep -Eiq "^\s*pylibmc" requirements.txt) then
|
||||||
echo "-----> Noticed pylibmc. Bootstrapping libmemcached."
|
echo "-----> Noticed pylibmc. Bootstrapping libmemcached."
|
||||||
cd .heroku
|
cd .heroku
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
Script started on Wed Dec 19 22:40:46 2012
|
|
||||||
[1m[7m%[27m[1m[0m
|
|
||||||
|
|
||||||
@@ -52,25 +52,3 @@ function deep-mv (){
|
|||||||
rm -fr $1/!(tmp)
|
rm -fr $1/!(tmp)
|
||||||
find -H $1 -maxdepth 1 -name '.*' -a \( -type d -o -type f -o -type l \) -exec rm -fr '{}' \;
|
find -H $1 -maxdepth 1 -name '.*' -a \( -type d -o -type f -o -type l \) -exec rm -fr '{}' \;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Recursively finds requirements.txt files
|
|
||||||
function list-req (){
|
|
||||||
echo $@
|
|
||||||
for req in $(grep -Fie "-r " $@ | sed 's/-r //g')
|
|
||||||
do
|
|
||||||
path="$(dirname $@)/$req"
|
|
||||||
list-req $path
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# Find pattern in requirements files recursively
|
|
||||||
# Usage: $ in-req pattern file
|
|
||||||
function in-req (){
|
|
||||||
for file in $(list-req $2)
|
|
||||||
do
|
|
||||||
if (grep -Fiqe "$1" "$file") then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
pylibmc
|
||||||
|
psycopg2
|
||||||
+26
-4
@@ -2,11 +2,33 @@
|
|||||||
CHANGES
|
CHANGES
|
||||||
=======
|
=======
|
||||||
|
|
||||||
----------
|
------
|
||||||
Unreleased
|
0.6.36
|
||||||
----------
|
------
|
||||||
|
|
||||||
+ Issue #341: 0.6.33 fails to build under python 2.4
|
* Pull Request #35: In `Buildout issue 64
|
||||||
|
<https://github.com/buildout/buildout/issues/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
|
||||||
|
metadata scripts.
|
||||||
|
|
||||||
|
------
|
||||||
|
0.6.35
|
||||||
|
------
|
||||||
|
|
||||||
|
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
|
||||||
|
0.6. Updated the documentation to match more closely with the version
|
||||||
|
parsing as intended in setuptools 0.6.
|
||||||
|
|
||||||
|
------
|
||||||
|
0.6.34
|
||||||
|
------
|
||||||
|
|
||||||
|
* Issue #341: 0.6.33 fails to build under Python 2.4.
|
||||||
|
|
||||||
------
|
------
|
||||||
0.6.33
|
0.6.33
|
||||||
+41
-26
@@ -1,6 +1,6 @@
|
|||||||
Metadata-Version: 1.1
|
Metadata-Version: 1.1
|
||||||
Name: distribute
|
Name: distribute
|
||||||
Version: 0.6.34
|
Version: 0.6.36
|
||||||
Summary: Easily download, build, install, upgrade, and uninstall Python packages
|
Summary: Easily download, build, install, upgrade, and uninstall Python packages
|
||||||
Home-page: http://packages.python.org/distribute
|
Home-page: http://packages.python.org/distribute
|
||||||
Author: The fellowship of the packaging
|
Author: The fellowship of the packaging
|
||||||
@@ -107,9 +107,9 @@ Description: ===============================
|
|||||||
|
|
||||||
Download the source tarball, uncompress it, then run the install command::
|
Download the source tarball, uncompress it, then run the install command::
|
||||||
|
|
||||||
$ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz
|
$ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.36.tar.gz
|
||||||
$ tar -xzvf distribute-0.6.34.tar.gz
|
$ tar -xzvf distribute-0.6.36.tar.gz
|
||||||
$ cd distribute-0.6.34
|
$ cd distribute-0.6.36
|
||||||
$ python setup.py install
|
$ python setup.py install
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
@@ -238,11 +238,33 @@ Description: ===============================
|
|||||||
CHANGES
|
CHANGES
|
||||||
=======
|
=======
|
||||||
|
|
||||||
----------
|
------
|
||||||
Unreleased
|
0.6.36
|
||||||
----------
|
------
|
||||||
|
|
||||||
+ `Issue #341`_: 0.6.33 fails to build under python 2.4
|
* Pull Request #35: In `Buildout `issue 64`_
|
||||||
|
<https://github.com/buildout/buildout/issues/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
|
||||||
|
metadata scripts.
|
||||||
|
|
||||||
|
------
|
||||||
|
0.6.35
|
||||||
|
------
|
||||||
|
|
||||||
|
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
|
||||||
|
0.6. Updated the documentation to match more closely with the version
|
||||||
|
parsing as intended in setuptools 0.6.
|
||||||
|
|
||||||
|
------
|
||||||
|
0.6.34
|
||||||
|
------
|
||||||
|
|
||||||
|
* `Issue #341`_: 0.6.33 fails to build under Python 2.4.
|
||||||
|
|
||||||
------
|
------
|
||||||
0.6.33
|
0.6.33
|
||||||
@@ -273,8 +295,8 @@ Description: ===============================
|
|||||||
* `Issue #303`_: Make sure the manifest only ever contains UTF-8 in Python 3.
|
* `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
|
* `Issue #329`_: Properly close files created by tests for compatibility with
|
||||||
Jython.
|
Jython.
|
||||||
* Work around Jython bugs `#1980 <http://bugs.jython.org/`issue1980`_>`_ and
|
* Work around Jython bugs `#1980 <http://bugs.jython.org/issue1980>`_ and
|
||||||
`#1981 <http://bugs.jython.org/`issue1981`_>`_.
|
`#1981 <http://bugs.jython.org/issue1981>`_.
|
||||||
* `Issue #334`_: Provide workaround for packages that reference `sys.__stdout__`
|
* `Issue #334`_: Provide workaround for packages that reference `sys.__stdout__`
|
||||||
such as numpy does. This change should address
|
such as numpy does. This change should address
|
||||||
`virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long
|
`virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long
|
||||||
@@ -625,19 +647,19 @@ Description: ===============================
|
|||||||
==========
|
==========
|
||||||
|
|
||||||
* Added Python 3 support; see docs/python3.txt.
|
* Added Python 3 support; see docs/python3.txt.
|
||||||
This closes http://bugs.python.org/setuptools/`issue39`_.
|
This closes http://bugs.python.org/setuptools/issue39.
|
||||||
|
|
||||||
* Added option to run 2to3 automatically when installing on Python 3.
|
* Added option to run 2to3 automatically when installing on Python 3.
|
||||||
This closes `issue #31`_.
|
This closes `issue #31`_.
|
||||||
|
|
||||||
* Fixed invalid usage of requirement.parse, that broke develop -d.
|
* Fixed invalid usage of requirement.parse, that broke develop -d.
|
||||||
This closes http://bugs.python.org/setuptools/`issue44`_.
|
This closes http://bugs.python.org/setuptools/issue44.
|
||||||
|
|
||||||
* Fixed script launcher for 64-bit Windows.
|
* Fixed script launcher for 64-bit Windows.
|
||||||
This closes http://bugs.python.org/setuptools/`issue2`_.
|
This closes http://bugs.python.org/setuptools/issue2.
|
||||||
|
|
||||||
* KeyError when compiling extensions.
|
* KeyError when compiling extensions.
|
||||||
This closes http://bugs.python.org/setuptools/`issue41`_.
|
This closes http://bugs.python.org/setuptools/issue41.
|
||||||
|
|
||||||
bootstrapping
|
bootstrapping
|
||||||
=============
|
=============
|
||||||
@@ -647,7 +669,7 @@ Description: ===============================
|
|||||||
* Fixed 2.6 dependencies. This closes `issue #50`_.
|
* Fixed 2.6 dependencies. This closes `issue #50`_.
|
||||||
|
|
||||||
* Make sure setuptools is patched when running through easy_install
|
* Make sure setuptools is patched when running through easy_install
|
||||||
This closes http://bugs.python.org/setuptools/`issue40`_.
|
This closes http://bugs.python.org/setuptools/issue40.
|
||||||
|
|
||||||
-----
|
-----
|
||||||
0.6.1
|
0.6.1
|
||||||
@@ -660,9 +682,9 @@ Description: ===============================
|
|||||||
This closes `issue #16`_ and `issue #18`_.
|
This closes `issue #16`_ and `issue #18`_.
|
||||||
|
|
||||||
* zip_ok is now False by default. This closes
|
* zip_ok is now False by default. This closes
|
||||||
http://bugs.python.org/setuptools/`issue33`_.
|
http://bugs.python.org/setuptools/issue33.
|
||||||
|
|
||||||
* Fixed invalid URL error catching. http://bugs.python.org/setuptools/`issue20`_.
|
* Fixed invalid URL error catching. http://bugs.python.org/setuptools/issue20.
|
||||||
|
|
||||||
* Fixed invalid bootstraping with easy_install installation (`issue #40`_).
|
* Fixed invalid bootstraping with easy_install installation (`issue #40`_).
|
||||||
Thanks to Florian Schulze for the help.
|
Thanks to Florian Schulze for the help.
|
||||||
@@ -746,6 +768,7 @@ Description: ===============================
|
|||||||
.. _`Issue #269`: http://bitbucket.org/tarek/distribute/issue/269
|
.. _`Issue #269`: http://bitbucket.org/tarek/distribute/issue/269
|
||||||
.. _`Issue #272`: http://bitbucket.org/tarek/distribute/issue/272
|
.. _`Issue #272`: http://bitbucket.org/tarek/distribute/issue/272
|
||||||
.. _`Issue #273`: http://bitbucket.org/tarek/distribute/issue/273
|
.. _`Issue #273`: http://bitbucket.org/tarek/distribute/issue/273
|
||||||
|
.. _`Issue #278`: http://bitbucket.org/tarek/distribute/issue/278
|
||||||
.. _`Issue #283`: http://bitbucket.org/tarek/distribute/issue/283
|
.. _`Issue #283`: http://bitbucket.org/tarek/distribute/issue/283
|
||||||
.. _`Issue #294`: http://bitbucket.org/tarek/distribute/issue/294
|
.. _`Issue #294`: http://bitbucket.org/tarek/distribute/issue/294
|
||||||
.. _`Issue #299`: http://bitbucket.org/tarek/distribute/issue/299
|
.. _`Issue #299`: http://bitbucket.org/tarek/distribute/issue/299
|
||||||
@@ -836,15 +859,7 @@ Description: ===============================
|
|||||||
.. _`issue #7`: http://bitbucket.org/tarek/distribute/issue/7
|
.. _`issue #7`: http://bitbucket.org/tarek/distribute/issue/7
|
||||||
.. _`issue #8`: http://bitbucket.org/tarek/distribute/issue/8
|
.. _`issue #8`: http://bitbucket.org/tarek/distribute/issue/8
|
||||||
.. _`issue #9`: http://bitbucket.org/tarek/distribute/issue/9
|
.. _`issue #9`: http://bitbucket.org/tarek/distribute/issue/9
|
||||||
.. _`issue1980`: http://bitbucket.org/tarek/distribute/issue/1980
|
.. _`issue 64`: http://bitbucket.org/tarek/distribute/issue/64
|
||||||
.. _`issue1981`: http://bitbucket.org/tarek/distribute/issue/1981
|
|
||||||
.. _`issue2`: http://bitbucket.org/tarek/distribute/issue/2
|
|
||||||
.. _`issue20`: http://bitbucket.org/tarek/distribute/issue/20
|
|
||||||
.. _`issue33`: http://bitbucket.org/tarek/distribute/issue/33
|
|
||||||
.. _`issue39`: http://bitbucket.org/tarek/distribute/issue/39
|
|
||||||
.. _`issue40`: http://bitbucket.org/tarek/distribute/issue/40
|
|
||||||
.. _`issue41`: http://bitbucket.org/tarek/distribute/issue/41
|
|
||||||
.. _`issue44`: http://bitbucket.org/tarek/distribute/issue/44
|
|
||||||
|
|
||||||
|
|
||||||
Keywords: CPAN PyPI distutils eggs package management
|
Keywords: CPAN PyPI distutils eggs package management
|
||||||
@@ -99,9 +99,9 @@ Source installation
|
|||||||
|
|
||||||
Download the source tarball, uncompress it, then run the install command::
|
Download the source tarball, uncompress it, then run the install command::
|
||||||
|
|
||||||
$ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz
|
$ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.36.tar.gz
|
||||||
$ tar -xzvf distribute-0.6.34.tar.gz
|
$ tar -xzvf distribute-0.6.36.tar.gz
|
||||||
$ cd distribute-0.6.34
|
$ cd distribute-0.6.36
|
||||||
$ python setup.py install
|
$ python setup.py install
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Vendored
Vendored
+41
-26
@@ -1,6 +1,6 @@
|
|||||||
Metadata-Version: 1.1
|
Metadata-Version: 1.1
|
||||||
Name: distribute
|
Name: distribute
|
||||||
Version: 0.6.34
|
Version: 0.6.36
|
||||||
Summary: Easily download, build, install, upgrade, and uninstall Python packages
|
Summary: Easily download, build, install, upgrade, and uninstall Python packages
|
||||||
Home-page: http://packages.python.org/distribute
|
Home-page: http://packages.python.org/distribute
|
||||||
Author: The fellowship of the packaging
|
Author: The fellowship of the packaging
|
||||||
@@ -107,9 +107,9 @@ Description: ===============================
|
|||||||
|
|
||||||
Download the source tarball, uncompress it, then run the install command::
|
Download the source tarball, uncompress it, then run the install command::
|
||||||
|
|
||||||
$ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz
|
$ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.36.tar.gz
|
||||||
$ tar -xzvf distribute-0.6.34.tar.gz
|
$ tar -xzvf distribute-0.6.36.tar.gz
|
||||||
$ cd distribute-0.6.34
|
$ cd distribute-0.6.36
|
||||||
$ python setup.py install
|
$ python setup.py install
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
@@ -238,11 +238,33 @@ Description: ===============================
|
|||||||
CHANGES
|
CHANGES
|
||||||
=======
|
=======
|
||||||
|
|
||||||
----------
|
------
|
||||||
Unreleased
|
0.6.36
|
||||||
----------
|
------
|
||||||
|
|
||||||
+ `Issue #341`_: 0.6.33 fails to build under python 2.4
|
* Pull Request #35: In `Buildout `issue 64`_
|
||||||
|
<https://github.com/buildout/buildout/issues/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
|
||||||
|
metadata scripts.
|
||||||
|
|
||||||
|
------
|
||||||
|
0.6.35
|
||||||
|
------
|
||||||
|
|
||||||
|
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
|
||||||
|
0.6. Updated the documentation to match more closely with the version
|
||||||
|
parsing as intended in setuptools 0.6.
|
||||||
|
|
||||||
|
------
|
||||||
|
0.6.34
|
||||||
|
------
|
||||||
|
|
||||||
|
* `Issue #341`_: 0.6.33 fails to build under Python 2.4.
|
||||||
|
|
||||||
------
|
------
|
||||||
0.6.33
|
0.6.33
|
||||||
@@ -273,8 +295,8 @@ Description: ===============================
|
|||||||
* `Issue #303`_: Make sure the manifest only ever contains UTF-8 in Python 3.
|
* `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
|
* `Issue #329`_: Properly close files created by tests for compatibility with
|
||||||
Jython.
|
Jython.
|
||||||
* Work around Jython bugs `#1980 <http://bugs.jython.org/`issue1980`_>`_ and
|
* Work around Jython bugs `#1980 <http://bugs.jython.org/issue1980>`_ and
|
||||||
`#1981 <http://bugs.jython.org/`issue1981`_>`_.
|
`#1981 <http://bugs.jython.org/issue1981>`_.
|
||||||
* `Issue #334`_: Provide workaround for packages that reference `sys.__stdout__`
|
* `Issue #334`_: Provide workaround for packages that reference `sys.__stdout__`
|
||||||
such as numpy does. This change should address
|
such as numpy does. This change should address
|
||||||
`virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long
|
`virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long
|
||||||
@@ -625,19 +647,19 @@ Description: ===============================
|
|||||||
==========
|
==========
|
||||||
|
|
||||||
* Added Python 3 support; see docs/python3.txt.
|
* Added Python 3 support; see docs/python3.txt.
|
||||||
This closes http://bugs.python.org/setuptools/`issue39`_.
|
This closes http://bugs.python.org/setuptools/issue39.
|
||||||
|
|
||||||
* Added option to run 2to3 automatically when installing on Python 3.
|
* Added option to run 2to3 automatically when installing on Python 3.
|
||||||
This closes `issue #31`_.
|
This closes `issue #31`_.
|
||||||
|
|
||||||
* Fixed invalid usage of requirement.parse, that broke develop -d.
|
* Fixed invalid usage of requirement.parse, that broke develop -d.
|
||||||
This closes http://bugs.python.org/setuptools/`issue44`_.
|
This closes http://bugs.python.org/setuptools/issue44.
|
||||||
|
|
||||||
* Fixed script launcher for 64-bit Windows.
|
* Fixed script launcher for 64-bit Windows.
|
||||||
This closes http://bugs.python.org/setuptools/`issue2`_.
|
This closes http://bugs.python.org/setuptools/issue2.
|
||||||
|
|
||||||
* KeyError when compiling extensions.
|
* KeyError when compiling extensions.
|
||||||
This closes http://bugs.python.org/setuptools/`issue41`_.
|
This closes http://bugs.python.org/setuptools/issue41.
|
||||||
|
|
||||||
bootstrapping
|
bootstrapping
|
||||||
=============
|
=============
|
||||||
@@ -647,7 +669,7 @@ Description: ===============================
|
|||||||
* Fixed 2.6 dependencies. This closes `issue #50`_.
|
* Fixed 2.6 dependencies. This closes `issue #50`_.
|
||||||
|
|
||||||
* Make sure setuptools is patched when running through easy_install
|
* Make sure setuptools is patched when running through easy_install
|
||||||
This closes http://bugs.python.org/setuptools/`issue40`_.
|
This closes http://bugs.python.org/setuptools/issue40.
|
||||||
|
|
||||||
-----
|
-----
|
||||||
0.6.1
|
0.6.1
|
||||||
@@ -660,9 +682,9 @@ Description: ===============================
|
|||||||
This closes `issue #16`_ and `issue #18`_.
|
This closes `issue #16`_ and `issue #18`_.
|
||||||
|
|
||||||
* zip_ok is now False by default. This closes
|
* zip_ok is now False by default. This closes
|
||||||
http://bugs.python.org/setuptools/`issue33`_.
|
http://bugs.python.org/setuptools/issue33.
|
||||||
|
|
||||||
* Fixed invalid URL error catching. http://bugs.python.org/setuptools/`issue20`_.
|
* Fixed invalid URL error catching. http://bugs.python.org/setuptools/issue20.
|
||||||
|
|
||||||
* Fixed invalid bootstraping with easy_install installation (`issue #40`_).
|
* Fixed invalid bootstraping with easy_install installation (`issue #40`_).
|
||||||
Thanks to Florian Schulze for the help.
|
Thanks to Florian Schulze for the help.
|
||||||
@@ -746,6 +768,7 @@ Description: ===============================
|
|||||||
.. _`Issue #269`: http://bitbucket.org/tarek/distribute/issue/269
|
.. _`Issue #269`: http://bitbucket.org/tarek/distribute/issue/269
|
||||||
.. _`Issue #272`: http://bitbucket.org/tarek/distribute/issue/272
|
.. _`Issue #272`: http://bitbucket.org/tarek/distribute/issue/272
|
||||||
.. _`Issue #273`: http://bitbucket.org/tarek/distribute/issue/273
|
.. _`Issue #273`: http://bitbucket.org/tarek/distribute/issue/273
|
||||||
|
.. _`Issue #278`: http://bitbucket.org/tarek/distribute/issue/278
|
||||||
.. _`Issue #283`: http://bitbucket.org/tarek/distribute/issue/283
|
.. _`Issue #283`: http://bitbucket.org/tarek/distribute/issue/283
|
||||||
.. _`Issue #294`: http://bitbucket.org/tarek/distribute/issue/294
|
.. _`Issue #294`: http://bitbucket.org/tarek/distribute/issue/294
|
||||||
.. _`Issue #299`: http://bitbucket.org/tarek/distribute/issue/299
|
.. _`Issue #299`: http://bitbucket.org/tarek/distribute/issue/299
|
||||||
@@ -836,15 +859,7 @@ Description: ===============================
|
|||||||
.. _`issue #7`: http://bitbucket.org/tarek/distribute/issue/7
|
.. _`issue #7`: http://bitbucket.org/tarek/distribute/issue/7
|
||||||
.. _`issue #8`: http://bitbucket.org/tarek/distribute/issue/8
|
.. _`issue #8`: http://bitbucket.org/tarek/distribute/issue/8
|
||||||
.. _`issue #9`: http://bitbucket.org/tarek/distribute/issue/9
|
.. _`issue #9`: http://bitbucket.org/tarek/distribute/issue/9
|
||||||
.. _`issue1980`: http://bitbucket.org/tarek/distribute/issue/1980
|
.. _`issue 64`: http://bitbucket.org/tarek/distribute/issue/64
|
||||||
.. _`issue1981`: http://bitbucket.org/tarek/distribute/issue/1981
|
|
||||||
.. _`issue2`: http://bitbucket.org/tarek/distribute/issue/2
|
|
||||||
.. _`issue20`: http://bitbucket.org/tarek/distribute/issue/20
|
|
||||||
.. _`issue33`: http://bitbucket.org/tarek/distribute/issue/33
|
|
||||||
.. _`issue39`: http://bitbucket.org/tarek/distribute/issue/39
|
|
||||||
.. _`issue40`: http://bitbucket.org/tarek/distribute/issue/40
|
|
||||||
.. _`issue41`: http://bitbucket.org/tarek/distribute/issue/41
|
|
||||||
.. _`issue44`: http://bitbucket.org/tarek/distribute/issue/44
|
|
||||||
|
|
||||||
|
|
||||||
Keywords: CPAN PyPI distutils eggs package management
|
Keywords: CPAN PyPI distutils eggs package management
|
||||||
Vendored
+1
-1
@@ -49,7 +49,7 @@ except ImportError:
|
|||||||
args = [quote(arg) for arg in args]
|
args = [quote(arg) for arg in args]
|
||||||
return os.spawnl(os.P_WAIT, sys.executable, *args) == 0
|
return os.spawnl(os.P_WAIT, sys.executable, *args) == 0
|
||||||
|
|
||||||
DEFAULT_VERSION = "0.6.34"
|
DEFAULT_VERSION = "0.6.36"
|
||||||
DEFAULT_URL = "http://pypi.python.org/packages/source/d/distribute/"
|
DEFAULT_URL = "http://pypi.python.org/packages/source/d/distribute/"
|
||||||
SETUPTOOLS_FAKED_VERSION = "0.6c11"
|
SETUPTOOLS_FAKED_VERSION = "0.6c11"
|
||||||
|
|
||||||
+6
-12
@@ -187,10 +187,11 @@ than ``2.4.1`` (which has a higher release number).
|
|||||||
|
|
||||||
A pre-release tag is a series of letters that are alphabetically before
|
A pre-release tag is a series of letters that are alphabetically before
|
||||||
"final". Some examples of prerelease tags would include ``alpha``, ``beta``,
|
"final". Some examples of prerelease tags would include ``alpha``, ``beta``,
|
||||||
``a``, ``c``, ``dev``, and so on. You do not have to place a dot before
|
``a``, ``c``, ``dev``, and so on. You do not have to place a dot or dash
|
||||||
the prerelease tag if it's immediately after a number, but it's okay to do
|
before the prerelease tag if it's immediately after a number, but it's okay to
|
||||||
so if you prefer. Thus, ``2.4c1`` and ``2.4.c1`` both represent release
|
do so if you prefer. Thus, ``2.4c1`` and ``2.4.c1`` and ``2.4-c1`` all
|
||||||
candidate 1 of version ``2.4``, and are treated as identical by setuptools.
|
represent release candidate 1 of version ``2.4``, and are treated as identical
|
||||||
|
by setuptools.
|
||||||
|
|
||||||
In addition, there are three special prerelease tags that are treated as if
|
In addition, there are three special prerelease tags that are treated as if
|
||||||
they were the letter ``c``: ``pre``, ``preview``, and ``rc``. So, version
|
they were the letter ``c``: ``pre``, ``preview``, and ``rc``. So, version
|
||||||
@@ -216,13 +217,6 @@ a post-release tag, so this version is *newer* than ``0.6a9.dev``.
|
|||||||
For the most part, setuptools' interpretation of version numbers is intuitive,
|
For the most part, setuptools' interpretation of version numbers is intuitive,
|
||||||
but here are a few tips that will keep you out of trouble in the corner cases:
|
but here are a few tips that will keep you out of trouble in the corner cases:
|
||||||
|
|
||||||
* Don't use ``-`` or any other character than ``.`` as a separator, unless you
|
|
||||||
really want a post-release. Remember that ``2.1-rc2`` means you've
|
|
||||||
*already* released ``2.1``, whereas ``2.1rc2`` and ``2.1.c2`` are candidates
|
|
||||||
you're putting out *before* ``2.1``. If you accidentally distribute copies
|
|
||||||
of a post-release that you meant to be a pre-release, the only safe fix is to
|
|
||||||
bump your main release number (e.g. to ``2.1.1``) and re-release the project.
|
|
||||||
|
|
||||||
* Don't stick adjoining pre-release tags together without a dot or number
|
* Don't stick adjoining pre-release tags together without a dot or number
|
||||||
between them. Version ``1.9adev`` is the ``adev`` prerelease of ``1.9``,
|
between them. Version ``1.9adev`` is the ``adev`` prerelease of ``1.9``,
|
||||||
*not* a development pre-release of ``1.9a``. Use ``.dev`` instead, as in
|
*not* a development pre-release of ``1.9a``. Use ``.dev`` instead, as in
|
||||||
@@ -239,7 +233,7 @@ but here are a few tips that will keep you out of trouble in the corner cases:
|
|||||||
>>> parse_version('1.9.a.dev') == parse_version('1.9a0dev')
|
>>> parse_version('1.9.a.dev') == parse_version('1.9a0dev')
|
||||||
True
|
True
|
||||||
>>> parse_version('2.1-rc2') < parse_version('2.1')
|
>>> parse_version('2.1-rc2') < parse_version('2.1')
|
||||||
False
|
True
|
||||||
>>> parse_version('0.6a9dev-r41475') < parse_version('0.6a9')
|
>>> parse_version('0.6a9dev-r41475') < parse_version('0.6a9')
|
||||||
True
|
True
|
||||||
|
|
||||||
+2
-2
@@ -48,9 +48,9 @@ copyright = u'2009-2011, The fellowship of the packaging'
|
|||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = '0.6.34'
|
version = '0.6.36'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = '0.6.34'
|
release = '0.6.36'
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
Vendored
Vendored
Vendored
+6
-12
@@ -187,10 +187,11 @@ than ``2.4.1`` (which has a higher release number).
|
|||||||
|
|
||||||
A pre-release tag is a series of letters that are alphabetically before
|
A pre-release tag is a series of letters that are alphabetically before
|
||||||
"final". Some examples of prerelease tags would include ``alpha``, ``beta``,
|
"final". Some examples of prerelease tags would include ``alpha``, ``beta``,
|
||||||
``a``, ``c``, ``dev``, and so on. You do not have to place a dot before
|
``a``, ``c``, ``dev``, and so on. You do not have to place a dot or dash
|
||||||
the prerelease tag if it's immediately after a number, but it's okay to do
|
before the prerelease tag if it's immediately after a number, but it's okay to
|
||||||
so if you prefer. Thus, ``2.4c1`` and ``2.4.c1`` both represent release
|
do so if you prefer. Thus, ``2.4c1`` and ``2.4.c1`` and ``2.4-c1`` all
|
||||||
candidate 1 of version ``2.4``, and are treated as identical by setuptools.
|
represent release candidate 1 of version ``2.4``, and are treated as identical
|
||||||
|
by setuptools.
|
||||||
|
|
||||||
In addition, there are three special prerelease tags that are treated as if
|
In addition, there are three special prerelease tags that are treated as if
|
||||||
they were the letter ``c``: ``pre``, ``preview``, and ``rc``. So, version
|
they were the letter ``c``: ``pre``, ``preview``, and ``rc``. So, version
|
||||||
@@ -216,13 +217,6 @@ a post-release tag, so this version is *newer* than ``0.6a9.dev``.
|
|||||||
For the most part, setuptools' interpretation of version numbers is intuitive,
|
For the most part, setuptools' interpretation of version numbers is intuitive,
|
||||||
but here are a few tips that will keep you out of trouble in the corner cases:
|
but here are a few tips that will keep you out of trouble in the corner cases:
|
||||||
|
|
||||||
* Don't use ``-`` or any other character than ``.`` as a separator, unless you
|
|
||||||
really want a post-release. Remember that ``2.1-rc2`` means you've
|
|
||||||
*already* released ``2.1``, whereas ``2.1rc2`` and ``2.1.c2`` are candidates
|
|
||||||
you're putting out *before* ``2.1``. If you accidentally distribute copies
|
|
||||||
of a post-release that you meant to be a pre-release, the only safe fix is to
|
|
||||||
bump your main release number (e.g. to ``2.1.1``) and re-release the project.
|
|
||||||
|
|
||||||
* Don't stick adjoining pre-release tags together without a dot or number
|
* Don't stick adjoining pre-release tags together without a dot or number
|
||||||
between them. Version ``1.9adev`` is the ``adev`` prerelease of ``1.9``,
|
between them. Version ``1.9adev`` is the ``adev`` prerelease of ``1.9``,
|
||||||
*not* a development pre-release of ``1.9a``. Use ``.dev`` instead, as in
|
*not* a development pre-release of ``1.9a``. Use ``.dev`` instead, as in
|
||||||
@@ -239,7 +233,7 @@ but here are a few tips that will keep you out of trouble in the corner cases:
|
|||||||
>>> parse_version('1.9.a.dev') == parse_version('1.9a0dev')
|
>>> parse_version('1.9.a.dev') == parse_version('1.9a0dev')
|
||||||
True
|
True
|
||||||
>>> parse_version('2.1-rc2') < parse_version('2.1')
|
>>> parse_version('2.1-rc2') < parse_version('2.1')
|
||||||
False
|
True
|
||||||
>>> parse_version('0.6a9dev-r41475') < parse_version('0.6a9')
|
>>> parse_version('0.6a9dev-r41475') < parse_version('0.6a9')
|
||||||
True
|
True
|
||||||
|
|
||||||
+3
-1
@@ -1936,7 +1936,7 @@ replace = {'pre':'c', 'preview':'c','-':'final-','rc':'c','dev':'@'}.get
|
|||||||
def _parse_version_parts(s):
|
def _parse_version_parts(s):
|
||||||
for part in component_re.split(s):
|
for part in component_re.split(s):
|
||||||
part = replace(part,part)
|
part = replace(part,part)
|
||||||
if part in ['', '.']:
|
if not part or part=='.':
|
||||||
continue
|
continue
|
||||||
if part[:1] in '0123456789':
|
if part[:1] in '0123456789':
|
||||||
yield part.zfill(8) # pad for numeric comparison
|
yield part.zfill(8) # pad for numeric comparison
|
||||||
@@ -1979,6 +1979,8 @@ def parse_version(s):
|
|||||||
parts = []
|
parts = []
|
||||||
for part in _parse_version_parts(s.lower()):
|
for part in _parse_version_parts(s.lower()):
|
||||||
if part.startswith('*'):
|
if part.startswith('*'):
|
||||||
|
if part<'*final': # remove '-' before a prerelease tag
|
||||||
|
while parts and parts[-1]=='*final-': parts.pop()
|
||||||
# remove trailing zeros from each series of numeric parts
|
# remove trailing zeros from each series of numeric parts
|
||||||
while parts and parts[-1]=='00000000':
|
while parts and parts[-1]=='00000000':
|
||||||
parts.pop()
|
parts.pop()
|
||||||
@@ -20,7 +20,7 @@ try:
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
VERSION = '0.6.34'
|
VERSION = '0.6.36'
|
||||||
|
|
||||||
def get_next_version():
|
def get_next_version():
|
||||||
digits = map(int, VERSION.split('.'))
|
digits = map(int, VERSION.split('.'))
|
||||||
@@ -50,7 +50,7 @@ def get_mercurial_creds(system='https://bitbucket.org', username=None):
|
|||||||
# todo: consider getting this from .hgrc
|
# todo: consider getting this from .hgrc
|
||||||
username = username or getpass.getuser()
|
username = username or getpass.getuser()
|
||||||
keyring_username = '@@'.join((username, system))
|
keyring_username = '@@'.join((username, system))
|
||||||
system = '@'.join((keyring_username, 'Mercurial'))
|
system = 'Mercurial'
|
||||||
password = (
|
password = (
|
||||||
keyring.get_password(system, keyring_username)
|
keyring.get_password(system, keyring_username)
|
||||||
if 'keyring' in globals()
|
if 'keyring' in globals()
|
||||||
@@ -46,7 +46,7 @@ exec(init_file.read(), d)
|
|||||||
init_file.close()
|
init_file.close()
|
||||||
|
|
||||||
SETUP_COMMANDS = d['__all__']
|
SETUP_COMMANDS = d['__all__']
|
||||||
VERSION = "0.6.34"
|
VERSION = "0.6.36"
|
||||||
|
|
||||||
from setuptools import setup, find_packages
|
from setuptools import setup, find_packages
|
||||||
from setuptools.command.build_py import build_py as _build_py
|
from setuptools.command.build_py import build_py as _build_py
|
||||||
@@ -136,7 +136,7 @@ if _being_installed():
|
|||||||
# return contents of reStructureText file with linked issue references
|
# return contents of reStructureText file with linked issue references
|
||||||
def _linkified(rst_path):
|
def _linkified(rst_path):
|
||||||
bitroot = 'http://bitbucket.org/tarek/distribute'
|
bitroot = 'http://bitbucket.org/tarek/distribute'
|
||||||
revision = re.compile(r'\b(issue\s*#?\d+)\b', re.M | re.I)
|
revision = re.compile(r'\b(issue\s+#?\d+)\b', re.M | re.I)
|
||||||
|
|
||||||
rst_file = open(rst_path)
|
rst_file = open(rst_path)
|
||||||
rst_content = rst_file.read()
|
rst_content = rst_file.read()
|
||||||
Vendored
Vendored
Vendored
+4
@@ -522,6 +522,10 @@ Please make the appropriate changes for your system and try again.
|
|||||||
"""Write all the scripts for `dist`, unless scripts are excluded"""
|
"""Write all the scripts for `dist`, unless scripts are excluded"""
|
||||||
if not self.exclude_scripts and dist.metadata_isdir('scripts'):
|
if not self.exclude_scripts and dist.metadata_isdir('scripts'):
|
||||||
for script_name in dist.metadata_listdir('scripts'):
|
for script_name in dist.metadata_listdir('scripts'):
|
||||||
|
if dist.metadata_isdir('scripts/' + script_name):
|
||||||
|
# The "script" is a directory, likely a Python 3
|
||||||
|
# __pycache__ directory, so skip it.
|
||||||
|
continue
|
||||||
self.install_script(
|
self.install_script(
|
||||||
dist, script_name,
|
dist, script_name,
|
||||||
dist.get_metadata('scripts/'+script_name)
|
dist.get_metadata('scripts/'+script_name)
|
||||||
Vendored
Vendored
Vendored
Vendored
Vendored
+3
-17
@@ -477,13 +477,14 @@ class ParseTests(TestCase):
|
|||||||
p1, p2 = parse_version(s1),parse_version(s2)
|
p1, p2 = parse_version(s1),parse_version(s2)
|
||||||
self.assertEqual(p1,p2, (s1,s2,p1,p2))
|
self.assertEqual(p1,p2, (s1,s2,p1,p2))
|
||||||
|
|
||||||
|
c('1.2-rc1', '1.2rc1')
|
||||||
c('0.4', '0.4.0')
|
c('0.4', '0.4.0')
|
||||||
c('0.4.0.0', '0.4.0')
|
c('0.4.0.0', '0.4.0')
|
||||||
c('0.4.0-0', '0.4-0')
|
c('0.4.0-0', '0.4-0')
|
||||||
c('0pl1', '0.0pl1')
|
c('0pl1', '0.0pl1')
|
||||||
c('0pre1', '0.0c1')
|
c('0pre1', '0.0c1')
|
||||||
c('0.0.0preview1', '0c1')
|
c('0.0.0preview1', '0c1')
|
||||||
c('0.0c1', '0rc1')
|
c('0.0c1', '0-rc1')
|
||||||
c('1.2a1', '1.2.a.1'); c('1.2...a', '1.2a')
|
c('1.2a1', '1.2.a.1'); c('1.2...a', '1.2a')
|
||||||
|
|
||||||
def testVersionOrdering(self):
|
def testVersionOrdering(self):
|
||||||
@@ -492,14 +493,11 @@ class ParseTests(TestCase):
|
|||||||
self.assertTrue(p1<p2, (s1,s2,p1,p2))
|
self.assertTrue(p1<p2, (s1,s2,p1,p2))
|
||||||
|
|
||||||
c('2.1','2.1.1')
|
c('2.1','2.1.1')
|
||||||
c('2.1.0','2.10')
|
|
||||||
c('2a1','2b0')
|
c('2a1','2b0')
|
||||||
c('2b1','2c0')
|
|
||||||
c('2a1','2.1')
|
c('2a1','2.1')
|
||||||
c('2.3a1', '2.3')
|
c('2.3a1', '2.3')
|
||||||
c('2.1-1', '2.1-2')
|
c('2.1-1', '2.1-2')
|
||||||
c('2.1-1', '2.1.1')
|
c('2.1-1', '2.1.1')
|
||||||
c('2.1', '2.1.1-1')
|
|
||||||
c('2.1', '2.1pl4')
|
c('2.1', '2.1pl4')
|
||||||
c('2.1a0-20040501', '2.1')
|
c('2.1a0-20040501', '2.1')
|
||||||
c('1.1', '02.1')
|
c('1.1', '02.1')
|
||||||
@@ -510,20 +508,8 @@ class ParseTests(TestCase):
|
|||||||
c('0.4', '4.0')
|
c('0.4', '4.0')
|
||||||
c('0.0.4', '0.4.0')
|
c('0.0.4', '0.4.0')
|
||||||
c('0pl1', '0.4pl1')
|
c('0pl1', '0.4pl1')
|
||||||
|
c('2.1.0-rc1','2.1.0')
|
||||||
c('2.1dev','2.1a0')
|
c('2.1dev','2.1a0')
|
||||||
c('2.1.0rc1','2.1.0')
|
|
||||||
c('2.1.0','2.1.0-rc0')
|
|
||||||
c('2.1.0','2.1.0-a')
|
|
||||||
c('2.1.0','2.1.0-alpha')
|
|
||||||
c('2.1.0','2.1.0-foo')
|
|
||||||
c('1.0','1.0-1')
|
|
||||||
c('1.0-1','1.0.1')
|
|
||||||
c('1.0a','1.0b')
|
|
||||||
c('1.0dev','1.0rc1')
|
|
||||||
c('1.0pre','1.0')
|
|
||||||
c('1.0pre','1.0')
|
|
||||||
c('1.0a','1.0-a')
|
|
||||||
c('1.0rc1','1.0-rc1')
|
|
||||||
|
|
||||||
torture ="""
|
torture ="""
|
||||||
0.80.1-3 0.80.1-2 0.80.1-1 0.79.9999+0.80.0pre4-1
|
0.80.1-3 0.80.1-2 0.80.1-1 0.79.9999+0.80.0pre4-1
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user