From 9d3639685a5a0081cb0925177a6ce1130fabbe6b Mon Sep 17 00:00:00 2001 From: Casey Faist Date: Wed, 3 Apr 2019 09:12:44 -0700 Subject: [PATCH 1/5] add new python and update default --- CHANGELOG.md | 6 +++++- bin/default_pythons | 2 +- builds/runtimes/python-3.7.3 | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100755 builds/runtimes/python-3.7.3 diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c1c7c5..a9c0805 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Python Buildpack Changelog -# 151 (2019-03-) +# 152 (2019-04-02) + +Python 3.7.3 now available. + +# 151 (2019-03-21) Python 3.5.7 and 3.4.10 now available on all Heroku stacks. diff --git a/bin/default_pythons b/bin/default_pythons index dbdb106..db3b6d0 100755 --- a/bin/default_pythons +++ b/bin/default_pythons @@ -2,7 +2,7 @@ DEFAULT_PYTHON_VERSION="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.7" LATEST_34="python-3.4.10" LATEST_27="python-2.7.16" diff --git a/builds/runtimes/python-3.7.3 b/builds/runtimes/python-3.7.3 new file mode 100755 index 0000000..4254362 --- /dev/null +++ b/builds/runtimes/python-3.7.3 @@ -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 From 7654d13f8bbb69c0c6764f0d03a38fe0bd6dbcf5 Mon Sep 17 00:00:00 2001 From: Casey Faist Date: Wed, 3 Apr 2019 15:28:35 -0700 Subject: [PATCH 2/5] fix test blindspot --- test/run | 15 ++++++++++++++- test/utils | 5 +++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/test/run b/test/run index 2bc27cf..00aaaeb 100755 --- a/test/run +++ b/test/run @@ -2,7 +2,7 @@ # Default Python Versions # shellcheck source=bin/default_pythons -source "$BIN_DIR/default_pythons" +source "bin/default_pythons" testAirflow() { export SLUGIFY_USES_TEXT_UNIDECODE="yes" @@ -98,14 +98,19 @@ testPylibmc() { } testPythonDefault() { + updateVersion "pythonDefault" $DEFAULT_PYTHON_VERSION compile "pythonDefault" assertCaptured $DEFAULT_PYTHON_VERSION + assertNotCaptured "security update" assertCapturedSuccess } testPython2() { + updateVersion "python2" $LATEST_27 + echo $LATEST_27 > "runtime.txt" compile "python2" assertCaptured $LATEST_27 + assertNotCaptured "security update" assertCapturedSuccess } @@ -123,8 +128,10 @@ testPython2_fail() { } testPython3_4() { + updateVersion "python3_4" $LATEST_34 compile "python3_4" assertCaptured $LATEST_34 + assertNotCaptured "security update" assertCapturedSuccess } @@ -146,8 +153,10 @@ testPython3_4_fail() { } testPython3_5() { + updateVersion "python3_5" $LATEST_35 compile "python3_5" assertCaptured $LATEST_35 + assertNotCaptured "security update" assertCapturedSuccess } @@ -169,8 +178,10 @@ testPython3_5_fail() { } testPython3_6() { + updateVersion "python3_6" $LATEST_36 compile "python3_6" assertCaptured $LATEST_36 + assertNotCaptured "security update" assertCapturedSuccess } @@ -188,10 +199,12 @@ testPython3_6_fail() { } testPython3_7() { + updateVersion "python3_7" $LATEST_37 compile "python3_7" if [[ $STACK = "cedar-14" ]]; then assertCapturedError else + assertNotCaptured "security update" assertCaptured $LATEST_37 assertCapturedSuccess fi diff --git a/test/utils b/test/utils index 2de7b0c..1ddd24e 100644 --- a/test/utils +++ b/test/utils @@ -71,6 +71,11 @@ release() capture ${BUILDPACK_HOME}/bin/release ${BUILD_DIR} } +updateVersion() +{ + echo "$2" > "test/fixtures/${1}/runtime.txt" +} + assertCapturedEquals() { assertEquals "$@" "$(cat ${STD_OUT})" From 2a7e85be8501cc0b60835da8207b662ce90bf06b Mon Sep 17 00:00:00 2001 From: Casey Faist Date: Wed, 3 Apr 2019 15:29:38 -0700 Subject: [PATCH 3/5] update CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9c0805..f04c2fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Python Buildpack Changelog -# 152 (2019-04-02) +# 152 (2019-04-03) Python 3.7.3 now available. From de8ae808d9a7600f3537b0a8139bc33a8f290bb0 Mon Sep 17 00:00:00 2001 From: Casey Faist Date: Thu, 4 Apr 2019 13:26:55 -0700 Subject: [PATCH 4/5] changelog date corrected --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f04c2fb..d989c9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Python Buildpack Changelog -# 152 (2019-04-03) +# 152 (2019-04-04) Python 3.7.3 now available. From 5337dd592b2fdf730fa2a3e3ee9a146f446e3a2b Mon Sep 17 00:00:00 2001 From: Casey Faist Date: Thu, 4 Apr 2019 14:04:10 -0700 Subject: [PATCH 5/5] remove test case for deprecated pythons on deprecated stack --- test/run | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/test/run b/test/run index 00aaaeb..34f5fa5 100755 --- a/test/run +++ b/test/run @@ -128,11 +128,13 @@ testPython2_fail() { } testPython3_4() { - updateVersion "python3_4" $LATEST_34 - compile "python3_4" - assertCaptured $LATEST_34 - assertNotCaptured "security update" - assertCapturedSuccess + if [[ $STACK != "cedar-14" ]]; then + updateVersion "python3_4" $LATEST_34 + compile "python3_4" + assertCaptured $LATEST_34 + assertNotCaptured "security update" + assertCapturedSuccess + fi } testPython3_4_warn() { @@ -153,11 +155,13 @@ testPython3_4_fail() { } testPython3_5() { - updateVersion "python3_5" $LATEST_35 - compile "python3_5" - assertCaptured $LATEST_35 - assertNotCaptured "security update" - assertCapturedSuccess + if [[ $STACK != "cedar-14" ]]; then + updateVersion "python3_5" $LATEST_35 + compile "python3_5" + assertCaptured $LATEST_35 + assertNotCaptured "security update" + assertCapturedSuccess + fi } testPython3_5_warn() {