mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 23:10:16 +00:00
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 14c7e26f7a | |||
| 58e664a9e3 | |||
| e965516197 | |||
| 8775cb821c | |||
| 9dcabe24a5 | |||
| 38f9a41a54 | |||
| 53e33bdf91 | |||
| 5337dd592b | |||
| de8ae808d9 | |||
| 2a7e85be85 | |||
| 7654d13f8b | |||
| 9d3639685a | |||
| 76bb572a4d | |||
| 8db4a79392 |
@@ -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
@@ -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/*
|
||||||
|
|
||||||
|
|||||||
@@ -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/*
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -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
@@ -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
|
||||||
|
|||||||
Executable
+32
@@ -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
|
||||||
Executable
+32
@@ -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
|
||||||
Executable
+32
@@ -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
@@ -1 +1 @@
|
|||||||
python-3.4.10
|
python-3.4.99
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
python-3.5.7
|
python-3.5.99
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
python-3.6.9
|
python-3.6.99
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
python-3.7.3
|
python-3.7.99
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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})"
|
||||||
|
|||||||
Reference in New Issue
Block a user