Compare commits

...

78 Commits

Author SHA1 Message Date
Casey 7ceb774c63 Merge pull request #894 from heroku/undo-revert
Reapply pipenv-ci bugfix
2019-10-23 12:57:27 -07:00
Casey f43caaadc3 Merge branch 'master' into undo-revert 2019-10-23 11:40:04 -07:00
Casey bb31a012fd Merge pull request #893 from heroku/changelog-fix
Release 159 changelog update
2019-10-23 10:55:13 -07:00
Casey Faist 9ab6a56cba reapply bugfix in preparation for tomorrow's release 2019-10-22 11:29:58 -07:00
Alexandre Paroissien ab89e49235 Fix pipenv install twice in CI 2019-10-22 11:28:08 -07:00
Casey Faist 5293169aa8 update Readme to reflect 2.7 2019-10-22 09:59:02 -07:00
Casey Faist 3698cb5715 update changelog with latest python 2.7 release 2019-10-22 09:56:01 -07:00
Casey c126f6239d Merge pull request #891 from heroku/python-27-update
Python 2.7.17
2019-10-22 08:04:26 -07:00
Casey Faist 7f639739e3 add new 2.7.17 formula 2019-10-21 17:06:32 -07:00
Casey Faist 4328847f1e update tests and default 2.7 2019-10-21 17:04:23 -07:00
Casey Faist c79e6f02ad update changelog 2019-10-21 17:03:56 -07:00
Casey 1d938c35f8 Merge pull request #890 from heroku/release-cleanup
Release 158 Changelog update
2019-10-21 17:00:58 -07:00
Casey Faist 99a2a55f6a update changelog 2019-10-21 14:19:53 -07:00
Casey 79dbd79b13 Merge pull request #885 from heroku/new-pythons
Python 3.7.5 and 3.8.0
2019-10-21 13:01:22 -07:00
Casey 0b4a2d664b Merge branch 'master' into new-pythons 2019-10-21 11:57:35 -07:00
Casey 3726d3b473 Merge pull request #887 from heroku/deprecated-pythons-test
Test fixture update
2019-10-21 11:57:08 -07:00
Casey 9b72199cdf Merge branch 'master' into new-pythons 2019-10-21 10:57:49 -07:00
Casey 22e6239222 Merge branch 'master' into deprecated-pythons-test 2019-10-21 10:56:23 -07:00
Casey 39e4e85747 Merge pull request #886 from heroku/we-are-the-walrus
We Are The Walrus (Python 3.8 Support)
2019-10-21 10:55:46 -07:00
Casey 05612fa1eb Merge branch 'master' into deprecated-pythons-test 2019-10-21 10:54:59 -07:00
Casey fb1ca18e90 Merge branch 'master' into new-pythons 2019-10-18 10:00:01 -07:00
Casey 0207d8aff0 Merge branch 'master' into we-are-the-walrus 2019-10-18 09:59:29 -07:00
Casey 6bf3a75da2 Merge pull request #888 from heroku/temporary-revert
Temporary revert
2019-10-18 09:58:55 -07:00
Casey Faist 011f1e7e60 wardn case should succeed on all stacks 2019-10-18 09:57:09 -07:00
Casey Faist 0b804b186c correct the capture version too 2019-10-18 08:53:40 -07:00
Casey Faist ec56074c18 CHANGELOG 2019-10-17 16:49:31 -07:00
Casey Faist 34508bfc35 Temporarily Revert "Fix pipenv install twice in CI"
This reverts commit c410fd36a6.

