mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 23:10:16 +00:00
Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 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 |
+30
-47
@@ -1,34 +1,10 @@
|
||||
fp#!/usr/bin/env bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# This script serves as the
|
||||
# [**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:
|
||||
# Usage:
|
||||
#
|
||||
# $ 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.
|
||||
set -eo pipefail
|
||||
|
||||
@@ -51,6 +27,8 @@ PROFILE_PATH="$BUILD_DIR/.profile.d/python.sh"
|
||||
# Python version. This will be used in the future to specify custom Pythons.
|
||||
DEFAULT_PYTHON_VERSION="python-2.7.3"
|
||||
PYTHON_EXE="/app/.heroku/python/bin/python"
|
||||
PIP_VERSION="1.3.1"
|
||||
DISTRIBUTE_VERSION="0.6.36"
|
||||
|
||||
# Sanitizing environment variables.
|
||||
unset GIT_DIR PYTHONHOME PYTHONPATH LD_LIBRARY_PATH LIBRARY_PATH
|
||||
@@ -79,9 +57,9 @@ BUILD_DIR=$APP_DIR
|
||||
# Prepend proper path buildpack use.
|
||||
export PATH=$BUILD_DIR/.heroku/python/bin:$PATH
|
||||
export PYTHONUNBUFFERED=1
|
||||
|
||||
# ## Build Time
|
||||
#
|
||||
export LANG=en_US.UTF-8
|
||||
export LIBRARY_PATH=/app/.heroku/vendor/lib
|
||||
export LD_LIBRARY_PATH=/app/.heroku/vendor/lib
|
||||
|
||||
# Switch to the repo's context.
|
||||
cd $BUILD_DIR
|
||||
@@ -146,38 +124,44 @@ if [ ! "$SKIP_INSTALL" ]; then
|
||||
|
||||
# Record for future reference.
|
||||
echo $PYTHON_VERSION > .heroku/python-version
|
||||
WORKING_DIR=$(pwd)
|
||||
|
||||
# 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
|
||||
FRESH_PYTHON=true
|
||||
|
||||
hash -r
|
||||
else
|
||||
puts-step "Using Python runtime ($PYTHON_VERSION)"
|
||||
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
|
||||
hash -r
|
||||
|
||||
# Pylibmc support.
|
||||
# See [`bin/steps/pylibmc`](pylibmc.html).
|
||||
source $BIN_DIR/steps/pylibmc
|
||||
|
||||
# Install Mercurial if it appears to be required.
|
||||
if (in-req "hg+" requirements.txt) then
|
||||
pip install --use-mirrors mercurial | cleanup | indent
|
||||
if (grep -Fiq "hg+" requirements.txt) then
|
||||
/app/.heroku/python/bin/pip install --use-mirrors mercurial | cleanup | indent
|
||||
fi
|
||||
|
||||
# Install dependencies with Pip.
|
||||
puts-step "Installing dependencies using Pip (1.2.1)"
|
||||
pip install --use-mirrors -r requirements.txt --exists-action=w --src=./.heroku/src | cleanup | indent
|
||||
puts-step "Installing dependencies using Pip ($PIP_VERSION)"
|
||||
/app/.heroku/python/bin/pip install --use-mirrors -r requirements.txt --exists-action=w --src=./.heroku/src | cleanup | indent
|
||||
|
||||
# Django collectstatic support.
|
||||
source $BIN_DIR/steps/collectstatic
|
||||
@@ -193,14 +177,13 @@ done
|
||||
|
||||
# Set context environment variables.
|
||||
set-env PATH '$HOME/.heroku/python/bin:$PATH'
|
||||
# set-env PYTHONHOME /app/.heroku/python/
|
||||
set-env PYTHONUNBUFFERED true
|
||||
set-env PYTHONHOME /app/.heroku/python
|
||||
set-default-env 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 PYTHONHASHSEED random
|
||||
set-default-env PYTHONPATH /app/
|
||||
un-set-env PYTHONHOME
|
||||
|
||||
|
||||
# Experimental post_compile hook.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ -f bin/post_compile ]; then
|
||||
if [ -f $BIN_DIR/post_compile ]; then
|
||||
echo "-----> Running post-compile hook"
|
||||
chmod +x bin/post_compile
|
||||
bin/post_compile
|
||||
chmod +x $BIN_DIR/post_compile
|
||||
$BIN_DIR/post_compile
|
||||
fi
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ -f bin/pre_compile ]; then
|
||||
if [ -f $BIN_DIR/pre_compile ]; then
|
||||
echo "-----> Running pre-compile hook"
|
||||
chmod +x bin/pre_compile
|
||||
bin/pre_compile
|
||||
chmod +x $BIN_DIR/pre_compile
|
||||
$BIN_DIR/pre_compile
|
||||
fi
|
||||
+1
-1
@@ -16,7 +16,7 @@ VENDORED_MEMCACHED="http://cl.ly/0a191R3K160t1w1P0N25/vendor-libmemcached.tar.gz
|
||||
source $BIN_DIR/utils
|
||||
|
||||
# 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."
|
||||
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)
|
||||
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
|
||||
=======
|
||||
|
||||
----------
|
||||
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
|
||||
+41
-26
@@ -1,6 +1,6 @@
|
||||
Metadata-Version: 1.1
|
||||
Name: distribute
|
||||
Version: 0.6.34
|
||||
Version: 0.6.36
|
||||
Summary: Easily download, build, install, upgrade, and uninstall Python packages
|
||||
Home-page: http://packages.python.org/distribute
|
||||
Author: The fellowship of the packaging
|
||||
@@ -107,9 +107,9 @@ Description: ===============================
|
||||
|
||||
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
|
||||
$ tar -xzvf distribute-0.6.34.tar.gz
|
||||
$ cd distribute-0.6.34
|
||||
$ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.36.tar.gz
|
||||
$ tar -xzvf distribute-0.6.36.tar.gz
|
||||
$ cd distribute-0.6.36
|
||||
$ python setup.py install
|
||||
|
||||
---------------------------
|
||||
@@ -238,11 +238,33 @@ Description: ===============================
|
||||
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
|
||||
@@ -273,8 +295,8 @@ Description: ===============================
|
||||
* `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
|
||||
Jython.
|
||||
* Work around Jython bugs `#1980 <http://bugs.jython.org/`issue1980`_>`_ and
|
||||
`#1981 <http://bugs.jython.org/`issue1981`_>`_.
|
||||
* 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__`
|
||||
such as numpy does. This change should address
|
||||
`virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long
|
||||
@@ -625,19 +647,19 @@ Description: ===============================
|
||||
==========
|
||||
|
||||
* 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.
|
||||
This closes `issue #31`_.
|
||||
|
||||
* 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.
|
||||
This closes http://bugs.python.org/setuptools/`issue2`_.
|
||||
This closes http://bugs.python.org/setuptools/issue2.
|
||||
|
||||
* KeyError when compiling extensions.
|
||||
This closes http://bugs.python.org/setuptools/`issue41`_.
|
||||
This closes http://bugs.python.org/setuptools/issue41.
|
||||
|
||||
bootstrapping
|
||||
=============
|
||||
@@ -647,7 +669,7 @@ Description: ===============================
|
||||
* Fixed 2.6 dependencies. This closes `issue #50`_.
|
||||
|
||||
* 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
|
||||
@@ -660,9 +682,9 @@ Description: ===============================
|
||||
This closes `issue #16`_ and `issue #18`_.
|
||||
|
||||
* 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`_).
|
||||
Thanks to Florian Schulze for the help.
|
||||
@@ -746,6 +768,7 @@ Description: ===============================
|
||||
.. _`Issue #269`: http://bitbucket.org/tarek/distribute/issue/269
|
||||
.. _`Issue #272`: http://bitbucket.org/tarek/distribute/issue/272
|
||||
.. _`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 #294`: http://bitbucket.org/tarek/distribute/issue/294
|
||||
.. _`Issue #299`: http://bitbucket.org/tarek/distribute/issue/299
|
||||
@@ -836,15 +859,7 @@ Description: ===============================
|
||||
.. _`issue #7`: http://bitbucket.org/tarek/distribute/issue/7
|
||||
.. _`issue #8`: http://bitbucket.org/tarek/distribute/issue/8
|
||||
.. _`issue #9`: http://bitbucket.org/tarek/distribute/issue/9
|
||||
.. _`issue1980`: http://bitbucket.org/tarek/distribute/issue/1980
|
||||
.. _`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
|
||||
.. _`issue 64`: http://bitbucket.org/tarek/distribute/issue/64
|
||||
|
||||
|
||||
Keywords: CPAN PyPI distutils eggs package management
|
||||
@@ -99,9 +99,9 @@ Source installation
|
||||
|
||||
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
|
||||
$ tar -xzvf distribute-0.6.34.tar.gz
|
||||
$ cd distribute-0.6.34
|
||||
$ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.36.tar.gz
|
||||
$ tar -xzvf distribute-0.6.36.tar.gz
|
||||
$ cd distribute-0.6.36
|
||||
$ python setup.py install
|
||||
|
||||
---------------------------
|
||||
Vendored
Vendored
+41
-26
@@ -1,6 +1,6 @@
|
||||
Metadata-Version: 1.1
|
||||
Name: distribute
|
||||
Version: 0.6.34
|
||||
Version: 0.6.36
|
||||
Summary: Easily download, build, install, upgrade, and uninstall Python packages
|
||||
Home-page: http://packages.python.org/distribute
|
||||
Author: The fellowship of the packaging
|
||||
@@ -107,9 +107,9 @@ Description: ===============================
|
||||
|
||||
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
|
||||
$ tar -xzvf distribute-0.6.34.tar.gz
|
||||
$ cd distribute-0.6.34
|
||||
$ curl -O http://pypi.python.org/packages/source/d/distribute/distribute-0.6.36.tar.gz
|
||||
$ tar -xzvf distribute-0.6.36.tar.gz
|
||||
$ cd distribute-0.6.36
|
||||
$ python setup.py install
|
||||
|
||||
---------------------------
|
||||
@@ -238,11 +238,33 @@ Description: ===============================
|
||||
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
|
||||
@@ -273,8 +295,8 @@ Description: ===============================
|
||||
* `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
|
||||
Jython.
|
||||
* Work around Jython bugs `#1980 <http://bugs.jython.org/`issue1980`_>`_ and
|
||||
`#1981 <http://bugs.jython.org/`issue1981`_>`_.
|
||||
* 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__`
|
||||
such as numpy does. This change should address
|
||||
`virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long
|
||||
@@ -625,19 +647,19 @@ Description: ===============================
|
||||
==========
|
||||
|
||||
* 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.
|
||||
This closes `issue #31`_.
|
||||
|
||||
* 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.
|
||||
This closes http://bugs.python.org/setuptools/`issue2`_.
|
||||
This closes http://bugs.python.org/setuptools/issue2.
|
||||
|
||||
* KeyError when compiling extensions.
|
||||
This closes http://bugs.python.org/setuptools/`issue41`_.
|
||||
This closes http://bugs.python.org/setuptools/issue41.
|
||||
|
||||
bootstrapping
|
||||
=============
|
||||
@@ -647,7 +669,7 @@ Description: ===============================
|
||||
* Fixed 2.6 dependencies. This closes `issue #50`_.
|
||||
|
||||
* 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
|
||||
@@ -660,9 +682,9 @@ Description: ===============================
|
||||
This closes `issue #16`_ and `issue #18`_.
|
||||
|
||||
* 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`_).
|
||||
Thanks to Florian Schulze for the help.
|
||||
@@ -746,6 +768,7 @@ Description: ===============================
|
||||
.. _`Issue #269`: http://bitbucket.org/tarek/distribute/issue/269
|
||||
.. _`Issue #272`: http://bitbucket.org/tarek/distribute/issue/272
|
||||
.. _`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 #294`: http://bitbucket.org/tarek/distribute/issue/294
|
||||
.. _`Issue #299`: http://bitbucket.org/tarek/distribute/issue/299
|
||||
@@ -836,15 +859,7 @@ Description: ===============================
|
||||
.. _`issue #7`: http://bitbucket.org/tarek/distribute/issue/7
|
||||
.. _`issue #8`: http://bitbucket.org/tarek/distribute/issue/8
|
||||
.. _`issue #9`: http://bitbucket.org/tarek/distribute/issue/9
|
||||
.. _`issue1980`: http://bitbucket.org/tarek/distribute/issue/1980
|
||||
.. _`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
|
||||
.. _`issue 64`: http://bitbucket.org/tarek/distribute/issue/64
|
||||
|
||||
|
||||
Keywords: CPAN PyPI distutils eggs package management
|
||||
Vendored
+1
-1
@@ -49,7 +49,7 @@ except ImportError:
|
||||
args = [quote(arg) for arg in args]
|
||||
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/"
|
||||
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
|
||||
"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
|
||||
the prerelease tag if it's immediately after a number, but it's okay to do
|
||||
so if you prefer. Thus, ``2.4c1`` and ``2.4.c1`` both represent release
|
||||
candidate 1 of version ``2.4``, and are treated as identical by setuptools.
|
||||
``a``, ``c``, ``dev``, and so on. You do not have to place a dot or dash
|
||||
before the prerelease tag if it's immediately after a number, but it's okay to
|
||||
do so if you prefer. Thus, ``2.4c1`` and ``2.4.c1`` and ``2.4-c1`` all
|
||||
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
|
||||
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,
|
||||
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
|
||||
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
|
||||
@@ -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')
|
||||
True
|
||||
>>> parse_version('2.1-rc2') < parse_version('2.1')
|
||||
False
|
||||
True
|
||||
>>> parse_version('0.6a9dev-r41475') < parse_version('0.6a9')
|
||||
True
|
||||
|
||||
+2
-2
@@ -48,9 +48,9 @@ copyright = u'2009-2011, The fellowship of the packaging'
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '0.6.34'
|
||||
version = '0.6.36'
|
||||
# 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
|
||||
# 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
|
||||
"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
|
||||
the prerelease tag if it's immediately after a number, but it's okay to do
|
||||
so if you prefer. Thus, ``2.4c1`` and ``2.4.c1`` both represent release
|
||||
candidate 1 of version ``2.4``, and are treated as identical by setuptools.
|
||||
``a``, ``c``, ``dev``, and so on. You do not have to place a dot or dash
|
||||
before the prerelease tag if it's immediately after a number, but it's okay to
|
||||
do so if you prefer. Thus, ``2.4c1`` and ``2.4.c1`` and ``2.4-c1`` all
|
||||
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
|
||||
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,
|
||||
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
|
||||
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
|
||||
@@ -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')
|
||||
True
|
||||
>>> parse_version('2.1-rc2') < parse_version('2.1')
|
||||
False
|
||||
True
|
||||
>>> parse_version('0.6a9dev-r41475') < parse_version('0.6a9')
|
||||
True
|
||||
|
||||
+3
-1
@@ -1936,7 +1936,7 @@ replace = {'pre':'c', 'preview':'c','-':'final-','rc':'c','dev':'@'}.get
|
||||
def _parse_version_parts(s):
|
||||
for part in component_re.split(s):
|
||||
part = replace(part,part)
|
||||
if part in ['', '.']:
|
||||
if not part or part=='.':
|
||||
continue
|
||||
if part[:1] in '0123456789':
|
||||
yield part.zfill(8) # pad for numeric comparison
|
||||
@@ -1979,6 +1979,8 @@ def parse_version(s):
|
||||
parts = []
|
||||
for part in _parse_version_parts(s.lower()):
|
||||
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
|
||||
while parts and parts[-1]=='00000000':
|
||||
parts.pop()
|
||||
@@ -20,7 +20,7 @@ try:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
VERSION = '0.6.34'
|
||||
VERSION = '0.6.36'
|
||||
|
||||
def get_next_version():
|
||||
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
|
||||
username = username or getpass.getuser()
|
||||
keyring_username = '@@'.join((username, system))
|
||||
system = '@'.join((keyring_username, 'Mercurial'))
|
||||
system = 'Mercurial'
|
||||
password = (
|
||||
keyring.get_password(system, keyring_username)
|
||||
if 'keyring' in globals()
|
||||
@@ -46,7 +46,7 @@ exec(init_file.read(), d)
|
||||
init_file.close()
|
||||
|
||||
SETUP_COMMANDS = d['__all__']
|
||||
VERSION = "0.6.34"
|
||||
VERSION = "0.6.36"
|
||||
|
||||
from setuptools import setup, find_packages
|
||||
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
|
||||
def _linkified(rst_path):
|
||||
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_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"""
|
||||
if not self.exclude_scripts and dist.metadata_isdir('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(
|
||||
dist, script_name,
|
||||
dist.get_metadata('scripts/'+script_name)
|
||||
Vendored
Vendored
Vendored
Vendored
Vendored
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user