Skip to content

Commit ba7a7e3

Browse files
authored
Remove support for Heroku-20 (#1778)
Since the Heroku-20 stack has reached end-of-life, and as such builds using it are no longer supported by the Heroku build system: https://devcenter.heroku.com/changelog-items/3230 This fixes the integration tests failing in CI for the Heroku-20 stack, due to the build system now (as expected) rejecting the jobs. Any non-Heroku consumers of this buildpack that wish to continue using the Heroku-20 stack should pin to the previous version of this buildpack. GUS-W-14707057.
1 parent b296619 commit ba7a7e3

File tree

6 files changed

+6
-27
lines changed

6 files changed

+6
-27
lines changed

.github/workflows/build_python_runtime.yml

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ on:
1313
type: choice
1414
options:
1515
- auto
16-
- heroku-20
1716
- heroku-22
1817
- heroku-24
1918
default: auto
@@ -36,27 +35,6 @@ env:
3635
# Unfortunately these jobs cannot be easily written as a matrix since `matrix.exclude` does not
3736
# support expression syntax, and the `matrix` context is not available inside the job `if` key.
3837
jobs:
39-
heroku-20:
40-
if: inputs.stack == 'heroku-20' || inputs.stack == 'auto'
41-
runs-on: pub-hk-ubuntu-24.04-xlarge
42-
env:
43-
STACK_VERSION: "20"
44-
steps:
45-
- name: Checkout
46-
uses: actions/checkout@v4
47-
- name: Build Docker image
48-
run: docker build --platform="linux/amd64" --pull --tag buildenv --build-arg=STACK_VERSION builds/
49-
- name: Compile and package Python runtime
50-
run: docker run --rm --volume="${PWD}/upload:/tmp/upload" buildenv ./build_python_runtime.sh "${{ inputs.python_version }}"
51-
- name: Test Python runtime
52-
run: |
53-
RUN_IMAGE='heroku/heroku:${{ env.STACK_VERSION }}'
54-
ARCHIVE_FILENAME='python-${{ inputs.python_version }}-ubuntu-${{ env.STACK_VERSION }}.04-amd64.tar.zst'
55-
docker run --rm --volume="${PWD}/upload:/upload:ro" --volume="${PWD}/builds:/builds:ro" "${RUN_IMAGE}" /builds/test_python_runtime.sh "/upload/${ARCHIVE_FILENAME}"
56-
- name: Upload Python runtime archive to S3
57-
if: (!inputs.dry_run)
58-
run: aws s3 sync ./upload "s3://${S3_BUCKET}"
59-
6038
heroku-22:
6139
if: inputs.stack == 'heroku-22' || inputs.stack == 'auto'
6240
runs-on: pub-hk-ubuntu-24.04-xlarge

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
strategy:
4040
fail-fast: false
4141
matrix:
42-
stack: ["heroku-20", "heroku-22", "heroku-24"]
42+
stack: ["heroku-22", "heroku-24"]
4343
env:
4444
HATCHET_APP_LIMIT: 300
4545
HATCHET_DEFAULT_STACK: ${{ matrix.stack }}

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## [Unreleased]
44

5+
- Removed support for Heroku-20. ([#1778](https://github.com/heroku/heroku-buildpack-python/pull/1778))
56

67
## [v281] - 2025-04-08
78

builds/build_python_runtime.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ function abort() {
2121
}
2222

2323
case "${STACK:?}" in
24-
heroku-20 | heroku-22 | heroku-24)
24+
heroku-22 | heroku-24)
2525
SUPPORTED_PYTHON_VERSIONS=(
2626
"3.9"
2727
"3.10"

lib/checks.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ function checks::ensure_supported_stack() {
44
local stack="${1}"
55

66
case "${stack}" in
7-
heroku-20 | heroku-22 | heroku-24)
7+
heroku-22 | heroku-24)
88
return 0
99
;;
1010
cedar* | heroku-16 | heroku-18)
@@ -15,7 +15,7 @@ function checks::ensure_supported_stack() {
1515
1616
This buildpack no longer supports the '${stack}' stack since it has
1717
reached its end-of-life:
18-
https://devcenter.heroku.com/articles/stack#stack-support-details-for-apps-using-classic-buildpacks
18+
https://devcenter.heroku.com/articles/stack#stack-support-details
1919
2020
Upgrade to a newer stack to continue using this buildpack.
2121
EOF

lib/python.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ function python::install() {
7777
# decompression/extraction as separate steps), so can't write to stdout.
7878
# 2. We want to display the original stderr to the user, so can't write to stderr.
7979
# 3. Curl's `--write-out` feature only supports outputting to a file (as opposed to
80-
# stdout/stderr) as of curl v8.3.0, which is newer than the curl on Heroku-20/22.
80+
# stdout/stderr) as of curl v8.3.0, which is newer than the curl on Heroku-22.
8181
# This has an integration test run against all stacks, which will mean we will know
8282
# if future versions of curl change the error message string.
8383
#

0 commit comments

Comments
 (0)