Compare commits

...

40 Commits

Author SHA1 Message Date
kennethreitz 6d78f7e3ed v64 2015-10-08 12:17:26 -04:00
kennethreitz 1e5ff1f8c9 Merge pull request #253 from ojacobson/preserve-original-build-dir
Preserve original build directory (including previously-installed programs) when moving app to /app during build.
2015-10-08 12:12:26 -04:00
kennethreitz 83538ca6ec Merge pull request #250 from cclauss/python-3.5.0-and-pypy-2.6.1
Python 3.5.0 and Pypy 2.6.1
2015-10-08 11:10:45 -04:00
kennethreitz 619bd638b0 correct setuptools 2015-10-08 10:08:24 -04:00
kennethreitz 5c359ba0fa Merge remote-tracking branch 'origin/master' 2015-10-08 10:04:04 -04:00
kennethreitz 27f019105e new setuptools and pip 2015-10-08 10:03:08 -04:00
kennethreitz eb572b5ab4 python 3.5.0 2015-10-08 09:43:15 -04:00
Owen Jacobson 67c3d38a03 Preserve original build directory (including previously-installed programs) when moving app to /app during build.
This means that binaries installed in $BUILD_DIR/.heroku/node (let's say) will
remain available during build, at the paths previous buildpacks established.
2015-10-07 18:47:24 -04:00
cclauss 8f4ca7f624 Python 3.5.0 and Pypy 2.6.1
Added python-3.5.0
Added pypy-2.6.1
Updated Readme.md
2015-09-22 12:12:19 +02:00
Matt Graham ce3bdb37ba Merge pull request #241 from heroku/readme-image
--------- Forwarded message ----------
From: M.-A. Lemburg <mal@python.org>
Date: Wed, Aug 12, 2015 at 1:41 AM
Subject: Re: [psf-trademarks] Question on usage of Python logo
To: Craig Kerstiens <craig@heroku.com>, psf-trademarks@python.org


Hi Craig,

we are happy to approve your use of the logo.

Thanks,
--
Marc-Andre Lemburg
Director
Python Software Foundation
http://www.python.org/psf/

On 27.07.2015 20:32, Craig Kerstiens wrote:...
2015-08-13 15:40:16 -04:00
kennethreitz 129ce5f0df changelog entry 2015-08-07 14:44:56 -04:00
kennethreitz 25f7421573 setuptools v18.1 2015-08-07 14:43:21 -04:00
Matt Graham 8c654b658c merge master 2015-07-31 16:58:44 -04:00
Matt Graham ed3691a0aa python banner image 2015-07-31 16:44:23 -04:00
kennethreitz ded2c5156a Merge pull request #239 from heroku/revert-238-mattgraham-patch-1
Revert "Update Readme.md"
2015-07-28 09:43:52 -04:00
Craig Kerstiens 7c3a6303d1 Revert "Update Readme.md" 2015-07-27 13:42:31 -07:00
kennethreitz 591ed6b150 Merge pull request #238 from heroku/mattgraham-patch-1
Update Readme.md
2015-07-27 16:37:59 -04:00
Matt Graham c1c4f50ef6 Update Readme.md 2015-07-27 14:30:36 -04:00
Matt Graham 2b29e7efeb Update Readme.md 2015-07-24 15:35:53 -04:00
kennethreitz 9f089b18e6 Rename Changelog.md to CHANGELOG.md 2015-07-16 11:52:26 -04:00
kennethreitz 9a1e43b8f2 Update Changelog.md 2015-07-16 11:31:41 -04:00
kennethreitz ac1ba4271c Update Changelog.md 2015-07-16 11:26:33 -04:00
kennethreitz af77d9baf8 Update Changelog.md 2015-07-16 11:25:05 -04:00
kennethreitz 706e6bab4f Update Changelog.md 2015-07-16 11:22:34 -04:00
kennethreitz b6fff224dd Update Changelog.md 2015-07-16 11:22:07 -04:00
kennethreitz 61d3d9580d Merge pull request #235 from jpadilla/master
Update pip to 7.1.0
2015-07-07 14:51:47 -04:00
José Padilla 69b88cb075 Update pip to 7.1.0 2015-07-02 18:15:11 -04:00
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
13 changed files with 104 additions and 143 deletions
+36
View File
@@ -0,0 +1,36 @@
# Python Buildpack Changelog
## v64 (2015-10-08)
Improved compatibility with multi and node.js buildpacks.
## v63 (2015-10-08)
Updated Pip and Setuptools.
- Setuptools updated to v18.3.2
- Pip updated to v7.1.2
## v62 (2015-08-07)
Updated Pip and Setuptools.
- Setuptools updated to v18.1
- Pip updated to v7.1.0
## v61 (2015-06-30)
Updated Pip and Setuptools.
- Setuptools updated to v18.0.1
- Pip updated to v7.0.3
## v60 (2015-05-27)
Default Python is now latest 2.7.10. Updated Pip and Distribute.
- Default Python version is v2.7.10
- Setuptools updated to v16.0
- Pip updated to v7.0.1
-130
View File
@@ -1,130 +0,0 @@
## v14
Features:
* 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)
Bugfixes:
* 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.
+7 -7
View File
@@ -1,5 +1,5 @@
Heroku buildpack: Python # Heroku buildpack: Python
======================== ![python-banner](https://cloud.githubusercontent.com/assets/51578/8914205/ecf2047c-346b-11e5-98c5-42547f9f4410.jpg)
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/).
@@ -17,7 +17,7 @@ Example usage:
$ git push heroku master $ git push heroku master
... ...
-----> Python app detected -----> Python app detected
-----> Installing runtime (python-2.7.9) -----> Installing runtime (python-2.7.10)
-----> Installing dependencies using pip -----> Installing dependencies using pip
Downloading/unpacking requests (from -r requirements.txt (line 1)) Downloading/unpacking requests (from -r requirements.txt (line 1))
Installing collected packages: requests Installing collected packages: requests
@@ -40,13 +40,13 @@ 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.4.3 python-3.5.0
Runtime options include: Runtime options include:
- python-2.7.9 - python-2.7.10
- python-3.4.3 - python-3.5.0
- pypy-2.4.0 (unsupported, experimental) - pypy-2.6.1 (unsupported, experimental)
- pypy3-2.4.0 (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. Other [unsupported runtimes](https://github.com/heroku/heroku-buildpack-python/tree/master/builds/runtimes) are available as well.
+6 -3
View File
@@ -7,6 +7,8 @@
# Fail fast and fail hard. # Fail fast and fail hard.
set -eo pipefail set -eo pipefail
[ "$BUILDPACK_XTRACE" ] && set -o xtrace
# Prepend proper path for virtualenv hackery. This will be deprecated soon. # Prepend proper path for virtualenv hackery. This will be deprecated soon.
export PATH=:/usr/local/bin:$PATH export PATH=:/usr/local/bin:$PATH
@@ -29,8 +31,8 @@ WEBCONCURRENCY_PROFILE_PATH="$BUILD_DIR/.profile.d/python.webconcurrency.sh"
DEFAULT_PYTHON_VERSION="python-2.7.10" DEFAULT_PYTHON_VERSION="python-2.7.10"
DEFAULT_PYTHON_STACK="cedar" DEFAULT_PYTHON_STACK="cedar"
PYTHON_EXE="/app/.heroku/python/bin/python" PYTHON_EXE="/app/.heroku/python/bin/python"
PIP_VERSION="7.0.1" PIP_VERSION="7.1.2"
SETUPTOOLS_VERSION="16.0" SETUPTOOLS_VERSION="18.3.2"
# Setup bpwatch # Setup bpwatch
export PATH=$PATH:$ROOT_DIR/vendor/bpwatch export PATH=$PATH:$ROOT_DIR/vendor/bpwatch
@@ -81,7 +83,7 @@ if [[ ! "$DOCKER_BUILD" ]]; then
# Copy Application code in. # Copy Application code in.
bpwatch start appdir_stage bpwatch start appdir_stage
deep-mv $BUILD_DIR $APP_DIR deep-cp $BUILD_DIR $APP_DIR
bpwatch stop appdir_stage bpwatch stop appdir_stage
fi fi
@@ -216,6 +218,7 @@ bpwatch stop dump_cache
if [[ ! "$DOCKER_BUILD" ]]; then if [[ ! "$DOCKER_BUILD" ]]; then
bpwatch start appdir_commit bpwatch start appdir_commit
rm -rf $ORIG_BUILD_DIR
deep-mv $BUILD_DIR $ORIG_BUILD_DIR deep-mv $BUILD_DIR $ORIG_BUILD_DIR
bpwatch stop appdir_commit bpwatch stop appdir_commit
+1 -1
View File
@@ -20,7 +20,7 @@ source $BIN_DIR/utils
bpwatch start libffi_install bpwatch start libffi_install
# If pylibmc exists within requirements, use vendored cryptography. # If pylibmc exists within requirements, use vendored cryptography.
if (pip-grep -s requirements.txt bcrypt cffi cryptography pyOpenSSL PyOpenSSL &> /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 if [ -d ".heroku/vendor/lib/libffi-3.1.1" ]; then
export LIBFFI=$(pwd)/vendor export LIBFFI=$(pwd)/vendor
+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/pypy-2.6.1-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.6.1-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
+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.5.0/Python-3.5.0.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.5.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
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+8 -2
View File
@@ -12,10 +12,16 @@ case $(ulimit -u) in
export WEB_CONCURRENCY=${WEB_CONCURRENCY:-4} export WEB_CONCURRENCY=${WEB_CONCURRENCY:-4}
;; ;;
# IX DYNO
16384)
export DYNO_RAM=2560
export WEB_CONCURRENCY=${WEB_CONCURRENCY:-8}
;;
# PX DYNO # PX DYNO
32768) 32768)
export DYNO_RAM=6144 export DYNO_RAM=6656
export WEB_CONCURRENCY=${WEB_CONCURRENCY:-9} export WEB_CONCURRENCY=${WEB_CONCURRENCY:-11}
;; ;;
esac esac
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.