Compare commits

..

83 Commits

Author SHA1 Message Date
kennethreitz a00133892d v61 2015-06-30 08:06:24 -04:00
kennethreitz 5eb337b80d fix ix dyno ulimit 2015-06-30 08:06:19 -04:00
kennethreitz d6212b46ce new setuptools 2015-06-29 14:41:15 -04:00
kennethreitz 3558766ae8 support for ix dynos 2015-06-25 06:34:44 -04:00
kennethreitz 34f4dc43d6 Merge pull request #226 from msabramo/xtrace
Set xtrace if $BUILDPACK_XTRACE set
2015-06-21 13:06:55 -04:00
kennethreitz 0024336558 Merge pull request #232 from jpadilla/master
Update pip to v7.0.3 and setuptools to v17.0
2015-06-21 13:06:28 -04:00
José Padilla c60c5321df Update setuptools to v17.0 2015-06-05 09:16:38 -04:00
José Padilla 0ba69875f5 Remove vendor/pip-7.0.1.tar.gz 2015-06-05 09:16:27 -04:00
José Padilla c8812c7e15 Update pip to v7.0.3 2015-06-04 22:11:20 -04:00
kennethreitz 7d4093795b pypy 2.6.0 2015-06-05 07:44:35 +08:00
kennethreitz 628ad0cb8b requests[security]
fixes #231
2015-06-05 07:43:40 +08:00
Marc Abramowitz 77ddd7c8a6 Set xtrace if $BUILDPACK_XTRACE set
For debugging or for folks who are curious about how the buildpack
works.
2015-05-30 10:00:24 -07:00
kennethreitz c53d54f203 changelog 2015-05-27 16:55:38 -07:00
kennethreitz ed6fe287c4 proper setuptools version 2015-05-27 16:12:59 -07:00
kennethreitz 4f5a88a05a --disable-pip-version-check 2015-05-27 16:08:44 -07:00
kennethreitz 347c0eba81 updated pip and setuptools 2015-05-27 16:07:03 -07:00
kennethreitz 14b482603e Python v2.7.10 2015-05-27 16:04:25 -07:00
kennethreitz 58ce002d35 python 2.7.10 2015-05-27 13:12:43 -07:00
kennethreitz 7fd3a047fd GDAL 2015-05-14 08:42:56 +02:00
kennethreitz 26b4bfbab6 gdal fix 2015-05-14 08:38:11 +02:00
kennethreitz 9e00de4e56 improvements to gdal step 2015-05-14 08:28:32 +02:00
kennethreitz afa8a0f75f pre-compiled gdal step 2015-05-14 08:27:16 +02:00
kennethreitz 52b8ae82b8 gdal is a vendor library 2015-05-14 08:03:36 +02:00
kennethreitz e6c339ebae first attempt at gdal build 2015-05-13 16:41:26 +02:00
kennethreitz 3ea0735768 orig_build_dir 2015-05-05 18:33:49 -07:00
kennethreitz 54b930bba3 Merge remote-tracking branch 'origin/master' 2015-05-05 18:26:20 -07:00
kennethreitz bf202224b7 buildpack cleanup 2015-05-05 18:25:12 -07:00
kennethreitz cead16eb57 remove debugging env 2015-05-05 18:21:10 -07:00
kennethreitz 5c91c81968 skip steps if $DOCKER_BUILD is present 2015-05-05 18:16:58 -07:00
kennethreitz 42594a47c1 Revert "remove old anvil cruft"
This reverts commit 0a78bd001e.
2015-05-05 18:11:10 -07:00
kennethreitz 9d20adca1a env 2015-05-05 18:09:45 -07:00
kennethreitz 181c09cfb7 cleanup / debug 2015-05-05 18:08:31 -07:00
kennethreitz 770947d6e6 Merge pull request #220 from crizCraig/patch-1
Typo in buildpack command. `heroku buildpack:set` -> `heroku buildpacks:...
2015-05-05 17:54:32 -07:00
kennethreitz 0a78bd001e remove old anvil cruft 2015-05-05 15:09:45 -07:00
Craig Quiter 5a1ece3955 Typo in buildpack command. heroku buildpack:set -> heroku buildpacks:set 2015-05-04 12:44:41 -07:00
kennethreitz 8266b99d1e don't uninstall pip or setuptools 2015-05-04 11:59:42 -07:00
kennethreitz e27470778c update pip-pop 2015-05-04 11:52:34 -07:00
kennethreitz 8ef4a006e0 make tools 2015-05-04 11:30:04 -07:00
kennethreitz 4fdaf14ded new pip, new setuptools 2015-05-04 11:09:15 -07:00
kennethreitz f1da8d4b5c Merge pull request #217 from heroku/pyOpenSSL
Detect pyOpenSSL
2015-04-24 15:09:29 -04:00
Steven F eb9689c0a2 Detect pyOpenSSL
Some people use pyOpenSSL (it is the literal name, e.g.: https://pypi.python.org/pypi/pyOpenSSL)
2015-04-24 06:03:43 +00:00
kennethreitz 6fe7c6bde0 Merge pull request #215 from ryanwitt/patch-1
correct usage comment
2015-04-21 17:18:36 -04:00
Ryan Witt a1b372ac66 correct usage comment 2015-04-21 13:22:17 -04:00
kennethreitz ddead6457a Merge pull request #213 from heroku/watsonian-update-readme
Update README to reflect new buildpack:set usage
2015-04-17 08:38:25 -04:00
Joel Watson 92b4385890 Update README to reflect new buildpack:set usage. 2015-04-15 15:45:09 -05:00
kennethreitz 7074d5cb50 Merge remote-tracking branch 'origin/master' 2015-04-02 14:35:16 -04:00
kennethreitz 2b1f1182c3 Merge pull request #211 from ollanta/ollanta/prefer-shallow-managepy
Prefer a 'manage.py' that exists higher up in the directory hierarchy
2015-04-02 14:34:53 -04:00
Ollanta 38fc8f4fe7 Prefer a 'manage.py' that exists higher up in the directory hierarchy 2015-04-02 14:53:52 +02:00
kennethreitz a203495532 pypy v2.5.1 2015-04-01 14:48:02 -04:00
kennethreitz 33a69d7f52 Merge remote-tracking branch 'origin/master' 2015-04-01 14:06:57 -04:00
kennethreitz fe3f12c430 Merge pull request #208 from cyx/master
Upgrade pip and make netrc github work
2015-03-26 13:16:55 -04:00
Cyril David aeb1a297d3 Patch to allow netrc buildpack[1] to work.
[1]: https://github.com/timshadel/heroku-buildpack-github-netrc
2015-03-23 05:47:01 -07:00
kennethreitz 4c1972c0b9 Merge pull request #206 from cclauss/patch-11
Update Readme.md to python-2.7.9 and python-3.4.3
2015-03-20 11:26:23 -07:00
kennethreitz 74f0f319dc pypy 2.5.0 2015-03-19 13:42:03 -07:00
Cyril David 683bba59d7 Update to 6.0.8 2015-03-18 21:15:43 -07:00
cclauss f890cdb889 Update Readme.md to python-2.7.9 and python-3.4.3 2015-03-19 02:42:19 +01:00
kennethreitz b3a98641f5 PyOpenSSL capitalization 2015-03-18 12:52:08 -07:00
kennethreitz ecbcfff5cb Merge remote-tracking branch 'origin/master' 2015-03-18 12:48:42 -07:00
kennethreitz 085d295342 Revert "sub-env pip-install"
This reverts commit 3c2839147f.
2015-03-18 12:48:33 -07:00
kennethreitz e842703721 Merge pull request #196 from t-io/master
extend LIBRARY_PATH
2015-03-18 12:47:04 -07:00
kennethreitz c229070c21 don't print that the stack changed. 2015-03-18 12:43:31 -07:00
kennethreitz 67867f1083 add pyopenssl to libffi support 2015-03-17 14:31:01 -07:00
kennethreitz 91b76c4ca9 Python 3.4.3 2015-03-17 10:59:22 -07:00
Thomas Iovine d2b82441fe Update compile 2015-02-05 17:14:48 +01:00
kennethreitz 532b36f5f7 Merge pull request #194 from thruflo/secure-urls
http: update all external links to use secure protocol.
2015-01-15 17:29:59 -05:00
James Arthur abe34011e5 http: update all external links to use secure protocol. 2015-01-14 09:57:40 +00:00
kennethreitz 4b57be0ae1 fix px dyno ram 2015-01-08 14:45:55 -05:00
kennethreitz d8a75c56d0 WEBCONCURRENCY_PROFILE_PATH 2015-01-08 14:35:32 -05:00
kennethreitz 27ce818f3d PX Dynos = 9 workers 2015-01-08 14:32:35 -05:00
kennethreitz f582b2f4fa setuptools v11.3.1 2015-01-08 14:29:43 -05:00
kennethreitz c46a779ea1 python webconcurrency script 2015-01-06 14:08:16 -05:00
kennethreitz 06a7d9e187 further support for latest pip 2015-01-06 13:41:03 -05:00
kennethreitz ca773cf957 support for latest pip 2015-01-06 13:37:32 -05:00
kennethreitz 26b54b690c update pip and setuptools 2015-01-05 17:16:45 -05:00
kennethreitz 871d5b5935 Merge pull request #189 from cclauss/patch-8
Update Readme.md to pypy3-2.4.0
2014-12-25 23:12:46 -05:00
cclauss 0382c31225 Update Readme.md to pypy3-2.4.0 2014-12-25 11:17:47 +01:00
Kenneth Reitz 4a856ff5b3 remove vendor directory for cedar-14 2014-12-19 15:45:30 -05:00
Kenneth Reitz e247704dfb pypy3 2014-12-19 13:56:11 -05:00
Kenneth Reitz c8b031fafc change to pypy3 2014-12-19 13:45:53 -05:00
Kenneth Reitz 68b740cce6 pypy3! 2014-12-19 13:40:09 -05:00
kennethreitz e856e787aa Merge pull request #180 from cclauss/patch-6
Create pypy3-2.4.0
2014-12-19 13:39:21 -05:00
cclauss 8ec0b5f0dd Update pypy3-2.4.0 2014-11-21 19:46:34 +01:00
cclauss eb395a94f9 Create pypy3-2.4.0
Support for the new Pypy3 release http://morepypy.blogspot.com
2014-10-23 07:59:47 -04:00
83 changed files with 318 additions and 235 deletions
+7 -126
View File
@@ -1,130 +1,11 @@
## v14
## v61
Features:
- Setuptools updated to v18.0.1
- Pip updated to v7.0.3
* Full removal of Django settings injection for new apps.
* Support for profile.d
* Fresh app detection.
* Update to Virtualenv v1.7.2
* Updated to Pip v1.1 (patched)
## v60
Bugfixes:
- Default Python version is v2.7.10
- Setuptools updated to v16.0
- Pip updated to v7.0.1
* Default pip path exists action.
## v13
Bugfixes:
* Fix pip quoting error.
* Only talk about collectstatic in buildpack output when it's configured.
## v12
Bugfixes:
* Catch database setting corner case.
## v11
Bugfixes:
* Cleanup collectstatic output.
## v10
Bugfixes:
* Check for collectstatic validity with --dry-run instead of --help for Django 1.4.
## v9
Bugfixes:
* Unset PYTHONHOME in buildpack for [user_env_compile](http://devcenter.heroku.com/articles/labs-user-env-compile).
## v8
Features:
* Disable Django collectstatic with `$DISABLE_COLLECTSTATIC` + [user_env_compile](http://devcenter.heroku.com/articles/labs-user-env-compile).
Bugfixes:
* Don't disbable injection for new Django apps.
* Inform user of July 1, 2012 deprecation of Django injection.
## v7
Features:
* Full removal of Django setting injection for new apps.
* Automatic execution of collectstatic.
* Suppress collectstatic errors via env SILENCE_COLLECTSTATIC.
* Increase settings.py search depth to 3.
* Search recursively from included requirements.txt files.
## v6 (03/23/2012)
Features:
* Dist packages (setup.py) support.
* Move new virtualenvs to `/app/.heroku/venv`.
* Heavily improved Django app detection, accounting for `Django` in `requirements.txt`.
* Literate [documentation](http://python-buildpack.herokuapp.com).
* Default `$PYTHONHOME`, `$PYTHONPATH`, and `$LANG` configurations.
* Disable Django setting injection with `$DISABLE_INJECTION` + [user_env_compile](http://devcenter.heroku.com/articles/labs-user-env-compile).
* General code refactor and improved messaging.
* Unit tests.
Bugfixes:
* Django 1.4 startproject template layout support.
* Django `manage.py` location can now be independent from `settings.py`.
## v5 (02/01/2012)
Bugfixes:
* Git requirements 100% work.
## v4 (01/20/2012)
Features:
* Updated to virtualenv v1.7 with patched pip v1.2.
* Actually activate created virtualenv within compile process.
* Use distribute instead of deprecated setuptools.
* Automatically destroy and rebuild corrupt virtualenvs.
* Refactor django and pylibmc detection.
Bugfixes:
* Fixed `package==dev` in requirements with patched pip embedded within virtualenv. Patch upstreamed.
* Minor curl/rm flag fixes (thanks, contributors!)
## v3 (12/07/2011)
Bugfixes:
* Better django setup.py injection.
## v2 (11/15/2011)
Features:
* Support for pylibmc and libmemcached +sasl.
Bugfixes:
* Detect when virtualenv is checked in and alert user.
## v1 (10/01/2011)
* Conception.
+5
View File
@@ -3,3 +3,8 @@
tests:
./bin/test
tools:
git clone https://github.com/kennethreitz/pip-pop.git
mv pip-pop/bin/* vendor/pip-pop/
rm -fr pip-pop
+6 -6
View File
@@ -17,7 +17,7 @@ Example usage:
$ git push heroku master
...
-----> Python app detected
-----> Installing runtime (python-2.7.8)
-----> Installing runtime (python-2.7.9)
-----> Installing dependencies using pip
Downloading/unpacking requests (from -r requirements.txt (line 1))
Installing collected packages: requests
@@ -28,7 +28,7 @@ Example usage:
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 buildpacks:set 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.
@@ -40,13 +40,13 @@ Specify a Runtime
You can also provide arbitrary releases Python with a `runtime.txt` file.
$ cat runtime.txt
python-3.4.2
python-3.4.3
Runtime options include:
- python-2.7.8
- python-3.4.2
- python-2.7.9
- python-3.4.3
- pypy-2.4.0 (unsupported, experimental)
- pypy3-2.3.1 (unsupported, experimental)
- pypy3-2.4.0 (unsupported, experimental)
Other [unsupported runtimes](https://github.com/heroku/heroku-buildpack-python/tree/master/builds/runtimes) are available as well.
+37 -18
View File
@@ -7,6 +7,8 @@
# Fail fast and fail hard.
set -eo pipefail
[ "$BUILDPACK_XTRACE" ] && set -o xtrace
# Prepend proper path for virtualenv hackery. This will be deprecated soon.
export PATH=:/usr/local/bin:$PATH
@@ -24,12 +26,13 @@ CACHED_DIRS=".heroku"
VIRTUALENV_LOC=".heroku/venv"
LEGACY_TRIGGER="lib/python2.7"
PROFILE_PATH="$BUILD_DIR/.profile.d/python.sh"
WEBCONCURRENCY_PROFILE_PATH="$BUILD_DIR/.profile.d/python.webconcurrency.sh"
DEFAULT_PYTHON_VERSION="python-2.7.9"
DEFAULT_PYTHON_VERSION="python-2.7.10"
DEFAULT_PYTHON_STACK="cedar"
PYTHON_EXE="/app/.heroku/python/bin/python"
PIP_VERSION="1.5.6"
SETUPTOOLS_VERSION="7.0"
PIP_VERSION="7.0.3"
SETUPTOOLS_VERSION="18.0.1"
# Setup bpwatch
export PATH=$PATH:$ROOT_DIR/vendor/bpwatch
@@ -65,20 +68,25 @@ source $BIN_DIR/utils
APP_DIR='/app'
TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
# Copy Anvil app dir to temporary storage...
bpwatch start anvil_appdir_stage
# Skip these steps for Docker.
if [[ ! "$DOCKER_BUILD" ]]; then
# Copy Anvil app dir to temporary storage...
bpwatch start anvil_appdir_stage
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
bpwatch stop anvil_appdir_stage
# Copy Application code in.
bpwatch start appdir_stage
deep-mv $BUILD_DIR $APP_DIR
bpwatch stop appdir_stage
fi
# Copy Application code in.
bpwatch start appdir_stage
deep-mv $BUILD_DIR $APP_DIR
bpwatch stop appdir_stage
# Set new context.
ORIG_BUILD_DIR=$BUILD_DIR
@@ -107,6 +115,7 @@ if [ ! -f requirements.txt ]; then
echo "-e ." > requirements.txt
fi
# Sticky runtimes.
if [ -f $CACHE_DIR/.heroku/python-version ]; then
DEFAULT_PYTHON_VERSION=$(cat $CACHE_DIR/.heroku/python-version)
@@ -165,8 +174,11 @@ source $BIN_DIR/steps/pylibmc
# Libffi support.
source $BIN_DIR/steps/cryptography
# GDAL support.
source $BIN_DIR/steps/gdal
# Install dependencies with Pip.
sub-env $BIN_DIR/steps/pip-install
source $BIN_DIR/steps/pip-install
# Django collectstatic support.
sub-env $BIN_DIR/steps/collectstatic
@@ -179,12 +191,15 @@ sub-env $BIN_DIR/steps/collectstatic
set-env PATH '$HOME/.heroku/python/bin:$PATH'
set-env PYTHONUNBUFFERED true
set-env PYTHONHOME /app/.heroku/python
set-env LIBRARY_PATH /app/.heroku/vendor/lib:/app/.heroku/python/lib
set-env LIBRARY_PATH '/app/.heroku/vendor/lib:/app/.heroku/python/lib:$LIBRARY_PATH'
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 PYTHONHASHSEED random
set-default-env PYTHONPATH /app/
# Install sane-default script for WEB_CONCURRENCY environment variable.
cp $ROOT_DIR/vendor/python.webconcurrency.sh $WEBCONCURRENCY_PROFILE_PATH
# Experimental post_compile hook.
bpwatch start post_compile
@@ -200,14 +215,18 @@ bpwatch start dump_cache
bpwatch stop dump_cache
# ### Fin.
bpwatch start appdir_commit
deep-mv $BUILD_DIR $ORIG_BUILD_DIR
bpwatch stop appdir_commit
if [[ ! "$DOCKER_BUILD" ]]; then
bpwatch start anvil_appdir_commit
bpwatch start appdir_commit
deep-mv $BUILD_DIR $ORIG_BUILD_DIR
bpwatch stop appdir_commit
bpwatch start anvil_appdir_commit
if [ "$SLUG_ID" ]; then
deep-mv $TMP_APP_DIR $APP_DIR
fi
bpwatch stop anvil_appdir_commit
bpwatch stop compile
bpwatch stop anvil_appdir_commit
bpwatch stop compile
fi
+2 -2
View File
@@ -2,7 +2,7 @@
source $BIN_DIR/utils
MANAGE_FILE=$(find . -maxdepth 3 -type f -name 'manage.py' | head -1)
MANAGE_FILE=$(find . -maxdepth 3 -type f -name 'manage.py' -printf '%d\t%P\n' | sort -nk1 | cut -f2 | head -1)
MANAGE_FILE=${MANAGE_FILE:-fakepath}
[ -f .heroku/collectstatic_disabled ] && DISABLE_COLLECTSTATIC=1
@@ -33,4 +33,4 @@ if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ]; then
echo
fi
bpwatch stop collectstatic
bpwatch stop collectstatic
+2 -2
View File
@@ -10,7 +10,7 @@
# This script is invoked by [`bin/compile`](/).
# The location of the pre-compiled cryptography binary.
VENDORED_LIBFFI="http://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libffi.tar.gz"
VENDORED_LIBFFI="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libffi.tar.gz"
PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH"
@@ -20,7 +20,7 @@ source $BIN_DIR/utils
bpwatch start libffi_install
# If pylibmc exists within requirements, use vendored cryptography.
if (pip-grep -s requirements.txt bcrypt cffi cryptography &> /dev/null) then
if (pip-grep -s requirements.txt bcrypt cffi cryptography pyOpenSSL PyOpenSSL requests[security] &> /dev/null) then
if [ -d ".heroku/vendor/lib/libffi-3.1.1" ]; then
export LIBFFI=$(pwd)/vendor
Executable
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env bash
# This script serves as the GDAL build step of the
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# compiler.
#
# A [buildpack](http://devcenter.heroku.com/articles/buildpacks) is an
# adapter between a Python application and Heroku's runtime.
#
# This script is invoked by [`bin/compile`](/).
# The location of the pre-compiled cryptography binary.
VENDORED_GDAL="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/gdal.tar.gz"
PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH"
# Syntax sugar.
source $BIN_DIR/utils
bpwatch start gdal_install
# If GDAL exists within requirements, use vendored gdal.
if (pip-grep -s requirements.txt GDAL &> /dev/null) then
if [ -f ".heroku/vendor/bin/gdalserver" ]; then
export GDAL=$(pwd)/vendor
else
echo "-----> Noticed GDAL. Bootstrapping gdal."
mkdir -p .heroku/vendor
# Download and extract cryptography into target vendor directory.
curl $VENDORED_GDAL -s | tar zxv -C .heroku/vendor &> /dev/null
export GDAL=$(pwd)/vendor
fi
fi
bpwatch stop gdal_install
+2 -6
View File
@@ -1,14 +1,10 @@
#!/usr/bin/env bash
source $BIN_DIR/utils
# Install dependencies with Pip.
puts-step "Installing dependencies with pip"
[ ! "$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
/app/.heroku/python/bin/pip install -r requirements.txt --exists-action=w --src=./.heroku/src --allow-all-external --disable-pip-version-check --no-cache-dir | cleanup | indent
# Smart Requirements handling
cp requirements.txt .heroku/python/requirements-declared.txt
@@ -17,4 +13,4 @@ cp requirements.txt .heroku/python/requirements-declared.txt
[ ! "$FRESH_PYTHON" ] && bpwatch stop pip_install
[ "$FRESH_PYTHON" ] && bpwatch stop pip_install_first
echo
echo
+1 -1
View File
@@ -5,7 +5,7 @@ if [[ -f .heroku/python/requirements-declared.txt ]]; then
cp .heroku/python/requirements-declared.txt requirements-declared.txt
pip-diff --stale requirements-declared.txt requirements.txt > .heroku/python/requirements-stale.txt
pip-diff --stale requirements-declared.txt requirements.txt --exclude setuptools pip > .heroku/python/requirements-stale.txt
rm -fr requirements-declared.txt
+1 -1
View File
@@ -10,7 +10,7 @@
# This script is invoked by [`bin/compile`](/).
# The location of the pre-compiled libmemcached binary.
VENDORED_MEMCACHED="http://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libmemcache.tar.gz"
VENDORED_MEMCACHED="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libmemcache.tar.gz"
# Syntax sugar.
source $BIN_DIR/utils
+2 -3
View File
@@ -15,8 +15,7 @@ fi
if [ ! $STACK = $CACHED_PYTHON_STACK ]; then
bpwatch start uninstall_python
puts-step "Stack changed, re-installing runtime"
rm -fr .heroku/python
rm -fr .heroku/python .heroku/python-stack .heroku/vendor
unset SKIP_INSTALL
bpwatch stop uninstall_python
fi
@@ -29,7 +28,7 @@ if [ ! "$SKIP_INSTALL" ]; then
# Prepare destination directory.
mkdir -p .heroku/python
curl http://lang-python.s3.amazonaws.com/$STACK/runtimes/$PYTHON_VERSION.tar.gz -s | tar zxv -C .heroku/python &> /dev/null
curl https://lang-python.s3.amazonaws.com/$STACK/runtimes/$PYTHON_VERSION.tar.gz -s | tar zxv -C .heroku/python &> /dev/null
if [[ $? != 0 ]] ; then
puts-warn "Requested runtime ($PYTHON_VERSION) is not available for this stack ($STACK)."
puts-warn "Aborting. More info: https://devcenter.heroku.com/articles/python-support"
+2 -2
View File
@@ -36,7 +36,7 @@ set-default-env() {
echo "export $1=\${$1:-$2}" >> $PROFILE_PATH
}
# Usage: $ set-default-env key value
# Usage: $ un-set-env key
un-set-env() {
echo "unset $1" >> $PROFILE_PATH
}
@@ -68,7 +68,7 @@ deep-rm() {
# subshell to avoid surprising caller with shopts.
(
shopt -s dotglob
rm -rf "$1"/!(tmp|.|..)
rm -rf "$1"/!(.curlrc|.netrc|tmp|.|..)
)
}
+1 -1
View File
@@ -6,7 +6,7 @@ OUT_PREFIX=$1
echo "Building autoconf..."
SOURCE_TARBALL='http://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz'
SOURCE_TARBALL='https://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz'
curl -L $SOURCE_TARBALL | tar xz
cd autoconf-2.68
+1 -1
View File
@@ -10,7 +10,7 @@ hash -r
echo "Building libffi..."
SOURCE_TARBALL='http://cl.ly/2s1t1u3v0N0I/download/libffi-3.1.tar'
SOURCE_TARBALL='https://cl.ly/2s1t1u3v0N0I/download/libffi-3.1.tar'
curl -L $SOURCE_TARBALL | tar x
+1 -1
View File
@@ -6,7 +6,7 @@ OUT_PREFIX=$1
echo "Building SQLite..."
SOURCE_TARBALL='http://www.sqlite.org/sqlite-autoconf-3070900.tar.gz'
SOURCE_TARBALL='https://www.sqlite.org/sqlite-autoconf-3070900.tar.gz'
curl $SOURCE_TARBALL | tar xz
# jx
Vendored Executable
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/vendor/
OUT_PREFIX=$1
# Use new path, containing autoconf.
export PATH="/app/.heroku/python/bin/:$PATH"
hash -r
echo "Building gdal..."
SOURCE_TARBALL='http://download.osgeo.org/gdal/1.11.0/gdal-1.11.0.tar.gz'
curl -L $SOURCE_TARBALL | tar zx
cd gdal-1.11.0
./configure --prefix=$OUT_PREFIX &&
make
make install
# Cleanup
cd ..
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.0-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.5.0-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.1-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.5.1-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.0-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.6.0-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy3-2.4.0-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy3-2.4.0-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy3 $OUT_PREFIX/bin/python
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.4.4/Python-2.4.4.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.4.5/Python-2.4.5.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.4.6/Python-2.4.6.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.5/Python-2.5.tgz'
SOURCE_TARBALL='https://python.org/ftp/python/2.5/Python-2.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.5 src
cd src
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.5.1/Python-2.5.1.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.5.2/Python-2.5.2.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.5.3/Python-2.5.3.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.5.4/Python-2.5.4.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.5.5/Python-2.5.5.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.5.6/Python-2.5.6.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -10,7 +10,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://www.python.org/ftp/python/2.6/Python-2.6.tar.bz2'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -10,7 +10,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.1/Python-2.6.1.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.2/Python-2.6.2.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.3/Python-2.6.3.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.4/Python-2.6.4.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.5/Python-2.6.5.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.6/Python-2.6.6.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.7/Python-2.6.7.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.8/Python-2.6.8.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -8,7 +8,7 @@ OUT_PREFIX=$1
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.9/Python-2.6.9.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7/Python-2.7.tgz'
SOURCE_TARBALL='https://python.org/ftp/python/2.7/Python-2.7.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7 src
cd src
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.1/Python-2.7.1.tgz'
SOURCE_TARBALL='https://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
+15
View File
@@ -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='https://python.org/ftp/python/2.7.10/Python-2.7.10.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.10 src
cd src
./configure --prefix=$OUT_PREFIX --with-ensurepip=no
make
make install
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.3/Python-2.7.3.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.4/Python-2.7.4.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.6/Python-2.7.6.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.7/Python-2.7.7.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.7/Python-2.7.7.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.8/Python-2.7.8.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.8/Python-2.7.8.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.9/Python-2.7.9.tgz'
SOURCE_TARBALL='https://python.org/ftp/python/2.7.9/Python-2.7.9.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.9 src
cd src
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.1/Python-3.1.tgz'
SOURCE_TARBALL='https://python.org/ftp/python/3.1/Python-3.1.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.1 src
cd src
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.1.1/Python-3.1.1.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.1.2/Python-3.1.2.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.1.3/Python-3.1.3.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.1.4/Python-3.1.4.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.1.5/Python-3.1.5.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.2/Python-3.2.tgz'
SOURCE_TARBALL='https://python.org/ftp/python/3.2/Python-3.2.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.2 src
cd src
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.2.1/Python-3.2.1.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.2.2/Python-3.2.2.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.2.3/Python-3.2.3.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.2.4/Python-3.2.4.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.2.5/Python-3.2.5.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.3.1/Python-3.3.1.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.3.2/Python-3.3.2.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.3.3/Python-3.3.3.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.3.4/Python-3.3.4.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.3.5/Python-3.3.5.tgz'
SOURCE_TARBALL='https://python.org/ftp/python/3.3.5/Python-3.3.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.3.5 src
cd src
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.3.6/Python-3.3.6.tgz'
SOURCE_TARBALL='https://python.org/ftp/python/3.3.6/Python-3.3.6.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.3.6 src
cd src
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.4.0/Python-3.4.0.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.4.1/Python-3.4.1.tgz'
SOURCE_TARBALL='https://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
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.4.2/Python-3.4.2.tgz'
SOURCE_TARBALL='https://python.org/ftp/python/3.4.2/Python-3.4.2.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.4.2 src
cd src
+18
View File
@@ -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='https://python.org/ftp/python/3.4.3/Python-3.4.3.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.4.3 src
cd src
./configure --prefix=$OUT_PREFIX --with-ensurepip=no --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+14 -9
View File
@@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
"""Usage:
pip-diff (--fresh | --stale) <reqfile1> <reqfile2>
pip-diff (--fresh | --stale) <reqfile1> <reqfile2> [--exclude <package>...]
pip-diff (-h | --help)
Options:
@@ -14,6 +14,9 @@ import os
from docopt import docopt
from pip.req import parse_requirements
from pip.index import PackageFinder
from pip._vendor.requests import session
requests = session()
class Requirements(object):
def __init__(self, reqfile=None):
@@ -32,13 +35,13 @@ class Requirements(object):
if not os.path.exists(reqfile):
raise ValueError('The given requirements file does not exist.')
finder = PackageFinder([], [])
for requirement in parse_requirements(reqfile, finder=finder):
finder = PackageFinder([], [], session=requests)
for requirement in parse_requirements(reqfile, finder=finder, session=requests):
if requirement.req:
self.requirements.append(requirement.req)
def diff(self, requirements, ignore_versions=False):
def diff(self, requirements, ignore_versions=False, excludes=None):
r1 = self
r2 = requirements
results = {'fresh': [], 'stale': []}
@@ -52,7 +55,7 @@ class Requirements(object):
for req in r2.requirements:
r = req.project_name if ignore_versions else req
if r not in other_reqs:
if r not in other_reqs and r not in excludes:
results['fresh'].append(req)
# Generate stale packages.
@@ -64,7 +67,7 @@ class Requirements(object):
for req in r1.requirements:
r = req.project_name if ignore_versions else req
if r not in other_reqs:
if r not in other_reqs and r not in excludes:
results['stale'].append(req)
return results
@@ -73,9 +76,10 @@ class Requirements(object):
def diff(r1, r2, include_fresh=False, include_stale=False):
def diff(r1, r2, include_fresh=False, include_stale=False, excludes=None):
include_versions = True if include_stale else False
excludes = excludes if len(excludes) else []
try:
r1 = Requirements(r1)
@@ -84,7 +88,7 @@ def diff(r1, r2, include_fresh=False, include_stale=False):
print('There was a problem loading the given requirements files.')
exit(os.EX_NOINPUT)
results = r1.diff(r2, ignore_versions=True)
results = r1.diff(r2, ignore_versions=True, excludes=excludes)
if include_fresh:
for line in results['fresh']:
@@ -103,7 +107,8 @@ def main():
'r1': args['<reqfile1>'],
'r2': args['<reqfile2>'],
'include_fresh': args['--fresh'],
'include_stale': args['--stale']
'include_stale': args['--stale'],
'excludes': args['<package>']
}
diff(**kwargs)
+4 -2
View File
@@ -11,7 +11,9 @@ import os
from docopt import docopt
from pip.req import parse_requirements
from pip.index import PackageFinder
from pip._vendor.requests import session
requests = session()
class Requirements(object):
def __init__(self, reqfile=None):
@@ -30,8 +32,8 @@ class Requirements(object):
if not os.path.exists(reqfile):
raise ValueError('The given requirements file does not exist.')
finder = PackageFinder([], [])
for requirement in parse_requirements(reqfile, finder=finder):
finder = PackageFinder([], [], session=requests)
for requirement in parse_requirements(reqfile, finder=finder, session=requests):
self.requirements.append(requirement)
+27
View File
@@ -0,0 +1,27 @@
case $(ulimit -u) in
# 1X DYNO
256)
export DYNO_RAM=512
export WEB_CONCURRENCY=${WEB_CONCURRENCY:-2}
;;
# 2X DYNO
512)
export DYNO_RAM=1024
export WEB_CONCURRENCY=${WEB_CONCURRENCY:-4}
;;
# IX DYNO
16384)
export DYNO_RAM=2560
export WEB_CONCURRENCY=${WEB_CONCURRENCY:-8}
;;
# PX DYNO
32768)
export DYNO_RAM=6656
export WEB_CONCURRENCY=${WEB_CONCURRENCY:-11}
;;
esac
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.