Compare commits

...

9 Commits

Author SHA1 Message Date
kennethreitz 194932889d Python 3.6.2 (#423)
* pypy3-5.8.0

* updated cpython to 3.6.2

* update README to reflect new Python version
2017-07-17 12:35:26 -04:00
Josh Friend 4293ec5564 Add CPython 3.6.2 (#422) 2017-07-17 11:48:05 -04:00
kennethreitz 57baab9f68 Update README.md (#415) 2017-06-20 10:43:51 -07:00
kennethreitz a7c20eea42 Python 3 default for buildpack (#409)
* update default python to 3.6.1

* v110

* nltk python2
2017-06-20 09:14:01 -07:00
kennethreitz 0a4cc2c476 pypy3-5.8.0 (#414) 2017-06-15 15:54:40 -04:00
Ed Morley cbb718bb8b Fix pip uninstall by moving it prior to pip install (#413)
The pip-uninstall step stopped working when it was moved to after
the pip-install step in f27a84e.

This regression was temporarily fixed by part of #397, however that
PR was reverted in #404.

Adds a test to hopefully catch any future regressions :-)

Fixes #393.
2017-06-14 17:15:52 -04:00
kennethreitz db95cdd3f3 new pylibmc test (#408) 2017-06-05 13:47:48 -04:00
kennethreitz 04f3ddbc86 updates (#407)
* silently use sp-grep

* history

* update license
2017-06-05 13:34:15 -04:00
kennethreitz f06f5676e8 silently use sp-grep (#406) 2017-06-05 13:31:57 -04:00
10 changed files with 70 additions and 12 deletions
+10
View File
@@ -1,5 +1,15 @@
# Python Buildpack Changelog
# 110
Update Default Python to 3.6.1, bugfixes.
- Fixed automatic pip uninstall of dependencies removed from requirements.txt.
# 109
Fix output for collectstatic step.
# 108
Updated setuptools.
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License:
Copyright (C) 2016 Heroku, Inc.
Copyright (C) 2017 Heroku, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+4 -4
View File
@@ -8,7 +8,7 @@ This is the official [Heroku buildpack](https://devcenter.heroku.com/articles/bu
Recommended web frameworks include **Django** and **Flask**. The recommended webserver is **Gunicorn**. There are no restrictions around what software can be used (as long as it's pip-installable). Web processes must bind to `$PORT`, and only the HTTP protocol is permitted for incoming connections.
Some Python packages with obscure C dependencies (e.g. scipy) are [not compatible](https://devcenter.heroku.com/articles/python-c-deps).
Some Python packages with obscure C dependencies are [not compatible](https://devcenter.heroku.com/articles/python-c-deps).
See it in Action
----------------
@@ -23,7 +23,7 @@ Deploying a Python application couldn't be easier:
$ git push heroku master
...
-----> Python app detected
-----> Installing python-2.7.13
-----> Installing python-3.6.2
$ pip install -r requirements.txt
Collecting requests (from -r requirements.txt (line 1))
Downloading requests-2.12.4-py2.py3-none-any.whl (576KB)
@@ -46,11 +46,11 @@ Specify a Python Runtime
Specific versions of the Python runtime can be specified with a `runtime.txt` file:
$ cat runtime.txt
python-3.6.1
python-2.7.13
Runtime options include:
- `python-3.6.2`
- `python-2.7.13`
- `python-3.6.1`
- `pypy-5.7.1` (unsupported, experimental)
- `pypy3-5.5.1` (unsupported, experimental)
+6 -6
View File
@@ -32,7 +32,7 @@ CACHE_DIR=$2
ENV_DIR=$3
# Python defaults
DEFAULT_PYTHON_VERSION="python-2.7.13"
DEFAULT_PYTHON_VERSION="python-3.6.2"
DEFAULT_PYTHON_STACK="cedar-14"
PYTHON_EXE="/app/.heroku/python/bin/python"
PIP_VERSION="9.0.1"
@@ -170,16 +170,16 @@ sub-env $BIN_DIR/steps/geo-libs
# GDAL support.
source $BIN_DIR/steps/gdal
# Install dependencies with Pip (where the magic happens).
let start=$(nowms)
source $BIN_DIR/steps/pip-install
mtime "pip.install.time" "${start}"
# Uninstall removed dependencies with Pip.
let start=$(nowms)
source $BIN_DIR/steps/pip-uninstall
mtime "pip.uninstall.time" "${start}"
# Install dependencies with Pip (where the magic happens).
let start=$(nowms)
source $BIN_DIR/steps/pip-install
mtime "pip.install.time" "${start}"
# Support for NLTK corpora.
let start=$(nowms)
sub-env $BIN_DIR/steps/nltk
+1 -1
View File
@@ -20,7 +20,7 @@ MANAGE_FILE=${MANAGE_FILE:-fakepath}
[ -f .heroku/collectstatic_disabled ] && DISABLE_COLLECTSTATIC=1
# Ensure that Django is explicitly specified in requirements.txt
sp-grep django && DJANGO_INSTALLED=1
sp-grep -s django && DJANGO_INSTALLED=1
if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ] && [ "$DJANGO_INSTALLED" ]; then
+12
View File
@@ -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/pypy3-v5.8.0-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy3-v5.8.0-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy3 $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.6.2/Python-3.6.2.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.6.2 src
cd src
./configure --prefix=$OUT_PREFIX --with-ensurepip=no
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
+1
View File
@@ -0,0 +1 @@
python-2.7.13
+1
View File
@@ -0,0 +1 @@
pylibmc
+16
View File
@@ -44,6 +44,12 @@ testPsycopg2() {
assertCapturedSuccess
}
testPylibmc() {
compile "pylibmc"
assertCaptured "pylibmc"
assertCapturedSuccess
}
testPython2() {
compile "python2"
assertCaptured "python-2.7.13"
@@ -56,6 +62,16 @@ testPython3() {
assertCapturedSuccess
}
testSmartRequirements() {
local cache_dir="$(mktmpdir)"
compile "requirements-standard" "$cache_dir"
assertFile "requests" ".heroku/python/requirements-declared.txt"
assertCapturedSuccess
compile "psycopg2" "$cache_dir"
assertCaptured "Uninstalling requests"
assertFile "psycopg2" ".heroku/python/requirements-declared.txt"
assertCapturedSuccess
}