mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 23:10:16 +00:00
Compare commits
137 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 43c7079a07 | |||
| 097f64721a | |||
| b3b6c78657 | |||
| fcfc2f8651 | |||
| 1f9b0bfe02 | |||
| 533def6b57 | |||
| 826193ef5a | |||
| 631aa4b356 | |||
| 067422b4b4 | |||
| 7ec8f12648 | |||
| 731a0cb0bf | |||
| ebd97e9b93 | |||
| 9fcf81c170 | |||
| 1f2cb16dbb | |||
| 827306728f | |||
| f6076cb7f0 | |||
| 694386e233 | |||
| f11928af11 | |||
| acda8f640a | |||
| 4ff3a5d818 | |||
| 314b729c8a | |||
| 9fb676aba9 | |||
| b91741d10d | |||
| f3787356b6 | |||
| def3136c85 | |||
| abb0c9b384 | |||
| 87b2891c1a | |||
| 52c34ef64f | |||
| 40bc836a55 | |||
| d2738ece19 | |||
| f758a5d738 | |||
| 63edc5d89b | |||
| 0db1584f21 | |||
| 1ed173f21d | |||
| b17f3f51f7 | |||
| 4f0556cce7 | |||
| b55a5e5ec8 | |||
| 68acbb064d | |||
| 92df76793f | |||
| 5cda51c7a5 | |||
| 659a406eb8 | |||
| 4cf2dd5b32 | |||
| 100a5ba0bc | |||
| ab16abaa88 | |||
| 989dd1dd2a | |||
| 0468ef22c4 | |||
| 6238994a17 | |||
| 7ba2fe66a0 | |||
| dfaec438d9 | |||
| aaeef59ff6 | |||
| 4d35f5129a | |||
| 84f610347c | |||
| 44bfda1320 | |||
| 330524adba | |||
| 85bddf8f00 | |||
| 7b0d891f4d | |||
| 84f0e2feba | |||
| 76309c35ec | |||
| 3f6b453c0a | |||
| 43dbb49103 | |||
| f08f93f347 | |||
| e0c852f4b9 | |||
| 15373996f4 | |||
| ff1e8da0cb | |||
| 99f7f5b9f1 | |||
| 656f390de8 | |||
| 42a7e79359 | |||
| bf084cc2ac | |||
| eaaba665bc | |||
| 94d311134c | |||
| 0d49ae9851 | |||
| a5c39384a8 | |||
| cb6bc30bc6 | |||
| 82c72a94d9 | |||
| f327afd364 | |||
| d94f4c5bbc | |||
| 8be04ea656 | |||
| de7c16d942 | |||
| 5ea843458a | |||
| 758941d12f | |||
| e01d5bc18b | |||
| 2c16539190 | |||
| ed79e61a2f | |||
| b7bcc69722 | |||
| 3dde375d0b | |||
| 483e30a5ba | |||
| e783556e6b | |||
| 5645a433dc | |||
| 715ab8b96a | |||
| 5f96190eb5 | |||
| c579162ef9 | |||
| a5cca6de75 | |||
| b7f1157693 | |||
| ae7b6fc715 | |||
| e0c3b72950 | |||
| 566f7f4555 | |||
| 4ff62b2b41 | |||
| d47970fd81 | |||
| 69bdca063f | |||
| 63cea99415 | |||
| 5ecd27e3b8 | |||
| 206a2dbc04 | |||
| 2a083791b6 | |||
| d5b2b0b464 | |||
| 2eab1ad845 | |||
| 2b16420d41 | |||
| 9fa0889499 | |||
| 99b17fabeb | |||
| 933d3014d7 | |||
| 018e0f31de | |||
| cf1647e937 | |||
| b9f154bf38 | |||
| 4cc18ce0af | |||
| f5ea1c24a3 | |||
| 952b0bb735 | |||
| 8b7edad8a2 | |||
| 02787ac910 | |||
| bcc3ba09ca | |||
| 31e65dc58b | |||
| 9a227e6c73 | |||
| ddc9c24d34 | |||
| 42488a2be7 | |||
| 839486c25b | |||
| 5d56200179 | |||
| fef1d4f7c0 | |||
| 43defcc17e | |||
| f78460e2a7 | |||
| 3448923b69 | |||
| 58a13bc268 | |||
| c18038f986 | |||
| d4356a1f4c | |||
| 3c8f478b65 | |||
| 23493302e6 | |||
| 35ceaf728d | |||
| 5c9412fc33 | |||
| 825c9329eb | |||
| 9ebb990716 |
@@ -1,21 +1,5 @@
|
|||||||
|
# These targets are not files
|
||||||
|
.PHONY: tests
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
./bin/test
|
./bin/test
|
||||||
|
|
||||||
docs:
|
|
||||||
mkdir -p site
|
|
||||||
shocco -t 'Python Buildpack Compiler' ./bin/compile > site/index.html
|
|
||||||
shocco -t 'Django Buildpack Compiler' ./bin/steps/django > site/django.html
|
|
||||||
shocco -t 'Python Buildpack Detector' ./bin/detect > site/detect.html
|
|
||||||
shocco -t 'Pylibmc Buildpack Compiler' ./bin/steps/pylibmc > site/pylibmc.html
|
|
||||||
shocco -t 'Python Buildpack Changelog' ./Changelog.md > site/changelog.html
|
|
||||||
|
|
||||||
site: docs
|
|
||||||
cd site && git add -A && git commit -m 'update' && git push heroku master
|
|
||||||
|
|
||||||
pip:
|
|
||||||
git clone git@github.com:kennethreitz/pip.git --branch heroku --depth 1
|
|
||||||
rm -fr vendor/virtualenv-1.8.4/virtualenv_support/pip-1.2.1.tar.gz
|
|
||||||
rm -fr pip/.git
|
|
||||||
tar -pczf vendor/virtualenv-1.8.4/virtualenv_support/pip-1.2.1.tar.gz pip
|
|
||||||
rm -fr pip
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ Heroku buildpack: Python
|
|||||||
|
|
||||||
This is a [Heroku buildpack](http://devcenter.heroku.com/articles/buildpacks) for Python apps, powered by [pip](http://www.pip-installer.org/).
|
This is a [Heroku buildpack](http://devcenter.heroku.com/articles/buildpacks) for Python apps, powered by [pip](http://www.pip-installer.org/).
|
||||||
|
|
||||||
[](http://travis-ci.org/heroku/heroku-buildpack-python)
|
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
-----
|
-----
|
||||||
@@ -13,31 +12,30 @@ Example usage:
|
|||||||
$ ls
|
$ ls
|
||||||
Procfile requirements.txt web.py
|
Procfile requirements.txt web.py
|
||||||
|
|
||||||
$ heroku create --stack cedar --buildpack git://github.com/heroku/heroku-buildpack-python.git
|
$ heroku create --buildpack git://github.com/heroku/heroku-buildpack-python.git
|
||||||
|
|
||||||
$ git push heroku master
|
$ git push heroku master
|
||||||
...
|
...
|
||||||
-----> Fetching custom git buildpack... done
|
|
||||||
-----> Python app detected
|
-----> Python app detected
|
||||||
-----> No runtime.txt provided; assuming python-2.7.3.
|
-----> No runtime.txt provided; assuming python-2.7.8.
|
||||||
-----> Preparing Python runtime (python-2.7.3)
|
-----> Preparing Python runtime (python-2.7.8)
|
||||||
-----> Installing Distribute (0.6.34)
|
-----> Installing Setuptools (3.6)
|
||||||
-----> Installing Pip (1.2.1)
|
-----> Installing Pip (1.5.6)
|
||||||
-----> Installing dependencies using Pip (1.2.1)
|
-----> Installing dependencies using Pip (1.5.6)
|
||||||
Downloading/unpacking Flask==0.7.2 (from -r requirements.txt (line 1))
|
Downloading/unpacking requests (from -r requirements.txt (line 1))
|
||||||
Downloading/unpacking Werkzeug>=0.6.1 (from Flask==0.7.2->-r requirements.txt (line 1))
|
Installing collected packages: requests
|
||||||
Downloading/unpacking Jinja2>=2.4 (from Flask==0.7.2->-r requirements.txt (line 1))
|
Successfully installed requests
|
||||||
Installing collected packages: Flask, Werkzeug, Jinja2
|
|
||||||
Successfully installed Flask Werkzeug Jinja2
|
|
||||||
Cleaning up...
|
Cleaning up...
|
||||||
|
-----> Discovering process types
|
||||||
|
Procfile declares types -> (none)
|
||||||
|
|
||||||
You can also add it to upcoming builds of an existing application:
|
You can also add it to upcoming builds of an existing application:
|
||||||
|
|
||||||
$ heroku config:add BUILDPACK_URL=git://github.com/heroku/heroku-buildpack-python.git
|
$ heroku config:add BUILDPACK_URL=git://github.com/heroku/heroku-buildpack-python.git
|
||||||
|
|
||||||
The buildpack will detect your app as Python if it has the file `requirements.txt` in the root.
|
The buildpack will detect your app as Python if it has the file `requirements.txt` in the root.
|
||||||
|
|
||||||
It will use Pip to install your dependencies, vendoring a copy of the Python runtime into your slug.
|
It will use Pip to install your dependencies, vendoring a copy of the Python runtime into your slug.
|
||||||
|
|
||||||
Specify a Runtime
|
Specify a Runtime
|
||||||
-----------------
|
-----------------
|
||||||
@@ -45,10 +43,12 @@ Specify a Runtime
|
|||||||
You can also provide arbitrary releases Python with a `runtime.txt` file.
|
You can also provide arbitrary releases Python with a `runtime.txt` file.
|
||||||
|
|
||||||
$ cat runtime.txt
|
$ cat runtime.txt
|
||||||
python-3.3.0
|
python-3.4.1
|
||||||
|
|
||||||
Runtime options include:
|
Runtime options include:
|
||||||
|
|
||||||
- python-2.7.3
|
- python-2.7.8
|
||||||
- python-3.3.0
|
- python-3.4.1
|
||||||
- pypy-1.9 (experimental)
|
- pypy-1.9 (experimental)
|
||||||
|
|
||||||
|
Other [unsupported runtimes](https://github.com/heroku/heroku-buildpack-python/tree/master/builds/runtimes) are available as well.
|
||||||
|
|||||||
+138
-53
@@ -2,8 +2,7 @@
|
|||||||
|
|
||||||
# Usage:
|
# Usage:
|
||||||
#
|
#
|
||||||
# $ bin/compile <build-dir> <cache-dir>
|
# $ bin/compile <build-dir> <cache-dir> <env-path>
|
||||||
|
|
||||||
|
|
||||||
# Fail fast and fail hard.
|
# Fail fast and fail hard.
|
||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
@@ -16,6 +15,8 @@ BIN_DIR=$(cd $(dirname $0); pwd) # absolute path
|
|||||||
ROOT_DIR=$(dirname $BIN_DIR)
|
ROOT_DIR=$(dirname $BIN_DIR)
|
||||||
BUILD_DIR=$1
|
BUILD_DIR=$1
|
||||||
CACHE_DIR=$2
|
CACHE_DIR=$2
|
||||||
|
ENV_DIR=$3
|
||||||
|
|
||||||
|
|
||||||
CACHED_DIRS=".heroku"
|
CACHED_DIRS=".heroku"
|
||||||
|
|
||||||
@@ -24,15 +25,31 @@ VIRTUALENV_LOC=".heroku/venv"
|
|||||||
LEGACY_TRIGGER="lib/python2.7"
|
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.
|
DEFAULT_PYTHON_VERSION="python-2.7.8"
|
||||||
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"
|
PIP_VERSION="1.5.6"
|
||||||
DISTRIBUTE_VERSION="0.6.36"
|
SETUPTOOLS_VERSION="3.6"
|
||||||
|
|
||||||
|
# Setup bpwatch
|
||||||
|
export PATH=$PATH:$ROOT_DIR/vendor/bpwatch
|
||||||
|
LOGPLEX_KEY="t.b90d9d29-5388-4908-9737-b4576af1d4ce"
|
||||||
|
export BPWATCH_STORE_PATH=$CACHE_DIR/bpwatch.json
|
||||||
|
BUILDPACK_VERSION=v28
|
||||||
|
|
||||||
|
# Support Anvil Build_IDs
|
||||||
|
[ ! "$SLUG_ID" ] && SLUG_ID="defaultslug"
|
||||||
|
[ ! "$REQUEST_ID" ] && REQUEST_ID=$SLUG_ID
|
||||||
|
|
||||||
# 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
|
||||||
|
|
||||||
|
bpwatch init $LOGPLEX_KEY
|
||||||
|
bpwatch build python $BUILDPACK_VERSION $REQUEST_ID
|
||||||
|
TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
|
||||||
|
|
||||||
|
bpwatch start compile
|
||||||
|
|
||||||
|
|
||||||
# We'll need to send these statics to other scripts we `source`.
|
# We'll need to send these statics to other scripts we `source`.
|
||||||
export BUILD_DIR CACHE_DIR BIN_DIR PROFILE_PATH
|
export BUILD_DIR CACHE_DIR BIN_DIR PROFILE_PATH
|
||||||
|
|
||||||
@@ -44,28 +61,41 @@ APP_DIR='/app'
|
|||||||
TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
|
TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
|
||||||
|
|
||||||
# Copy Anvil app dir to temporary storage...
|
# Copy Anvil app dir to temporary storage...
|
||||||
mkdir -p $TMP_APP_DIR
|
bpwatch start anvil_appdir_stage
|
||||||
deep-mv $APP_DIR $TMP_APP_DIR
|
if [ "$SLUG_ID" ]; then
|
||||||
|
mkdir -p $TMP_APP_DIR
|
||||||
|
deep-mv $APP_DIR $TMP_APP_DIR
|
||||||
|
else
|
||||||
|
deep-rm $APP_DIR
|
||||||
|
fi
|
||||||
|
bpwatch stop anvil_appdir_stage
|
||||||
|
|
||||||
# Copy Application code in.
|
# Copy Application code in.
|
||||||
deep-mv $BUILD_DIR $APP_DIR
|
bpwatch start appdir_stage
|
||||||
|
deep-mv $BUILD_DIR $APP_DIR
|
||||||
|
bpwatch stop appdir_stage
|
||||||
|
|
||||||
# Set new context.
|
# Set new context.
|
||||||
ORIG_BUILD_DIR=$BUILD_DIR
|
ORIG_BUILD_DIR=$BUILD_DIR
|
||||||
BUILD_DIR=$APP_DIR
|
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:$BUILD_DIR/.heroku/vendor/bin:$PATH
|
||||||
export PYTHONUNBUFFERED=1
|
export PYTHONUNBUFFERED=1
|
||||||
export LANG=en_US.UTF-8
|
export LANG=en_US.UTF-8
|
||||||
export LIBRARY_PATH=/app/.heroku/vendor/lib
|
export C_INCLUDE_PATH=/app/.heroku/vendor/include:$BUILD_DIR/.heroku/vendor/include:/app/.heroku/python/include
|
||||||
export LD_LIBRARY_PATH=/app/.heroku/vendor/lib
|
export CPLUS_INCLUDE_PATH=/app/.heroku/vendor/include:$BUILD_DIR/.heroku/vendor/include:/app/.heroku/python/include
|
||||||
|
export LIBRARY_PATH=/app/.heroku/vendor/lib:$BUILD_DIR/.heroku/vendor/lib:/app/.heroku/python/lib
|
||||||
|
export LD_LIBRARY_PATH=/app/.heroku/vendor/lib:$BUILD_DIR/.heroku/vendor/lib:/app/.heroku/python/lib
|
||||||
|
export PKG_CONFIG_PATH=/app/.heroku/vendor/lib/pkg-config:$BUILD_DIR/.heroku/vendor/lib/pkg-config:/app/.heroku/python/lib/pkg-config
|
||||||
|
|
||||||
# Switch to the repo's context.
|
# Switch to the repo's context.
|
||||||
cd $BUILD_DIR
|
cd $BUILD_DIR
|
||||||
|
|
||||||
# Experimental pre_compile hook.
|
# Experimental pre_compile hook.
|
||||||
source $BIN_DIR/steps/hooks/pre_compile
|
bpwatch start pre_compile
|
||||||
|
source $BIN_DIR/steps/hooks/pre_compile
|
||||||
|
bpwatch stop pre_compile
|
||||||
|
|
||||||
# If no requirements given, assume `setup.py develop`.
|
# If no requirements given, assume `setup.py develop`.
|
||||||
if [ ! -f requirements.txt ]; then
|
if [ ! -f requirements.txt ]; then
|
||||||
@@ -73,9 +103,13 @@ if [ ! -f requirements.txt ]; then
|
|||||||
echo "-e ." > requirements.txt
|
echo "-e ." > requirements.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Sticky runtimes.
|
||||||
|
if [ -f $CACHE_DIR/.heroku/python-version ]; then
|
||||||
|
DEFAULT_PYTHON_VERSION=$(cat $CACHE_DIR/.heroku/python-version)
|
||||||
|
fi
|
||||||
|
|
||||||
# If no runtime given, assume default version.
|
# If no runtime given, assume default version.
|
||||||
if [ ! -f runtime.txt ]; then
|
if [ ! -f runtime.txt ]; then
|
||||||
puts-step "No runtime.txt provided; assuming $DEFAULT_PYTHON_VERSION."
|
|
||||||
echo $DEFAULT_PYTHON_VERSION > runtime.txt
|
echo $DEFAULT_PYTHON_VERSION > runtime.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -83,13 +117,17 @@ fi
|
|||||||
mkdir -p $CACHE_DIR
|
mkdir -p $CACHE_DIR
|
||||||
|
|
||||||
# Purge "old-style" virtualenvs.
|
# Purge "old-style" virtualenvs.
|
||||||
[ -d $CACHE_DIR/$LEGACY_TRIGGER ] && rm -fr $CACHE_DIR/.heroku/bin $CACHE_DIR/.heroku/lib $CACHE_DIR/.heroku/include
|
bpwatch start clear_old_venvs
|
||||||
[ -d $CACHE_DIR/$VIRTUALENV_LOC ] && rm -fr $CACHE_DIR/.heroku/venv $CACHE_DIR/.heroku/src
|
[ -d $CACHE_DIR/$LEGACY_TRIGGER ] && rm -fr $CACHE_DIR/.heroku/bin $CACHE_DIR/.heroku/lib $CACHE_DIR/.heroku/include
|
||||||
|
[ -d $CACHE_DIR/$VIRTUALENV_LOC ] && rm -fr $CACHE_DIR/.heroku/venv $CACHE_DIR/.heroku/src
|
||||||
|
bpwatch stop clear_old_venvs
|
||||||
|
|
||||||
# Restore old artifacts from the cache.
|
# Restore old artifacts from the cache.
|
||||||
for dir in $CACHED_DIRS; do
|
bpwatch start restore_cache
|
||||||
cp -R $CACHE_DIR/$dir . &> /dev/null || true
|
for dir in $CACHED_DIRS; do
|
||||||
done
|
cp -R $CACHE_DIR/$dir . &> /dev/null || true
|
||||||
|
done
|
||||||
|
bpwatch stop restore_cache
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
# Create set-aside `.heroku` folder.
|
# Create set-aside `.heroku` folder.
|
||||||
@@ -104,8 +142,10 @@ PYTHON_VERSION=$(cat runtime.txt)
|
|||||||
# Install Python.
|
# Install Python.
|
||||||
if [ -f .heroku/python-version ]; then
|
if [ -f .heroku/python-version ]; then
|
||||||
if [ ! $(cat .heroku/python-version) = $PYTHON_VERSION ]; then
|
if [ ! $(cat .heroku/python-version) = $PYTHON_VERSION ]; then
|
||||||
puts-step "Found $(cat .heroku/python-version), removing."
|
bpwatch start uninstall_python
|
||||||
rm -fr .heroku/python
|
puts-step "Found $(cat .heroku/python-version), removing."
|
||||||
|
rm -fr .heroku/python
|
||||||
|
bpwatch stop uninstall_python
|
||||||
else
|
else
|
||||||
SKIP_INSTALL=1
|
SKIP_INSTALL=1
|
||||||
fi
|
fi
|
||||||
@@ -113,14 +153,20 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
if [ ! "$SKIP_INSTALL" ]; then
|
if [ ! "$SKIP_INSTALL" ]; then
|
||||||
puts-step "Preparing Python runtime ($PYTHON_VERSION)"
|
bpwatch start install_python
|
||||||
curl http://envy-versions.s3.amazonaws.com/$PYTHON_VERSION.tar.bz2 -s | tar jx &> /dev/null
|
puts-step "Preparing Python runtime ($PYTHON_VERSION)"
|
||||||
if [[ $? != 0 ]] ; then
|
|
||||||
puts-warn "Requested runtime ($PYTHON_VERSION) was not found."
|
# Prepare destination directory.
|
||||||
puts-warn "Aborting. More info: https://devcenter.heroku.com/articles/python-support"
|
mkdir -p .heroku/python
|
||||||
exit 1
|
|
||||||
fi
|
curl http://lang-python.s3.amazonaws.com/runtimes/$PYTHON_VERSION.tar.gz -s | tar zxv -C .heroku/python &> /dev/null
|
||||||
mv python .heroku/python
|
if [[ $? != 0 ]] ; then
|
||||||
|
puts-warn "Requested runtime ($PYTHON_VERSION) was not found."
|
||||||
|
puts-warn "Aborting. More info: https://devcenter.heroku.com/articles/python-support"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
bpwatch stop install_python
|
||||||
|
|
||||||
# Record for future reference.
|
# Record for future reference.
|
||||||
echo $PYTHON_VERSION > .heroku/python-version
|
echo $PYTHON_VERSION > .heroku/python-version
|
||||||
@@ -135,16 +181,29 @@ fi
|
|||||||
if [ "$FRESH_PYTHON" ] || [[ ! $(pip --version) == *$PIP_VERSION* ]]; then
|
if [ "$FRESH_PYTHON" ] || [[ ! $(pip --version) == *$PIP_VERSION* ]]; then
|
||||||
WORKING_DIR=$(pwd)
|
WORKING_DIR=$(pwd)
|
||||||
|
|
||||||
# Prepare it for the real world
|
bpwatch start prepare_environment
|
||||||
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)"
|
bpwatch start install_setuptools
|
||||||
cd $ROOT_DIR/vendor/pip-$PIP_VERSION/
|
# Prepare it for the real world
|
||||||
python setup.py install &> /dev/null
|
puts-step "Installing Setuptools ($SETUPTOOLS_VERSION)"
|
||||||
cd $WORKING_DIR
|
cd $ROOT_DIR/vendor/
|
||||||
|
tar zxf setuptools-$SETUPTOOLS_VERSION.tar.gz
|
||||||
|
cd $ROOT_DIR/vendor/setuptools-$SETUPTOOLS_VERSION/
|
||||||
|
python setup.py install &> /dev/null
|
||||||
|
cd $WORKING_DIR
|
||||||
|
bpwatch stop install_setuptoools
|
||||||
|
|
||||||
|
bpwatch start install_pip
|
||||||
|
puts-step "Installing Pip ($PIP_VERSION)"
|
||||||
|
|
||||||
|
cd $ROOT_DIR/vendor/
|
||||||
|
tar zxf pip-$PIP_VERSION.tar.gz
|
||||||
|
cd $ROOT_DIR/vendor/pip-$PIP_VERSION/
|
||||||
|
python setup.py install &> /dev/null
|
||||||
|
cd $WORKING_DIR
|
||||||
|
|
||||||
|
bpwatch stop install_pip
|
||||||
|
bpwatch stop prepare_environment
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
@@ -152,44 +211,70 @@ hash -r
|
|||||||
|
|
||||||
# Pylibmc support.
|
# Pylibmc support.
|
||||||
# See [`bin/steps/pylibmc`](pylibmc.html).
|
# See [`bin/steps/pylibmc`](pylibmc.html).
|
||||||
source $BIN_DIR/steps/pylibmc
|
bpwatch start pylibmc_install
|
||||||
|
source $BIN_DIR/steps/pylibmc
|
||||||
|
bpwatch stop pylibmc_install
|
||||||
|
|
||||||
# Install Mercurial if it appears to be required.
|
# Install Mercurial if it appears to be required.
|
||||||
if (grep -Fiq "hg+" requirements.txt) then
|
if (grep -Fiq "hg+" requirements.txt) then
|
||||||
/app/.heroku/python/bin/pip install --use-mirrors mercurial | cleanup | indent
|
bpwatch start mercurial_install
|
||||||
|
/app/.heroku/python/bin/pip install mercurial | cleanup | indent
|
||||||
|
bpwatch stop mercurial_install
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install dependencies with Pip.
|
# Install dependencies with Pip.
|
||||||
puts-step "Installing dependencies using Pip ($PIP_VERSION)"
|
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
|
|
||||||
|
|
||||||
|
[ ! "$FRESH_PYTHON" ] && bpwatch start pip_install
|
||||||
|
[ "$FRESH_PYTHON" ] && bpwatch start pip_install_first
|
||||||
|
|
||||||
|
/app/.heroku/python/bin/pip install -r requirements.txt --exists-action=w --src=./.heroku/src --allow-all-external | cleanup | indent
|
||||||
|
|
||||||
|
[ ! "$FRESH_PYTHON" ] && bpwatch stop pip_install
|
||||||
|
[ "$FRESH_PYTHON" ] && bpwatch stop pip_install_first
|
||||||
|
|
||||||
# Django collectstatic support.
|
# Django collectstatic support.
|
||||||
source $BIN_DIR/steps/collectstatic
|
bpwatch start collectstatic
|
||||||
|
sub-env $BIN_DIR/steps/collectstatic
|
||||||
|
bpwatch stop collectstatic
|
||||||
|
|
||||||
# ### Finalize
|
# ### Finalize
|
||||||
#
|
#
|
||||||
|
|
||||||
# Store new artifacts in cache.
|
|
||||||
for dir in $CACHED_DIRS; do
|
|
||||||
rm -rf $CACHE_DIR/$dir
|
|
||||||
cp -R $dir $CACHE_DIR/
|
|
||||||
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 PYTHONUNBUFFERED true
|
set-env PYTHONUNBUFFERED true
|
||||||
set-env PYTHONHOME /app/.heroku/python
|
set-env PYTHONHOME /app/.heroku/python
|
||||||
set-default-env LIBRARY_PATH /app/.heroku/vendor/lib
|
set-env LIBRARY_PATH /app/.heroku/vendor/lib:/app/.heroku/python/lib
|
||||||
set-default-env LD_LIBRARY_PATH /app/.heroku/vendor/lib
|
set-env LD_LIBRARY_PATH '/app/.heroku/vendor/lib:/app/.heroku/python/lib:$LD_LIBRARY_PATH'
|
||||||
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/
|
||||||
|
|
||||||
|
|
||||||
# Experimental post_compile hook.
|
# Experimental post_compile hook.
|
||||||
source $BIN_DIR/steps/hooks/post_compile
|
bpwatch start post_compile
|
||||||
|
source $BIN_DIR/steps/hooks/post_compile
|
||||||
|
bpwatch stop post_compile
|
||||||
|
|
||||||
|
# Store new artifacts in cache.
|
||||||
|
bpwatch start dump_cache
|
||||||
|
for dir in $CACHED_DIRS; do
|
||||||
|
rm -rf $CACHE_DIR/$dir
|
||||||
|
cp -R $dir $CACHE_DIR/
|
||||||
|
done
|
||||||
|
bpwatch stop dump_cache
|
||||||
|
|
||||||
# ### Fin.
|
# ### Fin.
|
||||||
|
bpwatch start appdir_commit
|
||||||
|
deep-mv $BUILD_DIR $ORIG_BUILD_DIR
|
||||||
|
bpwatch stop appdir_commit
|
||||||
|
|
||||||
deep-mv $BUILD_DIR $ORIG_BUILD_DIR
|
bpwatch start anvil_appdir_commit
|
||||||
deep-mv $TMP_APP_DIR $APP_DIR
|
if [ "$SLUG_ID" ]; then
|
||||||
|
deep-mv $TMP_APP_DIR $APP_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
bpwatch stop anvil_appdir_commit
|
||||||
|
bpwatch stop compile
|
||||||
|
|||||||
+2
-2
@@ -18,6 +18,6 @@ if [[ $MANAGE_FILE ]]; then
|
|||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
shared-database:5mb
|
heroku-postgresql:hobby-dev
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|||||||
Regular → Executable
+10
-12
@@ -1,34 +1,32 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Syntax sugar.
|
source $BIN_DIR/utils
|
||||||
indent() {
|
|
||||||
RE="s/^/ /"
|
|
||||||
[ $(uname) == "Darwin" ] && sed -l "$RE" || sed -u "$RE"
|
|
||||||
}
|
|
||||||
|
|
||||||
MANAGE_FILE=$(find . -maxdepth 3 -type f -name 'manage.py' | head -1)
|
MANAGE_FILE=$(find . -maxdepth 3 -type f -name 'manage.py' | head -1)
|
||||||
MANAGE_FILE=${MANAGE_FILE:2}
|
MANAGE_FILE=${MANAGE_FILE:-fakepath}
|
||||||
|
|
||||||
if [ -f .heroku/collectstatic_disabled ]; then
|
[ -f .heroku/collectstatic_disabled ] && DISABLE_COLLECTSTATIC=1
|
||||||
DISABLE_COLLECTSTATIC=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! "$DISABLE_COLLECTSTATIC" ]; then
|
if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ]; then
|
||||||
set +e
|
set +e
|
||||||
|
|
||||||
|
echo "-----> Preparing static assets"
|
||||||
# Check if collectstatic is configured properly.
|
# Check if collectstatic is configured properly.
|
||||||
python $MANAGE_FILE collectstatic --dry-run --noinput &> /dev/null && RUN_COLLECTSTATIC=true
|
python $MANAGE_FILE collectstatic --dry-run --noinput &> /dev/null && RUN_COLLECTSTATIC=true
|
||||||
|
|
||||||
# Compile assets if collectstatic appears to be kosher.
|
# Compile assets if collectstatic appears to be kosher.
|
||||||
if [ "$RUN_COLLECTSTATIC" ]; then
|
if [ "$RUN_COLLECTSTATIC" ]; then
|
||||||
|
|
||||||
echo "-----> Collecting static files"
|
echo " Running collectstatic..."
|
||||||
python $MANAGE_FILE collectstatic --noinput 2>&1 | sed '/^Copying/d;/^$/d;/^ /d' | indent
|
python $MANAGE_FILE collectstatic --noinput 2>&1 | sed '/^Copying/d;/^$/d;/^ /d' | indent
|
||||||
|
|
||||||
[ $? -ne 0 ] && {
|
[ $? -ne 0 ] && {
|
||||||
echo " ! Error running manage.py collectstatic. More info:"
|
echo " ! Error running 'manage.py collectstatic'. More info:"
|
||||||
echo " http://devcenter.heroku.com/articles/django-assets"
|
echo " http://devcenter.heroku.com/articles/django-assets"
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
echo " Collectstatic configuration error. To debug, run:"
|
||||||
|
echo " $ heroku run python $MANAGE_FILE collectstatic --noinput"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
|
|||||||
Regular → Executable
+1
-1
@@ -3,5 +3,5 @@
|
|||||||
if [ -f bin/post_compile ]; then
|
if [ -f bin/post_compile ]; then
|
||||||
echo "-----> Running post-compile hook"
|
echo "-----> Running post-compile hook"
|
||||||
chmod +x bin/post_compile
|
chmod +x bin/post_compile
|
||||||
bin/post_compile
|
sub-env bin/post_compile
|
||||||
fi
|
fi
|
||||||
Regular → Executable
+1
-1
@@ -3,5 +3,5 @@
|
|||||||
if [ -f bin/pre_compile ]; then
|
if [ -f bin/pre_compile ]; then
|
||||||
echo "-----> Running pre-compile hook"
|
echo "-----> Running pre-compile hook"
|
||||||
chmod +x bin/pre_compile
|
chmod +x bin/pre_compile
|
||||||
bin/pre_compile
|
sub-env bin/pre_compile
|
||||||
fi
|
fi
|
||||||
+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 (grep -Eiq "^\s*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
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#
|
#
|
||||||
# Create a Heroku app with the following buildpack:
|
# Create a Heroku app with the following buildpack:
|
||||||
# https://github.com/ddollar/buildpack-tet
|
# https://github.com/ddollar/buildpack-test
|
||||||
#
|
#
|
||||||
# Push this Python buildpack to that Heroku app to
|
# Push this Python buildpack to that Heroku app to
|
||||||
# run the tests.
|
# run the tests.
|
||||||
@@ -20,6 +20,18 @@ testDetectWithEmptyReqs() {
|
|||||||
assertCapturedSuccess
|
assertCapturedSuccess
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testDetectDjango16() {
|
||||||
|
detect "django-1.6-skeleton"
|
||||||
|
assertCapturedEquals "Python"
|
||||||
|
assertCapturedSuccess
|
||||||
|
}
|
||||||
|
|
||||||
|
testDetectDjango15() {
|
||||||
|
detect "django-1.5-skeleton"
|
||||||
|
assertCapturedEquals "Python"
|
||||||
|
assertCapturedSuccess
|
||||||
|
}
|
||||||
|
|
||||||
testDetectDjango14() {
|
testDetectDjango14() {
|
||||||
detect "django-1.4-skeleton"
|
detect "django-1.4-skeleton"
|
||||||
assertCapturedEquals "Python"
|
assertCapturedEquals "Python"
|
||||||
@@ -56,6 +68,23 @@ testDetectNotPython() {
|
|||||||
assertEquals "1" "${RETURN}"
|
assertEquals "1" "${RETURN}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testDetectSimpleRuntimePypy2() {
|
||||||
|
detect "simple-runtime-pypy2"
|
||||||
|
assertCapturedEquals "Python"
|
||||||
|
assertCapturedSuccess
|
||||||
|
}
|
||||||
|
|
||||||
|
testDetectSimpleRuntimePython2() {
|
||||||
|
detect "simple-runtime-python2"
|
||||||
|
assertCapturedEquals "Python"
|
||||||
|
assertCapturedSuccess
|
||||||
|
}
|
||||||
|
|
||||||
|
testDetectSimpleRuntimePython3() {
|
||||||
|
detect "simple-runtime" # should probably be renamed simple-runtime-python3
|
||||||
|
assertCapturedEquals "Python"
|
||||||
|
assertCapturedSuccess
|
||||||
|
}
|
||||||
|
|
||||||
## utils ########################################
|
## utils ########################################
|
||||||
|
|
||||||
|
|||||||
@@ -1,54 +1,93 @@
|
|||||||
shopt -s extglob
|
shopt -s extglob
|
||||||
|
|
||||||
[ $(uname) == "Darwin" ] && SED_FLAG='-l' || SED_FLAG='-u'
|
if [ $(uname) == Darwin ]; then
|
||||||
|
sed() { command sed -l "$@"; }
|
||||||
|
else
|
||||||
|
sed() { command sed -u "$@"; }
|
||||||
|
fi
|
||||||
|
|
||||||
# Syntax sugar.
|
# Syntax sugar.
|
||||||
indent() {
|
indent() {
|
||||||
RE="s/^/ /"
|
sed "s/^/ /"
|
||||||
sed $SED_FLAG "$RE"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Clean up pip output
|
# Clean up pip output
|
||||||
cleanup() {
|
cleanup() {
|
||||||
sed $SED_FLAG -e 's/\.\.\.\+/.../g' | sed $SED_FLAG '/already satisfied/Id' | sed $SED_FLAG -e '/Overwriting/Id' | sed $SED_FLAG -e '/python executable/Id' | sed $SED_FLAG -e '/no previously-included files/Id'
|
sed -e 's/\.\.\.\+/.../g' | sed -e '/already satisfied/Id' | sed -e '/Overwriting/Id' | sed -e '/python executable/Id' | sed -e '/no previously-included files/Id'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Buildpack Steps.
|
# Buildpack Steps.
|
||||||
function puts-step (){
|
puts-step() {
|
||||||
echo "-----> $@"
|
echo "-----> $@"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Buildpack Warnings.
|
# Buildpack Warnings.
|
||||||
function puts-warn (){
|
puts-warn() {
|
||||||
echo " ! $@"
|
echo " ! $@"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Usage: $ set-env key value
|
# Usage: $ set-env key value
|
||||||
function set-env (){
|
set-env() {
|
||||||
echo "export $1=$2" >> $PROFILE_PATH
|
echo "export $1=$2" >> $PROFILE_PATH
|
||||||
}
|
}
|
||||||
|
|
||||||
# Usage: $ set-default-env key value
|
# Usage: $ set-default-env key value
|
||||||
function set-default-env (){
|
set-default-env() {
|
||||||
echo "export $1=\${$1:-$2}" >> $PROFILE_PATH
|
echo "export $1=\${$1:-$2}" >> $PROFILE_PATH
|
||||||
}
|
}
|
||||||
|
|
||||||
# Usage: $ set-default-env key value
|
# Usage: $ set-default-env key value
|
||||||
function un-set-env (){
|
un-set-env() {
|
||||||
echo "unset $1" >> $PROFILE_PATH
|
echo "unset $1" >> $PROFILE_PATH
|
||||||
}
|
}
|
||||||
|
|
||||||
# Does some serious copying.
|
# Does some serious copying.
|
||||||
function deep-cp (){
|
deep-cp() {
|
||||||
find -H $1 -maxdepth 1 -name '.*' -a \( -type d -o -type f -o -type l \) -exec cp -a '{}' $2 \;
|
declare source="$1" target="$2"
|
||||||
cp -r $1/!(tmp) $2
|
|
||||||
# echo copying $1 to $2
|
mkdir -p "$target"
|
||||||
|
|
||||||
|
# cp doesn't like being called without source params,
|
||||||
|
# so make sure they expand to something first.
|
||||||
|
# subshell to avoid surprising caller with shopts.
|
||||||
|
(
|
||||||
|
shopt -s nullglob dotglob
|
||||||
|
set -- "$source"/!(tmp|.|..)
|
||||||
|
[[ $# == 0 ]] || cp -a "$@" "$target"
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
# Does some serious moving.
|
# Does some serious moving.
|
||||||
function deep-mv (){
|
deep-mv() {
|
||||||
deep-cp $1 $2
|
deep-cp "$1" "$2"
|
||||||
|
deep-rm "$1"
|
||||||
rm -fr $1/!(tmp)
|
}
|
||||||
find -H $1 -maxdepth 1 -name '.*' -a \( -type d -o -type f -o -type l \) -exec rm -fr '{}' \;
|
|
||||||
|
# Does some serious deleting.
|
||||||
|
deep-rm() {
|
||||||
|
# subshell to avoid surprising caller with shopts.
|
||||||
|
(
|
||||||
|
shopt -s dotglob
|
||||||
|
rm -rf "$1"/!(tmp|.|..)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub-env() {
|
||||||
|
|
||||||
|
WHITELIST=${2:-''}
|
||||||
|
BLACKLIST=${3:-'^(GIT_DIR|PYTHONHOME|LD_LIBRARY_PATH|LIBRARY_PATH|PATH)$'}
|
||||||
|
|
||||||
|
(
|
||||||
|
if [ -d "$ENV_DIR" ]; then
|
||||||
|
for e in $(ls $ENV_DIR); do
|
||||||
|
echo "$e" | grep -E "$WHITELIST" | grep -qvE "$BLACKLIST" &&
|
||||||
|
export "$e=$(cat $ENV_DIR/$e)"
|
||||||
|
:
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
$1
|
||||||
|
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# Python Buildpack Binaries
|
||||||
|
|
||||||
|
|
||||||
|
To get started with it, create an app on Heroku inside a clone of this repository, and set your S3 config vars:
|
||||||
|
|
||||||
|
$ heroku create --buildpack https://github.com/heroku/heroku-buildpack-python#not-heroku
|
||||||
|
$ heroku config:set WORKSPACE_DIR=builds
|
||||||
|
$ heroku config:set AWS_ACCESS_KEY_ID=<your_aws_key>
|
||||||
|
$ heroku config:set AWS_SECRET_ACCESS_KEY=<your_aws_secret>
|
||||||
|
$ heroku config:set S3_BUCKET=<your_s3_bucket_name>
|
||||||
|
|
||||||
|
|
||||||
|
Then, shell into an instance and run a build by giving the name of the formula inside `builds`:
|
||||||
|
|
||||||
|
$ heroku run bash
|
||||||
|
Running `bash` attached to terminal... up, run.6880
|
||||||
|
~ $ bob build runtimes/python-2.7.6
|
||||||
|
|
||||||
|
Fetching dependencies... found 2:
|
||||||
|
- libraries/sqlite
|
||||||
|
|
||||||
|
Building formula runtimes/python-2.7.6:
|
||||||
|
=== Building Python 2.7.6
|
||||||
|
Fetching Python v2.7.6 source...
|
||||||
|
Compiling...
|
||||||
|
|
||||||
|
If this works, run `bob deploy` instead of `bob build` to have the result uploaded to S3 for you.
|
||||||
|
|
||||||
|
To speed things up drastically, it'll usually be a good idea to `heroku run bash --size PX` instead.
|
||||||
|
|
||||||
|
Enjoy :)
|
||||||
Executable
+22
@@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building SQLite..."
|
||||||
|
|
||||||
|
|
||||||
|
SOURCE_TARBALL='http://www.sqlite.org/sqlite-autoconf-3070900.tar.gz'
|
||||||
|
|
||||||
|
curl $SOURCE_TARBALL | tar xz
|
||||||
|
# jx
|
||||||
|
mv sqlite-autoconf-3070900 sqlite
|
||||||
|
|
||||||
|
cd sqlite
|
||||||
|
./configure --prefix=$OUT_PREFIX
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
cd ..
|
||||||
|
rm -fr sqlite
|
||||||
Executable
+12
@@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building PyPy..."
|
||||||
|
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-1.7-linux64.tar.bz2'
|
||||||
|
curl -L $SOURCE_TARBALL | tar jx
|
||||||
|
cp -R pypy-1.7/* $OUT_PREFIX
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
|
||||||
Executable
+12
@@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building PyPy..."
|
||||||
|
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-linux64.tar.bz2'
|
||||||
|
curl -L $SOURCE_TARBALL | tar jx
|
||||||
|
cp -R pypy-1.8/* $OUT_PREFIX
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
|
||||||
Executable
+12
@@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building PyPy..."
|
||||||
|
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-linux64.tar.bz2'
|
||||||
|
curl -L $SOURCE_TARBALL | tar jx
|
||||||
|
cp -R pypy-1.9/* $OUT_PREFIX
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.4 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.4.4/Python-2.4.4.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.4.4 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.4 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.4.5/Python-2.4.5.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.4.5 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.4 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.4.6/Python-2.4.6.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.4.6 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.5 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.5/Python-2.5.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.5 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.5 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.5.1/Python-2.5.1.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.5.1 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.5 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.5.2/Python-2.5.2.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.5.2 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.5 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.5.3/Python-2.5.3.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.5.3 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.5 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.5.4/Python-2.5.4.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.5.4 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.6 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.5.5/Python-2.5.5.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.5.5 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.5 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.5.6/Python-2.5.6.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.5.6 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.6 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://www.python.org/ftp/python/2.6/Python-2.6.tar.bz2'
|
||||||
|
curl -L $SOURCE_TARBALL | tar jx
|
||||||
|
mv Python-2.6 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.6 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.6.1/Python-2.6.1.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.6.1 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.6 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.6.2/Python-2.6.2.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.6.2 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.6 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.6.3/Python-2.6.3.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.6.3 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.6 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.6.4/Python-2.6.4.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.6.4 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.6 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.6.5/Python-2.6.5.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.6.5 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.6 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.6.6/Python-2.6.6.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.6.6 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.6 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.6.7/Python-2.6.7.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.6.7 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.6 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.6.8/Python-2.6.8.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.6.8 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
# Protect 2.6 builds from parent Python (causes segfault during build).
|
||||||
|
unset LANG PYTHONHOME PYTHONPATH
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.6.9/Python-2.6.9.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.6.9 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.7/Python-2.7.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.7 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.7.1/Python-2.7.1.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.7.1 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.7.2 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.7.3/Python-2.7.3.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.7.3 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.7.4/Python-2.7.4.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.7.4 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.7.5 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.7.6/Python-2.7.6.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.7.6 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.7.7/Python-2.7.7.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.7.7 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.7.7/Python-2.7.7.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.7.7 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.7.8/Python-2.7.8.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.7.8 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/2.7.8/Python-2.7.8.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-2.7.8 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX
|
||||||
|
make
|
||||||
|
make install
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.1/Python-3.1.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.1 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.1.1/Python-3.1.1.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.1.1 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.1.2/Python-3.1.2.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.1.2 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.1.3/Python-3.1.3.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.1.3 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.1.4/Python-3.1.4.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.1.4 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.1.5/Python-3.1.5.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.1.5 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.2/Python-3.2.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.2 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.2.1/Python-3.2.1.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.2.1 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.2.2/Python-3.2.2.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.2.2 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.2.3/Python-3.2.3.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.2.3 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.2.4/Python-3.2.4.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.2.4 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.2.5/Python-3.2.5.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.2.5 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.3.0 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.3.1/Python-3.3.1.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.3.1 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.3.2/Python-3.3.2.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.3.2 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.3.3/Python-3.3.3.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.3.3 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.3.4/Python-3.3.4.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.3.4 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.4.0/Python-3.4.0.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.4.0 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --with-ensurepip=no --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build Path: /app/.heroku/python/
|
||||||
|
# Build Deps: libraries/sqlite
|
||||||
|
|
||||||
|
OUT_PREFIX=$1
|
||||||
|
|
||||||
|
echo "Building Python..."
|
||||||
|
SOURCE_TARBALL='http://python.org/ftp/python/3.4.1/Python-3.4.1.tgz'
|
||||||
|
curl -L $SOURCE_TARBALL | tar xz
|
||||||
|
mv Python-3.4.1 src
|
||||||
|
cd src
|
||||||
|
|
||||||
|
./configure --prefix=$OUT_PREFIX --with-ensurepip=no --enable-shared
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
|
||||||
|
|
||||||
+1
-1
@@ -1 +1 @@
|
|||||||
requests
|
bob-builder==0.0.5
|
||||||
@@ -168,7 +168,7 @@ def run(command, data=None, timeout=None, env=None):
|
|||||||
history = []
|
history = []
|
||||||
for c in command:
|
for c in command:
|
||||||
|
|
||||||
if len(history):
|
if history:
|
||||||
# due to broken pipe problems pass only first 10MB
|
# due to broken pipe problems pass only first 10MB
|
||||||
data = history[-1].std_out[0:10*1024]
|
data = history[-1].std_out[0:10*1024]
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,156 @@
|
|||||||
|
# Django settings for haystack project.
|
||||||
|
|
||||||
|
DEBUG = True
|
||||||
|
TEMPLATE_DEBUG = DEBUG
|
||||||
|
|
||||||
|
ADMINS = (
|
||||||
|
# ('Your Name', 'your_email@example.com'),
|
||||||
|
)
|
||||||
|
|
||||||
|
MANAGERS = ADMINS
|
||||||
|
|
||||||
|
DATABASES = {
|
||||||
|
'default': {
|
||||||
|
'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
|
||||||
|
'NAME': '', # Or path to database file if using sqlite3.
|
||||||
|
# The following settings are not used with sqlite3:
|
||||||
|
'USER': '',
|
||||||
|
'PASSWORD': '',
|
||||||
|
'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
|
||||||
|
'PORT': '', # Set to empty string for default.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Hosts/domain names that are valid for this site; required if DEBUG is False
|
||||||
|
# See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts
|
||||||
|
ALLOWED_HOSTS = []
|
||||||
|
|
||||||
|
# Local time zone for this installation. Choices can be found here:
|
||||||
|
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
|
||||||
|
# although not all choices may be available on all operating systems.
|
||||||
|
# In a Windows environment this must be set to your system time zone.
|
||||||
|
TIME_ZONE = 'America/Chicago'
|
||||||
|
|
||||||
|
# Language code for this installation. All choices can be found here:
|
||||||
|
# http://www.i18nguy.com/unicode/language-identifiers.html
|
||||||
|
LANGUAGE_CODE = 'en-us'
|
||||||
|
|
||||||
|
SITE_ID = 1
|
||||||
|
|
||||||
|
# If you set this to False, Django will make some optimizations so as not
|
||||||
|
# to load the internationalization machinery.
|
||||||
|
USE_I18N = True
|
||||||
|
|
||||||
|
# If you set this to False, Django will not format dates, numbers and
|
||||||
|
# calendars according to the current locale.
|
||||||
|
USE_L10N = True
|
||||||
|
|
||||||
|
# If you set this to False, Django will not use timezone-aware datetimes.
|
||||||
|
USE_TZ = True
|
||||||
|
|
||||||
|
# Absolute filesystem path to the directory that will hold user-uploaded files.
|
||||||
|
# Example: "/var/www/example.com/media/"
|
||||||
|
MEDIA_ROOT = ''
|
||||||
|
|
||||||
|
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
|
||||||
|
# trailing slash.
|
||||||
|
# Examples: "http://example.com/media/", "http://media.example.com/"
|
||||||
|
MEDIA_URL = ''
|
||||||
|
|
||||||
|
# Absolute path to the directory static files should be collected to.
|
||||||
|
# Don't put anything in this directory yourself; store your static files
|
||||||
|
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
|
||||||
|
# Example: "/var/www/example.com/static/"
|
||||||
|
STATIC_ROOT = ''
|
||||||
|
|
||||||
|
# URL prefix for static files.
|
||||||
|
# Example: "http://example.com/static/", "http://static.example.com/"
|
||||||
|
STATIC_URL = '/static/'
|
||||||
|
|
||||||
|
# Additional locations of static files
|
||||||
|
STATICFILES_DIRS = (
|
||||||
|
# Put strings here, like "/home/html/static" or "C:/www/django/static".
|
||||||
|
# Always use forward slashes, even on Windows.
|
||||||
|
# Don't forget to use absolute paths, not relative paths.
|
||||||
|
)
|
||||||
|
|
||||||
|
# List of finder classes that know how to find static files in
|
||||||
|
# various locations.
|
||||||
|
STATICFILES_FINDERS = (
|
||||||
|
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||||
|
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
||||||
|
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
|
||||||
|
)
|
||||||
|
|
||||||
|
# Make this unique, and don't share it with anybody.
|
||||||
|
SECRET_KEY = '@w-1$9#jh05!qvbh#1k)c4=w9llcq116f$5(4&s_c)n4@%n=pc'
|
||||||
|
|
||||||
|
# List of callables that know how to import templates from various sources.
|
||||||
|
TEMPLATE_LOADERS = (
|
||||||
|
'django.template.loaders.filesystem.Loader',
|
||||||
|
'django.template.loaders.app_directories.Loader',
|
||||||
|
# 'django.template.loaders.eggs.Loader',
|
||||||
|
)
|
||||||
|
|
||||||
|
MIDDLEWARE_CLASSES = (
|
||||||
|
'django.middleware.common.CommonMiddleware',
|
||||||
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||||
|
'django.middleware.csrf.CsrfViewMiddleware',
|
||||||
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
|
'django.contrib.messages.middleware.MessageMiddleware',
|
||||||
|
# Uncomment the next line for simple clickjacking protection:
|
||||||
|
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||||
|
)
|
||||||
|
|
||||||
|
ROOT_URLCONF = 'haystack.urls'
|
||||||
|
|
||||||
|
# Python dotted path to the WSGI application used by Django's runserver.
|
||||||
|
WSGI_APPLICATION = 'haystack.wsgi.application'
|
||||||
|
|
||||||
|
TEMPLATE_DIRS = (
|
||||||
|
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
|
||||||
|
# Always use forward slashes, even on Windows.
|
||||||
|
# Don't forget to use absolute paths, not relative paths.
|
||||||
|
)
|
||||||
|
|
||||||
|
INSTALLED_APPS = (
|
||||||
|
'django.contrib.auth',
|
||||||
|
'django.contrib.contenttypes',
|
||||||
|
'django.contrib.sessions',
|
||||||
|
'django.contrib.sites',
|
||||||
|
'django.contrib.messages',
|
||||||
|
'django.contrib.staticfiles',
|
||||||
|
# Uncomment the next line to enable the admin:
|
||||||
|
# 'django.contrib.admin',
|
||||||
|
# Uncomment the next line to enable admin documentation:
|
||||||
|
# 'django.contrib.admindocs',
|
||||||
|
)
|
||||||
|
|
||||||
|
# A sample logging configuration. The only tangible logging
|
||||||
|
# performed by this configuration is to send an email to
|
||||||
|
# the site admins on every HTTP 500 error when DEBUG=False.
|
||||||
|
# See http://docs.djangoproject.com/en/dev/topics/logging for
|
||||||
|
# more details on how to customize your logging configuration.
|
||||||
|
LOGGING = {
|
||||||
|
'version': 1,
|
||||||
|
'disable_existing_loggers': False,
|
||||||
|
'filters': {
|
||||||
|
'require_debug_false': {
|
||||||
|
'()': 'django.utils.log.RequireDebugFalse'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'handlers': {
|
||||||
|
'mail_admins': {
|
||||||
|
'level': 'ERROR',
|
||||||
|
'filters': ['require_debug_false'],
|
||||||
|
'class': 'django.utils.log.AdminEmailHandler'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'loggers': {
|
||||||
|
'django.request': {
|
||||||
|
'handlers': ['mail_admins'],
|
||||||
|
'level': 'ERROR',
|
||||||
|
'propagate': True,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
from django.conf.urls import patterns, include, url
|
||||||
|
|
||||||
|
# Uncomment the next two lines to enable the admin:
|
||||||
|
# from django.contrib import admin
|
||||||
|
# admin.autodiscover()
|
||||||
|
|
||||||
|
urlpatterns = patterns('',
|
||||||
|
# Examples:
|
||||||
|
# url(r'^$', 'haystack.views.home', name='home'),
|
||||||
|
# url(r'^haystack/', include('haystack.foo.urls')),
|
||||||
|
|
||||||
|
# Uncomment the admin/doc line below to enable admin documentation:
|
||||||
|
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
|
||||||
|
|
||||||
|
# Uncomment the next line to enable the admin:
|
||||||
|
# url(r'^admin/', include(admin.site.urls)),
|
||||||
|
)
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
"""
|
||||||
|
WSGI config for haystack project.
|
||||||
|
|
||||||
|
This module contains the WSGI application used by Django's development server
|
||||||
|
and any production WSGI deployments. It should expose a module-level variable
|
||||||
|
named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover
|
||||||
|
this application via the ``WSGI_APPLICATION`` setting.
|
||||||
|
|
||||||
|
Usually you will have the standard Django WSGI application here, but it also
|
||||||
|
might make sense to replace the whole Django WSGI application with a custom one
|
||||||
|
that later delegates to the Django one. For example, you could introduce WSGI
|
||||||
|
middleware here, or combine a Django application with an application of another
|
||||||
|
framework.
|
||||||
|
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
|
||||||
|
# We defer to a DJANGO_SETTINGS_MODULE already in the environment. This breaks
|
||||||
|
# if running multiple sites in the same mod_wsgi process. To fix this, use
|
||||||
|
# mod_wsgi daemon mode with each site in its own daemon process, or use
|
||||||
|
# os.environ["DJANGO_SETTINGS_MODULE"] = "haystack.settings"
|
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "haystack.settings")
|
||||||
|
|
||||||
|
# This application object is used by any WSGI server configured to use this
|
||||||
|
# file. This includes Django's development server, if the WSGI_APPLICATION
|
||||||
|
# setting points here.
|
||||||
|
from django.core.wsgi import get_wsgi_application
|
||||||
|
application = get_wsgi_application()
|
||||||
|
|
||||||
|
# Apply WSGI middleware here.
|
||||||
|
# from helloworld.wsgi import HelloWorldApplication
|
||||||
|
# application = HelloWorldApplication(application)
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "haystack.settings")
|
||||||
|
|
||||||
|
from django.core.management import execute_from_command_line
|
||||||
|
|
||||||
|
execute_from_command_line(sys.argv)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
django==1.5
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
@@ -0,0 +1,156 @@
|
|||||||
|
# Django settings for haystack project.
|
||||||
|
|
||||||
|
DEBUG = True
|
||||||
|
TEMPLATE_DEBUG = DEBUG
|
||||||
|
|
||||||
|
ADMINS = (
|
||||||
|
# ('Your Name', 'your_email@example.com'),
|
||||||
|
)
|
||||||
|
|
||||||
|
MANAGERS = ADMINS
|
||||||
|
|
||||||
|
DATABASES = {
|
||||||
|
'default': {
|
||||||
|
'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
|
||||||
|
'NAME': '', # Or path to database file if using sqlite3.
|
||||||
|
# The following settings are not used with sqlite3:
|
||||||
|
'USER': '',
|
||||||
|
'PASSWORD': '',
|
||||||
|
'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
|
||||||
|
'PORT': '', # Set to empty string for default.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Hosts/domain names that are valid for this site; required if DEBUG is False
|
||||||
|
# See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts
|
||||||
|
ALLOWED_HOSTS = []
|
||||||
|
|
||||||
|
# Local time zone for this installation. Choices can be found here:
|
||||||
|
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
|
||||||
|
# although not all choices may be available on all operating systems.
|
||||||
|
# In a Windows environment this must be set to your system time zone.
|
||||||
|
TIME_ZONE = 'America/Chicago'
|
||||||
|
|
||||||
|
# Language code for this installation. All choices can be found here:
|
||||||
|
# http://www.i18nguy.com/unicode/language-identifiers.html
|
||||||
|
LANGUAGE_CODE = 'en-us'
|
||||||
|
|
||||||
|
SITE_ID = 1
|
||||||
|
|
||||||
|
# If you set this to False, Django will make some optimizations so as not
|
||||||
|
# to load the internationalization machinery.
|
||||||
|
USE_I18N = True
|
||||||
|
|
||||||
|
# If you set this to False, Django will not format dates, numbers and
|
||||||
|
# calendars according to the current locale.
|
||||||
|
USE_L10N = True
|
||||||
|
|
||||||
|
# If you set this to False, Django will not use timezone-aware datetimes.
|
||||||
|
USE_TZ = True
|
||||||
|
|
||||||
|
# Absolute filesystem path to the directory that will hold user-uploaded files.
|
||||||
|
# Example: "/var/www/example.com/media/"
|
||||||
|
MEDIA_ROOT = ''
|
||||||
|
|
||||||
|
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
|
||||||
|
# trailing slash.
|
||||||
|
# Examples: "http://example.com/media/", "http://media.example.com/"
|
||||||
|
MEDIA_URL = ''
|
||||||
|
|
||||||
|
# Absolute path to the directory static files should be collected to.
|
||||||
|
# Don't put anything in this directory yourself; store your static files
|
||||||
|
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
|
||||||
|
# Example: "/var/www/example.com/static/"
|
||||||
|
STATIC_ROOT = ''
|
||||||
|
|
||||||
|
# URL prefix for static files.
|
||||||
|
# Example: "http://example.com/static/", "http://static.example.com/"
|
||||||
|
STATIC_URL = '/static/'
|
||||||
|
|
||||||
|
# Additional locations of static files
|
||||||
|
STATICFILES_DIRS = (
|
||||||
|
# Put strings here, like "/home/html/static" or "C:/www/django/static".
|
||||||
|
# Always use forward slashes, even on Windows.
|
||||||
|
# Don't forget to use absolute paths, not relative paths.
|
||||||
|
)
|
||||||
|
|
||||||
|
# List of finder classes that know how to find static files in
|
||||||
|
# various locations.
|
||||||
|
STATICFILES_FINDERS = (
|
||||||
|
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||||
|
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
||||||
|
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
|
||||||
|
)
|
||||||
|
|
||||||
|
# Make this unique, and don't share it with anybody.
|
||||||
|
SECRET_KEY = '@w-1$9#jh05!qvbh#1k)c4=w9llcq116f$5(4&s_c)n4@%n=pc'
|
||||||
|
|
||||||
|
# List of callables that know how to import templates from various sources.
|
||||||
|
TEMPLATE_LOADERS = (
|
||||||
|
'django.template.loaders.filesystem.Loader',
|
||||||
|
'django.template.loaders.app_directories.Loader',
|
||||||
|
# 'django.template.loaders.eggs.Loader',
|
||||||
|
)
|
||||||
|
|
||||||
|
MIDDLEWARE_CLASSES = (
|
||||||
|
'django.middleware.common.CommonMiddleware',
|
||||||
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||||
|
'django.middleware.csrf.CsrfViewMiddleware',
|
||||||
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
|
'django.contrib.messages.middleware.MessageMiddleware',
|
||||||
|
# Uncomment the next line for simple clickjacking protection:
|
||||||
|
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||||
|
)
|
||||||
|
|
||||||
|
ROOT_URLCONF = 'haystack.urls'
|
||||||
|
|
||||||
|
# Python dotted path to the WSGI application used by Django's runserver.
|
||||||
|
WSGI_APPLICATION = 'haystack.wsgi.application'
|
||||||
|
|
||||||
|
TEMPLATE_DIRS = (
|
||||||
|
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
|
||||||
|
# Always use forward slashes, even on Windows.
|
||||||
|
# Don't forget to use absolute paths, not relative paths.
|
||||||
|
)
|
||||||
|
|
||||||
|
INSTALLED_APPS = (
|
||||||
|
'django.contrib.auth',
|
||||||
|
'django.contrib.contenttypes',
|
||||||
|
'django.contrib.sessions',
|
||||||
|
'django.contrib.sites',
|
||||||
|
'django.contrib.messages',
|
||||||
|
'django.contrib.staticfiles',
|
||||||
|
# Uncomment the next line to enable the admin:
|
||||||
|
# 'django.contrib.admin',
|
||||||
|
# Uncomment the next line to enable admin documentation:
|
||||||
|
# 'django.contrib.admindocs',
|
||||||
|
)
|
||||||
|
|
||||||
|
# A sample logging configuration. The only tangible logging
|
||||||
|
# performed by this configuration is to send an email to
|
||||||
|
# the site admins on every HTTP 500 error when DEBUG=False.
|
||||||
|
# See http://docs.djangoproject.com/en/dev/topics/logging for
|
||||||
|
# more details on how to customize your logging configuration.
|
||||||
|
LOGGING = {
|
||||||
|
'version': 1,
|
||||||
|
'disable_existing_loggers': False,
|
||||||
|
'filters': {
|
||||||
|
'require_debug_false': {
|
||||||
|
'()': 'django.utils.log.RequireDebugFalse'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'handlers': {
|
||||||
|
'mail_admins': {
|
||||||
|
'level': 'ERROR',
|
||||||
|
'filters': ['require_debug_false'],
|
||||||
|
'class': 'django.utils.log.AdminEmailHandler'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'loggers': {
|
||||||
|
'django.request': {
|
||||||
|
'handlers': ['mail_admins'],
|
||||||
|
'level': 'ERROR',
|
||||||
|
'propagate': True,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
from django.conf.urls import patterns, include, url
|
||||||
|
|
||||||
|
# Uncomment the next two lines to enable the admin:
|
||||||
|
# from django.contrib import admin
|
||||||
|
# admin.autodiscover()
|
||||||
|
|
||||||
|
urlpatterns = patterns('',
|
||||||
|
# Examples:
|
||||||
|
# url(r'^$', 'haystack.views.home', name='home'),
|
||||||
|
# url(r'^haystack/', include('haystack.foo.urls')),
|
||||||
|
|
||||||
|
# Uncomment the admin/doc line below to enable admin documentation:
|
||||||
|
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
|
||||||
|
|
||||||
|
# Uncomment the next line to enable the admin:
|
||||||
|
# url(r'^admin/', include(admin.site.urls)),
|
||||||
|
)
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
"""
|
||||||
|
WSGI config for haystack project.
|
||||||
|
|
||||||
|
This module contains the WSGI application used by Django's development server
|
||||||
|
and any production WSGI deployments. It should expose a module-level variable
|
||||||
|
named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover
|
||||||
|
this application via the ``WSGI_APPLICATION`` setting.
|
||||||
|
|
||||||
|
Usually you will have the standard Django WSGI application here, but it also
|
||||||
|
might make sense to replace the whole Django WSGI application with a custom one
|
||||||
|
that later delegates to the Django one. For example, you could introduce WSGI
|
||||||
|
middleware here, or combine a Django application with an application of another
|
||||||
|
framework.
|
||||||
|
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
|
||||||
|
# We defer to a DJANGO_SETTINGS_MODULE already in the environment. This breaks
|
||||||
|
# if running multiple sites in the same mod_wsgi process. To fix this, use
|
||||||
|
# mod_wsgi daemon mode with each site in its own daemon process, or use
|
||||||
|
# os.environ["DJANGO_SETTINGS_MODULE"] = "haystack.settings"
|
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "haystack.settings")
|
||||||
|
|
||||||
|
# This application object is used by any WSGI server configured to use this
|
||||||
|
# file. This includes Django's development server, if the WSGI_APPLICATION
|
||||||
|
# setting points here.
|
||||||
|
from django.core.wsgi import get_wsgi_application
|
||||||
|
application = get_wsgi_application()
|
||||||
|
|
||||||
|
# Apply WSGI middleware here.
|
||||||
|
# from helloworld.wsgi import HelloWorldApplication
|
||||||
|
# application = HelloWorldApplication(application)
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "haystack.settings")
|
||||||
|
|
||||||
|
from django.core.management import execute_from_command_line
|
||||||
|
|
||||||
|
execute_from_command_line(sys.argv)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
django==1.6
|
||||||
@@ -1 +1,2 @@
|
|||||||
httpbin
|
requests
|
||||||
|
distribute==0.6.49
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
requests==2.2.1
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
pypy-2.3
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
requests==2.2.1
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
python-2.7.6
|
||||||
@@ -1 +1 @@
|
|||||||
requests==1.0.3
|
requests==2.2.1
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
python-2.7.3
|
python-3.4.0
|
||||||
|
|||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env python2
|
||||||
|
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
DEFAULT_PATH = '{0}.zip'.format(os.path.abspath(__file__))
|
||||||
|
BPWATCH_DISTRO_PATH = os.environ.get('BPWATCH_DISTRO_PATH', DEFAULT_PATH)
|
||||||
|
|
||||||
|
sys.path.insert(0, BPWATCH_DISTRO_PATH)
|
||||||
|
|
||||||
|
import bp_cli
|
||||||
|
bp_cli.main()
|
||||||
Vendored
BIN
Binary file not shown.
Vendored
-509
@@ -1,509 +0,0 @@
|
|||||||
=======
|
|
||||||
CHANGES
|
|
||||||
=======
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.36
|
|
||||||
------
|
|
||||||
|
|
||||||
* 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
|
|
||||||
------
|
|
||||||
|
|
||||||
* Fix 2 errors with Jython 2.5.
|
|
||||||
* Fix 1 failure with Jython 2.5 and 2.7.
|
|
||||||
* Disable workaround for Jython scripts on Linux systems.
|
|
||||||
* Issue #336: `setup.py` no longer masks failure exit code when tests fail.
|
|
||||||
* Fix issue in pkg_resources where try/except around a platform-dependent
|
|
||||||
import would trigger hook load failures on Mercurial. See pull request 32
|
|
||||||
for details.
|
|
||||||
* Issue #341: Fix a ResourceWarning.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.32
|
|
||||||
------
|
|
||||||
|
|
||||||
* Fix test suite with Python 2.6.
|
|
||||||
* Fix some DeprecationWarnings and ResourceWarnings.
|
|
||||||
* Issue #335: Backed out `setup_requires` superceding installed requirements
|
|
||||||
until regression can be addressed.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.31
|
|
||||||
------
|
|
||||||
|
|
||||||
* Issue #303: Make sure the manifest only ever contains UTF-8 in Python 3.
|
|
||||||
* Issue #329: Properly close files created by tests for compatibility with
|
|
||||||
Jython.
|
|
||||||
* Work around Jython bugs `#1980 <http://bugs.jython.org/issue1980>`_ and
|
|
||||||
`#1981 <http://bugs.jython.org/issue1981>`_.
|
|
||||||
* Issue #334: Provide workaround for packages that reference `sys.__stdout__`
|
|
||||||
such as numpy does. This change should address
|
|
||||||
`virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long
|
|
||||||
as the system encoding is UTF-8 or the IO encoding is specified in the
|
|
||||||
environment, i.e.::
|
|
||||||
|
|
||||||
PYTHONIOENCODING=utf8 pip install numpy
|
|
||||||
|
|
||||||
* Fix for encoding issue when installing from Windows executable on Python 3.
|
|
||||||
* Issue #323: Allow `setup_requires` requirements to supercede installed
|
|
||||||
requirements. Added some new keyword arguments to existing pkg_resources
|
|
||||||
methods. Also had to updated how __path__ is handled for namespace packages
|
|
||||||
to ensure that when a new egg distribution containing a namespace package is
|
|
||||||
placed on sys.path, the entries in __path__ are found in the same order they
|
|
||||||
would have been in had that egg been on the path when pkg_resources was
|
|
||||||
first imported.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.30
|
|
||||||
------
|
|
||||||
|
|
||||||
* Issue #328: Clean up temporary directories in distribute_setup.py.
|
|
||||||
* Fix fatal bug in distribute_setup.py.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.29
|
|
||||||
------
|
|
||||||
|
|
||||||
* Pull Request #14: Honor file permissions in zip files.
|
|
||||||
* Issue #327: Merged pull request #24 to fix a dependency problem with pip.
|
|
||||||
* Merged pull request #23 to fix https://github.com/pypa/virtualenv/issues/301.
|
|
||||||
* If Sphinx is installed, the `upload_docs` command now runs `build_sphinx`
|
|
||||||
to produce uploadable documentation.
|
|
||||||
* Issue #326: `upload_docs` provided mangled auth credentials under Python 3.
|
|
||||||
* Issue #320: Fix check for "createable" in distribute_setup.py.
|
|
||||||
* Issue #305: Remove a warning that was triggered during normal operations.
|
|
||||||
* Issue #311: Print metadata in UTF-8 independent of platform.
|
|
||||||
* Issue #303: Read manifest file with UTF-8 encoding under Python 3.
|
|
||||||
* Issue #301: Allow to run tests of namespace packages when using 2to3.
|
|
||||||
* Issue #304: Prevent import loop in site.py under Python 3.3.
|
|
||||||
* Issue #283: Reenable scanning of `*.pyc` / `*.pyo` files on Python 3.3.
|
|
||||||
* Issue #299: The develop command didn't work on Python 3, when using 2to3,
|
|
||||||
as the egg link would go to the Python 2 source. Linking to the 2to3'd code
|
|
||||||
in build/lib makes it work, although you will have to rebuild the module
|
|
||||||
before testing it.
|
|
||||||
* Issue #306: Even if 2to3 is used, we build in-place under Python 2.
|
|
||||||
* Issue #307: Prints the full path when .svn/entries is broken.
|
|
||||||
* Issue #313: Support for sdist subcommands (Python 2.7)
|
|
||||||
* Issue #314: test_local_index() would fail an OS X.
|
|
||||||
* Issue #310: Non-ascii characters in a namespace __init__.py causes errors.
|
|
||||||
* Issue #218: Improved documentation on behavior of `package_data` and
|
|
||||||
`include_package_data`. Files indicated by `package_data` are now included
|
|
||||||
in the manifest.
|
|
||||||
* `distribute_setup.py` now allows a `--download-base` argument for retrieving
|
|
||||||
distribute from a specified location.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.28
|
|
||||||
------
|
|
||||||
|
|
||||||
* Issue #294: setup.py can now be invoked from any directory.
|
|
||||||
* Scripts are now installed honoring the umask.
|
|
||||||
* Added support for .dist-info directories.
|
|
||||||
* Issue #283: Fix and disable scanning of `*.pyc` / `*.pyo` files on
|
|
||||||
Python 3.3.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.27
|
|
||||||
------
|
|
||||||
|
|
||||||
* Support current snapshots of CPython 3.3.
|
|
||||||
* Distribute now recognizes README.rst as a standard, default readme file.
|
|
||||||
* Exclude 'encodings' modules when removing modules from sys.modules.
|
|
||||||
Workaround for #285.
|
|
||||||
* Issue #231: Don't fiddle with system python when used with buildout
|
|
||||||
(bootstrap.py)
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.26
|
|
||||||
------
|
|
||||||
|
|
||||||
* Issue #183: Symlinked files are now extracted from source distributions.
|
|
||||||
* Issue #227: Easy_install fetch parameters are now passed during the
|
|
||||||
installation of a source distribution; now fulfillment of setup_requires
|
|
||||||
dependencies will honor the parameters passed to easy_install.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.25
|
|
||||||
------
|
|
||||||
|
|
||||||
* Issue #258: Workaround a cache issue
|
|
||||||
* Issue #260: distribute_setup.py now accepts the --user parameter for
|
|
||||||
Python 2.6 and later.
|
|
||||||
* Issue #262: package_index.open_with_auth no longer throws LookupError
|
|
||||||
on Python 3.
|
|
||||||
* Issue #269: AttributeError when an exception occurs reading Manifest.in
|
|
||||||
on late releases of Python.
|
|
||||||
* Issue #272: Prevent TypeError when namespace package names are unicode
|
|
||||||
and single-install-externally-managed is used. Also fixes PIP issue
|
|
||||||
449.
|
|
||||||
* Issue #273: Legacy script launchers now install with Python2/3 support.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.24
|
|
||||||
------
|
|
||||||
|
|
||||||
* Issue #249: Added options to exclude 2to3 fixers
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.23
|
|
||||||
------
|
|
||||||
|
|
||||||
* Issue #244: Fixed a test
|
|
||||||
* Issue #243: Fixed a test
|
|
||||||
* Issue #239: Fixed a test
|
|
||||||
* Issue #240: Fixed a test
|
|
||||||
* Issue #241: Fixed a test
|
|
||||||
* Issue #237: Fixed a test
|
|
||||||
* Issue #238: easy_install now uses 64bit executable wrappers on 64bit Python
|
|
||||||
* Issue #208: Fixed parsed_versions, it now honors post-releases as noted in the documentation
|
|
||||||
* Issue #207: Windows cli and gui wrappers pass CTRL-C to child python process
|
|
||||||
* Issue #227: easy_install now passes its arguments to setup.py bdist_egg
|
|
||||||
* Issue #225: Fixed a NameError on Python 2.5, 2.4
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.21
|
|
||||||
------
|
|
||||||
|
|
||||||
* Issue #225: FIxed a regression on py2.4
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.20
|
|
||||||
------
|
|
||||||
|
|
||||||
* Issue #135: Include url in warning when processing URLs in package_index.
|
|
||||||
* Issue #212: Fix issue where easy_instal fails on Python 3 on windows installer.
|
|
||||||
* Issue #213: Fix typo in documentation.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.19
|
|
||||||
------
|
|
||||||
|
|
||||||
* Issue 206: AttributeError: 'HTTPMessage' object has no attribute 'getheaders'
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.18
|
|
||||||
------
|
|
||||||
|
|
||||||
* Issue 210: Fixed a regression introduced by Issue 204 fix.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.17
|
|
||||||
------
|
|
||||||
|
|
||||||
* Support 'DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT' environment
|
|
||||||
variable to allow to disable installation of easy_install-${version} script.
|
|
||||||
* Support Python >=3.1.4 and >=3.2.1.
|
|
||||||
* Issue 204: Don't try to import the parent of a namespace package in
|
|
||||||
declare_namespace
|
|
||||||
* Issue 196: Tolerate responses with multiple Content-Length headers
|
|
||||||
* Issue 205: Sandboxing doesn't preserve working_set. Leads to setup_requires
|
|
||||||
problems.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.16
|
|
||||||
------
|
|
||||||
|
|
||||||
* Builds sdist gztar even on Windows (avoiding Issue 193).
|
|
||||||
* Issue 192: Fixed metadata omitted on Windows when package_dir
|
|
||||||
specified with forward-slash.
|
|
||||||
* Issue 195: Cython build support.
|
|
||||||
* Issue 200: Issues with recognizing 64-bit packages on Windows.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.15
|
|
||||||
------
|
|
||||||
|
|
||||||
* Fixed typo in bdist_egg
|
|
||||||
* Several issues under Python 3 has been solved.
|
|
||||||
* Issue 146: Fixed missing DLL files after easy_install of windows exe package.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.14
|
|
||||||
------
|
|
||||||
|
|
||||||
* Issue 170: Fixed unittest failure. Thanks to Toshio.
|
|
||||||
* Issue 171: Fixed race condition in unittests cause deadlocks in test suite.
|
|
||||||
* Issue 143: Fixed a lookup issue with easy_install.
|
|
||||||
Thanks to David and Zooko.
|
|
||||||
* Issue 174: Fixed the edit mode when its used with setuptools itself
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.13
|
|
||||||
------
|
|
||||||
|
|
||||||
* Issue 160: 2.7 gives ValueError("Invalid IPv6 URL")
|
|
||||||
* Issue 150: Fixed using ~/.local even in a --no-site-packages virtualenv
|
|
||||||
* Issue 163: scan index links before external links, and don't use the md5 when
|
|
||||||
comparing two distributions
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.12
|
|
||||||
------
|
|
||||||
|
|
||||||
* Issue 149: Fixed various failures on 2.3/2.4
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.11
|
|
||||||
------
|
|
||||||
|
|
||||||
* Found another case of SandboxViolation - fixed
|
|
||||||
* Issue 15 and 48: Introduced a socket timeout of 15 seconds on url openings
|
|
||||||
* Added indexsidebar.html into MANIFEST.in
|
|
||||||
* Issue 108: Fixed TypeError with Python3.1
|
|
||||||
* Issue 121: Fixed --help install command trying to actually install.
|
|
||||||
* Issue 112: Added an os.makedirs so that Tarek's solution will work.
|
|
||||||
* Issue 133: Added --no-find-links to easy_install
|
|
||||||
* Added easy_install --user
|
|
||||||
* Issue 100: Fixed develop --user not taking '.' in PYTHONPATH into account
|
|
||||||
* Issue 134: removed spurious UserWarnings. Patch by VanLindberg
|
|
||||||
* Issue 138: cant_write_to_target error when setup_requires is used.
|
|
||||||
* Issue 147: respect the sys.dont_write_bytecode flag
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.10
|
|
||||||
------
|
|
||||||
|
|
||||||
* Reverted change made for the DistributionNotFound exception because
|
|
||||||
zc.buildout uses the exception message to get the name of the
|
|
||||||
distribution.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.9
|
|
||||||
-----
|
|
||||||
|
|
||||||
* Issue 90: unknown setuptools version can be added in the working set
|
|
||||||
* Issue 87: setupt.py doesn't try to convert distribute_setup.py anymore
|
|
||||||
Initial Patch by arfrever.
|
|
||||||
* Issue 89: added a side bar with a download link to the doc.
|
|
||||||
* Issue 86: fixed missing sentence in pkg_resources doc.
|
|
||||||
* Added a nicer error message when a DistributionNotFound is raised.
|
|
||||||
* Issue 80: test_develop now works with Python 3.1
|
|
||||||
* Issue 93: upload_docs now works if there is an empty sub-directory.
|
|
||||||
* Issue 70: exec bit on non-exec files
|
|
||||||
* Issue 99: now the standalone easy_install command doesn't uses a
|
|
||||||
"setup.cfg" if any exists in the working directory. It will use it
|
|
||||||
only if triggered by ``install_requires`` from a setup.py call
|
|
||||||
(install, develop, etc).
|
|
||||||
* Issue 101: Allowing ``os.devnull`` in Sandbox
|
|
||||||
* Issue 92: Fixed the "no eggs" found error with MacPort
|
|
||||||
(platform.mac_ver() fails)
|
|
||||||
* Issue 103: test_get_script_header_jython_workaround not run
|
|
||||||
anymore under py3 with C or POSIX local. Contributed by Arfrever.
|
|
||||||
* Issue 104: remvoved the assertion when the installation fails,
|
|
||||||
with a nicer message for the end user.
|
|
||||||
* Issue 100: making sure there's no SandboxViolation when
|
|
||||||
the setup script patches setuptools.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.8
|
|
||||||
-----
|
|
||||||
|
|
||||||
* Added "check_packages" in dist. (added in Setuptools 0.6c11)
|
|
||||||
* Fixed the DONT_PATCH_SETUPTOOLS state.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.7
|
|
||||||
-----
|
|
||||||
|
|
||||||
* Issue 58: Added --user support to the develop command
|
|
||||||
* Issue 11: Generated scripts now wrap their call to the script entry point
|
|
||||||
in the standard "if name == 'main'"
|
|
||||||
* Added the 'DONT_PATCH_SETUPTOOLS' environment variable, so virtualenv
|
|
||||||
can drive an installation that doesn't patch a global setuptools.
|
|
||||||
* Reviewed unladen-swallow specific change from
|
|
||||||
http://code.google.com/p/unladen-swallow/source/detail?spec=svn875&r=719
|
|
||||||
and determined that it no longer applies. Distribute should work fine with
|
|
||||||
Unladen Swallow 2009Q3.
|
|
||||||
* Issue 21: Allow PackageIndex.open_url to gracefully handle all cases of a
|
|
||||||
httplib.HTTPException instead of just InvalidURL and BadStatusLine.
|
|
||||||
* Removed virtual-python.py from this distribution and updated documentation
|
|
||||||
to point to the actively maintained virtualenv instead.
|
|
||||||
* Issue 64: use_setuptools no longer rebuilds the distribute egg every
|
|
||||||
time it is run
|
|
||||||
* use_setuptools now properly respects the requested version
|
|
||||||
* use_setuptools will no longer try to import a distribute egg for the
|
|
||||||
wrong Python version
|
|
||||||
* Issue 74: no_fake should be True by default.
|
|
||||||
* Issue 72: avoid a bootstrapping issue with easy_install -U
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.6
|
|
||||||
-----
|
|
||||||
|
|
||||||
* Unified the bootstrap file so it works on both py2.x and py3k without 2to3
|
|
||||||
(patch by Holger Krekel)
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.5
|
|
||||||
-----
|
|
||||||
|
|
||||||
* Issue 65: cli.exe and gui.exe are now generated at build time,
|
|
||||||
depending on the platform in use.
|
|
||||||
|
|
||||||
* Issue 67: Fixed doc typo (PEP 381/382)
|
|
||||||
|
|
||||||
* Distribute no longer shadows setuptools if we require a 0.7-series
|
|
||||||
setuptools. And an error is raised when installing a 0.7 setuptools with
|
|
||||||
distribute.
|
|
||||||
|
|
||||||
* When run from within buildout, no attempt is made to modify an existing
|
|
||||||
setuptools egg, whether in a shared egg directory or a system setuptools.
|
|
||||||
|
|
||||||
* Fixed a hole in sandboxing allowing builtin file to write outside of
|
|
||||||
the sandbox.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.4
|
|
||||||
-----
|
|
||||||
|
|
||||||
* Added the generation of `distribute_setup_3k.py` during the release.
|
|
||||||
This closes issue #52.
|
|
||||||
|
|
||||||
* Added an upload_docs command to easily upload project documentation to
|
|
||||||
PyPI's http://packages.python.org. This close issue #56.
|
|
||||||
|
|
||||||
* Fixed a bootstrap bug on the use_setuptools() API.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.3
|
|
||||||
-----
|
|
||||||
|
|
||||||
setuptools
|
|
||||||
==========
|
|
||||||
|
|
||||||
* Fixed a bunch of calls to file() that caused crashes on Python 3.
|
|
||||||
|
|
||||||
bootstrapping
|
|
||||||
=============
|
|
||||||
|
|
||||||
* Fixed a bug in sorting that caused bootstrap to fail on Python 3.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.2
|
|
||||||
-----
|
|
||||||
|
|
||||||
setuptools
|
|
||||||
==========
|
|
||||||
|
|
||||||
* Added Python 3 support; see docs/python3.txt.
|
|
||||||
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.
|
|
||||||
|
|
||||||
* Fixed script launcher for 64-bit Windows.
|
|
||||||
This closes http://bugs.python.org/setuptools/issue2.
|
|
||||||
|
|
||||||
* KeyError when compiling extensions.
|
|
||||||
This closes http://bugs.python.org/setuptools/issue41.
|
|
||||||
|
|
||||||
bootstrapping
|
|
||||||
=============
|
|
||||||
|
|
||||||
* Fixed bootstrap not working on Windows. This closes issue #49.
|
|
||||||
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.1
|
|
||||||
-----
|
|
||||||
|
|
||||||
setuptools
|
|
||||||
==========
|
|
||||||
|
|
||||||
* package_index.urlopen now catches BadStatusLine and malformed url errors.
|
|
||||||
This closes issue #16 and issue #18.
|
|
||||||
|
|
||||||
* zip_ok is now False by default. This closes
|
|
||||||
http://bugs.python.org/setuptools/issue33.
|
|
||||||
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
* Removed buildout/bootstrap.py. A new repository will create a specific
|
|
||||||
bootstrap.py script.
|
|
||||||
|
|
||||||
|
|
||||||
bootstrapping
|
|
||||||
=============
|
|
||||||
|
|
||||||
* The boostrap process leave setuptools alone if detected in the system
|
|
||||||
and --root or --prefix is provided, but is not in the same location.
|
|
||||||
This closes issue #10.
|
|
||||||
|
|
||||||
---
|
|
||||||
0.6
|
|
||||||
---
|
|
||||||
|
|
||||||
setuptools
|
|
||||||
==========
|
|
||||||
|
|
||||||
* Packages required at build time where not fully present at install time.
|
|
||||||
This closes issue #12.
|
|
||||||
|
|
||||||
* Protected against failures in tarfile extraction. This closes issue #10.
|
|
||||||
|
|
||||||
* Made Jython api_tests.txt doctest compatible. This closes issue #7.
|
|
||||||
|
|
||||||
* sandbox.py replaced builtin type file with builtin function open. This
|
|
||||||
closes issue #6.
|
|
||||||
|
|
||||||
* Immediately close all file handles. This closes issue #3.
|
|
||||||
|
|
||||||
* Added compatibility with Subversion 1.6. This references issue #1.
|
|
||||||
|
|
||||||
pkg_resources
|
|
||||||
=============
|
|
||||||
|
|
||||||
* Avoid a call to /usr/bin/sw_vers on OSX and use the official platform API
|
|
||||||
instead. Based on a patch from ronaldoussoren. This closes issue #5.
|
|
||||||
|
|
||||||
* Fixed a SandboxViolation for mkdir that could occur in certain cases.
|
|
||||||
This closes issue #13.
|
|
||||||
|
|
||||||
* Allow to find_on_path on systems with tight permissions to fail gracefully.
|
|
||||||
This closes issue #9.
|
|
||||||
|
|
||||||
* Corrected inconsistency between documentation and code of add_entry.
|
|
||||||
This closes issue #8.
|
|
||||||
|
|
||||||
* Immediately close all file handles. This closes issue #3.
|
|
||||||
|
|
||||||
easy_install
|
|
||||||
============
|
|
||||||
|
|
||||||
* Immediately close all file handles. This closes issue #3.
|
|
||||||
|
|
||||||
-30
@@ -1,30 +0,0 @@
|
|||||||
============
|
|
||||||
Contributors
|
|
||||||
============
|
|
||||||
|
|
||||||
* Alex Grönholm
|
|
||||||
* Alice Bevan-McGregor
|
|
||||||
* Arfrever Frehtes Taifersar Arahesis
|
|
||||||
* Christophe Combelles
|
|
||||||
* Daniel Stutzbach
|
|
||||||
* Daniel Holth
|
|
||||||
* Hanno Schlichting
|
|
||||||
* Jannis Leidel
|
|
||||||
* Jason R. Coombs
|
|
||||||
* Jim Fulton
|
|
||||||
* Jonathan Lange
|
|
||||||
* Justin Azoff
|
|
||||||
* Lennart Regebro
|
|
||||||
* Marc Abramowitz
|
|
||||||
* Martin von Löwis
|
|
||||||
* Noufal Ibrahim
|
|
||||||
* Pete Hollobon
|
|
||||||
* Philip Jenvey
|
|
||||||
* Reinout van Rees
|
|
||||||
* Robert Myers
|
|
||||||
* Stefan H. Holek
|
|
||||||
* Tarek Ziadé
|
|
||||||
* Toshio Kuratomi
|
|
||||||
|
|
||||||
If you think you name is missing, please add it (alpha order by first name)
|
|
||||||
|
|
||||||
-22
@@ -1,22 +0,0 @@
|
|||||||
============================
|
|
||||||
Quick notes for contributors
|
|
||||||
============================
|
|
||||||
|
|
||||||
Distribute is using Mercurial.
|
|
||||||
|
|
||||||
Grab the code at bitbucket::
|
|
||||||
|
|
||||||
$ hg clone https://bitbucket.org/tarek/distribute
|
|
||||||
|
|
||||||
If you want to contribute changes, we recommend you fork the repository on
|
|
||||||
bitbucket, commit the changes to your repository, and then make a pull request
|
|
||||||
on bitbucket. If you make some changes, don't forget to:
|
|
||||||
|
|
||||||
- add a note in CHANGES.txt
|
|
||||||
|
|
||||||
And remember that 0.6 (the only development line) is only bug fixes, and the
|
|
||||||
APIs should be fully backward compatible with Setuptools.
|
|
||||||
|
|
||||||
You can run the tests via::
|
|
||||||
|
|
||||||
$ python setup.py test
|
|
||||||
Vendored
-9
@@ -1,9 +0,0 @@
|
|||||||
recursive-include setuptools *.py *.txt *.exe
|
|
||||||
recursive-include tests *.py *.c *.pyx *.txt
|
|
||||||
recursive-include setuptools/tests *.html
|
|
||||||
recursive-include docs *.py *.txt *.conf *.css *.css_t Makefile indexsidebar.html
|
|
||||||
recursive-include _markerlib *.py
|
|
||||||
include *.py
|
|
||||||
include *.txt
|
|
||||||
include MANIFEST.in
|
|
||||||
include launcher.c
|
|
||||||
Vendored
-883
@@ -1,883 +0,0 @@
|
|||||||
Metadata-Version: 1.1
|
|
||||||
Name: distribute
|
|
||||||
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
|
|
||||||
Author-email: distutils-sig@python.org
|
|
||||||
License: PSF or ZPL
|
|
||||||
Description: ===============================
|
|
||||||
Installing and Using Distribute
|
|
||||||
===============================
|
|
||||||
|
|
||||||
.. contents:: **Table of Contents**
|
|
||||||
|
|
||||||
-----------
|
|
||||||
Disclaimers
|
|
||||||
-----------
|
|
||||||
|
|
||||||
About the fork
|
|
||||||
==============
|
|
||||||
|
|
||||||
`Distribute` is a fork of the `Setuptools` project.
|
|
||||||
|
|
||||||
Distribute is intended to replace Setuptools as the standard method
|
|
||||||
for working with Python module distributions.
|
|
||||||
|
|
||||||
The fork has two goals:
|
|
||||||
|
|
||||||
- Providing a backward compatible version to replace Setuptools
|
|
||||||
and make all distributions that depend on Setuptools work as
|
|
||||||
before, but with less bugs and behaviorial issues.
|
|
||||||
|
|
||||||
This work is done in the 0.6.x series.
|
|
||||||
|
|
||||||
Starting with version 0.6.2, Distribute supports Python 3.
|
|
||||||
Installing and using distribute for Python 3 code works exactly
|
|
||||||
the same as for Python 2 code, but Distribute also helps you to support
|
|
||||||
Python 2 and Python 3 from the same source code by letting you run 2to3
|
|
||||||
on the code as a part of the build process, by setting the keyword parameter
|
|
||||||
``use_2to3`` to True. See http://packages.python.org/distribute for more
|
|
||||||
information.
|
|
||||||
|
|
||||||
- Refactoring the code, and releasing it in several distributions.
|
|
||||||
This work is being done in the 0.7.x series but not yet released.
|
|
||||||
|
|
||||||
The roadmap is still evolving, and the page that is up-to-date is
|
|
||||||
located at : `http://packages.python.org/distribute/roadmap`.
|
|
||||||
|
|
||||||
If you install `Distribute` and want to switch back for any reason to
|
|
||||||
`Setuptools`, get to the `Uninstallation instructions`_ section.
|
|
||||||
|
|
||||||
More documentation
|
|
||||||
==================
|
|
||||||
|
|
||||||
You can get more information in the Sphinx-based documentation, located
|
|
||||||
at http://packages.python.org/distribute. This documentation includes the old
|
|
||||||
Setuptools documentation that is slowly replaced, and brand new content.
|
|
||||||
|
|
||||||
About the installation process
|
|
||||||
==============================
|
|
||||||
|
|
||||||
The `Distribute` installer modifies your installation by de-activating an
|
|
||||||
existing installation of `Setuptools` in a bootstrap process. This process
|
|
||||||
has been tested in various installation schemes and contexts but in case of a
|
|
||||||
bug during this process your Python installation might be left in a broken
|
|
||||||
state. Since all modified files and directories are copied before the
|
|
||||||
installation starts, you will be able to get back to a normal state by reading
|
|
||||||
the instructions in the `Uninstallation instructions`_ section.
|
|
||||||
|
|
||||||
In any case, it is recommended to save you `site-packages` directory before
|
|
||||||
you start the installation of `Distribute`.
|
|
||||||
|
|
||||||
-------------------------
|
|
||||||
Installation Instructions
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
Distribute is only released as a source distribution.
|
|
||||||
|
|
||||||
It can be installed using pip, and can be done so with the source tarball,
|
|
||||||
or by using the ``distribute_setup.py`` script provided online.
|
|
||||||
|
|
||||||
``distribute_setup.py`` is the simplest and preferred way on all systems.
|
|
||||||
|
|
||||||
distribute_setup.py
|
|
||||||
===================
|
|
||||||
|
|
||||||
Download
|
|
||||||
`distribute_setup.py <http://python-distribute.org/distribute_setup.py>`_
|
|
||||||
and execute it, using the Python interpreter of your choice.
|
|
||||||
|
|
||||||
If your shell has the ``curl`` program you can do::
|
|
||||||
|
|
||||||
$ curl -O http://python-distribute.org/distribute_setup.py
|
|
||||||
$ python distribute_setup.py
|
|
||||||
|
|
||||||
Notice this file is also provided in the source release.
|
|
||||||
|
|
||||||
pip
|
|
||||||
===
|
|
||||||
|
|
||||||
Run easy_install or pip::
|
|
||||||
|
|
||||||
$ pip install distribute
|
|
||||||
|
|
||||||
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.36.tar.gz
|
|
||||||
$ tar -xzvf distribute-0.6.36.tar.gz
|
|
||||||
$ cd distribute-0.6.36
|
|
||||||
$ python setup.py install
|
|
||||||
|
|
||||||
---------------------------
|
|
||||||
Uninstallation Instructions
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
Like other distutils-based distributions, Distribute doesn't provide an
|
|
||||||
uninstaller yet. It's all done manually! We are all waiting for PEP 376
|
|
||||||
support in Python.
|
|
||||||
|
|
||||||
Distribute is installed in three steps:
|
|
||||||
|
|
||||||
1. it gets out of the way an existing installation of Setuptools
|
|
||||||
2. it installs a `fake` setuptools installation
|
|
||||||
3. it installs distribute
|
|
||||||
|
|
||||||
Distribute can be removed like this:
|
|
||||||
|
|
||||||
- remove the ``distribute*.egg`` file located in your site-packages directory
|
|
||||||
- remove the ``setuptools.pth`` file located in you site-packages directory
|
|
||||||
- remove the easy_install script located in you ``sys.prefix/bin`` directory
|
|
||||||
- remove the ``setuptools*.egg`` directory located in your site-packages directory,
|
|
||||||
if any.
|
|
||||||
|
|
||||||
If you want to get back to setuptools:
|
|
||||||
|
|
||||||
- reinstall setuptools using its instruction.
|
|
||||||
|
|
||||||
Lastly:
|
|
||||||
|
|
||||||
- remove the *.OLD.* directory located in your site-packages directory if any,
|
|
||||||
**once you have checked everything was working correctly again**.
|
|
||||||
|
|
||||||
-------------------------
|
|
||||||
Quick help for developers
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
To create an egg which is compatible with Distribute, use the same
|
|
||||||
practice as with Setuptools, e.g.::
|
|
||||||
|
|
||||||
from setuptools import setup
|
|
||||||
|
|
||||||
setup(...
|
|
||||||
)
|
|
||||||
|
|
||||||
To use `pkg_resources` to access data files in the egg, you should
|
|
||||||
require the Setuptools distribution explicitly::
|
|
||||||
|
|
||||||
from setuptools import setup
|
|
||||||
|
|
||||||
setup(...
|
|
||||||
install_requires=['setuptools']
|
|
||||||
)
|
|
||||||
|
|
||||||
Only if you need Distribute-specific functionality should you depend
|
|
||||||
on it explicitly. In this case, replace the Setuptools dependency::
|
|
||||||
|
|
||||||
from setuptools import setup
|
|
||||||
|
|
||||||
setup(...
|
|
||||||
install_requires=['distribute']
|
|
||||||
)
|
|
||||||
|
|
||||||
-----------
|
|
||||||
Install FAQ
|
|
||||||
-----------
|
|
||||||
|
|
||||||
- **Why is Distribute wrapping my Setuptools installation?**
|
|
||||||
|
|
||||||
Since Distribute is a fork, and since it provides the same package
|
|
||||||
and modules, it renames the existing Setuptools egg and inserts a
|
|
||||||
new one which merely wraps the Distribute code. This way, full
|
|
||||||
backwards compatibility is kept for packages which rely on the
|
|
||||||
Setuptools modules.
|
|
||||||
|
|
||||||
At the same time, packages can meet their dependency on Setuptools
|
|
||||||
without actually installing it (which would disable Distribute).
|
|
||||||
|
|
||||||
- **How does Distribute interact with virtualenv?**
|
|
||||||
|
|
||||||
Everytime you create a virtualenv it will install setuptools by default.
|
|
||||||
You either need to re-install Distribute in it right after or pass the
|
|
||||||
``--distribute`` option when creating it.
|
|
||||||
|
|
||||||
Once installed, your virtualenv will use Distribute transparently.
|
|
||||||
|
|
||||||
Although, if you have Setuptools installed in your system-wide Python,
|
|
||||||
and if the virtualenv you are in was generated without the `--no-site-packages`
|
|
||||||
option, the Distribute installation will stop.
|
|
||||||
|
|
||||||
You need in this case to build a virtualenv with the `--no-site-packages`
|
|
||||||
option or to install `Distribute` globally.
|
|
||||||
|
|
||||||
- **How does Distribute interacts with zc.buildout?**
|
|
||||||
|
|
||||||
You can use Distribute in your zc.buildout, with the --distribute option,
|
|
||||||
starting at zc.buildout 1.4.2::
|
|
||||||
|
|
||||||
$ python bootstrap.py --distribute
|
|
||||||
|
|
||||||
For previous zc.buildout versions, *the only thing* you need to do
|
|
||||||
is use the bootstrap at `http://python-distribute.org/bootstrap.py`. Run
|
|
||||||
that bootstrap and ``bin/buildout`` (and all other buildout-generated
|
|
||||||
scripts) will transparently use distribute instead of setuptools. You do
|
|
||||||
not need a specific buildout release.
|
|
||||||
|
|
||||||
A shared eggs directory is no problem (since 0.6.6): the setuptools egg is
|
|
||||||
left in place unmodified. So other buildouts that do not yet use the new
|
|
||||||
bootstrap continue to work just fine. And there is no need to list
|
|
||||||
``distribute`` somewhere in your eggs: using the bootstrap is enough.
|
|
||||||
|
|
||||||
The source code for the bootstrap script is located at
|
|
||||||
`http://bitbucket.org/tarek/buildout-distribute`.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------------
|
|
||||||
Feedback and getting involved
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
- Mailing list: http://mail.python.org/mailman/listinfo/distutils-sig
|
|
||||||
- Issue tracker: http://bitbucket.org/tarek/distribute/issues/
|
|
||||||
- Code Repository: http://bitbucket.org/tarek/distribute
|
|
||||||
|
|
||||||
=======
|
|
||||||
CHANGES
|
|
||||||
=======
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.36
|
|
||||||
------
|
|
||||||
|
|
||||||
* 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
|
|
||||||
------
|
|
||||||
|
|
||||||
* Fix 2 errors with Jython 2.5.
|
|
||||||
* Fix 1 failure with Jython 2.5 and 2.7.
|
|
||||||
* Disable workaround for Jython scripts on Linux systems.
|
|
||||||
* `Issue #336`_: `setup.py` no longer masks failure exit code when tests fail.
|
|
||||||
* Fix issue in pkg_resources where try/except around a platform-dependent
|
|
||||||
import would trigger hook load failures on Mercurial. See pull request 32
|
|
||||||
for details.
|
|
||||||
* `Issue #341`_: Fix a ResourceWarning.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.32
|
|
||||||
------
|
|
||||||
|
|
||||||
* Fix test suite with Python 2.6.
|
|
||||||
* Fix some DeprecationWarnings and ResourceWarnings.
|
|
||||||
* `Issue #335`_: Backed out `setup_requires` superceding installed requirements
|
|
||||||
until regression can be addressed.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.31
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #303`_: Make sure the manifest only ever contains UTF-8 in Python 3.
|
|
||||||
* `Issue #329`_: Properly close files created by tests for compatibility with
|
|
||||||
Jython.
|
|
||||||
* Work around Jython bugs `#1980 <http://bugs.jython.org/issue1980>`_ and
|
|
||||||
`#1981 <http://bugs.jython.org/issue1981>`_.
|
|
||||||
* `Issue #334`_: Provide workaround for packages that reference `sys.__stdout__`
|
|
||||||
such as numpy does. This change should address
|
|
||||||
`virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long
|
|
||||||
as the system encoding is UTF-8 or the IO encoding is specified in the
|
|
||||||
environment, i.e.::
|
|
||||||
|
|
||||||
PYTHONIOENCODING=utf8 pip install numpy
|
|
||||||
|
|
||||||
* Fix for encoding issue when installing from Windows executable on Python 3.
|
|
||||||
* `Issue #323`_: Allow `setup_requires` requirements to supercede installed
|
|
||||||
requirements. Added some new keyword arguments to existing pkg_resources
|
|
||||||
methods. Also had to updated how __path__ is handled for namespace packages
|
|
||||||
to ensure that when a new egg distribution containing a namespace package is
|
|
||||||
placed on sys.path, the entries in __path__ are found in the same order they
|
|
||||||
would have been in had that egg been on the path when pkg_resources was
|
|
||||||
first imported.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.30
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #328`_: Clean up temporary directories in distribute_setup.py.
|
|
||||||
* Fix fatal bug in distribute_setup.py.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.29
|
|
||||||
------
|
|
||||||
|
|
||||||
* Pull Request #14: Honor file permissions in zip files.
|
|
||||||
* `Issue #327`_: Merged pull request #24 to fix a dependency problem with pip.
|
|
||||||
* Merged pull request #23 to fix https://github.com/pypa/virtualenv/issues/301.
|
|
||||||
* If Sphinx is installed, the `upload_docs` command now runs `build_sphinx`
|
|
||||||
to produce uploadable documentation.
|
|
||||||
* `Issue #326`_: `upload_docs` provided mangled auth credentials under Python 3.
|
|
||||||
* `Issue #320`_: Fix check for "createable" in distribute_setup.py.
|
|
||||||
* `Issue #305`_: Remove a warning that was triggered during normal operations.
|
|
||||||
* `Issue #311`_: Print metadata in UTF-8 independent of platform.
|
|
||||||
* `Issue #303`_: Read manifest file with UTF-8 encoding under Python 3.
|
|
||||||
* `Issue #301`_: Allow to run tests of namespace packages when using 2to3.
|
|
||||||
* `Issue #304`_: Prevent import loop in site.py under Python 3.3.
|
|
||||||
* `Issue #283`_: Reenable scanning of `*.pyc` / `*.pyo` files on Python 3.3.
|
|
||||||
* `Issue #299`_: The develop command didn't work on Python 3, when using 2to3,
|
|
||||||
as the egg link would go to the Python 2 source. Linking to the 2to3'd code
|
|
||||||
in build/lib makes it work, although you will have to rebuild the module
|
|
||||||
before testing it.
|
|
||||||
* `Issue #306`_: Even if 2to3 is used, we build in-place under Python 2.
|
|
||||||
* `Issue #307`_: Prints the full path when .svn/entries is broken.
|
|
||||||
* `Issue #313`_: Support for sdist subcommands (Python 2.7)
|
|
||||||
* `Issue #314`_: test_local_index() would fail an OS X.
|
|
||||||
* `Issue #310`_: Non-ascii characters in a namespace __init__.py causes errors.
|
|
||||||
* `Issue #218`_: Improved documentation on behavior of `package_data` and
|
|
||||||
`include_package_data`. Files indicated by `package_data` are now included
|
|
||||||
in the manifest.
|
|
||||||
* `distribute_setup.py` now allows a `--download-base` argument for retrieving
|
|
||||||
distribute from a specified location.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.28
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #294`_: setup.py can now be invoked from any directory.
|
|
||||||
* Scripts are now installed honoring the umask.
|
|
||||||
* Added support for .dist-info directories.
|
|
||||||
* `Issue #283`_: Fix and disable scanning of `*.pyc` / `*.pyo` files on
|
|
||||||
Python 3.3.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.27
|
|
||||||
------
|
|
||||||
|
|
||||||
* Support current snapshots of CPython 3.3.
|
|
||||||
* Distribute now recognizes README.rst as a standard, default readme file.
|
|
||||||
* Exclude 'encodings' modules when removing modules from sys.modules.
|
|
||||||
Workaround for #285.
|
|
||||||
* `Issue #231`_: Don't fiddle with system python when used with buildout
|
|
||||||
(bootstrap.py)
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.26
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #183`_: Symlinked files are now extracted from source distributions.
|
|
||||||
* `Issue #227`_: Easy_install fetch parameters are now passed during the
|
|
||||||
installation of a source distribution; now fulfillment of setup_requires
|
|
||||||
dependencies will honor the parameters passed to easy_install.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.25
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #258`_: Workaround a cache issue
|
|
||||||
* `Issue #260`_: distribute_setup.py now accepts the --user parameter for
|
|
||||||
Python 2.6 and later.
|
|
||||||
* `Issue #262`_: package_index.open_with_auth no longer throws LookupError
|
|
||||||
on Python 3.
|
|
||||||
* `Issue #269`_: AttributeError when an exception occurs reading Manifest.in
|
|
||||||
on late releases of Python.
|
|
||||||
* `Issue #272`_: Prevent TypeError when namespace package names are unicode
|
|
||||||
and single-install-externally-managed is used. Also fixes PIP `issue
|
|
||||||
449`_.
|
|
||||||
* `Issue #273`_: Legacy script launchers now install with Python2/3 support.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.24
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #249`_: Added options to exclude 2to3 fixers
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.23
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #244`_: Fixed a test
|
|
||||||
* `Issue #243`_: Fixed a test
|
|
||||||
* `Issue #239`_: Fixed a test
|
|
||||||
* `Issue #240`_: Fixed a test
|
|
||||||
* `Issue #241`_: Fixed a test
|
|
||||||
* `Issue #237`_: Fixed a test
|
|
||||||
* `Issue #238`_: easy_install now uses 64bit executable wrappers on 64bit Python
|
|
||||||
* `Issue #208`_: Fixed parsed_versions, it now honors post-releases as noted in the documentation
|
|
||||||
* `Issue #207`_: Windows cli and gui wrappers pass CTRL-C to child python process
|
|
||||||
* `Issue #227`_: easy_install now passes its arguments to setup.py bdist_egg
|
|
||||||
* `Issue #225`_: Fixed a NameError on Python 2.5, 2.4
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.21
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #225`_: FIxed a regression on py2.4
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.20
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #135`_: Include url in warning when processing URLs in package_index.
|
|
||||||
* `Issue #212`_: Fix issue where easy_instal fails on Python 3 on windows installer.
|
|
||||||
* `Issue #213`_: Fix typo in documentation.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.19
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue 206`_: AttributeError: 'HTTPMessage' object has no attribute 'getheaders'
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.18
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue 210`_: Fixed a regression introduced by `Issue 204`_ fix.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.17
|
|
||||||
------
|
|
||||||
|
|
||||||
* Support 'DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT' environment
|
|
||||||
variable to allow to disable installation of easy_install-${version} script.
|
|
||||||
* Support Python >=3.1.4 and >=3.2.1.
|
|
||||||
* `Issue 204`_: Don't try to import the parent of a namespace package in
|
|
||||||
declare_namespace
|
|
||||||
* `Issue 196`_: Tolerate responses with multiple Content-Length headers
|
|
||||||
* `Issue 205`_: Sandboxing doesn't preserve working_set. Leads to setup_requires
|
|
||||||
problems.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.16
|
|
||||||
------
|
|
||||||
|
|
||||||
* Builds sdist gztar even on Windows (avoiding `Issue 193`_).
|
|
||||||
* `Issue 192`_: Fixed metadata omitted on Windows when package_dir
|
|
||||||
specified with forward-slash.
|
|
||||||
* `Issue 195`_: Cython build support.
|
|
||||||
* `Issue 200`_: Issues with recognizing 64-bit packages on Windows.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.15
|
|
||||||
------
|
|
||||||
|
|
||||||
* Fixed typo in bdist_egg
|
|
||||||
* Several issues under Python 3 has been solved.
|
|
||||||
* `Issue 146`_: Fixed missing DLL files after easy_install of windows exe package.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.14
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue 170`_: Fixed unittest failure. Thanks to Toshio.
|
|
||||||
* `Issue 171`_: Fixed race condition in unittests cause deadlocks in test suite.
|
|
||||||
* `Issue 143`_: Fixed a lookup issue with easy_install.
|
|
||||||
Thanks to David and Zooko.
|
|
||||||
* `Issue 174`_: Fixed the edit mode when its used with setuptools itself
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.13
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue 160`_: 2.7 gives ValueError("Invalid IPv6 URL")
|
|
||||||
* `Issue 150`_: Fixed using ~/.local even in a --no-site-packages virtualenv
|
|
||||||
* `Issue 163`_: scan index links before external links, and don't use the md5 when
|
|
||||||
comparing two distributions
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.12
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue 149`_: Fixed various failures on 2.3/2.4
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.11
|
|
||||||
------
|
|
||||||
|
|
||||||
* Found another case of SandboxViolation - fixed
|
|
||||||
* `Issue 15`_ and 48: Introduced a socket timeout of 15 seconds on url openings
|
|
||||||
* Added indexsidebar.html into MANIFEST.in
|
|
||||||
* `Issue 108`_: Fixed TypeError with Python3.1
|
|
||||||
* `Issue 121`_: Fixed --help install command trying to actually install.
|
|
||||||
* `Issue 112`_: Added an os.makedirs so that Tarek's solution will work.
|
|
||||||
* `Issue 133`_: Added --no-find-links to easy_install
|
|
||||||
* Added easy_install --user
|
|
||||||
* `Issue 100`_: Fixed develop --user not taking '.' in PYTHONPATH into account
|
|
||||||
* `Issue 134`_: removed spurious UserWarnings. Patch by VanLindberg
|
|
||||||
* `Issue 138`_: cant_write_to_target error when setup_requires is used.
|
|
||||||
* `Issue 147`_: respect the sys.dont_write_bytecode flag
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.10
|
|
||||||
------
|
|
||||||
|
|
||||||
* Reverted change made for the DistributionNotFound exception because
|
|
||||||
zc.buildout uses the exception message to get the name of the
|
|
||||||
distribution.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.9
|
|
||||||
-----
|
|
||||||
|
|
||||||
* `Issue 90`_: unknown setuptools version can be added in the working set
|
|
||||||
* `Issue 87`_: setupt.py doesn't try to convert distribute_setup.py anymore
|
|
||||||
Initial Patch by arfrever.
|
|
||||||
* `Issue 89`_: added a side bar with a download link to the doc.
|
|
||||||
* `Issue 86`_: fixed missing sentence in pkg_resources doc.
|
|
||||||
* Added a nicer error message when a DistributionNotFound is raised.
|
|
||||||
* `Issue 80`_: test_develop now works with Python 3.1
|
|
||||||
* `Issue 93`_: upload_docs now works if there is an empty sub-directory.
|
|
||||||
* `Issue 70`_: exec bit on non-exec files
|
|
||||||
* `Issue 99`_: now the standalone easy_install command doesn't uses a
|
|
||||||
"setup.cfg" if any exists in the working directory. It will use it
|
|
||||||
only if triggered by ``install_requires`` from a setup.py call
|
|
||||||
(install, develop, etc).
|
|
||||||
* `Issue 101`_: Allowing ``os.devnull`` in Sandbox
|
|
||||||
* `Issue 92`_: Fixed the "no eggs" found error with MacPort
|
|
||||||
(platform.mac_ver() fails)
|
|
||||||
* `Issue 103`_: test_get_script_header_jython_workaround not run
|
|
||||||
anymore under py3 with C or POSIX local. Contributed by Arfrever.
|
|
||||||
* `Issue 104`_: remvoved the assertion when the installation fails,
|
|
||||||
with a nicer message for the end user.
|
|
||||||
* `Issue 100`_: making sure there's no SandboxViolation when
|
|
||||||
the setup script patches setuptools.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.8
|
|
||||||
-----
|
|
||||||
|
|
||||||
* Added "check_packages" in dist. (added in Setuptools 0.6c11)
|
|
||||||
* Fixed the DONT_PATCH_SETUPTOOLS state.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.7
|
|
||||||
-----
|
|
||||||
|
|
||||||
* `Issue 58`_: Added --user support to the develop command
|
|
||||||
* `Issue 11`_: Generated scripts now wrap their call to the script entry point
|
|
||||||
in the standard "if name == 'main'"
|
|
||||||
* Added the 'DONT_PATCH_SETUPTOOLS' environment variable, so virtualenv
|
|
||||||
can drive an installation that doesn't patch a global setuptools.
|
|
||||||
* Reviewed unladen-swallow specific change from
|
|
||||||
http://code.google.com/p/unladen-swallow/source/detail?spec=svn875&r=719
|
|
||||||
and determined that it no longer applies. Distribute should work fine with
|
|
||||||
Unladen Swallow 2009Q3.
|
|
||||||
* `Issue 21`_: Allow PackageIndex.open_url to gracefully handle all cases of a
|
|
||||||
httplib.HTTPException instead of just InvalidURL and BadStatusLine.
|
|
||||||
* Removed virtual-python.py from this distribution and updated documentation
|
|
||||||
to point to the actively maintained virtualenv instead.
|
|
||||||
* `Issue 64`_: use_setuptools no longer rebuilds the distribute egg every
|
|
||||||
time it is run
|
|
||||||
* use_setuptools now properly respects the requested version
|
|
||||||
* use_setuptools will no longer try to import a distribute egg for the
|
|
||||||
wrong Python version
|
|
||||||
* `Issue 74`_: no_fake should be True by default.
|
|
||||||
* `Issue 72`_: avoid a bootstrapping issue with easy_install -U
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.6
|
|
||||||
-----
|
|
||||||
|
|
||||||
* Unified the bootstrap file so it works on both py2.x and py3k without 2to3
|
|
||||||
(patch by Holger Krekel)
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.5
|
|
||||||
-----
|
|
||||||
|
|
||||||
* `Issue 65`_: cli.exe and gui.exe are now generated at build time,
|
|
||||||
depending on the platform in use.
|
|
||||||
|
|
||||||
* `Issue 67`_: Fixed doc typo (PEP 381/382)
|
|
||||||
|
|
||||||
* Distribute no longer shadows setuptools if we require a 0.7-series
|
|
||||||
setuptools. And an error is raised when installing a 0.7 setuptools with
|
|
||||||
distribute.
|
|
||||||
|
|
||||||
* When run from within buildout, no attempt is made to modify an existing
|
|
||||||
setuptools egg, whether in a shared egg directory or a system setuptools.
|
|
||||||
|
|
||||||
* Fixed a hole in sandboxing allowing builtin file to write outside of
|
|
||||||
the sandbox.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.4
|
|
||||||
-----
|
|
||||||
|
|
||||||
* Added the generation of `distribute_setup_3k.py` during the release.
|
|
||||||
This closes `issue #52`_.
|
|
||||||
|
|
||||||
* Added an upload_docs command to easily upload project documentation to
|
|
||||||
PyPI's http://packages.python.org. This close `issue #56`_.
|
|
||||||
|
|
||||||
* Fixed a bootstrap bug on the use_setuptools() API.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.3
|
|
||||||
-----
|
|
||||||
|
|
||||||
setuptools
|
|
||||||
==========
|
|
||||||
|
|
||||||
* Fixed a bunch of calls to file() that caused crashes on Python 3.
|
|
||||||
|
|
||||||
bootstrapping
|
|
||||||
=============
|
|
||||||
|
|
||||||
* Fixed a bug in sorting that caused bootstrap to fail on Python 3.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.2
|
|
||||||
-----
|
|
||||||
|
|
||||||
setuptools
|
|
||||||
==========
|
|
||||||
|
|
||||||
* Added Python 3 support; see docs/python3.txt.
|
|
||||||
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.
|
|
||||||
|
|
||||||
* Fixed script launcher for 64-bit Windows.
|
|
||||||
This closes http://bugs.python.org/setuptools/issue2.
|
|
||||||
|
|
||||||
* KeyError when compiling extensions.
|
|
||||||
This closes http://bugs.python.org/setuptools/issue41.
|
|
||||||
|
|
||||||
bootstrapping
|
|
||||||
=============
|
|
||||||
|
|
||||||
* Fixed bootstrap not working on Windows. This closes `issue #49`_.
|
|
||||||
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.1
|
|
||||||
-----
|
|
||||||
|
|
||||||
setuptools
|
|
||||||
==========
|
|
||||||
|
|
||||||
* package_index.urlopen now catches BadStatusLine and malformed url errors.
|
|
||||||
This closes `issue #16`_ and `issue #18`_.
|
|
||||||
|
|
||||||
* zip_ok is now False by default. This closes
|
|
||||||
http://bugs.python.org/setuptools/issue33.
|
|
||||||
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
* Removed buildout/bootstrap.py. A new repository will create a specific
|
|
||||||
bootstrap.py script.
|
|
||||||
|
|
||||||
|
|
||||||
bootstrapping
|
|
||||||
=============
|
|
||||||
|
|
||||||
* The boostrap process leave setuptools alone if detected in the system
|
|
||||||
and --root or --prefix is provided, but is not in the same location.
|
|
||||||
This closes `issue #10`_.
|
|
||||||
|
|
||||||
---
|
|
||||||
0.6
|
|
||||||
---
|
|
||||||
|
|
||||||
setuptools
|
|
||||||
==========
|
|
||||||
|
|
||||||
* Packages required at build time where not fully present at install time.
|
|
||||||
This closes `issue #12`_.
|
|
||||||
|
|
||||||
* Protected against failures in tarfile extraction. This closes `issue #10`_.
|
|
||||||
|
|
||||||
* Made Jython api_tests.txt doctest compatible. This closes `issue #7`_.
|
|
||||||
|
|
||||||
* sandbox.py replaced builtin type file with builtin function open. This
|
|
||||||
closes `issue #6`_.
|
|
||||||
|
|
||||||
* Immediately close all file handles. This closes `issue #3`_.
|
|
||||||
|
|
||||||
* Added compatibility with Subversion 1.6. This references `issue #1`_.
|
|
||||||
|
|
||||||
pkg_resources
|
|
||||||
=============
|
|
||||||
|
|
||||||
* Avoid a call to /usr/bin/sw_vers on OSX and use the official platform API
|
|
||||||
instead. Based on a patch from ronaldoussoren. This closes `issue #5`_.
|
|
||||||
|
|
||||||
* Fixed a SandboxViolation for mkdir that could occur in certain cases.
|
|
||||||
This closes `issue #13`_.
|
|
||||||
|
|
||||||
* Allow to find_on_path on systems with tight permissions to fail gracefully.
|
|
||||||
This closes `issue #9`_.
|
|
||||||
|
|
||||||
* Corrected inconsistency between documentation and code of add_entry.
|
|
||||||
This closes `issue #8`_.
|
|
||||||
|
|
||||||
* Immediately close all file handles. This closes `issue #3`_.
|
|
||||||
|
|
||||||
easy_install
|
|
||||||
============
|
|
||||||
|
|
||||||
* Immediately close all file handles. This closes `issue #3`_.
|
|
||||||
|
|
||||||
|
|
||||||
.. _`Issue #135`: http://bitbucket.org/tarek/distribute/issue/135
|
|
||||||
.. _`Issue #183`: http://bitbucket.org/tarek/distribute/issue/183
|
|
||||||
.. _`Issue #207`: http://bitbucket.org/tarek/distribute/issue/207
|
|
||||||
.. _`Issue #208`: http://bitbucket.org/tarek/distribute/issue/208
|
|
||||||
.. _`Issue #212`: http://bitbucket.org/tarek/distribute/issue/212
|
|
||||||
.. _`Issue #213`: http://bitbucket.org/tarek/distribute/issue/213
|
|
||||||
.. _`Issue #218`: http://bitbucket.org/tarek/distribute/issue/218
|
|
||||||
.. _`Issue #225`: http://bitbucket.org/tarek/distribute/issue/225
|
|
||||||
.. _`Issue #227`: http://bitbucket.org/tarek/distribute/issue/227
|
|
||||||
.. _`Issue #231`: http://bitbucket.org/tarek/distribute/issue/231
|
|
||||||
.. _`Issue #237`: http://bitbucket.org/tarek/distribute/issue/237
|
|
||||||
.. _`Issue #238`: http://bitbucket.org/tarek/distribute/issue/238
|
|
||||||
.. _`Issue #239`: http://bitbucket.org/tarek/distribute/issue/239
|
|
||||||
.. _`Issue #240`: http://bitbucket.org/tarek/distribute/issue/240
|
|
||||||
.. _`Issue #241`: http://bitbucket.org/tarek/distribute/issue/241
|
|
||||||
.. _`Issue #243`: http://bitbucket.org/tarek/distribute/issue/243
|
|
||||||
.. _`Issue #244`: http://bitbucket.org/tarek/distribute/issue/244
|
|
||||||
.. _`Issue #249`: http://bitbucket.org/tarek/distribute/issue/249
|
|
||||||
.. _`Issue #258`: http://bitbucket.org/tarek/distribute/issue/258
|
|
||||||
.. _`Issue #260`: http://bitbucket.org/tarek/distribute/issue/260
|
|
||||||
.. _`Issue #262`: http://bitbucket.org/tarek/distribute/issue/262
|
|
||||||
.. _`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
|
|
||||||
.. _`Issue #301`: http://bitbucket.org/tarek/distribute/issue/301
|
|
||||||
.. _`Issue #303`: http://bitbucket.org/tarek/distribute/issue/303
|
|
||||||
.. _`Issue #304`: http://bitbucket.org/tarek/distribute/issue/304
|
|
||||||
.. _`Issue #305`: http://bitbucket.org/tarek/distribute/issue/305
|
|
||||||
.. _`Issue #306`: http://bitbucket.org/tarek/distribute/issue/306
|
|
||||||
.. _`Issue #307`: http://bitbucket.org/tarek/distribute/issue/307
|
|
||||||
.. _`Issue #310`: http://bitbucket.org/tarek/distribute/issue/310
|
|
||||||
.. _`Issue #311`: http://bitbucket.org/tarek/distribute/issue/311
|
|
||||||
.. _`Issue #313`: http://bitbucket.org/tarek/distribute/issue/313
|
|
||||||
.. _`Issue #314`: http://bitbucket.org/tarek/distribute/issue/314
|
|
||||||
.. _`Issue #320`: http://bitbucket.org/tarek/distribute/issue/320
|
|
||||||
.. _`Issue #323`: http://bitbucket.org/tarek/distribute/issue/323
|
|
||||||
.. _`Issue #326`: http://bitbucket.org/tarek/distribute/issue/326
|
|
||||||
.. _`Issue #327`: http://bitbucket.org/tarek/distribute/issue/327
|
|
||||||
.. _`Issue #328`: http://bitbucket.org/tarek/distribute/issue/328
|
|
||||||
.. _`Issue #329`: http://bitbucket.org/tarek/distribute/issue/329
|
|
||||||
.. _`Issue #334`: http://bitbucket.org/tarek/distribute/issue/334
|
|
||||||
.. _`Issue #335`: http://bitbucket.org/tarek/distribute/issue/335
|
|
||||||
.. _`Issue #336`: http://bitbucket.org/tarek/distribute/issue/336
|
|
||||||
.. _`Issue #341`: http://bitbucket.org/tarek/distribute/issue/341
|
|
||||||
.. _`Issue 100`: http://bitbucket.org/tarek/distribute/issue/100
|
|
||||||
.. _`Issue 101`: http://bitbucket.org/tarek/distribute/issue/101
|
|
||||||
.. _`Issue 103`: http://bitbucket.org/tarek/distribute/issue/103
|
|
||||||
.. _`Issue 104`: http://bitbucket.org/tarek/distribute/issue/104
|
|
||||||
.. _`Issue 108`: http://bitbucket.org/tarek/distribute/issue/108
|
|
||||||
.. _`Issue 11`: http://bitbucket.org/tarek/distribute/issue/11
|
|
||||||
.. _`Issue 112`: http://bitbucket.org/tarek/distribute/issue/112
|
|
||||||
.. _`Issue 121`: http://bitbucket.org/tarek/distribute/issue/121
|
|
||||||
.. _`Issue 133`: http://bitbucket.org/tarek/distribute/issue/133
|
|
||||||
.. _`Issue 134`: http://bitbucket.org/tarek/distribute/issue/134
|
|
||||||
.. _`Issue 138`: http://bitbucket.org/tarek/distribute/issue/138
|
|
||||||
.. _`Issue 143`: http://bitbucket.org/tarek/distribute/issue/143
|
|
||||||
.. _`Issue 146`: http://bitbucket.org/tarek/distribute/issue/146
|
|
||||||
.. _`Issue 147`: http://bitbucket.org/tarek/distribute/issue/147
|
|
||||||
.. _`Issue 149`: http://bitbucket.org/tarek/distribute/issue/149
|
|
||||||
.. _`Issue 15`: http://bitbucket.org/tarek/distribute/issue/15
|
|
||||||
.. _`Issue 150`: http://bitbucket.org/tarek/distribute/issue/150
|
|
||||||
.. _`Issue 160`: http://bitbucket.org/tarek/distribute/issue/160
|
|
||||||
.. _`Issue 163`: http://bitbucket.org/tarek/distribute/issue/163
|
|
||||||
.. _`Issue 170`: http://bitbucket.org/tarek/distribute/issue/170
|
|
||||||
.. _`Issue 171`: http://bitbucket.org/tarek/distribute/issue/171
|
|
||||||
.. _`Issue 174`: http://bitbucket.org/tarek/distribute/issue/174
|
|
||||||
.. _`Issue 192`: http://bitbucket.org/tarek/distribute/issue/192
|
|
||||||
.. _`Issue 193`: http://bitbucket.org/tarek/distribute/issue/193
|
|
||||||
.. _`Issue 195`: http://bitbucket.org/tarek/distribute/issue/195
|
|
||||||
.. _`Issue 196`: http://bitbucket.org/tarek/distribute/issue/196
|
|
||||||
.. _`Issue 200`: http://bitbucket.org/tarek/distribute/issue/200
|
|
||||||
.. _`Issue 204`: http://bitbucket.org/tarek/distribute/issue/204
|
|
||||||
.. _`Issue 205`: http://bitbucket.org/tarek/distribute/issue/205
|
|
||||||
.. _`Issue 206`: http://bitbucket.org/tarek/distribute/issue/206
|
|
||||||
.. _`Issue 21`: http://bitbucket.org/tarek/distribute/issue/21
|
|
||||||
.. _`Issue 210`: http://bitbucket.org/tarek/distribute/issue/210
|
|
||||||
.. _`Issue 58`: http://bitbucket.org/tarek/distribute/issue/58
|
|
||||||
.. _`Issue 64`: http://bitbucket.org/tarek/distribute/issue/64
|
|
||||||
.. _`Issue 65`: http://bitbucket.org/tarek/distribute/issue/65
|
|
||||||
.. _`Issue 67`: http://bitbucket.org/tarek/distribute/issue/67
|
|
||||||
.. _`Issue 70`: http://bitbucket.org/tarek/distribute/issue/70
|
|
||||||
.. _`Issue 72`: http://bitbucket.org/tarek/distribute/issue/72
|
|
||||||
.. _`Issue 74`: http://bitbucket.org/tarek/distribute/issue/74
|
|
||||||
.. _`Issue 80`: http://bitbucket.org/tarek/distribute/issue/80
|
|
||||||
.. _`Issue 86`: http://bitbucket.org/tarek/distribute/issue/86
|
|
||||||
.. _`Issue 87`: http://bitbucket.org/tarek/distribute/issue/87
|
|
||||||
.. _`Issue 89`: http://bitbucket.org/tarek/distribute/issue/89
|
|
||||||
.. _`Issue 90`: http://bitbucket.org/tarek/distribute/issue/90
|
|
||||||
.. _`Issue 92`: http://bitbucket.org/tarek/distribute/issue/92
|
|
||||||
.. _`Issue 93`: http://bitbucket.org/tarek/distribute/issue/93
|
|
||||||
.. _`Issue 99`: http://bitbucket.org/tarek/distribute/issue/99
|
|
||||||
.. _`issue
|
|
||||||
449`: http://bitbucket.org/tarek/distribute/issue/449
|
|
||||||
.. _`issue #1`: http://bitbucket.org/tarek/distribute/issue/1
|
|
||||||
.. _`issue #10`: http://bitbucket.org/tarek/distribute/issue/10
|
|
||||||
.. _`issue #12`: http://bitbucket.org/tarek/distribute/issue/12
|
|
||||||
.. _`issue #13`: http://bitbucket.org/tarek/distribute/issue/13
|
|
||||||
.. _`issue #16`: http://bitbucket.org/tarek/distribute/issue/16
|
|
||||||
.. _`issue #18`: http://bitbucket.org/tarek/distribute/issue/18
|
|
||||||
.. _`issue #3`: http://bitbucket.org/tarek/distribute/issue/3
|
|
||||||
.. _`issue #31`: http://bitbucket.org/tarek/distribute/issue/31
|
|
||||||
.. _`issue #40`: http://bitbucket.org/tarek/distribute/issue/40
|
|
||||||
.. _`issue #49`: http://bitbucket.org/tarek/distribute/issue/49
|
|
||||||
.. _`issue #5`: http://bitbucket.org/tarek/distribute/issue/5
|
|
||||||
.. _`issue #50`: http://bitbucket.org/tarek/distribute/issue/50
|
|
||||||
.. _`issue #52`: http://bitbucket.org/tarek/distribute/issue/52
|
|
||||||
.. _`issue #56`: http://bitbucket.org/tarek/distribute/issue/56
|
|
||||||
.. _`issue #6`: http://bitbucket.org/tarek/distribute/issue/6
|
|
||||||
.. _`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
|
|
||||||
.. _`issue 64`: http://bitbucket.org/tarek/distribute/issue/64
|
|
||||||
|
|
||||||
|
|
||||||
Keywords: CPAN PyPI distutils eggs package management
|
|
||||||
Platform: UNKNOWN
|
|
||||||
Classifier: Development Status :: 5 - Production/Stable
|
|
||||||
Classifier: Intended Audience :: Developers
|
|
||||||
Classifier: License :: OSI Approved :: Python Software Foundation License
|
|
||||||
Classifier: License :: OSI Approved :: Zope Public License
|
|
||||||
Classifier: Operating System :: OS Independent
|
|
||||||
Classifier: Programming Language :: Python :: 2.4
|
|
||||||
Classifier: Programming Language :: Python :: 2.5
|
|
||||||
Classifier: Programming Language :: Python :: 2.6
|
|
||||||
Classifier: Programming Language :: Python :: 2.7
|
|
||||||
Classifier: Programming Language :: Python :: 3
|
|
||||||
Classifier: Programming Language :: Python :: 3.1
|
|
||||||
Classifier: Programming Language :: Python :: 3.2
|
|
||||||
Classifier: Programming Language :: Python :: 3.3
|
|
||||||
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
||||||
Classifier: Topic :: System :: Archiving :: Packaging
|
|
||||||
Classifier: Topic :: System :: Systems Administration
|
|
||||||
Classifier: Topic :: Utilities
|
|
||||||
Vendored
-228
@@ -1,228 +0,0 @@
|
|||||||
===============================
|
|
||||||
Installing and Using Distribute
|
|
||||||
===============================
|
|
||||||
|
|
||||||
.. contents:: **Table of Contents**
|
|
||||||
|
|
||||||
-----------
|
|
||||||
Disclaimers
|
|
||||||
-----------
|
|
||||||
|
|
||||||
About the fork
|
|
||||||
==============
|
|
||||||
|
|
||||||
`Distribute` is a fork of the `Setuptools` project.
|
|
||||||
|
|
||||||
Distribute is intended to replace Setuptools as the standard method
|
|
||||||
for working with Python module distributions.
|
|
||||||
|
|
||||||
The fork has two goals:
|
|
||||||
|
|
||||||
- Providing a backward compatible version to replace Setuptools
|
|
||||||
and make all distributions that depend on Setuptools work as
|
|
||||||
before, but with less bugs and behaviorial issues.
|
|
||||||
|
|
||||||
This work is done in the 0.6.x series.
|
|
||||||
|
|
||||||
Starting with version 0.6.2, Distribute supports Python 3.
|
|
||||||
Installing and using distribute for Python 3 code works exactly
|
|
||||||
the same as for Python 2 code, but Distribute also helps you to support
|
|
||||||
Python 2 and Python 3 from the same source code by letting you run 2to3
|
|
||||||
on the code as a part of the build process, by setting the keyword parameter
|
|
||||||
``use_2to3`` to True. See http://packages.python.org/distribute for more
|
|
||||||
information.
|
|
||||||
|
|
||||||
- Refactoring the code, and releasing it in several distributions.
|
|
||||||
This work is being done in the 0.7.x series but not yet released.
|
|
||||||
|
|
||||||
The roadmap is still evolving, and the page that is up-to-date is
|
|
||||||
located at : `http://packages.python.org/distribute/roadmap`.
|
|
||||||
|
|
||||||
If you install `Distribute` and want to switch back for any reason to
|
|
||||||
`Setuptools`, get to the `Uninstallation instructions`_ section.
|
|
||||||
|
|
||||||
More documentation
|
|
||||||
==================
|
|
||||||
|
|
||||||
You can get more information in the Sphinx-based documentation, located
|
|
||||||
at http://packages.python.org/distribute. This documentation includes the old
|
|
||||||
Setuptools documentation that is slowly replaced, and brand new content.
|
|
||||||
|
|
||||||
About the installation process
|
|
||||||
==============================
|
|
||||||
|
|
||||||
The `Distribute` installer modifies your installation by de-activating an
|
|
||||||
existing installation of `Setuptools` in a bootstrap process. This process
|
|
||||||
has been tested in various installation schemes and contexts but in case of a
|
|
||||||
bug during this process your Python installation might be left in a broken
|
|
||||||
state. Since all modified files and directories are copied before the
|
|
||||||
installation starts, you will be able to get back to a normal state by reading
|
|
||||||
the instructions in the `Uninstallation instructions`_ section.
|
|
||||||
|
|
||||||
In any case, it is recommended to save you `site-packages` directory before
|
|
||||||
you start the installation of `Distribute`.
|
|
||||||
|
|
||||||
-------------------------
|
|
||||||
Installation Instructions
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
Distribute is only released as a source distribution.
|
|
||||||
|
|
||||||
It can be installed using pip, and can be done so with the source tarball,
|
|
||||||
or by using the ``distribute_setup.py`` script provided online.
|
|
||||||
|
|
||||||
``distribute_setup.py`` is the simplest and preferred way on all systems.
|
|
||||||
|
|
||||||
distribute_setup.py
|
|
||||||
===================
|
|
||||||
|
|
||||||
Download
|
|
||||||
`distribute_setup.py <http://python-distribute.org/distribute_setup.py>`_
|
|
||||||
and execute it, using the Python interpreter of your choice.
|
|
||||||
|
|
||||||
If your shell has the ``curl`` program you can do::
|
|
||||||
|
|
||||||
$ curl -O http://python-distribute.org/distribute_setup.py
|
|
||||||
$ python distribute_setup.py
|
|
||||||
|
|
||||||
Notice this file is also provided in the source release.
|
|
||||||
|
|
||||||
pip
|
|
||||||
===
|
|
||||||
|
|
||||||
Run easy_install or pip::
|
|
||||||
|
|
||||||
$ pip install distribute
|
|
||||||
|
|
||||||
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.36.tar.gz
|
|
||||||
$ tar -xzvf distribute-0.6.36.tar.gz
|
|
||||||
$ cd distribute-0.6.36
|
|
||||||
$ python setup.py install
|
|
||||||
|
|
||||||
---------------------------
|
|
||||||
Uninstallation Instructions
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
Like other distutils-based distributions, Distribute doesn't provide an
|
|
||||||
uninstaller yet. It's all done manually! We are all waiting for PEP 376
|
|
||||||
support in Python.
|
|
||||||
|
|
||||||
Distribute is installed in three steps:
|
|
||||||
|
|
||||||
1. it gets out of the way an existing installation of Setuptools
|
|
||||||
2. it installs a `fake` setuptools installation
|
|
||||||
3. it installs distribute
|
|
||||||
|
|
||||||
Distribute can be removed like this:
|
|
||||||
|
|
||||||
- remove the ``distribute*.egg`` file located in your site-packages directory
|
|
||||||
- remove the ``setuptools.pth`` file located in you site-packages directory
|
|
||||||
- remove the easy_install script located in you ``sys.prefix/bin`` directory
|
|
||||||
- remove the ``setuptools*.egg`` directory located in your site-packages directory,
|
|
||||||
if any.
|
|
||||||
|
|
||||||
If you want to get back to setuptools:
|
|
||||||
|
|
||||||
- reinstall setuptools using its instruction.
|
|
||||||
|
|
||||||
Lastly:
|
|
||||||
|
|
||||||
- remove the *.OLD.* directory located in your site-packages directory if any,
|
|
||||||
**once you have checked everything was working correctly again**.
|
|
||||||
|
|
||||||
-------------------------
|
|
||||||
Quick help for developers
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
To create an egg which is compatible with Distribute, use the same
|
|
||||||
practice as with Setuptools, e.g.::
|
|
||||||
|
|
||||||
from setuptools import setup
|
|
||||||
|
|
||||||
setup(...
|
|
||||||
)
|
|
||||||
|
|
||||||
To use `pkg_resources` to access data files in the egg, you should
|
|
||||||
require the Setuptools distribution explicitly::
|
|
||||||
|
|
||||||
from setuptools import setup
|
|
||||||
|
|
||||||
setup(...
|
|
||||||
install_requires=['setuptools']
|
|
||||||
)
|
|
||||||
|
|
||||||
Only if you need Distribute-specific functionality should you depend
|
|
||||||
on it explicitly. In this case, replace the Setuptools dependency::
|
|
||||||
|
|
||||||
from setuptools import setup
|
|
||||||
|
|
||||||
setup(...
|
|
||||||
install_requires=['distribute']
|
|
||||||
)
|
|
||||||
|
|
||||||
-----------
|
|
||||||
Install FAQ
|
|
||||||
-----------
|
|
||||||
|
|
||||||
- **Why is Distribute wrapping my Setuptools installation?**
|
|
||||||
|
|
||||||
Since Distribute is a fork, and since it provides the same package
|
|
||||||
and modules, it renames the existing Setuptools egg and inserts a
|
|
||||||
new one which merely wraps the Distribute code. This way, full
|
|
||||||
backwards compatibility is kept for packages which rely on the
|
|
||||||
Setuptools modules.
|
|
||||||
|
|
||||||
At the same time, packages can meet their dependency on Setuptools
|
|
||||||
without actually installing it (which would disable Distribute).
|
|
||||||
|
|
||||||
- **How does Distribute interact with virtualenv?**
|
|
||||||
|
|
||||||
Everytime you create a virtualenv it will install setuptools by default.
|
|
||||||
You either need to re-install Distribute in it right after or pass the
|
|
||||||
``--distribute`` option when creating it.
|
|
||||||
|
|
||||||
Once installed, your virtualenv will use Distribute transparently.
|
|
||||||
|
|
||||||
Although, if you have Setuptools installed in your system-wide Python,
|
|
||||||
and if the virtualenv you are in was generated without the `--no-site-packages`
|
|
||||||
option, the Distribute installation will stop.
|
|
||||||
|
|
||||||
You need in this case to build a virtualenv with the `--no-site-packages`
|
|
||||||
option or to install `Distribute` globally.
|
|
||||||
|
|
||||||
- **How does Distribute interacts with zc.buildout?**
|
|
||||||
|
|
||||||
You can use Distribute in your zc.buildout, with the --distribute option,
|
|
||||||
starting at zc.buildout 1.4.2::
|
|
||||||
|
|
||||||
$ python bootstrap.py --distribute
|
|
||||||
|
|
||||||
For previous zc.buildout versions, *the only thing* you need to do
|
|
||||||
is use the bootstrap at `http://python-distribute.org/bootstrap.py`. Run
|
|
||||||
that bootstrap and ``bin/buildout`` (and all other buildout-generated
|
|
||||||
scripts) will transparently use distribute instead of setuptools. You do
|
|
||||||
not need a specific buildout release.
|
|
||||||
|
|
||||||
A shared eggs directory is no problem (since 0.6.6): the setuptools egg is
|
|
||||||
left in place unmodified. So other buildouts that do not yet use the new
|
|
||||||
bootstrap continue to work just fine. And there is no need to list
|
|
||||||
``distribute`` somewhere in your eggs: using the bootstrap is enough.
|
|
||||||
|
|
||||||
The source code for the bootstrap script is located at
|
|
||||||
`http://bitbucket.org/tarek/buildout-distribute`.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------------
|
|
||||||
Feedback and getting involved
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
- Mailing list: http://mail.python.org/mailman/listinfo/distutils-sig
|
|
||||||
- Issue tracker: http://bitbucket.org/tarek/distribute/issues/
|
|
||||||
- Code Repository: http://bitbucket.org/tarek/distribute
|
|
||||||
|
|
||||||
-16
@@ -1,16 +0,0 @@
|
|||||||
try:
|
|
||||||
import ast
|
|
||||||
from _markerlib.markers import default_environment, compile, interpret
|
|
||||||
except ImportError:
|
|
||||||
if 'ast' in globals():
|
|
||||||
raise
|
|
||||||
def default_environment():
|
|
||||||
return {}
|
|
||||||
def compile(marker):
|
|
||||||
def marker_fn(environment=None, override=None):
|
|
||||||
# 'empty markers are True' heuristic won't install extra deps.
|
|
||||||
return not marker.strip()
|
|
||||||
marker_fn.__doc__ = marker
|
|
||||||
return marker_fn
|
|
||||||
def interpret(marker, environment=None, override=None):
|
|
||||||
return compile(marker)()
|
|
||||||
-115
@@ -1,115 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
"""Interpret PEP 345 environment markers.
|
|
||||||
|
|
||||||
EXPR [in|==|!=|not in] EXPR [or|and] ...
|
|
||||||
|
|
||||||
where EXPR belongs to any of those:
|
|
||||||
|
|
||||||
python_version = '%s.%s' % (sys.version_info[0], sys.version_info[1])
|
|
||||||
python_full_version = sys.version.split()[0]
|
|
||||||
os.name = os.name
|
|
||||||
sys.platform = sys.platform
|
|
||||||
platform.version = platform.version()
|
|
||||||
platform.machine = platform.machine()
|
|
||||||
platform.python_implementation = platform.python_implementation()
|
|
||||||
a free string, like '2.6', or 'win32'
|
|
||||||
"""
|
|
||||||
|
|
||||||
__all__ = ['default_environment', 'compile', 'interpret']
|
|
||||||
|
|
||||||
import ast
|
|
||||||
import os
|
|
||||||
import platform
|
|
||||||
import sys
|
|
||||||
import weakref
|
|
||||||
|
|
||||||
_builtin_compile = compile
|
|
||||||
|
|
||||||
try:
|
|
||||||
from platform import python_implementation
|
|
||||||
except ImportError:
|
|
||||||
if os.name == "java":
|
|
||||||
# Jython 2.5 has ast module, but not platform.python_implementation() function.
|
|
||||||
def python_implementation():
|
|
||||||
return "Jython"
|
|
||||||
else:
|
|
||||||
raise
|
|
||||||
|
|
||||||
|
|
||||||
# restricted set of variables
|
|
||||||
_VARS = {'sys.platform': sys.platform,
|
|
||||||
'python_version': '%s.%s' % sys.version_info[:2],
|
|
||||||
# FIXME parsing sys.platform is not reliable, but there is no other
|
|
||||||
# way to get e.g. 2.7.2+, and the PEP is defined with sys.version
|
|
||||||
'python_full_version': sys.version.split(' ', 1)[0],
|
|
||||||
'os.name': os.name,
|
|
||||||
'platform.version': platform.version(),
|
|
||||||
'platform.machine': platform.machine(),
|
|
||||||
'platform.python_implementation': python_implementation(),
|
|
||||||
'extra': None # wheel extension
|
|
||||||
}
|
|
||||||
|
|
||||||
def default_environment():
|
|
||||||
"""Return copy of default PEP 385 globals dictionary."""
|
|
||||||
return dict(_VARS)
|
|
||||||
|
|
||||||
class ASTWhitelist(ast.NodeTransformer):
|
|
||||||
def __init__(self, statement):
|
|
||||||
self.statement = statement # for error messages
|
|
||||||
|
|
||||||
ALLOWED = (ast.Compare, ast.BoolOp, ast.Attribute, ast.Name, ast.Load, ast.Str)
|
|
||||||
# Bool operations
|
|
||||||
ALLOWED += (ast.And, ast.Or)
|
|
||||||
# Comparison operations
|
|
||||||
ALLOWED += (ast.Eq, ast.Gt, ast.GtE, ast.In, ast.Is, ast.IsNot, ast.Lt, ast.LtE, ast.NotEq, ast.NotIn)
|
|
||||||
|
|
||||||
def visit(self, node):
|
|
||||||
"""Ensure statement only contains allowed nodes."""
|
|
||||||
if not isinstance(node, self.ALLOWED):
|
|
||||||
raise SyntaxError('Not allowed in environment markers.\n%s\n%s' %
|
|
||||||
(self.statement,
|
|
||||||
(' ' * node.col_offset) + '^'))
|
|
||||||
return ast.NodeTransformer.visit(self, node)
|
|
||||||
|
|
||||||
def visit_Attribute(self, node):
|
|
||||||
"""Flatten one level of attribute access."""
|
|
||||||
new_node = ast.Name("%s.%s" % (node.value.id, node.attr), node.ctx)
|
|
||||||
return ast.copy_location(new_node, node)
|
|
||||||
|
|
||||||
def parse_marker(marker):
|
|
||||||
tree = ast.parse(marker, mode='eval')
|
|
||||||
new_tree = ASTWhitelist(marker).generic_visit(tree)
|
|
||||||
return new_tree
|
|
||||||
|
|
||||||
def compile_marker(parsed_marker):
|
|
||||||
return _builtin_compile(parsed_marker, '<environment marker>', 'eval',
|
|
||||||
dont_inherit=True)
|
|
||||||
|
|
||||||
_cache = weakref.WeakValueDictionary()
|
|
||||||
|
|
||||||
def compile(marker):
|
|
||||||
"""Return compiled marker as a function accepting an environment dict."""
|
|
||||||
try:
|
|
||||||
return _cache[marker]
|
|
||||||
except KeyError:
|
|
||||||
pass
|
|
||||||
if not marker.strip():
|
|
||||||
def marker_fn(environment=None, override=None):
|
|
||||||
""""""
|
|
||||||
return True
|
|
||||||
else:
|
|
||||||
compiled_marker = compile_marker(parse_marker(marker))
|
|
||||||
def marker_fn(environment=None, override=None):
|
|
||||||
"""override updates environment"""
|
|
||||||
if override is None:
|
|
||||||
override = {}
|
|
||||||
if environment is None:
|
|
||||||
environment = default_environment()
|
|
||||||
environment.update(override)
|
|
||||||
return eval(compiled_marker, environment)
|
|
||||||
marker_fn.__doc__ = marker
|
|
||||||
_cache[marker] = marker_fn
|
|
||||||
return _cache[marker]
|
|
||||||
|
|
||||||
def interpret(marker, environment=None):
|
|
||||||
return compile(marker)(environment)
|
|
||||||
@@ -1,883 +0,0 @@
|
|||||||
Metadata-Version: 1.1
|
|
||||||
Name: distribute
|
|
||||||
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
|
|
||||||
Author-email: distutils-sig@python.org
|
|
||||||
License: PSF or ZPL
|
|
||||||
Description: ===============================
|
|
||||||
Installing and Using Distribute
|
|
||||||
===============================
|
|
||||||
|
|
||||||
.. contents:: **Table of Contents**
|
|
||||||
|
|
||||||
-----------
|
|
||||||
Disclaimers
|
|
||||||
-----------
|
|
||||||
|
|
||||||
About the fork
|
|
||||||
==============
|
|
||||||
|
|
||||||
`Distribute` is a fork of the `Setuptools` project.
|
|
||||||
|
|
||||||
Distribute is intended to replace Setuptools as the standard method
|
|
||||||
for working with Python module distributions.
|
|
||||||
|
|
||||||
The fork has two goals:
|
|
||||||
|
|
||||||
- Providing a backward compatible version to replace Setuptools
|
|
||||||
and make all distributions that depend on Setuptools work as
|
|
||||||
before, but with less bugs and behaviorial issues.
|
|
||||||
|
|
||||||
This work is done in the 0.6.x series.
|
|
||||||
|
|
||||||
Starting with version 0.6.2, Distribute supports Python 3.
|
|
||||||
Installing and using distribute for Python 3 code works exactly
|
|
||||||
the same as for Python 2 code, but Distribute also helps you to support
|
|
||||||
Python 2 and Python 3 from the same source code by letting you run 2to3
|
|
||||||
on the code as a part of the build process, by setting the keyword parameter
|
|
||||||
``use_2to3`` to True. See http://packages.python.org/distribute for more
|
|
||||||
information.
|
|
||||||
|
|
||||||
- Refactoring the code, and releasing it in several distributions.
|
|
||||||
This work is being done in the 0.7.x series but not yet released.
|
|
||||||
|
|
||||||
The roadmap is still evolving, and the page that is up-to-date is
|
|
||||||
located at : `http://packages.python.org/distribute/roadmap`.
|
|
||||||
|
|
||||||
If you install `Distribute` and want to switch back for any reason to
|
|
||||||
`Setuptools`, get to the `Uninstallation instructions`_ section.
|
|
||||||
|
|
||||||
More documentation
|
|
||||||
==================
|
|
||||||
|
|
||||||
You can get more information in the Sphinx-based documentation, located
|
|
||||||
at http://packages.python.org/distribute. This documentation includes the old
|
|
||||||
Setuptools documentation that is slowly replaced, and brand new content.
|
|
||||||
|
|
||||||
About the installation process
|
|
||||||
==============================
|
|
||||||
|
|
||||||
The `Distribute` installer modifies your installation by de-activating an
|
|
||||||
existing installation of `Setuptools` in a bootstrap process. This process
|
|
||||||
has been tested in various installation schemes and contexts but in case of a
|
|
||||||
bug during this process your Python installation might be left in a broken
|
|
||||||
state. Since all modified files and directories are copied before the
|
|
||||||
installation starts, you will be able to get back to a normal state by reading
|
|
||||||
the instructions in the `Uninstallation instructions`_ section.
|
|
||||||
|
|
||||||
In any case, it is recommended to save you `site-packages` directory before
|
|
||||||
you start the installation of `Distribute`.
|
|
||||||
|
|
||||||
-------------------------
|
|
||||||
Installation Instructions
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
Distribute is only released as a source distribution.
|
|
||||||
|
|
||||||
It can be installed using pip, and can be done so with the source tarball,
|
|
||||||
or by using the ``distribute_setup.py`` script provided online.
|
|
||||||
|
|
||||||
``distribute_setup.py`` is the simplest and preferred way on all systems.
|
|
||||||
|
|
||||||
distribute_setup.py
|
|
||||||
===================
|
|
||||||
|
|
||||||
Download
|
|
||||||
`distribute_setup.py <http://python-distribute.org/distribute_setup.py>`_
|
|
||||||
and execute it, using the Python interpreter of your choice.
|
|
||||||
|
|
||||||
If your shell has the ``curl`` program you can do::
|
|
||||||
|
|
||||||
$ curl -O http://python-distribute.org/distribute_setup.py
|
|
||||||
$ python distribute_setup.py
|
|
||||||
|
|
||||||
Notice this file is also provided in the source release.
|
|
||||||
|
|
||||||
pip
|
|
||||||
===
|
|
||||||
|
|
||||||
Run easy_install or pip::
|
|
||||||
|
|
||||||
$ pip install distribute
|
|
||||||
|
|
||||||
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.36.tar.gz
|
|
||||||
$ tar -xzvf distribute-0.6.36.tar.gz
|
|
||||||
$ cd distribute-0.6.36
|
|
||||||
$ python setup.py install
|
|
||||||
|
|
||||||
---------------------------
|
|
||||||
Uninstallation Instructions
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
Like other distutils-based distributions, Distribute doesn't provide an
|
|
||||||
uninstaller yet. It's all done manually! We are all waiting for PEP 376
|
|
||||||
support in Python.
|
|
||||||
|
|
||||||
Distribute is installed in three steps:
|
|
||||||
|
|
||||||
1. it gets out of the way an existing installation of Setuptools
|
|
||||||
2. it installs a `fake` setuptools installation
|
|
||||||
3. it installs distribute
|
|
||||||
|
|
||||||
Distribute can be removed like this:
|
|
||||||
|
|
||||||
- remove the ``distribute*.egg`` file located in your site-packages directory
|
|
||||||
- remove the ``setuptools.pth`` file located in you site-packages directory
|
|
||||||
- remove the easy_install script located in you ``sys.prefix/bin`` directory
|
|
||||||
- remove the ``setuptools*.egg`` directory located in your site-packages directory,
|
|
||||||
if any.
|
|
||||||
|
|
||||||
If you want to get back to setuptools:
|
|
||||||
|
|
||||||
- reinstall setuptools using its instruction.
|
|
||||||
|
|
||||||
Lastly:
|
|
||||||
|
|
||||||
- remove the *.OLD.* directory located in your site-packages directory if any,
|
|
||||||
**once you have checked everything was working correctly again**.
|
|
||||||
|
|
||||||
-------------------------
|
|
||||||
Quick help for developers
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
To create an egg which is compatible with Distribute, use the same
|
|
||||||
practice as with Setuptools, e.g.::
|
|
||||||
|
|
||||||
from setuptools import setup
|
|
||||||
|
|
||||||
setup(...
|
|
||||||
)
|
|
||||||
|
|
||||||
To use `pkg_resources` to access data files in the egg, you should
|
|
||||||
require the Setuptools distribution explicitly::
|
|
||||||
|
|
||||||
from setuptools import setup
|
|
||||||
|
|
||||||
setup(...
|
|
||||||
install_requires=['setuptools']
|
|
||||||
)
|
|
||||||
|
|
||||||
Only if you need Distribute-specific functionality should you depend
|
|
||||||
on it explicitly. In this case, replace the Setuptools dependency::
|
|
||||||
|
|
||||||
from setuptools import setup
|
|
||||||
|
|
||||||
setup(...
|
|
||||||
install_requires=['distribute']
|
|
||||||
)
|
|
||||||
|
|
||||||
-----------
|
|
||||||
Install FAQ
|
|
||||||
-----------
|
|
||||||
|
|
||||||
- **Why is Distribute wrapping my Setuptools installation?**
|
|
||||||
|
|
||||||
Since Distribute is a fork, and since it provides the same package
|
|
||||||
and modules, it renames the existing Setuptools egg and inserts a
|
|
||||||
new one which merely wraps the Distribute code. This way, full
|
|
||||||
backwards compatibility is kept for packages which rely on the
|
|
||||||
Setuptools modules.
|
|
||||||
|
|
||||||
At the same time, packages can meet their dependency on Setuptools
|
|
||||||
without actually installing it (which would disable Distribute).
|
|
||||||
|
|
||||||
- **How does Distribute interact with virtualenv?**
|
|
||||||
|
|
||||||
Everytime you create a virtualenv it will install setuptools by default.
|
|
||||||
You either need to re-install Distribute in it right after or pass the
|
|
||||||
``--distribute`` option when creating it.
|
|
||||||
|
|
||||||
Once installed, your virtualenv will use Distribute transparently.
|
|
||||||
|
|
||||||
Although, if you have Setuptools installed in your system-wide Python,
|
|
||||||
and if the virtualenv you are in was generated without the `--no-site-packages`
|
|
||||||
option, the Distribute installation will stop.
|
|
||||||
|
|
||||||
You need in this case to build a virtualenv with the `--no-site-packages`
|
|
||||||
option or to install `Distribute` globally.
|
|
||||||
|
|
||||||
- **How does Distribute interacts with zc.buildout?**
|
|
||||||
|
|
||||||
You can use Distribute in your zc.buildout, with the --distribute option,
|
|
||||||
starting at zc.buildout 1.4.2::
|
|
||||||
|
|
||||||
$ python bootstrap.py --distribute
|
|
||||||
|
|
||||||
For previous zc.buildout versions, *the only thing* you need to do
|
|
||||||
is use the bootstrap at `http://python-distribute.org/bootstrap.py`. Run
|
|
||||||
that bootstrap and ``bin/buildout`` (and all other buildout-generated
|
|
||||||
scripts) will transparently use distribute instead of setuptools. You do
|
|
||||||
not need a specific buildout release.
|
|
||||||
|
|
||||||
A shared eggs directory is no problem (since 0.6.6): the setuptools egg is
|
|
||||||
left in place unmodified. So other buildouts that do not yet use the new
|
|
||||||
bootstrap continue to work just fine. And there is no need to list
|
|
||||||
``distribute`` somewhere in your eggs: using the bootstrap is enough.
|
|
||||||
|
|
||||||
The source code for the bootstrap script is located at
|
|
||||||
`http://bitbucket.org/tarek/buildout-distribute`.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------------
|
|
||||||
Feedback and getting involved
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
- Mailing list: http://mail.python.org/mailman/listinfo/distutils-sig
|
|
||||||
- Issue tracker: http://bitbucket.org/tarek/distribute/issues/
|
|
||||||
- Code Repository: http://bitbucket.org/tarek/distribute
|
|
||||||
|
|
||||||
=======
|
|
||||||
CHANGES
|
|
||||||
=======
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.36
|
|
||||||
------
|
|
||||||
|
|
||||||
* 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
|
|
||||||
------
|
|
||||||
|
|
||||||
* Fix 2 errors with Jython 2.5.
|
|
||||||
* Fix 1 failure with Jython 2.5 and 2.7.
|
|
||||||
* Disable workaround for Jython scripts on Linux systems.
|
|
||||||
* `Issue #336`_: `setup.py` no longer masks failure exit code when tests fail.
|
|
||||||
* Fix issue in pkg_resources where try/except around a platform-dependent
|
|
||||||
import would trigger hook load failures on Mercurial. See pull request 32
|
|
||||||
for details.
|
|
||||||
* `Issue #341`_: Fix a ResourceWarning.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.32
|
|
||||||
------
|
|
||||||
|
|
||||||
* Fix test suite with Python 2.6.
|
|
||||||
* Fix some DeprecationWarnings and ResourceWarnings.
|
|
||||||
* `Issue #335`_: Backed out `setup_requires` superceding installed requirements
|
|
||||||
until regression can be addressed.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.31
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #303`_: Make sure the manifest only ever contains UTF-8 in Python 3.
|
|
||||||
* `Issue #329`_: Properly close files created by tests for compatibility with
|
|
||||||
Jython.
|
|
||||||
* Work around Jython bugs `#1980 <http://bugs.jython.org/issue1980>`_ and
|
|
||||||
`#1981 <http://bugs.jython.org/issue1981>`_.
|
|
||||||
* `Issue #334`_: Provide workaround for packages that reference `sys.__stdout__`
|
|
||||||
such as numpy does. This change should address
|
|
||||||
`virtualenv #359 <https://github.com/pypa/virtualenv/issues/359>`_ as long
|
|
||||||
as the system encoding is UTF-8 or the IO encoding is specified in the
|
|
||||||
environment, i.e.::
|
|
||||||
|
|
||||||
PYTHONIOENCODING=utf8 pip install numpy
|
|
||||||
|
|
||||||
* Fix for encoding issue when installing from Windows executable on Python 3.
|
|
||||||
* `Issue #323`_: Allow `setup_requires` requirements to supercede installed
|
|
||||||
requirements. Added some new keyword arguments to existing pkg_resources
|
|
||||||
methods. Also had to updated how __path__ is handled for namespace packages
|
|
||||||
to ensure that when a new egg distribution containing a namespace package is
|
|
||||||
placed on sys.path, the entries in __path__ are found in the same order they
|
|
||||||
would have been in had that egg been on the path when pkg_resources was
|
|
||||||
first imported.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.30
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #328`_: Clean up temporary directories in distribute_setup.py.
|
|
||||||
* Fix fatal bug in distribute_setup.py.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.29
|
|
||||||
------
|
|
||||||
|
|
||||||
* Pull Request #14: Honor file permissions in zip files.
|
|
||||||
* `Issue #327`_: Merged pull request #24 to fix a dependency problem with pip.
|
|
||||||
* Merged pull request #23 to fix https://github.com/pypa/virtualenv/issues/301.
|
|
||||||
* If Sphinx is installed, the `upload_docs` command now runs `build_sphinx`
|
|
||||||
to produce uploadable documentation.
|
|
||||||
* `Issue #326`_: `upload_docs` provided mangled auth credentials under Python 3.
|
|
||||||
* `Issue #320`_: Fix check for "createable" in distribute_setup.py.
|
|
||||||
* `Issue #305`_: Remove a warning that was triggered during normal operations.
|
|
||||||
* `Issue #311`_: Print metadata in UTF-8 independent of platform.
|
|
||||||
* `Issue #303`_: Read manifest file with UTF-8 encoding under Python 3.
|
|
||||||
* `Issue #301`_: Allow to run tests of namespace packages when using 2to3.
|
|
||||||
* `Issue #304`_: Prevent import loop in site.py under Python 3.3.
|
|
||||||
* `Issue #283`_: Reenable scanning of `*.pyc` / `*.pyo` files on Python 3.3.
|
|
||||||
* `Issue #299`_: The develop command didn't work on Python 3, when using 2to3,
|
|
||||||
as the egg link would go to the Python 2 source. Linking to the 2to3'd code
|
|
||||||
in build/lib makes it work, although you will have to rebuild the module
|
|
||||||
before testing it.
|
|
||||||
* `Issue #306`_: Even if 2to3 is used, we build in-place under Python 2.
|
|
||||||
* `Issue #307`_: Prints the full path when .svn/entries is broken.
|
|
||||||
* `Issue #313`_: Support for sdist subcommands (Python 2.7)
|
|
||||||
* `Issue #314`_: test_local_index() would fail an OS X.
|
|
||||||
* `Issue #310`_: Non-ascii characters in a namespace __init__.py causes errors.
|
|
||||||
* `Issue #218`_: Improved documentation on behavior of `package_data` and
|
|
||||||
`include_package_data`. Files indicated by `package_data` are now included
|
|
||||||
in the manifest.
|
|
||||||
* `distribute_setup.py` now allows a `--download-base` argument for retrieving
|
|
||||||
distribute from a specified location.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.28
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #294`_: setup.py can now be invoked from any directory.
|
|
||||||
* Scripts are now installed honoring the umask.
|
|
||||||
* Added support for .dist-info directories.
|
|
||||||
* `Issue #283`_: Fix and disable scanning of `*.pyc` / `*.pyo` files on
|
|
||||||
Python 3.3.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.27
|
|
||||||
------
|
|
||||||
|
|
||||||
* Support current snapshots of CPython 3.3.
|
|
||||||
* Distribute now recognizes README.rst as a standard, default readme file.
|
|
||||||
* Exclude 'encodings' modules when removing modules from sys.modules.
|
|
||||||
Workaround for #285.
|
|
||||||
* `Issue #231`_: Don't fiddle with system python when used with buildout
|
|
||||||
(bootstrap.py)
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.26
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #183`_: Symlinked files are now extracted from source distributions.
|
|
||||||
* `Issue #227`_: Easy_install fetch parameters are now passed during the
|
|
||||||
installation of a source distribution; now fulfillment of setup_requires
|
|
||||||
dependencies will honor the parameters passed to easy_install.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.25
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #258`_: Workaround a cache issue
|
|
||||||
* `Issue #260`_: distribute_setup.py now accepts the --user parameter for
|
|
||||||
Python 2.6 and later.
|
|
||||||
* `Issue #262`_: package_index.open_with_auth no longer throws LookupError
|
|
||||||
on Python 3.
|
|
||||||
* `Issue #269`_: AttributeError when an exception occurs reading Manifest.in
|
|
||||||
on late releases of Python.
|
|
||||||
* `Issue #272`_: Prevent TypeError when namespace package names are unicode
|
|
||||||
and single-install-externally-managed is used. Also fixes PIP `issue
|
|
||||||
449`_.
|
|
||||||
* `Issue #273`_: Legacy script launchers now install with Python2/3 support.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.24
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #249`_: Added options to exclude 2to3 fixers
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.23
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #244`_: Fixed a test
|
|
||||||
* `Issue #243`_: Fixed a test
|
|
||||||
* `Issue #239`_: Fixed a test
|
|
||||||
* `Issue #240`_: Fixed a test
|
|
||||||
* `Issue #241`_: Fixed a test
|
|
||||||
* `Issue #237`_: Fixed a test
|
|
||||||
* `Issue #238`_: easy_install now uses 64bit executable wrappers on 64bit Python
|
|
||||||
* `Issue #208`_: Fixed parsed_versions, it now honors post-releases as noted in the documentation
|
|
||||||
* `Issue #207`_: Windows cli and gui wrappers pass CTRL-C to child python process
|
|
||||||
* `Issue #227`_: easy_install now passes its arguments to setup.py bdist_egg
|
|
||||||
* `Issue #225`_: Fixed a NameError on Python 2.5, 2.4
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.21
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #225`_: FIxed a regression on py2.4
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.20
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue #135`_: Include url in warning when processing URLs in package_index.
|
|
||||||
* `Issue #212`_: Fix issue where easy_instal fails on Python 3 on windows installer.
|
|
||||||
* `Issue #213`_: Fix typo in documentation.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.19
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue 206`_: AttributeError: 'HTTPMessage' object has no attribute 'getheaders'
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.18
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue 210`_: Fixed a regression introduced by `Issue 204`_ fix.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.17
|
|
||||||
------
|
|
||||||
|
|
||||||
* Support 'DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT' environment
|
|
||||||
variable to allow to disable installation of easy_install-${version} script.
|
|
||||||
* Support Python >=3.1.4 and >=3.2.1.
|
|
||||||
* `Issue 204`_: Don't try to import the parent of a namespace package in
|
|
||||||
declare_namespace
|
|
||||||
* `Issue 196`_: Tolerate responses with multiple Content-Length headers
|
|
||||||
* `Issue 205`_: Sandboxing doesn't preserve working_set. Leads to setup_requires
|
|
||||||
problems.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.16
|
|
||||||
------
|
|
||||||
|
|
||||||
* Builds sdist gztar even on Windows (avoiding `Issue 193`_).
|
|
||||||
* `Issue 192`_: Fixed metadata omitted on Windows when package_dir
|
|
||||||
specified with forward-slash.
|
|
||||||
* `Issue 195`_: Cython build support.
|
|
||||||
* `Issue 200`_: Issues with recognizing 64-bit packages on Windows.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.15
|
|
||||||
------
|
|
||||||
|
|
||||||
* Fixed typo in bdist_egg
|
|
||||||
* Several issues under Python 3 has been solved.
|
|
||||||
* `Issue 146`_: Fixed missing DLL files after easy_install of windows exe package.
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.14
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue 170`_: Fixed unittest failure. Thanks to Toshio.
|
|
||||||
* `Issue 171`_: Fixed race condition in unittests cause deadlocks in test suite.
|
|
||||||
* `Issue 143`_: Fixed a lookup issue with easy_install.
|
|
||||||
Thanks to David and Zooko.
|
|
||||||
* `Issue 174`_: Fixed the edit mode when its used with setuptools itself
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.13
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue 160`_: 2.7 gives ValueError("Invalid IPv6 URL")
|
|
||||||
* `Issue 150`_: Fixed using ~/.local even in a --no-site-packages virtualenv
|
|
||||||
* `Issue 163`_: scan index links before external links, and don't use the md5 when
|
|
||||||
comparing two distributions
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.12
|
|
||||||
------
|
|
||||||
|
|
||||||
* `Issue 149`_: Fixed various failures on 2.3/2.4
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.11
|
|
||||||
------
|
|
||||||
|
|
||||||
* Found another case of SandboxViolation - fixed
|
|
||||||
* `Issue 15`_ and 48: Introduced a socket timeout of 15 seconds on url openings
|
|
||||||
* Added indexsidebar.html into MANIFEST.in
|
|
||||||
* `Issue 108`_: Fixed TypeError with Python3.1
|
|
||||||
* `Issue 121`_: Fixed --help install command trying to actually install.
|
|
||||||
* `Issue 112`_: Added an os.makedirs so that Tarek's solution will work.
|
|
||||||
* `Issue 133`_: Added --no-find-links to easy_install
|
|
||||||
* Added easy_install --user
|
|
||||||
* `Issue 100`_: Fixed develop --user not taking '.' in PYTHONPATH into account
|
|
||||||
* `Issue 134`_: removed spurious UserWarnings. Patch by VanLindberg
|
|
||||||
* `Issue 138`_: cant_write_to_target error when setup_requires is used.
|
|
||||||
* `Issue 147`_: respect the sys.dont_write_bytecode flag
|
|
||||||
|
|
||||||
------
|
|
||||||
0.6.10
|
|
||||||
------
|
|
||||||
|
|
||||||
* Reverted change made for the DistributionNotFound exception because
|
|
||||||
zc.buildout uses the exception message to get the name of the
|
|
||||||
distribution.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.9
|
|
||||||
-----
|
|
||||||
|
|
||||||
* `Issue 90`_: unknown setuptools version can be added in the working set
|
|
||||||
* `Issue 87`_: setupt.py doesn't try to convert distribute_setup.py anymore
|
|
||||||
Initial Patch by arfrever.
|
|
||||||
* `Issue 89`_: added a side bar with a download link to the doc.
|
|
||||||
* `Issue 86`_: fixed missing sentence in pkg_resources doc.
|
|
||||||
* Added a nicer error message when a DistributionNotFound is raised.
|
|
||||||
* `Issue 80`_: test_develop now works with Python 3.1
|
|
||||||
* `Issue 93`_: upload_docs now works if there is an empty sub-directory.
|
|
||||||
* `Issue 70`_: exec bit on non-exec files
|
|
||||||
* `Issue 99`_: now the standalone easy_install command doesn't uses a
|
|
||||||
"setup.cfg" if any exists in the working directory. It will use it
|
|
||||||
only if triggered by ``install_requires`` from a setup.py call
|
|
||||||
(install, develop, etc).
|
|
||||||
* `Issue 101`_: Allowing ``os.devnull`` in Sandbox
|
|
||||||
* `Issue 92`_: Fixed the "no eggs" found error with MacPort
|
|
||||||
(platform.mac_ver() fails)
|
|
||||||
* `Issue 103`_: test_get_script_header_jython_workaround not run
|
|
||||||
anymore under py3 with C or POSIX local. Contributed by Arfrever.
|
|
||||||
* `Issue 104`_: remvoved the assertion when the installation fails,
|
|
||||||
with a nicer message for the end user.
|
|
||||||
* `Issue 100`_: making sure there's no SandboxViolation when
|
|
||||||
the setup script patches setuptools.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.8
|
|
||||||
-----
|
|
||||||
|
|
||||||
* Added "check_packages" in dist. (added in Setuptools 0.6c11)
|
|
||||||
* Fixed the DONT_PATCH_SETUPTOOLS state.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.7
|
|
||||||
-----
|
|
||||||
|
|
||||||
* `Issue 58`_: Added --user support to the develop command
|
|
||||||
* `Issue 11`_: Generated scripts now wrap their call to the script entry point
|
|
||||||
in the standard "if name == 'main'"
|
|
||||||
* Added the 'DONT_PATCH_SETUPTOOLS' environment variable, so virtualenv
|
|
||||||
can drive an installation that doesn't patch a global setuptools.
|
|
||||||
* Reviewed unladen-swallow specific change from
|
|
||||||
http://code.google.com/p/unladen-swallow/source/detail?spec=svn875&r=719
|
|
||||||
and determined that it no longer applies. Distribute should work fine with
|
|
||||||
Unladen Swallow 2009Q3.
|
|
||||||
* `Issue 21`_: Allow PackageIndex.open_url to gracefully handle all cases of a
|
|
||||||
httplib.HTTPException instead of just InvalidURL and BadStatusLine.
|
|
||||||
* Removed virtual-python.py from this distribution and updated documentation
|
|
||||||
to point to the actively maintained virtualenv instead.
|
|
||||||
* `Issue 64`_: use_setuptools no longer rebuilds the distribute egg every
|
|
||||||
time it is run
|
|
||||||
* use_setuptools now properly respects the requested version
|
|
||||||
* use_setuptools will no longer try to import a distribute egg for the
|
|
||||||
wrong Python version
|
|
||||||
* `Issue 74`_: no_fake should be True by default.
|
|
||||||
* `Issue 72`_: avoid a bootstrapping issue with easy_install -U
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.6
|
|
||||||
-----
|
|
||||||
|
|
||||||
* Unified the bootstrap file so it works on both py2.x and py3k without 2to3
|
|
||||||
(patch by Holger Krekel)
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.5
|
|
||||||
-----
|
|
||||||
|
|
||||||
* `Issue 65`_: cli.exe and gui.exe are now generated at build time,
|
|
||||||
depending on the platform in use.
|
|
||||||
|
|
||||||
* `Issue 67`_: Fixed doc typo (PEP 381/382)
|
|
||||||
|
|
||||||
* Distribute no longer shadows setuptools if we require a 0.7-series
|
|
||||||
setuptools. And an error is raised when installing a 0.7 setuptools with
|
|
||||||
distribute.
|
|
||||||
|
|
||||||
* When run from within buildout, no attempt is made to modify an existing
|
|
||||||
setuptools egg, whether in a shared egg directory or a system setuptools.
|
|
||||||
|
|
||||||
* Fixed a hole in sandboxing allowing builtin file to write outside of
|
|
||||||
the sandbox.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.4
|
|
||||||
-----
|
|
||||||
|
|
||||||
* Added the generation of `distribute_setup_3k.py` during the release.
|
|
||||||
This closes `issue #52`_.
|
|
||||||
|
|
||||||
* Added an upload_docs command to easily upload project documentation to
|
|
||||||
PyPI's http://packages.python.org. This close `issue #56`_.
|
|
||||||
|
|
||||||
* Fixed a bootstrap bug on the use_setuptools() API.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.3
|
|
||||||
-----
|
|
||||||
|
|
||||||
setuptools
|
|
||||||
==========
|
|
||||||
|
|
||||||
* Fixed a bunch of calls to file() that caused crashes on Python 3.
|
|
||||||
|
|
||||||
bootstrapping
|
|
||||||
=============
|
|
||||||
|
|
||||||
* Fixed a bug in sorting that caused bootstrap to fail on Python 3.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.2
|
|
||||||
-----
|
|
||||||
|
|
||||||
setuptools
|
|
||||||
==========
|
|
||||||
|
|
||||||
* Added Python 3 support; see docs/python3.txt.
|
|
||||||
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.
|
|
||||||
|
|
||||||
* Fixed script launcher for 64-bit Windows.
|
|
||||||
This closes http://bugs.python.org/setuptools/issue2.
|
|
||||||
|
|
||||||
* KeyError when compiling extensions.
|
|
||||||
This closes http://bugs.python.org/setuptools/issue41.
|
|
||||||
|
|
||||||
bootstrapping
|
|
||||||
=============
|
|
||||||
|
|
||||||
* Fixed bootstrap not working on Windows. This closes `issue #49`_.
|
|
||||||
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
-----
|
|
||||||
0.6.1
|
|
||||||
-----
|
|
||||||
|
|
||||||
setuptools
|
|
||||||
==========
|
|
||||||
|
|
||||||
* package_index.urlopen now catches BadStatusLine and malformed url errors.
|
|
||||||
This closes `issue #16`_ and `issue #18`_.
|
|
||||||
|
|
||||||
* zip_ok is now False by default. This closes
|
|
||||||
http://bugs.python.org/setuptools/issue33.
|
|
||||||
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
* Removed buildout/bootstrap.py. A new repository will create a specific
|
|
||||||
bootstrap.py script.
|
|
||||||
|
|
||||||
|
|
||||||
bootstrapping
|
|
||||||
=============
|
|
||||||
|
|
||||||
* The boostrap process leave setuptools alone if detected in the system
|
|
||||||
and --root or --prefix is provided, but is not in the same location.
|
|
||||||
This closes `issue #10`_.
|
|
||||||
|
|
||||||
---
|
|
||||||
0.6
|
|
||||||
---
|
|
||||||
|
|
||||||
setuptools
|
|
||||||
==========
|
|
||||||
|
|
||||||
* Packages required at build time where not fully present at install time.
|
|
||||||
This closes `issue #12`_.
|
|
||||||
|
|
||||||
* Protected against failures in tarfile extraction. This closes `issue #10`_.
|
|
||||||
|
|
||||||
* Made Jython api_tests.txt doctest compatible. This closes `issue #7`_.
|
|
||||||
|
|
||||||
* sandbox.py replaced builtin type file with builtin function open. This
|
|
||||||
closes `issue #6`_.
|
|
||||||
|
|
||||||
* Immediately close all file handles. This closes `issue #3`_.
|
|
||||||
|
|
||||||
* Added compatibility with Subversion 1.6. This references `issue #1`_.
|
|
||||||
|
|
||||||
pkg_resources
|
|
||||||
=============
|
|
||||||
|
|
||||||
* Avoid a call to /usr/bin/sw_vers on OSX and use the official platform API
|
|
||||||
instead. Based on a patch from ronaldoussoren. This closes `issue #5`_.
|
|
||||||
|
|
||||||
* Fixed a SandboxViolation for mkdir that could occur in certain cases.
|
|
||||||
This closes `issue #13`_.
|
|
||||||
|
|
||||||
* Allow to find_on_path on systems with tight permissions to fail gracefully.
|
|
||||||
This closes `issue #9`_.
|
|
||||||
|
|
||||||
* Corrected inconsistency between documentation and code of add_entry.
|
|
||||||
This closes `issue #8`_.
|
|
||||||
|
|
||||||
* Immediately close all file handles. This closes `issue #3`_.
|
|
||||||
|
|
||||||
easy_install
|
|
||||||
============
|
|
||||||
|
|
||||||
* Immediately close all file handles. This closes `issue #3`_.
|
|
||||||
|
|
||||||
|
|
||||||
.. _`Issue #135`: http://bitbucket.org/tarek/distribute/issue/135
|
|
||||||
.. _`Issue #183`: http://bitbucket.org/tarek/distribute/issue/183
|
|
||||||
.. _`Issue #207`: http://bitbucket.org/tarek/distribute/issue/207
|
|
||||||
.. _`Issue #208`: http://bitbucket.org/tarek/distribute/issue/208
|
|
||||||
.. _`Issue #212`: http://bitbucket.org/tarek/distribute/issue/212
|
|
||||||
.. _`Issue #213`: http://bitbucket.org/tarek/distribute/issue/213
|
|
||||||
.. _`Issue #218`: http://bitbucket.org/tarek/distribute/issue/218
|
|
||||||
.. _`Issue #225`: http://bitbucket.org/tarek/distribute/issue/225
|
|
||||||
.. _`Issue #227`: http://bitbucket.org/tarek/distribute/issue/227
|
|
||||||
.. _`Issue #231`: http://bitbucket.org/tarek/distribute/issue/231
|
|
||||||
.. _`Issue #237`: http://bitbucket.org/tarek/distribute/issue/237
|
|
||||||
.. _`Issue #238`: http://bitbucket.org/tarek/distribute/issue/238
|
|
||||||
.. _`Issue #239`: http://bitbucket.org/tarek/distribute/issue/239
|
|
||||||
.. _`Issue #240`: http://bitbucket.org/tarek/distribute/issue/240
|
|
||||||
.. _`Issue #241`: http://bitbucket.org/tarek/distribute/issue/241
|
|
||||||
.. _`Issue #243`: http://bitbucket.org/tarek/distribute/issue/243
|
|
||||||
.. _`Issue #244`: http://bitbucket.org/tarek/distribute/issue/244
|
|
||||||
.. _`Issue #249`: http://bitbucket.org/tarek/distribute/issue/249
|
|
||||||
.. _`Issue #258`: http://bitbucket.org/tarek/distribute/issue/258
|
|
||||||
.. _`Issue #260`: http://bitbucket.org/tarek/distribute/issue/260
|
|
||||||
.. _`Issue #262`: http://bitbucket.org/tarek/distribute/issue/262
|
|
||||||
.. _`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
|
|
||||||
.. _`Issue #301`: http://bitbucket.org/tarek/distribute/issue/301
|
|
||||||
.. _`Issue #303`: http://bitbucket.org/tarek/distribute/issue/303
|
|
||||||
.. _`Issue #304`: http://bitbucket.org/tarek/distribute/issue/304
|
|
||||||
.. _`Issue #305`: http://bitbucket.org/tarek/distribute/issue/305
|
|
||||||
.. _`Issue #306`: http://bitbucket.org/tarek/distribute/issue/306
|
|
||||||
.. _`Issue #307`: http://bitbucket.org/tarek/distribute/issue/307
|
|
||||||
.. _`Issue #310`: http://bitbucket.org/tarek/distribute/issue/310
|
|
||||||
.. _`Issue #311`: http://bitbucket.org/tarek/distribute/issue/311
|
|
||||||
.. _`Issue #313`: http://bitbucket.org/tarek/distribute/issue/313
|
|
||||||
.. _`Issue #314`: http://bitbucket.org/tarek/distribute/issue/314
|
|
||||||
.. _`Issue #320`: http://bitbucket.org/tarek/distribute/issue/320
|
|
||||||
.. _`Issue #323`: http://bitbucket.org/tarek/distribute/issue/323
|
|
||||||
.. _`Issue #326`: http://bitbucket.org/tarek/distribute/issue/326
|
|
||||||
.. _`Issue #327`: http://bitbucket.org/tarek/distribute/issue/327
|
|
||||||
.. _`Issue #328`: http://bitbucket.org/tarek/distribute/issue/328
|
|
||||||
.. _`Issue #329`: http://bitbucket.org/tarek/distribute/issue/329
|
|
||||||
.. _`Issue #334`: http://bitbucket.org/tarek/distribute/issue/334
|
|
||||||
.. _`Issue #335`: http://bitbucket.org/tarek/distribute/issue/335
|
|
||||||
.. _`Issue #336`: http://bitbucket.org/tarek/distribute/issue/336
|
|
||||||
.. _`Issue #341`: http://bitbucket.org/tarek/distribute/issue/341
|
|
||||||
.. _`Issue 100`: http://bitbucket.org/tarek/distribute/issue/100
|
|
||||||
.. _`Issue 101`: http://bitbucket.org/tarek/distribute/issue/101
|
|
||||||
.. _`Issue 103`: http://bitbucket.org/tarek/distribute/issue/103
|
|
||||||
.. _`Issue 104`: http://bitbucket.org/tarek/distribute/issue/104
|
|
||||||
.. _`Issue 108`: http://bitbucket.org/tarek/distribute/issue/108
|
|
||||||
.. _`Issue 11`: http://bitbucket.org/tarek/distribute/issue/11
|
|
||||||
.. _`Issue 112`: http://bitbucket.org/tarek/distribute/issue/112
|
|
||||||
.. _`Issue 121`: http://bitbucket.org/tarek/distribute/issue/121
|
|
||||||
.. _`Issue 133`: http://bitbucket.org/tarek/distribute/issue/133
|
|
||||||
.. _`Issue 134`: http://bitbucket.org/tarek/distribute/issue/134
|
|
||||||
.. _`Issue 138`: http://bitbucket.org/tarek/distribute/issue/138
|
|
||||||
.. _`Issue 143`: http://bitbucket.org/tarek/distribute/issue/143
|
|
||||||
.. _`Issue 146`: http://bitbucket.org/tarek/distribute/issue/146
|
|
||||||
.. _`Issue 147`: http://bitbucket.org/tarek/distribute/issue/147
|
|
||||||
.. _`Issue 149`: http://bitbucket.org/tarek/distribute/issue/149
|
|
||||||
.. _`Issue 15`: http://bitbucket.org/tarek/distribute/issue/15
|
|
||||||
.. _`Issue 150`: http://bitbucket.org/tarek/distribute/issue/150
|
|
||||||
.. _`Issue 160`: http://bitbucket.org/tarek/distribute/issue/160
|
|
||||||
.. _`Issue 163`: http://bitbucket.org/tarek/distribute/issue/163
|
|
||||||
.. _`Issue 170`: http://bitbucket.org/tarek/distribute/issue/170
|
|
||||||
.. _`Issue 171`: http://bitbucket.org/tarek/distribute/issue/171
|
|
||||||
.. _`Issue 174`: http://bitbucket.org/tarek/distribute/issue/174
|
|
||||||
.. _`Issue 192`: http://bitbucket.org/tarek/distribute/issue/192
|
|
||||||
.. _`Issue 193`: http://bitbucket.org/tarek/distribute/issue/193
|
|
||||||
.. _`Issue 195`: http://bitbucket.org/tarek/distribute/issue/195
|
|
||||||
.. _`Issue 196`: http://bitbucket.org/tarek/distribute/issue/196
|
|
||||||
.. _`Issue 200`: http://bitbucket.org/tarek/distribute/issue/200
|
|
||||||
.. _`Issue 204`: http://bitbucket.org/tarek/distribute/issue/204
|
|
||||||
.. _`Issue 205`: http://bitbucket.org/tarek/distribute/issue/205
|
|
||||||
.. _`Issue 206`: http://bitbucket.org/tarek/distribute/issue/206
|
|
||||||
.. _`Issue 21`: http://bitbucket.org/tarek/distribute/issue/21
|
|
||||||
.. _`Issue 210`: http://bitbucket.org/tarek/distribute/issue/210
|
|
||||||
.. _`Issue 58`: http://bitbucket.org/tarek/distribute/issue/58
|
|
||||||
.. _`Issue 64`: http://bitbucket.org/tarek/distribute/issue/64
|
|
||||||
.. _`Issue 65`: http://bitbucket.org/tarek/distribute/issue/65
|
|
||||||
.. _`Issue 67`: http://bitbucket.org/tarek/distribute/issue/67
|
|
||||||
.. _`Issue 70`: http://bitbucket.org/tarek/distribute/issue/70
|
|
||||||
.. _`Issue 72`: http://bitbucket.org/tarek/distribute/issue/72
|
|
||||||
.. _`Issue 74`: http://bitbucket.org/tarek/distribute/issue/74
|
|
||||||
.. _`Issue 80`: http://bitbucket.org/tarek/distribute/issue/80
|
|
||||||
.. _`Issue 86`: http://bitbucket.org/tarek/distribute/issue/86
|
|
||||||
.. _`Issue 87`: http://bitbucket.org/tarek/distribute/issue/87
|
|
||||||
.. _`Issue 89`: http://bitbucket.org/tarek/distribute/issue/89
|
|
||||||
.. _`Issue 90`: http://bitbucket.org/tarek/distribute/issue/90
|
|
||||||
.. _`Issue 92`: http://bitbucket.org/tarek/distribute/issue/92
|
|
||||||
.. _`Issue 93`: http://bitbucket.org/tarek/distribute/issue/93
|
|
||||||
.. _`Issue 99`: http://bitbucket.org/tarek/distribute/issue/99
|
|
||||||
.. _`issue
|
|
||||||
449`: http://bitbucket.org/tarek/distribute/issue/449
|
|
||||||
.. _`issue #1`: http://bitbucket.org/tarek/distribute/issue/1
|
|
||||||
.. _`issue #10`: http://bitbucket.org/tarek/distribute/issue/10
|
|
||||||
.. _`issue #12`: http://bitbucket.org/tarek/distribute/issue/12
|
|
||||||
.. _`issue #13`: http://bitbucket.org/tarek/distribute/issue/13
|
|
||||||
.. _`issue #16`: http://bitbucket.org/tarek/distribute/issue/16
|
|
||||||
.. _`issue #18`: http://bitbucket.org/tarek/distribute/issue/18
|
|
||||||
.. _`issue #3`: http://bitbucket.org/tarek/distribute/issue/3
|
|
||||||
.. _`issue #31`: http://bitbucket.org/tarek/distribute/issue/31
|
|
||||||
.. _`issue #40`: http://bitbucket.org/tarek/distribute/issue/40
|
|
||||||
.. _`issue #49`: http://bitbucket.org/tarek/distribute/issue/49
|
|
||||||
.. _`issue #5`: http://bitbucket.org/tarek/distribute/issue/5
|
|
||||||
.. _`issue #50`: http://bitbucket.org/tarek/distribute/issue/50
|
|
||||||
.. _`issue #52`: http://bitbucket.org/tarek/distribute/issue/52
|
|
||||||
.. _`issue #56`: http://bitbucket.org/tarek/distribute/issue/56
|
|
||||||
.. _`issue #6`: http://bitbucket.org/tarek/distribute/issue/6
|
|
||||||
.. _`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
|
|
||||||
.. _`issue 64`: http://bitbucket.org/tarek/distribute/issue/64
|
|
||||||
|
|
||||||
|
|
||||||
Keywords: CPAN PyPI distutils eggs package management
|
|
||||||
Platform: UNKNOWN
|
|
||||||
Classifier: Development Status :: 5 - Production/Stable
|
|
||||||
Classifier: Intended Audience :: Developers
|
|
||||||
Classifier: License :: OSI Approved :: Python Software Foundation License
|
|
||||||
Classifier: License :: OSI Approved :: Zope Public License
|
|
||||||
Classifier: Operating System :: OS Independent
|
|
||||||
Classifier: Programming Language :: Python :: 2.4
|
|
||||||
Classifier: Programming Language :: Python :: 2.5
|
|
||||||
Classifier: Programming Language :: Python :: 2.6
|
|
||||||
Classifier: Programming Language :: Python :: 2.7
|
|
||||||
Classifier: Programming Language :: Python :: 3
|
|
||||||
Classifier: Programming Language :: Python :: 3.1
|
|
||||||
Classifier: Programming Language :: Python :: 3.2
|
|
||||||
Classifier: Programming Language :: Python :: 3.3
|
|
||||||
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
||||||
Classifier: Topic :: System :: Archiving :: Packaging
|
|
||||||
Classifier: Topic :: System :: Systems Administration
|
|
||||||
Classifier: Topic :: Utilities
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
CHANGES.txt
|
|
||||||
CONTRIBUTORS.txt
|
|
||||||
DEVGUIDE.txt
|
|
||||||
MANIFEST.in
|
|
||||||
README.txt
|
|
||||||
distribute_setup.py
|
|
||||||
easy_install.py
|
|
||||||
launcher.c
|
|
||||||
pkg_resources.py
|
|
||||||
release.py
|
|
||||||
setup.cfg
|
|
||||||
setup.py
|
|
||||||
site.py
|
|
||||||
_markerlib/__init__.py
|
|
||||||
_markerlib/markers.py
|
|
||||||
distribute.egg-info/PKG-INFO
|
|
||||||
distribute.egg-info/SOURCES.txt
|
|
||||||
distribute.egg-info/dependency_links.txt
|
|
||||||
distribute.egg-info/entry_points.txt
|
|
||||||
distribute.egg-info/top_level.txt
|
|
||||||
distribute.egg-info/zip-safe
|
|
||||||
docs/Makefile
|
|
||||||
docs/conf.py
|
|
||||||
docs/easy_install.txt
|
|
||||||
docs/index.txt
|
|
||||||
docs/pkg_resources.txt
|
|
||||||
docs/python3.txt
|
|
||||||
docs/roadmap.txt
|
|
||||||
docs/setuptools.txt
|
|
||||||
docs/using.txt
|
|
||||||
docs/_templates/indexsidebar.html
|
|
||||||
docs/_theme/nature/theme.conf
|
|
||||||
docs/_theme/nature/static/nature.css_t
|
|
||||||
docs/_theme/nature/static/pygments.css
|
|
||||||
docs/build/html/_sources/easy_install.txt
|
|
||||||
docs/build/html/_sources/index.txt
|
|
||||||
docs/build/html/_sources/pkg_resources.txt
|
|
||||||
docs/build/html/_sources/python3.txt
|
|
||||||
docs/build/html/_sources/roadmap.txt
|
|
||||||
docs/build/html/_sources/setuptools.txt
|
|
||||||
docs/build/html/_sources/using.txt
|
|
||||||
docs/build/html/_static/basic.css
|
|
||||||
docs/build/html/_static/nature.css
|
|
||||||
docs/build/html/_static/pygments.css
|
|
||||||
setuptools/__init__.py
|
|
||||||
setuptools/archive_util.py
|
|
||||||
setuptools/cli-32.exe
|
|
||||||
setuptools/cli-64.exe
|
|
||||||
setuptools/cli.exe
|
|
||||||
setuptools/depends.py
|
|
||||||
setuptools/dist.py
|
|
||||||
setuptools/extension.py
|
|
||||||
setuptools/gui-32.exe
|
|
||||||
setuptools/gui-64.exe
|
|
||||||
setuptools/gui.exe
|
|
||||||
setuptools/package_index.py
|
|
||||||
setuptools/sandbox.py
|
|
||||||
setuptools/script template (dev).py
|
|
||||||
setuptools/script template.py
|
|
||||||
setuptools/command/__init__.py
|
|
||||||
setuptools/command/alias.py
|
|
||||||
setuptools/command/bdist_egg.py
|
|
||||||
setuptools/command/bdist_rpm.py
|
|
||||||
setuptools/command/bdist_wininst.py
|
|
||||||
setuptools/command/build_ext.py
|
|
||||||
setuptools/command/build_py.py
|
|
||||||
setuptools/command/develop.py
|
|
||||||
setuptools/command/easy_install.py
|
|
||||||
setuptools/command/egg_info.py
|
|
||||||
setuptools/command/install.py
|
|
||||||
setuptools/command/install_egg_info.py
|
|
||||||
setuptools/command/install_lib.py
|
|
||||||
setuptools/command/install_scripts.py
|
|
||||||
setuptools/command/register.py
|
|
||||||
setuptools/command/rotate.py
|
|
||||||
setuptools/command/saveopts.py
|
|
||||||
setuptools/command/sdist.py
|
|
||||||
setuptools/command/setopt.py
|
|
||||||
setuptools/command/test.py
|
|
||||||
setuptools/command/upload.py
|
|
||||||
setuptools/command/upload_docs.py
|
|
||||||
setuptools/tests/__init__.py
|
|
||||||
setuptools/tests/doctest.py
|
|
||||||
setuptools/tests/py26compat.py
|
|
||||||
setuptools/tests/server.py
|
|
||||||
setuptools/tests/test_bdist_egg.py
|
|
||||||
setuptools/tests/test_build_ext.py
|
|
||||||
setuptools/tests/test_develop.py
|
|
||||||
setuptools/tests/test_dist_info.py
|
|
||||||
setuptools/tests/test_easy_install.py
|
|
||||||
setuptools/tests/test_markerlib.py
|
|
||||||
setuptools/tests/test_packageindex.py
|
|
||||||
setuptools/tests/test_resources.py
|
|
||||||
setuptools/tests/test_sandbox.py
|
|
||||||
setuptools/tests/test_sdist.py
|
|
||||||
setuptools/tests/test_test.py
|
|
||||||
setuptools/tests/test_upload_docs.py
|
|
||||||
setuptools/tests/win_script_wrapper.txt
|
|
||||||
setuptools/tests/indexes/test_links_priority/external.html
|
|
||||||
setuptools/tests/indexes/test_links_priority/simple/foobar/index.html
|
|
||||||
tests/api_tests.txt
|
|
||||||
tests/install_test.py
|
|
||||||
tests/manual_test.py
|
|
||||||
tests/test_distribute_setup.py
|
|
||||||
tests/shlib_test/hello.c
|
|
||||||
tests/shlib_test/hello.pyx
|
|
||||||
tests/shlib_test/hellolib.c
|
|
||||||
tests/shlib_test/setup.py
|
|
||||||
tests/shlib_test/test_hello.py
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
[distutils.commands]
|
|
||||||
bdist_rpm = setuptools.command.bdist_rpm:bdist_rpm
|
|
||||||
rotate = setuptools.command.rotate:rotate
|
|
||||||
develop = setuptools.command.develop:develop
|
|
||||||
setopt = setuptools.command.setopt:setopt
|
|
||||||
build_py = setuptools.command.build_py:build_py
|
|
||||||
saveopts = setuptools.command.saveopts:saveopts
|
|
||||||
egg_info = setuptools.command.egg_info:egg_info
|
|
||||||
register = setuptools.command.register:register
|
|
||||||
upload_docs = setuptools.command.upload_docs:upload_docs
|
|
||||||
install_egg_info = setuptools.command.install_egg_info:install_egg_info
|
|
||||||
alias = setuptools.command.alias:alias
|
|
||||||
easy_install = setuptools.command.easy_install:easy_install
|
|
||||||
install_scripts = setuptools.command.install_scripts:install_scripts
|
|
||||||
bdist_wininst = setuptools.command.bdist_wininst:bdist_wininst
|
|
||||||
bdist_egg = setuptools.command.bdist_egg:bdist_egg
|
|
||||||
install = setuptools.command.install:install
|
|
||||||
test = setuptools.command.test:test
|
|
||||||
install_lib = setuptools.command.install_lib:install_lib
|
|
||||||
build_ext = setuptools.command.build_ext:build_ext
|
|
||||||
sdist = setuptools.command.sdist:sdist
|
|
||||||
|
|
||||||
[egg_info.writers]
|
|
||||||
dependency_links.txt = setuptools.command.egg_info:overwrite_arg
|
|
||||||
requires.txt = setuptools.command.egg_info:write_requirements
|
|
||||||
PKG-INFO = setuptools.command.egg_info:write_pkg_info
|
|
||||||
eager_resources.txt = setuptools.command.egg_info:overwrite_arg
|
|
||||||
top_level.txt = setuptools.command.egg_info:write_toplevel_names
|
|
||||||
namespace_packages.txt = setuptools.command.egg_info:overwrite_arg
|
|
||||||
entry_points.txt = setuptools.command.egg_info:write_entries
|
|
||||||
depends.txt = setuptools.command.egg_info:warn_depends_obsolete
|
|
||||||
|
|
||||||
[console_scripts]
|
|
||||||
easy_install = setuptools.command.easy_install:main
|
|
||||||
easy_install-2.7 = setuptools.command.easy_install:main
|
|
||||||
|
|
||||||
[setuptools.file_finders]
|
|
||||||
svn_cvs = setuptools.command.sdist:_default_revctrl
|
|
||||||
|
|
||||||
[distutils.setup_keywords]
|
|
||||||
dependency_links = setuptools.dist:assert_string_list
|
|
||||||
entry_points = setuptools.dist:check_entry_points
|
|
||||||
extras_require = setuptools.dist:check_extras
|
|
||||||
use_2to3_exclude_fixers = setuptools.dist:assert_string_list
|
|
||||||
package_data = setuptools.dist:check_package_data
|
|
||||||
install_requires = setuptools.dist:check_requirements
|
|
||||||
use_2to3 = setuptools.dist:assert_bool
|
|
||||||
use_2to3_fixers = setuptools.dist:assert_string_list
|
|
||||||
include_package_data = setuptools.dist:assert_bool
|
|
||||||
exclude_package_data = setuptools.dist:check_package_data
|
|
||||||
namespace_packages = setuptools.dist:check_nsp
|
|
||||||
test_suite = setuptools.dist:check_test_suite
|
|
||||||
eager_resources = setuptools.dist:assert_string_list
|
|
||||||
zip_safe = setuptools.dist:assert_bool
|
|
||||||
test_loader = setuptools.dist:check_importable
|
|
||||||
packages = setuptools.dist:check_packages
|
|
||||||
convert_2to3_doctests = setuptools.dist:assert_string_list
|
|
||||||
tests_require = setuptools.dist:check_requirements
|
|
||||||
|
|
||||||
[setuptools.installation]
|
|
||||||
eggsecutable = setuptools.command.easy_install:bootstrap
|
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user