This is a temporary revert in order to release new python binaries first
and then roll this change out in a separate release. This keeps releases
smaller and better organized in case we need to roll back.
2019-10-17 16:44:58 -07:00
Casey Faist af1ef93311 CHANGELOG CHANGELOG CHANGELOG 2019-10-17 16:35:57 -07:00
Casey Faist 0fc7b6c186 bump the warning version to an available version 2019-10-17 16:34:44 -07:00
Casey Faist 33cd4a5fe1 remove copy-paste typo 2019-10-17 16:09:27 -07:00
Casey Faist 7ff7fa4462 add 3.8 tests 2019-10-17 15:01:32 -07:00
Casey Faist 9a830367fe add 3.8 support 2019-10-17 14:59:26 -07:00
Casey Faist 521ed3ff60 create and stage new python runtimes 2019-10-17 14:07:09 -07:00
Casey a165486180 Merge pull request #882 from heroku/confirm-binary-url
Staging binary controller env var
2019-10-14 12:26:10 -07:00
Casey Faist d7327b8d13 CHANGELOG 2019-10-14 11:24:45 -07:00
Casey Faist 47c6dbab32 add var to handle staged binaries 2019-10-14 11:15:06 -07:00
Casey 23adcc42c4 Merge pull request #877 from heroku/test-pysqlite
Add pysqlite test
2019-10-12 14:12:56 -07:00
Casey cc2d1ad17f Merge branch 'master' into test-pysqlite 2019-10-10 13:09:56 -07:00
Casey Faist 91a0be91e1 Changelog Changelog Changelog 2019-10-10 13:08:27 -07:00
Casey Faist 4a4a6a1df0 add pysqlite test for python 2.7.16 2019-10-10 13:05:45 -07:00
Casey b30838072f Merge pull request #871 from heroku/update-sqlite-tests
Update tests to capture Sqlite install
2019-10-10 11:50:00 -07:00
Casey Faist 950572132c remove test for sqlite on older versions of python 3.4 2019-10-09 13:57:06 -07:00
Casey fe5da9a0a6 Merge branch 'master' into update-sqlite-tests 2019-10-09 13:35:28 -07:00
David Zülke 4eed56e2e5 Merge pull request #874 from heroku/revert-868-app-dir-fix
Revert "Refactor: $BUILD_DIR" (from PR #868), closes #873
2019-10-09 16:12:03 +02:00
David Zülke 00d44d2e34 Revert "Refactor: $BUILD_DIR" 2019-10-09 15:28:31 +02:00
Casey Faist 0c78978e90 don't check python 3.4 2019-10-08 14:57:15 -07:00
Casey Faist d0fd9ad58a Changelog update 2019-10-08 14:10:51 -07:00
Casey Faist 24e0858902 add sqlite tests 2019-10-08 14:08:04 -07:00
Casey 1721fa3703 Merge pull request #868 from heroku/app-dir-fix
Refactor: $BUILD_DIR
2019-10-08 12:20:02 -07:00
Casey 970b6c1e4b Merge branch 'master' into app-dir-fix 2019-10-08 11:10:48 -07:00
Casey 89145ef839 Merge pull request #866 from heroku/correct-changelog
update changelog to match current tags
2019-10-08 11:10:23 -07:00
Casey Faist cacd163958 update Changelog 2019-10-07 18:06:49 -07:00
Casey Faist cd4601a707 add double-quotes to comply with shellcheck 2019-10-07 18:05:34 -07:00
Duane Hutchins 05e29c74bc Changed hardcoded /app into $BUILD_DIR 2019-10-07 16:41:07 -07:00
Casey dbfdb5a356 Merge branch 'master' into correct-changelog 2019-10-07 18:09:19 -04:00
Casey 8512fcb811 Merge pull request #861 from heroku/fix-pipenv-install-twice-ci
Fix pipenv install twice with CI
2019-10-07 18:07:38 -04:00
Casey 6b328504de Merge branch 'master' into fix-pipenv-install-twice-ci 2019-10-07 17:21:54 -04:00
Casey Faist b4553d4bee update changelog to match tags 2019-10-07 14:11:35 -07:00
Casey af860be62a Merge pull request #864 from heroku/schneems/check-changelog-fix-escaping
[changelog skip] Fix Escaping in Changelog Script
2019-10-02 19:42:51 -07:00
Casey 2be890d2e8 Merge branch 'master' into schneems/check-changelog-fix-escaping 2019-10-02 19:01:17 -07:00
Casey e936ff00c3 Merge branch 'master' into fix-pipenv-install-twice-ci 2019-10-02 18:18:33 -07:00
schneems 3096299184 [changelog skip] Fix Escaping in Changelog Script
The previous PR had a bug where the REGEX for grep was not properly escaped. This PR fixes that issue.
2019-10-01 10:28:18 -05:00
Casey ffc7359b19 Merge pull request #862 from heroku/pin-dockerfile
Pin docker build env
2019-10-01 07:35:32 -07:00
Casey Faist 7a313c53a5 update changelog 2019-10-01 06:43:37 -07:00
Casey Faist 98df315cfa pin docker build env 2019-10-01 06:37:03 -07:00
Casey df18c0485d Merge branch 'master' into fix-pipenv-install-twice-ci 2019-09-30 14:05:27 -07:00
Casey Faist 629ab233bf add changelog 2019-09-30 13:36:19 -07:00
Casey fe6a81d513 Merge pull request #859 from heroku/dockerfile-update
Unpin Heroku 18 dockerfile dependencies
2019-09-30 13:20:00 -07:00
Casey 75ce3f537d Merge branch 'master' into dockerfile-update 2019-09-30 12:05:41 -07:00
Casey a51d5f2976 Merge pull request #855 from heroku/fix-mcount-typo
Fix mcount typo
2019-09-30 12:05:06 -07:00
Casey Faist b2b12d0355 add changelog update 2019-09-30 11:01:49 -07:00
Casey Faist 15ecb76950 revert pin bionic packages for heroku-18 2019-09-30 11:00:27 -07:00
Casey adba08788c Merge branch 'master' into fix-mcount-typo 2019-09-30 10:13:21 -07:00
Casey e3d6bc8436 Merge pull request #857 from heroku/schneems/check-changelog
[changelog skip] Ensure PRs include a Changelog entry
2019-09-27 17:41:49 -07:00
Casey Faist 6e4b43fa1d add changelog update to retrigger tests 2019-09-27 14:09:30 -07:00
schneems 3fef7caf50 [changelog skip] Ensure PRs include a Changelog entry
The goal of this PR is to add a github action that checks for the presence of a changelog entry.

It is better to add entries as a PR is merged instead of having to remember what was merged and generate a changelog at release time.

By automating this check, it's one less thing the maintainer has to remember, and it's one less thing a change might be blocked on i.e. "Looks good, but please add a changelog entry".

Let me know if you have any questions and Happy Friday!
2019-09-27 16:09:19 -05:00
Claudio Jolowicz 0c701de466 Fix typo in command to log pip-diff failure
The pip-diff tool from vendor/pip-pop is used to determine stale
requirements. When pip-diff encounters an unexpected failure, a count is
logged using mcount from heroku/buildpack-stdlib.

Due to a typo, mount(8) was invoked instead of mcount, with an invalid
argument.
2019-09-25 09:48:10 +02:00
Alexandre Paroissien c410fd36a6 Fix pipenv install twice in CI 2019-09-24 15:03:40 +07:00
22 changed files with 133 additions and 22 deletions
+12
View File
@@ -0,0 +1,12 @@
name: Check Changelog
on: [pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Check that CHANGELOG is touched
run: |
cat $GITHUB_EVENT_PATH | jq .pull_request.title | grep -i '\[\(\(changelog skip\)\|\(ci skip\)\)\]' || git diff remotes/origin/${{ github.base_ref }} --name-only | grep CHANGELOG.md
+18
View File
@@ -2,8 +2,26 @@
# Master
- Bugfix: Pipenv no longer installs twice in CI
--------------------------------------------------------------------------------
# 159 (2019-10-22)
- Python 2.7.17 now available on Heroku 18 and 16.
# 158 (2019-10-21)
- Python 3.7.5 and 3.8.0 now available on Heroku 18 and 16.
- Add support for Python 3.8 branch
- Sqlite3 Update:
- Test Improvements
- Add support for staging binary testing
# 157 (2019-09-18)
- Typo fixes
# 156 (2019-09-12)
- Python 3.6.9 and 3.7.4 now available.
+1 -1
View File
@@ -63,7 +63,7 @@ Supported runtime options include:
- `python-3.7.4`
- `python-3.6.9`
- `python-2.7.16`
- `python-2.7.17`
## Tests
+3
View File
@@ -42,6 +42,8 @@ export BUILD_DIR CACHE_DIR ENV_DIR
VENDOR_URL="https://lang-python.s3.amazonaws.com/$STACK"
if [[ -n ${BUILDPACK_VENDOR_URL:-} ]]; then
VENDOR_URL="$BUILDPACK_VENDOR_URL"
elif [[ -n ${USE_STAGING_BINARIES} ]]; then
VENDOR_URL="$USE_STAGING_BINARIES/$STACK"
fi
export VENDOR_URL
@@ -50,6 +52,7 @@ export VENDOR_URL
source "$BIN_DIR/default_pythons"
# Supported Python Branches
PY38="python-3.8"
PY37="python-3.7"
PY36="python-3.6"
PY35="python-3.5"
+4 -3
View File
@@ -1,10 +1,11 @@
#!/usr/bin/env bash
DEFAULT_PYTHON_VERSION="python-3.6.9"
LATEST_38="python-3.8.0"
LATEST_37="python-3.7.5"
LATEST_36="python-3.6.9"
LATEST_37="python-3.7.4"
LATEST_35="python-3.5.7"
LATEST_34="python-3.4.10"
LATEST_27="python-2.7.16"
LATEST_27="python-2.7.17"
export DEFAULT_PYTHON_VERSION LATEST_37 LATEST_36 LATEST_35 LATEST_34 LATEST_27
export DEFAULT_PYTHON_VERSION LATEST_38 LATEST_37 LATEST_36 LATEST_35 LATEST_34 LATEST_27
+1 -1
View File
@@ -13,7 +13,7 @@ if [ ! "$SKIP_PIP_INSTALL" ]; then
if ! pip-diff --stale requirements-declared.txt requirements.txt --exclude setuptools pip wheel > .heroku/python/requirements-stale.txt; then
mount "failure.bad-requirements"
mcount "failure.bad-requirements"
fi
rm -fr requirements-declared.txt
+7 -7
View File
@@ -60,10 +60,16 @@ if [ ! "$SKIP_PIPENV_INSTALL" ]; then
# avoid this eager behavior.
/app/.heroku/python/bin/pip install pipenv==$PIPENV_VERSION --upgrade --upgrade-strategy only-if-needed &> /dev/null
# Install the test dependencies, for CI.
if [ "$INSTALL_TEST" ]; then
puts-step "Installing test dependencies…"
/app/.heroku/python/bin/pipenv install --dev --system --deploy 2>&1 | cleanup | indent
# Install the dependencies.
if [[ ! -f Pipfile.lock ]]; then
elif [[ ! -f Pipfile.lock ]]; then
puts-step "Installing dependencies with Pipenv $PIPENV_VERSION…"
/app/.heroku/python/bin/pipenv install --system --skip-lock 2>&1 | indent
else
pipenv-to-pip Pipfile.lock > requirements.txt
"$BIN_DIR/steps/pip-uninstall"
@@ -73,12 +79,6 @@ if [ ! "$SKIP_PIPENV_INSTALL" ]; then
puts-step "Installing dependencies with Pipenv $PIPENV_VERSION…"
/app/.heroku/python/bin/pipenv install --system --deploy 2>&1 | indent
fi
# Install the test dependencies, for CI.
if [ "$INSTALL_TEST" ]; then
puts-step "Installing test dependencies…"
/app/.heroku/python/bin/pipenv install --dev --system --deploy 2>&1 | cleanup | indent
fi
fi
else
export SKIP_PIP_INSTALL=1
+7
View File
@@ -11,6 +11,13 @@ SECURITY_UPDATE="Python has released a security update! Please consider upgradin
# check if runtime exists
if curl --output /dev/null --silent --head --fail "$VENDORED_PYTHON"; then
if [[ "$PYTHON_VERSION" == $PY38* ]]; then
# do things to alert the user of security release available
if [ "$PYTHON_VERSION" != "$LATEST_38" ]; then
puts-warn "$SECURITY_UPDATE" "$LATEST_38"
echo " Learn More: https://devcenter.heroku.com/articles/python-runtimes"
fi
fi
if [[ "$PYTHON_VERSION" == $PY37* ]]; then
# do things to alert the user of security release available
if [ "$PYTHON_VERSION" != "$LATEST_37" ]; then
+1 -1
View File
@@ -1,4 +1,4 @@
FROM heroku/heroku:18-build
FROM heroku/heroku:18-build.v16
WORKDIR /app
ENV WORKSPACE_DIR="/app/builds" \
+27
View File
@@ -0,0 +1,27 @@
#!/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/2.7.17/Python-2.7.17.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.17 src
cd src
./configure --prefix=$OUT_PREFIX --enable-unicode=ucs4 --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 '{}' +
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
source $(dirname $0)/python3
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
source $(dirname $0)/python3
+1
View File
@@ -0,0 +1 @@
pysqlite
+1
View File
@@ -0,0 +1 @@
python-2.7.16
+1 -1
View File
@@ -1 +1 @@
python-2.7.16
python-2.7.17
+1 -1
View File
@@ -1 +1 @@
python-3.4.0
python-3.4.9
+1
View File
@@ -0,0 +1 @@
requests
+1
View File
@@ -0,0 +1 @@
python-3.8.0
+1
View File
@@ -0,0 +1 @@
flask
+1
View File
@@ -0,0 +1 @@
python-3.8.99
+6
View File
@@ -40,6 +40,12 @@ testPsycopg2() {
assertCapturedSuccess
}
testPysqlite() {
compile "pysqlite"
assertCaptured "pysqlite"
assertCapturedSuccess
}
testCffi() {
compile "cffi"
assertCaptured "cffi"
+30 -7
View File
@@ -9,6 +9,7 @@ testPythonDefault() {
compile "pythonDefault"
assertCaptured $DEFAULT_PYTHON_VERSION
assertNotCaptured "security update"
assertCaptured "Installing SQLite3"
assertCapturedSuccess
}
@@ -18,6 +19,7 @@ testPython2() {
compile "python2"
assertCaptured $LATEST_27
assertNotCaptured "security update"
assertCaptured "Installing SQLite3"
assertCapturedSuccess
}
@@ -25,6 +27,7 @@ testPython2_warn() {
compile "python2_warn"
assertCaptured "python-2.7.15"
assertCaptured "security update!"
assertCaptured "Installing SQLite3"
assertCapturedSuccess
}
@@ -46,13 +49,9 @@ testPython3_4() {
testPython3_4_warn() {
compile "python3_4_warn"
if [[ $STACK = "cedar-14" ]]; then
assertCaptured "python-3.4.0"
assertCaptured "security update!"
assertCapturedSuccess
else
assertCapturedError
fi
assertCaptured "python-3.4.9"
assertCaptured "security update!"
assertCapturedSuccess
}
testPython3_4_fail() {
@@ -67,6 +66,7 @@ testPython3_5() {
compile "python3_5"
assertCaptured $LATEST_35
assertNotCaptured "security update"
assertCaptured "Installing SQLite3"
assertCapturedSuccess
fi
}
@@ -93,6 +93,7 @@ testPython3_6() {
compile "python3_6"
assertCaptured $LATEST_36
assertNotCaptured "security update"
assertCaptured "Installing SQLite3"
assertCapturedSuccess
}
@@ -100,6 +101,7 @@ testPython3_6_warn() {
compile "python3_6_warn"
assertCaptured "python-3.6.7"
assertCaptured "security update!"
assertCaptured "Installing SQLite3"
assertCapturedSuccess
}
@@ -117,6 +119,7 @@ testPython3_7() {
else
assertNotCaptured "security update"
assertCaptured $LATEST_37
assertCaptured "Installing SQLite3"
assertCapturedSuccess
fi
}
@@ -128,6 +131,7 @@ testPython3_7_warn() {
else
assertCaptured "python-3.7.1"
assertCaptured "security update!"
assertCaptured "Installing SQLite3"
assertCapturedSuccess
fi
}
@@ -138,6 +142,25 @@ testPython3_7_fail() {
assertCapturedError
}
testPython3_8() {
updateVersion "python3_8" $LATEST_38
compile "python3_8"
if [[ $STACK = "cedar-14" ]]; then
assertCapturedError
else
assertNotCaptured "security update"
assertCaptured $LATEST_38
assertCaptured "Installing SQLite3"
assertCapturedSuccess
fi
}
testPython3_8_fail() {
compile "python3_8_fail"
assertCaptured "Aborting"
assertCapturedError
}
pushd $(dirname 0) >/dev/null
popd >/dev/null