Compare commits

...

66 Commits

Author SHA1 Message Date
kennethreitz 9179b3cac0 v70 changelog 2015-10-29 11:57:59 -04:00
kennethreitz 5be33758ed Merge branch 'cache' 2015-10-29 11:56:36 -04:00
kennethreitz 41a44272d2 pypy-4.0.0 2015-10-29 11:53:24 -04:00
kennethreitz 6b3f63252f cleanup 2015-10-27 12:50:17 -04:00
kennethreitz c9acc4154b / 2015-10-27 12:23:15 -04:00
kennethreitz d5fed79e86 update to caching mechanism pt 2 2015-10-27 12:22:40 -04:00
kennethreitz 05edd6b065 update to caching mechanism 2015-10-27 12:15:53 -04:00
kennethreitz d96914ab2e restore master's compile script 2015-10-15 11:40:55 -04:00
kennethreitz 4c4e192317 Merge branch 'master' into cache 2015-10-15 10:48:58 -04:00
kennethreitz 2963d2520b update changelog 2015-10-15 10:34:24 -04:00
kennethreitz 85686805a7 Merge branch 'master' into merge 2015-10-15 10:33:12 -04:00
kennethreitz eef41088b1 mkdir-p 2015-10-13 11:23:34 -04:00
kennethreitz f7387427c8 changes 2015-10-13 11:12:55 -04:00
kennethreitz 23e1164c93 try removing .heroku 2015-10-13 11:09:39 -04:00
kennethreitz fd4ab23f50 debug 2015-10-13 11:03:49 -04:00
kennethreitz c78bf77055 allow them to fail 2015-10-13 11:02:17 -04:00
kennethreitz 5e212e4db8 CACHED_DIR 2015-10-13 11:01:51 -04:00
kennethreitz 9f666cee79 explicit is better than implicit 2015-10-13 10:57:51 -04:00
kennethreitz 69e9368c2d further don't error out 2015-10-13 10:48:50 -04:00
kennethreitz 4513dd7522 don't error out on directories that may not exist 2015-10-13 10:47:09 -04:00
kennethreitz 8b3e99adb3 manual cache population 2015-10-13 10:42:57 -04:00
kennethreitz c5972cdb74 .heroku 2015-10-13 10:37:00 -04:00
kennethreitz 7b9bc848ee starting over 2015-10-13 10:33:55 -04:00
kennethreitz 921a4c31a8 back to deep mv 2015-10-13 10:31:39 -04:00
kennethreitz 67063fc34f fix 2015-10-13 10:27:03 -04:00
kennethreitz 21dd1782fa whitelisting 2015-10-13 10:25:49 -04:00
kennethreitz beb8c70585 cleanup 2015-10-13 10:17:29 -04:00
kennethreitz b46cc0c6da ignore cleanup the cache 2015-10-13 10:16:10 -04:00
kennethreitz 74af94132a try hardcoding it in 2015-10-13 10:14:54 -04:00
kennethreitz 24cc273800 whitelist cache 2015-10-13 10:13:23 -04:00
kennethreitz c0fbb0723a attempt to whitelist cache entries for python buildpack 2015-10-13 10:13:09 -04:00
kennethreitz 6ab397db10 whitelist 2015-10-13 10:03:50 -04:00
kennethreitz d8623ae454 whitelist approach 2015-10-13 10:02:34 -04:00
kennethreitz e6d395fa27 ls /app/.heroku 2015-10-13 09:57:13 -04:00
kennethreitz e77090b6b8 copy them to the cache dir 2015-10-13 09:55:48 -04:00
kennethreitz c61f907079 echo 2015-10-13 09:53:47 -04:00
kennethreitz bd90eecd8c fix bug in cache_dir 2015-10-13 09:49:49 -04:00
kennethreitz 44b2ef0c4e an attempt at fixing caching 2015-10-13 09:47:28 -04:00
kennethreitz 38d73effc1 an attempt at fixing caching 2015-10-13 09:47:14 -04:00
kennethreitz 6f6b75bb1f Update CHANGELOG.md 2015-10-12 16:23:00 -04:00
kennethreitz cd90c7d1d8 v68 2015-10-12 10:39:07 -04:00
kennethreitz ce3c68538d no .heroku/venv 2015-10-12 10:36:34 -04:00
kennethreitz b6adf5223b changelog cleanup 2015-10-12 09:52:18 -04:00
kennethreitz 0818d5428f v67 2015-10-12 09:51:56 -04:00
kennethreitz 1d8afb452e legacy venv location 2015-10-12 09:47:52 -04:00
Owen Jacobson 1c82d820c9 Be more conservative to what we cache 2015-10-09 15:28:24 -04:00
kennethreitz 7cf8712d3c v66 2015-10-09 10:36:36 -04:00
kennethreitz 2b62692ab2 Merge branch 'preserve-ORIG_BUILD_DIR' of https://github.com/tommyvn/heroku-buildpack-python into multi 2015-10-09 09:40:03 -04:00
kennethreitz 9188d94723 v65 2015-10-08 13:34:48 -04:00
kennethreitz 2ba3e06f4e Revert "Merge pull request #253 from ojacobson/preserve-original-build-dir"
This reverts commit 1e5ff1f8c9, reversing
changes made to 83538ca6ec.
2015-10-08 13:16:52 -04:00
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
Tom van Neerijnen a91e9c2fc1 export BUILD_DIR and friends after context change
Anything using theses exported variables should be using them in the new
context rather than the old
2015-08-12 11:43:39 +01:00
Tom van Neerijnen da96cdf21e set *PROFILE_PATH after context change
PROFILE_PATH and WEBCONCURRENCY_PROFILE_PATH must land in the new build context and
so should be set after the new context is created
2015-08-12 11:33:06 +01:00
Tom van Neerijnen 0b2e4e9b22 preserve ORIG_BUILD_DIR during the build process
using the apt buildpack in combination with the multi buildpack exports some
paths out of ORIG_BUILD_DIR. By copying instead of moving this should allow
building of python modules that have dependancies on any packages installed
into ORIG_BUILD_DIR.
2015-08-12 10:53:51 +01:00
kennethreitz 129ce5f0df changelog entry 2015-08-07 14:44:56 -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
10 changed files with 131 additions and 29 deletions
+44 -2
View File
@@ -1,8 +1,51 @@
# Python Buildpack Changelog # Python Buildpack Changelog
## v70 (2015-10-29)
Improved compatibility with multi and node.js buildpacks.
## v69 (2015-10-12)
Revert to v66.
## v68 (2015-10-12)
Fixed .heroku/venv error with modern apps.
## v67 (2015-10-12)
Further improved cache compatibility with multi and node.js buildpacks.
## v66 (2015-10-09)
Improved compatibility with multi and node.js buildpacks.
## v65 (2015-10-08)
Reverted v64.
## 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) ## v61 (2015-06-30)
Updated Pip and Distribute. Updated Pip and Setuptools.
- Setuptools updated to v18.0.1 - Setuptools updated to v18.0.1
- Pip updated to v7.0.3 - Pip updated to v7.0.3
@@ -14,4 +57,3 @@ Default Python is now latest 2.7.10. Updated Pip and Distribute.
- Default Python version is v2.7.10 - Default Python version is v2.7.10
- Setuptools updated to v16.0 - Setuptools updated to v16.0
- Pip updated to v7.0.1 - Pip updated to v7.0.1
+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.
+33 -19
View File
@@ -19,20 +19,15 @@ BUILD_DIR=$1
CACHE_DIR=$2 CACHE_DIR=$2
ENV_DIR=$3 ENV_DIR=$3
CACHED_DIRS=".heroku"
# Static configurations for virtualenv caches. # Static configurations for virtualenv caches.
VIRTUALENV_LOC=".heroku/venv" VIRTUALENV_LOC=".heroku/venv"
LEGACY_TRIGGER="lib/python2.7" 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.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.1.0" PIP_VERSION="7.1.2"
SETUPTOOLS_VERSION="18.1" SETUPTOOLS_VERSION="18.3.2"
# Setup bpwatch # Setup bpwatch
export PATH=$PATH:$ROOT_DIR/vendor/bpwatch export PATH=$PATH:$ROOT_DIR/vendor/bpwatch
@@ -57,10 +52,6 @@ TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
bpwatch start compile bpwatch start compile
# We'll need to send these statics to other scripts we `source`.
export BUILD_DIR CACHE_DIR BIN_DIR PROFILE_PATH
# Syntax sugar. # Syntax sugar.
source $BIN_DIR/utils source $BIN_DIR/utils
@@ -83,7 +74,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
@@ -92,6 +83,13 @@ fi
ORIG_BUILD_DIR=$BUILD_DIR ORIG_BUILD_DIR=$BUILD_DIR
BUILD_DIR=$APP_DIR BUILD_DIR=$APP_DIR
# Set up outputs under new context
PROFILE_PATH="$BUILD_DIR/.profile.d/python.sh"
WEBCONCURRENCY_PROFILE_PATH="$BUILD_DIR/.profile.d/python.webconcurrency.sh"
# We'll need to send these statics to other scripts we `source`.
export BUILD_DIR CACHE_DIR BIN_DIR PROFILE_PATH
# Prepend proper path buildpack use. # Prepend proper path buildpack use.
export PATH=$BUILD_DIR/.heroku/python/bin:$BUILD_DIR/.heroku/vendor/bin:$PATH export PATH=$BUILD_DIR/.heroku/python/bin:$BUILD_DIR/.heroku/vendor/bin:$PATH
export PYTHONUNBUFFERED=1 export PYTHONUNBUFFERED=1
@@ -144,9 +142,14 @@ bpwatch stop clear_old_venvs
# Restore old artifacts from the cache. # Restore old artifacts from the cache.
bpwatch start restore_cache bpwatch start restore_cache
for dir in $CACHED_DIRS; do mkdir -p .heroku
cp -R $CACHE_DIR/$dir . &> /dev/null || true
done cp -R $CACHE_DIR/.heroku/python .heroku/ &> /dev/null || true
cp -R $CACHE_DIR/.heroku/python-stack .heroku/ &> /dev/null || true
cp -R $CACHE_DIR/.heroku/python-version .heroku/ &> /dev/null || true
cp -R $CACHE_DIR/.heroku/vendor .heroku/ &> /dev/null || true
cp -R $CACHE_DIR/.heroku/venv .heroku/ &> /dev/null || true
bpwatch stop restore_cache bpwatch stop restore_cache
set +e set +e
@@ -208,16 +211,27 @@ bpwatch stop post_compile
# Store new artifacts in cache. # Store new artifacts in cache.
bpwatch start dump_cache bpwatch start dump_cache
for dir in $CACHED_DIRS; do
rm -rf $CACHE_DIR/$dir rm -rf $CACHE_DIR/.heroku/python
cp -R $dir $CACHE_DIR/ rm -rf $CACHE_DIR/.heroku/python-version
done rm -rf $CACHE_DIR/.heroku/python-stack
rm -rf $CACHE_DIR/.heroku/vendor
rm -rf $CACHE_DIR/.heroku/venv
mkdir -p $CACHE_DIR/.heroku
cp -R .heroku/python $CACHE_DIR/.heroku/
cp -R .heroku/python-version $CACHE_DIR/.heroku/
cp -R .heroku/python-stack $CACHE_DIR/.heroku/
cp -R .heroku/vendor $CACHE_DIR/.heroku/ &> /dev/null || true
cp -R .heroku/venv $CACHE_DIR/.heroku/ &> /dev/null || true
bpwatch stop dump_cache bpwatch stop dump_cache
# ### Fin. # ### Fin.
if [[ ! "$DOCKER_BUILD" ]]; then if [[ ! "$DOCKER_BUILD" ]]; then
bpwatch start appdir_commit bpwatch start appdir_commit
deep-rm $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
+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
+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-4.0.0-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-4.0.0-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.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.