Compare commits

...

19 Commits

Author SHA1 Message Date
Casey 96ffc147d4 Merge pull request #831 from heroku/remove-cedar-tests
Remove cedar tests
2019-08-21 16:20:22 -07:00
Casey Faist 4063e9d22e remove cedar 14 make test command, as cedar is deprecated 2019-08-21 15:45:18 -07:00
Casey Faist 751413168b remove cedar 14 travis tests 2019-08-21 15:44:46 -07:00
Casey 527ea604c8 Merge pull request #829 from josegonzalez/heroku-18-build
feat: add docs and make target for heroku-18 bob builds
2019-08-21 15:41:30 -07:00
Jose Diaz-Gonzalez 302c2f0432 feat: add docs and make target for heroku-18 bob builds 2019-08-15 17:36:40 -04:00
David Zülke 14c7e26f7a Merge pull request #827 from heroku/fix-python-3-5-7
Fix Python 3.5.7
2019-07-17 21:55:48 +02:00
David Zuelke 58e664a9e3 avoid service restart prompt during Dockerfile builds
https://unix.stackexchange.com/questions/146283/how-to-prevent-prompt-that-ask-to-restart-services-when-installing-libpq-dev
2019-07-17 02:22:10 +02:00
David Zuelke e965516197 fix python 3.5.7 formula actually building 3.7.2 2019-07-17 01:55:46 +02:00
David Zuelke 8775cb821c CHANGELOG for v153 2019-07-17 01:43:54 +02:00
Casey 9dcabe24a5 Merge pull request #826 from heroku/hotfix-sqlite3-heroku-16
HOTFIX heroku-16 builds with sqlite3
2019-06-21 10:43:28 -07:00
David Zuelke 38f9a41a54 HOTFIX heroku-16 builds with sqlite3
upstream version has changed to 3.11.0-1ubuntu1.2, but local package version is still on 3.11.0-1ubuntu1.1, so the download fails otherwise
2019-06-21 19:17:22 +02:00
Casey 53e33bdf91 Merge pull request #814 from heroku/v-152
Python 3.7.3 release
2019-04-04 15:41:29 -07:00
Casey Faist 5337dd592b remove test case for deprecated pythons on deprecated stack 2019-04-04 14:04:10 -07:00
Casey Faist de8ae808d9 changelog date corrected 2019-04-04 13:26:55 -07:00
Casey Faist 2a7e85be85 update CHANGELOG 2019-04-03 15:32:26 -07:00
Casey Faist 7654d13f8b fix test blindspot 2019-04-03 15:28:35 -07:00
Casey Faist 9d3639685a add new python and update default 2019-04-03 09:12:44 -07:00
Casey 76bb572a4d Release prep 151 (#813)
* new runtimes

* update default latest
2019-03-21 10:54:12 -07:00
Casey 8db4a79392 changelog 150 update (#810) 2019-03-14 11:40:14 -07:00
17 changed files with 177 additions and 25 deletions
-4
View File
@@ -19,10 +19,6 @@ jobs:
services: docker services: docker
env: STACK=heroku-16 env: STACK=heroku-16
script: "./tests.sh" script: "./tests.sh"
- stage: Stack Unit Tests
services: docker
env: STACK=cedar-14
script: "./tests.sh"
- stage: Hatchet Integration - stage: Hatchet Integration
script: "bundle exec rspec" script: "bundle exec rspec"
env: env:
+20
View File
@@ -1,5 +1,25 @@
# Python Buildpack Changelog # Python Buildpack Changelog
# 154 (2019-07-17)
Fix python 3.5.7 formula actually building 3.7.2
# 153 (2019-06-21)
Hotfix for broken heroku-16 deploys
# 152 (2019-04-04)
Python 3.7.3 now available.
# 151 (2019-03-21)
Python 3.5.7 and 3.4.10 now available on all Heroku stacks.
# 150 (2019-03-13)
Python 2.7.16 now available on all Heroku stacks.
# 149 (2019-03-04) # 149 (2019-03-04)
Hotfix for broken Cedar 14 deploys Hotfix for broken Cedar 14 deploys
+2 -1
View File
@@ -3,7 +3,8 @@ FROM heroku/heroku:16-build
WORKDIR /app WORKDIR /app
ENV WORKSPACE_DIR="/app/builds" \ ENV WORKSPACE_DIR="/app/builds" \
S3_BUCKET="lang-python" \ S3_BUCKET="lang-python" \
S3_PREFIX="heroku-16/" S3_PREFIX="heroku-16/" \
DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y python-pip && rm -rf /var/lib/apt/lists/* RUN apt-get update && apt-get install -y python-pip && rm -rf /var/lib/apt/lists/*
+2 -1
View File
@@ -3,7 +3,8 @@ FROM heroku/heroku:18-build
WORKDIR /app WORKDIR /app
ENV WORKSPACE_DIR="/app/builds" \ ENV WORKSPACE_DIR="/app/builds" \
S3_BUCKET="lang-python" \ S3_BUCKET="lang-python" \
S3_PREFIX="heroku-18/" S3_PREFIX="heroku-18/" \
DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y python-pip && rm -rf /var/lib/apt/lists/* RUN apt-get update && apt-get install -y python-pip && rm -rf /var/lib/apt/lists/*
+13 -5
View File
@@ -8,11 +8,6 @@ check:
@shellcheck -x bin/steps/collectstatic bin/steps/eggpath-fix bin/steps/eggpath-fix2 bin/steps/gdal bin/steps/geo-libs bin/steps/mercurial bin/steps/nltk bin/steps/pip-install bin/steps/pip-uninstall bin/steps/pipenv bin/steps/pipenv-python-version bin/steps/pylibmc bin/steps/python @shellcheck -x bin/steps/collectstatic bin/steps/eggpath-fix bin/steps/eggpath-fix2 bin/steps/gdal bin/steps/geo-libs bin/steps/mercurial bin/steps/nltk bin/steps/pip-install bin/steps/pip-uninstall bin/steps/pipenv bin/steps/pipenv-python-version bin/steps/pylibmc bin/steps/python
@shellcheck -x bin/steps/hooks/* @shellcheck -x bin/steps/hooks/*
test-cedar-14:
@echo "Running tests in docker (cedar-14)..."
@docker run -v $(shell pwd):/buildpack:ro --rm -it -e "STACK=cedar-14" heroku/cedar:14 bash -c 'cp -r /buildpack /buildpack_test; cd /buildpack_test/; test/run;'
@echo ""
test-heroku-16: test-heroku-16:
@echo "Running tests in docker (heroku-16)..." @echo "Running tests in docker (heroku-16)..."
@docker run -v $(shell pwd):/buildpack:ro --rm -it -e "STACK=heroku-16" heroku/heroku:16-build bash -c 'cp -r /buildpack /buildpack_test; cd /buildpack_test/; test/run;' @docker run -v $(shell pwd):/buildpack:ro --rm -it -e "STACK=heroku-16" heroku/heroku:16-build bash -c 'cp -r /buildpack /buildpack_test; cd /buildpack_test/; test/run;'
@@ -36,6 +31,19 @@ buildenv-heroku-16:
@echo @echo
@docker run -it --rm python-buildenv-heroku-16 @docker run -it --rm python-buildenv-heroku-16
buildenv-heroku-18:
@echo "Creating build environment (heroku-18)..."
@echo
@docker build --pull -f Dockerfile.heroku-18 -t python-buildenv-heroku-18 .
@echo
@echo "Usage..."
@echo
@echo " $$ export AWS_ACCESS_KEY_ID=foo AWS_SECRET_ACCESS_KEY=bar # Optional unless deploying"
@echo " $$ bob build runtimes/python-2.7.13"
@echo " $$ bob deploy runtimes/python-2.7.13"
@echo
@docker run -it --rm python-buildenv-heroku-18
tools: tools:
git clone https://github.com/kennethreitz/pip-pop.git git clone https://github.com/kennethreitz/pip-pop.git
mv pip-pop/bin/* vendor/pip-pop/ mv pip-pop/bin/* vendor/pip-pop/
+3 -3
View File
@@ -2,9 +2,9 @@
DEFAULT_PYTHON_VERSION="python-3.6.8" DEFAULT_PYTHON_VERSION="python-3.6.8"
LATEST_36="python-3.6.8" LATEST_36="python-3.6.8"
LATEST_37="python-3.7.2" LATEST_37="python-3.7.3"
LATEST_35="python-3.5.6" LATEST_35="python-3.5.7"
LATEST_34="python-3.4.9" LATEST_34="python-3.4.10"
LATEST_27="python-2.7.16" LATEST_27="python-2.7.16"
export DEFAULT_PYTHON_VERSION LATEST_37 LATEST_36 LATEST_35 LATEST_34 LATEST_27 export DEFAULT_PYTHON_VERSION LATEST_37 LATEST_36 LATEST_35 LATEST_34 LATEST_27
Regular → Executable
+2
View File
@@ -6,6 +6,8 @@ source "$BIN_DIR/utils"
sqlite3_version() { sqlite3_version() {
if [ "$STACK" = "cedar-14" ]; then if [ "$STACK" = "cedar-14" ]; then
SQLITE3_VERSION="3.8.2-1ubuntu2.2" SQLITE3_VERSION="3.8.2-1ubuntu2.2"
elif [ "$STACK" = "heroku-16" ]; then
SQLITE3_VERSION="3.11.0-1ubuntu1.2"
else else
SQLITE3_VERSION=${SQLITE3_VERSION:-$(dpkg -s libsqlite3-0 | grep Version | sed 's/Version: //')} SQLITE3_VERSION=${SQLITE3_VERSION:-$(dpkg -s libsqlite3-0 | grep Version | sed 's/Version: //')}
fi fi
+6
View File
@@ -37,5 +37,11 @@ For Heroku-16 stack
2. From the root of the buildpack repository, run: `make buildenv-heroku-16` 2. From the root of the buildpack repository, run: `make buildenv-heroku-16`
3. Follow the instructions displayed! 3. Follow the instructions displayed!
For Heroku-18 stack
-------------------
1. Ensure GNU Make and Docker are installed.
2. From the root of the buildpack repository, run: `make buildenv-heroku-18`
3. Follow the instructions displayed!
Enjoy :) Enjoy :)
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
OUT_PREFIX=$1
BIN_DIR="$(cd "$(dirname "$0")"/../.. || exit; pwd)/bin"
export BIN_DIR
# shellcheck source=bin/utils
source "$BIN_DIR/steps/sqlite3"
sqlite3_version
echo "Setting up SQLite3 Headers for $SQLITE3_VERSION"
sqlite3_install "$OUT_PREFIX" "$SQLITE3_VERSION" 1
echo "Building Python…"
SOURCE_TARBALL='https://python.org/ftp/python/3.7.2/Python-3.7.2.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.7.2 src
cd src
./configure --prefix=$OUT_PREFIX --with-ensurepip=no
make
make install
# Remove unneeded test directories, similar to the official Docker Python images:
# https://github.com/docker-library/python
find "${OUT_PREFIX}" \( -type d -a \( -name test -o -name tests \) \) -exec rm -rf '{}' +
# Remove spare /
LOCATION=${OUT_PREFIX%?}
ln $LOCATION/bin/python3 $LOCATION/bin/python
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
OUT_PREFIX=$1
BIN_DIR="$(cd "$(dirname "$0")"/../.. || exit; pwd)/bin"
export BIN_DIR
# shellcheck source=bin/utils
source "$BIN_DIR/steps/sqlite3"
sqlite3_version
echo "Setting up SQLite3 Headers for $SQLITE3_VERSION"
sqlite3_install "$OUT_PREFIX" "$SQLITE3_VERSION" 1
echo "Building Python…"
SOURCE_TARBALL='https://python.org/ftp/python/3.5.7/Python-3.5.7.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.5.7 src
cd src
./configure --prefix=$OUT_PREFIX --with-ensurepip=no
make
make install
# Remove unneeded test directories, similar to the official Docker Python images:
# https://github.com/docker-library/python
find "${OUT_PREFIX}" \( -type d -a \( -name test -o -name tests \) \) -exec rm -rf '{}' +
# Remove spare /
LOCATION=${OUT_PREFIX%?}
ln $LOCATION/bin/python3 $LOCATION/bin/python
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
OUT_PREFIX=$1
BIN_DIR="$(cd "$(dirname "$0")"/../.. || exit; pwd)/bin"
export BIN_DIR
# shellcheck source=bin/utils
source "$BIN_DIR/steps/sqlite3"
sqlite3_version
echo "Setting up SQLite3 Headers for $SQLITE3_VERSION"
sqlite3_install "$OUT_PREFIX" "$SQLITE3_VERSION" 1
echo "Building Python…"
SOURCE_TARBALL='https://python.org/ftp/python/3.7.3/Python-3.7.3.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.7.3 src
cd src
./configure --prefix=$OUT_PREFIX --with-ensurepip=no
make
make install
# Remove unneeded test directories, similar to the official Docker Python images:
# https://github.com/docker-library/python
find "${OUT_PREFIX}" \( -type d -a \( -name test -o -name tests \) \) -exec rm -rf '{}' +
# Remove spare /
LOCATION=${OUT_PREFIX%?}
ln $LOCATION/bin/python3 $LOCATION/bin/python
+1 -1
View File
@@ -1 +1 @@
python-3.4.10 python-3.4.99
+1 -1
View File
@@ -1 +1 @@
python-3.5.7 python-3.5.99
+1 -1
View File
@@ -1 +1 @@
python-3.6.9 python-3.6.99
+1 -1
View File
@@ -1 +1 @@
python-3.7.3 python-3.7.99
+24 -7
View File
@@ -2,7 +2,7 @@
# Default Python Versions # Default Python Versions
# shellcheck source=bin/default_pythons # shellcheck source=bin/default_pythons
source "$BIN_DIR/default_pythons" source "bin/default_pythons"
testAirflow() { testAirflow() {
export SLUGIFY_USES_TEXT_UNIDECODE="yes" export SLUGIFY_USES_TEXT_UNIDECODE="yes"
@@ -98,14 +98,19 @@ testPylibmc() {
} }
testPythonDefault() { testPythonDefault() {
updateVersion "pythonDefault" $DEFAULT_PYTHON_VERSION
compile "pythonDefault" compile "pythonDefault"
assertCaptured $DEFAULT_PYTHON_VERSION assertCaptured $DEFAULT_PYTHON_VERSION
assertNotCaptured "security update"
assertCapturedSuccess assertCapturedSuccess
} }
testPython2() { testPython2() {
updateVersion "python2" $LATEST_27
echo $LATEST_27 > "runtime.txt"
compile "python2" compile "python2"
assertCaptured $LATEST_27 assertCaptured $LATEST_27
assertNotCaptured "security update"
assertCapturedSuccess assertCapturedSuccess
} }
@@ -123,9 +128,13 @@ testPython2_fail() {
} }
testPython3_4() { testPython3_4() {
compile "python3_4" if [[ $STACK != "cedar-14" ]]; then
assertCaptured $LATEST_34 updateVersion "python3_4" $LATEST_34
assertCapturedSuccess compile "python3_4"
assertCaptured $LATEST_34
assertNotCaptured "security update"
assertCapturedSuccess
fi
} }
testPython3_4_warn() { testPython3_4_warn() {
@@ -146,9 +155,13 @@ testPython3_4_fail() {
} }
testPython3_5() { testPython3_5() {
compile "python3_5" if [[ $STACK != "cedar-14" ]]; then
assertCaptured $LATEST_35 updateVersion "python3_5" $LATEST_35
assertCapturedSuccess compile "python3_5"
assertCaptured $LATEST_35
assertNotCaptured "security update"
assertCapturedSuccess
fi
} }
testPython3_5_warn() { testPython3_5_warn() {
@@ -169,8 +182,10 @@ testPython3_5_fail() {
} }
testPython3_6() { testPython3_6() {
updateVersion "python3_6" $LATEST_36
compile "python3_6" compile "python3_6"
assertCaptured $LATEST_36 assertCaptured $LATEST_36
assertNotCaptured "security update"
assertCapturedSuccess assertCapturedSuccess
} }
@@ -188,10 +203,12 @@ testPython3_6_fail() {
} }
testPython3_7() { testPython3_7() {
updateVersion "python3_7" $LATEST_37
compile "python3_7" compile "python3_7"
if [[ $STACK = "cedar-14" ]]; then if [[ $STACK = "cedar-14" ]]; then
assertCapturedError assertCapturedError
else else
assertNotCaptured "security update"
assertCaptured $LATEST_37 assertCaptured $LATEST_37
assertCapturedSuccess assertCapturedSuccess
fi fi
+5
View File
@@ -71,6 +71,11 @@ release()
capture ${BUILDPACK_HOME}/bin/release ${BUILD_DIR} capture ${BUILDPACK_HOME}/bin/release ${BUILD_DIR}
} }
updateVersion()
{
echo "$2" > "test/fixtures/${1}/runtime.txt"
}
assertCapturedEquals() assertCapturedEquals()
{ {
assertEquals "$@" "$(cat ${STD_OUT})" assertEquals "$@" "$(cat ${STD_OUT})"