From d26c3a89acc4bb1b6ca9da9786153700536a3c77 Mon Sep 17 00:00:00 2001 From: Ed Morley <501702+edmorley@users.noreply.github.com> Date: Mon, 6 Nov 2023 14:49:37 +0000 Subject: [PATCH] Add a Prepare Release GitHub Actions workflow (#1506) Add a GitHub Actions workflow for preparing a new buildpack release, similar to that used for CNBs and `libcnb.rs` releases: https://github.com/heroku/languages-github-actions/blob/main/.github/workflows/_buildpacks-prepare-release.yml https://github.com/heroku/libcnb.rs/blob/main/.github/workflows/prepare-release.yml The changelog format has been updated in this PR to more closely match the https://keepachangelog.com format (which allows reusing the regexes from our other automation), however, to reduce churn I've not adopted the change categories headings for now. For now this is not being implemented as a shared workflow, since the classic buildpacks (unlike the CNBs): - do not have standardised changelog formats - have differing approaches to versioning (some have the changelog version match the buildpack registry version, others do not) - in some cases (eg Ruby) require additional edits for releases beyond just the changelog (such as updating version constants elsewhere in the codebase). As such, it makes more sense to get something working for one buildpack first, and if there is interest about adding this to other classic buildpacks, we can discuss how we might standardise/implement generic automation. GUS-W-14437037. --- .github/workflows/prepare-release.yml | 76 +++++++ CHANGELOG.md | 292 +++++++++++++++----------- 2 files changed, 242 insertions(+), 126 deletions(-) create mode 100644 .github/workflows/prepare-release.yml diff --git a/.github/workflows/prepare-release.yml b/.github/workflows/prepare-release.yml new file mode 100644 index 000000000..e173cdc2b --- /dev/null +++ b/.github/workflows/prepare-release.yml @@ -0,0 +1,76 @@ +name: Prepare release + +on: workflow_dispatch + +jobs: + prepare-release: + name: Prepare Release + runs-on: pub-hk-ubuntu-22.04-small + steps: + - name: Get token for GH application (Linguist) + uses: heroku/use-app-token-action@main + id: generate-token + with: + app_id: ${{ vars.LINGUIST_GH_APP_ID }} + private_key: ${{ secrets.LINGUIST_GH_PRIVATE_KEY }} + + - name: Checkout + uses: actions/checkout@v4 + with: + # We always want the version bump/changelog and resultant PR to target main, not the branch of the workflow_dispatch. + ref: main + # Using the GH application token here will configure the local git config for this repo with credentials + # that can be used to make signed commits that are attributed to the GH application user + token: ${{ steps.generate-token.outputs.app_token }} + + - name: Determine existing published version + id: existing-version + # This uses the buildpack registry API directly instead of the Heroku CLI, since the latter + # requires being logged in for version queries even though the registry API itself doesn't. + run: | + URI_ENCODED_BUILDPACK_NAME='heroku%2Fpython' + VERSION=$( + curl --silent --show-error --fail --retry 3 --retry-connrefused --connect-timeout 10 \ + -H 'Accept: application/vnd.heroku+json; version=3.buildpack-registry' \ + "https://buildpack-registry.heroku.com/buildpacks/${URI_ENCODED_BUILDPACK_NAME}/revisions" \ + | jq --exit-status --raw-output 'max_by(.release) | .release' + ) + echo "version=${VERSION}" >> "${GITHUB_OUTPUT}" + + - name: Calculate new version + id: new-version + run: echo "version=$((${{ steps.existing-version.outputs.version }}+1))" >> "${GITHUB_OUTPUT}" + + - name: Update changelog + run: | + EXISTING_VERSION='${{ steps.existing-version.outputs.version }}' + NEW_VERSION='${{ steps.new-version.outputs.version }}' + DATE_TODAY="$(date --utc --iso-8601)" + UNRELEASED_URL="https://github.com/${{ github.repository }}/compare/v${NEW_VERSION}...HEAD" + NEW_VERSION_URL="https://github.com/${{ github.repository }}/compare/v${EXISTING_VERSION}...v${NEW_VERSION}" + + sed --in-place --regexp-extended \ + --expression "s~(^## \[Unreleased\])$~\1\n\n\n## [v${NEW_VERSION}] - ${DATE_TODAY}~" \ + --expression "s~(^\[unreleased\]:) .*$~\1 ${UNRELEASED_URL}\n[v${NEW_VERSION}]: ${NEW_VERSION_URL}~" \ + CHANGELOG.md + + - name: Create pull request + id: pr + uses: peter-evans/create-pull-request@v5.0.2 + with: + token: ${{ steps.generate-token.outputs.app_token }} + title: Prepare release v${{ steps.new-version.outputs.version }} + body: | + Changes: + https://github.com/${{ github.repository }}/compare/v${{ steps.existing-version.outputs.version }}...main + commit-message: Prepare release v${{ steps.new-version.outputs.version }} + branch: prepare-release + delete-branch: true + committer: ${{ vars.LINGUIST_GH_APP_USERNAME }} <${{ vars.LINGUIST_GH_APP_EMAIL }}> + author: ${{ vars.LINGUIST_GH_APP_USERNAME }} <${{ vars.LINGUIST_GH_APP_EMAIL }}> + + - name: Configure pull request + if: steps.pr.outputs.pull-request-operation == 'created' + run: gh pr merge --auto --squash "${{ steps.pr.outputs.pull-request-number }}" + env: + GH_TOKEN: ${{ steps.generate-token.outputs.app_token }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 92787b7aa..2516f75b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,26 +1,26 @@ -# Python Buildpack Changelog +# Changelog -## Unreleased +## [Unreleased] - Updated pip from 23.2.1 to 23.3.1. ([#1496](https://github.com/heroku/heroku-buildpack-python/pull/1496)) - Updated wheel from 0.41.0 to 0.41.3. ([#1482](https://github.com/heroku/heroku-buildpack-python/pull/1482) and [#1503](https://github.com/heroku/heroku-buildpack-python/pull/1503)) -## v237 (2023-10-03) +## [v237] - 2023-10-03 - Fixed `pkgutil.find_loader` deprecation warning when using Python 3.12. ([#1493](https://github.com/heroku/heroku-buildpack-python/pull/1493)) -## v236 (2023-10-02) +## [v236] - 2023-10-02 - Added support for Python 3.12. ([#1490](https://github.com/heroku/heroku-buildpack-python/pull/1490)) - Added support for Python 3.11.6. ([#1491](https://github.com/heroku/heroku-buildpack-python/pull/1491)) - Changed the default Python version for new apps from 3.11.5 to 3.11.6. ([#1491](https://github.com/heroku/heroku-buildpack-python/pull/1491)) -## v235 (2023-08-25) +## [v235] - 2023-08-25 - Added support for Python 3.8.18, 3.9.18, 3.10.13 and 3.11.5. ([#1477](https://github.com/heroku/heroku-buildpack-python/pull/1477)) - Changed the default Python version for new apps from 3.11.4 to 3.11.5. ([#1477](https://github.com/heroku/heroku-buildpack-python/pull/1477)) -## v234 (2023-07-24) +## [v234] - 2023-07-24 - Updated pip from 23.1.2 to 23.2.1. ([#1465](https://github.com/heroku/heroku-buildpack-python/pull/1465) and [#1470](https://github.com/heroku/heroku-buildpack-python/pull/1470)) - Updated setuptools from 67.8.0 to 68.0.0. ([#1467](https://github.com/heroku/heroku-buildpack-python/pull/1467)) @@ -28,49 +28,49 @@ - Updated pipenv from 2023.2.4 to 2023.7.23. ([#1468](https://github.com/heroku/heroku-buildpack-python/pull/1468) and [#1471](https://github.com/heroku/heroku-buildpack-python/pull/1471)) - Update the Python 3.7 deprecation message to reflect that it has now reached end-of-life. ([#1460](https://github.com/heroku/heroku-buildpack-python/pull/1460)) -## v233 (2023-06-07) +## [v233] - 2023-06-07 - Python 3.7.17, 3.8.17, 3.9.17, 3.10.12 and 3.11.4 are now available ([#1454](https://github.com/heroku/heroku-buildpack-python/pull/1454)). - The default Python version for new apps is now 3.11.4 (previously 3.11.3) ([#1454](https://github.com/heroku/heroku-buildpack-python/pull/1454)). - Updated setuptools from 67.7.2 to 67.8.0. ([#1456](https://github.com/heroku/heroku-buildpack-python/pull/1456)) - Removed support for Heroku-18. ([#1449](https://github.com/heroku/heroku-buildpack-python/pull/1449)) -## v232 (2023-04-27) +## [v232] - 2023-04-27 - Updated pip from 23.0.1 to 23.1.2. ([#1441](https://github.com/heroku/heroku-buildpack-python/pull/1441)) - Updated setuptools from 67.6.1 to 67.7.2. ([#1441](https://github.com/heroku/heroku-buildpack-python/pull/1441)) - The pip bootstrap step is now performed using the pip wheel bundled with the Python stdlib, rather than one downloaded from S3. ([#1442](https://github.com/heroku/heroku-buildpack-python/pull/1442) and [#1444](https://github.com/heroku/heroku-buildpack-python/pull/1444)) -## v231 (2023-04-12) +## [v231] - 2023-04-12 - Updated setuptools from 63.4.3 to 67.6.1. ([#1437](https://github.com/heroku/heroku-buildpack-python/pull/1437)) - Updated wheel from 0.38.4 to 0.40.0. ([#1437](https://github.com/heroku/heroku-buildpack-python/pull/1437)) - Raise curl connection timeout threshold from 5 to 10 seconds. ([#1439](https://github.com/heroku/heroku-buildpack-python/pull/1439)) -## v230 (2023-04-06) +## [v230] - 2023-04-06 - Python 3.10.11 and 3.11.3 are now available ([#1433](https://github.com/heroku/heroku-buildpack-python/pull/1433)). - The default Python version for new apps is now 3.11.3 (previously 3.11.2) ([#1433](https://github.com/heroku/heroku-buildpack-python/pull/1433)). -## v229 (2023-03-10) +## [v229] - 2023-03-10 - Downgrade pipenv from 2023.2.18 to 2023.2.4 ([#1425](https://github.com/heroku/heroku-buildpack-python/pull/1425)). -## v228 (2023-02-21) +## [v228] - 2023-02-21 - Drop support for Python 3.6 ([#1415](https://github.com/heroku/heroku-buildpack-python/pull/1415)). -## v227 (2023-02-20) +## [v227] - 2023-02-20 - Update pip from 22.3.1 to 23.0.1 for Python 3.7+ ([#1413](https://github.com/heroku/heroku-buildpack-python/pull/1413)). - Update pipenv from 2023.2.4 to 2023.2.18 for Python 3.7+ ([#1412](https://github.com/heroku/heroku-buildpack-python/pull/1412)). -## v226 (2023-02-14) +## [v226] - 2023-02-14 - Use Python 3.11 as the default Python version for new apps (previously Python 3.10) ([#1408](https://github.com/heroku/heroku-buildpack-python/pull/1408)). - Update wheel from 0.37.1 to 0.38.4 for Python 3.7+ ([#1409](https://github.com/heroku/heroku-buildpack-python/pull/1409)). -## v225 (2023-02-08) +## [v225] - 2023-02-08 - Python 3.10.10 and 3.11.2 are now available ([#1405](https://github.com/heroku/heroku-buildpack-python/pull/1405)). - The default Python version for new apps is now 3.10.10 (previously 3.10.9) ([#1405](https://github.com/heroku/heroku-buildpack-python/pull/1405)). @@ -79,52 +79,52 @@ - 2023.2.4 for Python 3.7+ - Add a deprecation warning for Python 3.7 ([#1404](https://github.com/heroku/heroku-buildpack-python/pull/1404)). -## v224 (2022-12-07) +## [v224] - 2022-12-07 - Python 3.7.16, 3.8.16, 3.9.16, 3.10.9 and 3.11.1 are now available ([#1392](https://github.com/heroku/heroku-buildpack-python/pull/1392)). - The default Python version for new apps is now 3.10.9 (previously 3.10.8) ([#1392](https://github.com/heroku/heroku-buildpack-python/pull/1392)). -## v223 (2022-11-07) +## [v223] - 2022-11-07 - Update pip from 22.2.2 to 22.3.1 for Python 3.7+ ([#1387](https://github.com/heroku/heroku-buildpack-python/pull/1387)). -## v222 (2022-10-25) +## [v222] - 2022-10-25 - Add support for Python 3.11 ([#1379](https://github.com/heroku/heroku-buildpack-python/pull/1379)). -## v221 (2022-10-12) +## [v221] - 2022-10-12 - Python 3.7.15, 3.8.15, 3.9.15 and 3.10.8 are now available ([#1376](https://github.com/heroku/heroku-buildpack-python/pull/1376)). - The default Python version for new apps is now 3.10.8 (previously 3.10.7) ([#1376](https://github.com/heroku/heroku-buildpack-python/pull/1376)). - Fix automatic provisioning of Postgres DB addons ([#1375](https://github.com/heroku/heroku-buildpack-python/pull/1375)). -## v220 (2022-09-28) +## [v220] - 2022-09-28 - Improve the wording of the Python 2.7 EOL error message ([#1367](https://github.com/heroku/heroku-buildpack-python/pull/1367)). -## v219 (2022-09-26) +## [v219] - 2022-09-26 - Drop support for Python 2.7, 3.4 and 3.5 ([#1364](https://github.com/heroku/heroku-buildpack-python/pull/1364)). - Drop support for PyPy ([#1364](https://github.com/heroku/heroku-buildpack-python/pull/1364)). - The Heroku Postgres database auto-provisioning feature now provisions a DB in fewer cases ([#1363](https://github.com/heroku/heroku-buildpack-python/pull/1363)). -## v218 (2022-09-07) +## [v218] - 2022-09-07 - Python 3.7.14, 3.8.14 and 3.9.14 are now available ([#1362](https://github.com/heroku/heroku-buildpack-python/pull/1362)). -## v217 (2022-09-06) +## [v217] - 2022-09-06 - Python 3.10.7 is now available ([#1361](https://github.com/heroku/heroku-buildpack-python/pull/1361)). - The default Python version for new apps is now 3.10.7 (previously 3.10.6) ([#1361](https://github.com/heroku/heroku-buildpack-python/pull/1361)). -## v216 (2022-08-17) +## [v216] - 2022-08-17 - Ensure path rewriting works when using setuptools v64's new PEP660-based editable install mode ([#1357](https://github.com/heroku/heroku-buildpack-python/pull/1357)). - Display an EOL warning for Python 3.4, 3.5 and 3.6 ([#1356](https://github.com/heroku/heroku-buildpack-python/pull/1356)). - Improve the EOL warning for Python 2.7 ([#1356](https://github.com/heroku/heroku-buildpack-python/pull/1356)). - Display a deprecation warning for PyPy support ([#1356](https://github.com/heroku/heroku-buildpack-python/pull/1356)). -## v215 (2022-08-15) +## [v215] - 2022-08-15 - Update pip from 22.1.2 to 22.2.2 for Python 3.7+ ([#1344](https://github.com/heroku/heroku-buildpack-python/pull/1344)). - Update setuptools from 60.10.0 to 63.4.3 for Python 3.7+ ([#1344](https://github.com/heroku/heroku-buildpack-python/pull/1344)). @@ -133,25 +133,25 @@ - Remove outdated Django version warning ([#1345](https://github.com/heroku/heroku-buildpack-python/pull/1345)). - Remove redundant package install warning checks ([#1348](https://github.com/heroku/heroku-buildpack-python/pull/1348)). -## v214 (2022-08-02) +## [v214] - 2022-08-02 - Python 3.10.6 is now available ([#1342](https://github.com/heroku/heroku-buildpack-python/pull/1342)). - The default Python version for new apps is now 3.10.6 (previously 3.10.5) ([#1342](https://github.com/heroku/heroku-buildpack-python/pull/1342)). -## v213 (2022-06-14) +## [v213] - 2022-06-14 - Enable retries and connection timeouts when using `curl` ([#1335](https://github.com/heroku/heroku-buildpack-python/pull/1335)). - Correct the error message shown when downloading a valid Python version fails ([#1335](https://github.com/heroku/heroku-buildpack-python/pull/1335)). - Switch to the recommended regional S3 domain instead of the global one ([#1334](https://github.com/heroku/heroku-buildpack-python/pull/1334)). -## v212 (2022-06-07) +## [v212] - 2022-06-07 - Python 3.10.5 is now available ([#1332](https://github.com/heroku/heroku-buildpack-python/pull/1332)). - The default Python version for new apps is now 3.10.5 (previously 3.10.4) ([#1332](https://github.com/heroku/heroku-buildpack-python/pull/1332)). - Update pip from 22.0.4 to 22.1.2 for Python 3.7+ ([#1331](https://github.com/heroku/heroku-buildpack-python/pull/1331)). - Add support for Heroku-22 ([#1299](https://github.com/heroku/heroku-buildpack-python/pull/1299)). -## v211 (2022-05-17) +## [v211] - 2022-05-17 - Python 3.9.13 is now available ([#1326](https://github.com/heroku/heroku-buildpack-python/pull/1326)). - Use shared builds + LTO when building Python 3.10 binaries ([#1320](https://github.com/heroku/heroku-buildpack-python/pull/1320)). @@ -163,7 +163,7 @@ - Use the `expat` package from the stack image rather than CPython's vendored version, when building Python binaries ([#1319](https://github.com/heroku/heroku-buildpack-python/pull/1319)). -## v210 (2022-04-14) +## [v210] - 2022-04-14 - Fix typo in the `BUILD_WITH_GEO_LIBRARIES` end-of-life error message ([#1307](https://github.com/heroku/heroku-buildpack-python/pull/1307)). - No longer set a fallback value for `$STACK`, since it is always set on Heroku ([#1308](https://github.com/heroku/heroku-buildpack-python/pull/1308)). @@ -174,48 +174,48 @@ - 60.10.0 for Python 3.7+ - Update wheel from 0.37.0 to 0.37.1 for Python 2.7 and Python 3.5+ ([#1310](https://github.com/heroku/heroku-buildpack-python/pull/1310)) -## v209 (2022-03-24) +## [v209] - 2022-03-24 - Python 3.9.12 and 3.10.4 are now available (CPython) ([#1300](https://github.com/heroku/heroku-buildpack-python/pull/1300)). - The default Python version for new apps is now 3.10.4 (previously 3.10.3) ([#1300](https://github.com/heroku/heroku-buildpack-python/pull/1300)). -## v208 (2022-03-23) +## [v208] - 2022-03-23 - Use Python 3.10 as the default Python version for new apps (previously Python 3.9) ([#1296](https://github.com/heroku/heroku-buildpack-python/pull/1296)). -## v207 (2022-03-16) +## [v207] - 2022-03-16 - Python 3.7.13, 3.8.13, 3.9.11 and 3.10.3 are now available (CPython) ([#1293](https://github.com/heroku/heroku-buildpack-python/pull/1293)). - The default Python version for new apps is now 3.9.11 (previously 3.9.10) ([#1293](https://github.com/heroku/heroku-buildpack-python/pull/1293)). - Adjust the configure options and packaging process for Python 3.8 releases to enable PGO, enable loadable extensions in the `_sqlite` module, and to remove the `idle_test` module ([#1293](https://github.com/heroku/heroku-buildpack-python/pull/1293)). Python 3.8 releases on Heroku prior to 3.8.13 are not affected. -## v206 (2022-01-14) +## [v206] - 2022-01-14 - Python 3.9.10 and 3.10.2 are now available (CPython) ([#1281](https://github.com/heroku/heroku-buildpack-python/pull/1281)). - The default Python version for new apps is now 3.9.10 (previously 3.9.9) ([#1281](https://github.com/heroku/heroku-buildpack-python/pull/1281)). -## v205 (2021-12-06) +## [v205] - 2021-12-06 - Python 3.10.1 is now available ([#1271](https://github.com/heroku/heroku-buildpack-python/pull/1271)). -## v204 (2021-11-16) +## [v204] - 2021-11-16 - Python 3.9.9 is now available ([#1268](https://github.com/heroku/heroku-buildpack-python/pull/1268)). - The default Python version for new apps is now 3.9.9 (previously 3.9.8) ([#1268](https://github.com/heroku/heroku-buildpack-python/pull/1268)). -## v203 (2021-11-08) +## [v203] - 2021-11-08 - Python 3.9.8 is now available ([#1263](https://github.com/heroku/heroku-buildpack-python/pull/1263)). - The default Python version for new apps is now 3.9.8 (previously 3.9.7) ([#1263](https://github.com/heroku/heroku-buildpack-python/pull/1263)). - Adjust the configure options and packaging process for Python 3.9 releases to enable PGO, enable loadable extensions in the `_sqlite` module, and to remove the `idle_test` module ([#1263](https://github.com/heroku/heroku-buildpack-python/pull/1263)). Python 3.9 releases on Heroku prior to 3.9.8 are not affected. -## v202 (2021-11-01) +## [v202] - 2021-11-01 - Update pip from 20.2.4 to: ([#1259](https://github.com/heroku/heroku-buildpack-python/pull/1259)) - 20.3.4 for Python 2.7 and 3.5 - 21.3.1 for Python 3.6+ -## v201 (2021-10-20) +## [v201] - 2021-10-20 - Update setuptools from 47.1.1 to: ([#1254](https://github.com/heroku/heroku-buildpack-python/pull/1254)) - 50.3.2 for Python 3.5 @@ -223,77 +223,77 @@ - Update wheel from 0.36.2 to 0.37.0 for Python 2.7 and Python 3.5+ ([#1254](https://github.com/heroku/heroku-buildpack-python/pull/1254)). - Perform editable package `.pth` and `.egg-link` path rewriting at runtime ([#1252](https://github.com/heroku/heroku-buildpack-python/pull/1252)). -## v200 (2021-10-04) +## [v200] - 2021-10-04 - Add support for Python 3.10 ([#1246](https://github.com/heroku/heroku-buildpack-python/pull/1246)). - Adjust the configure options and packaging process for Python 3.10 to enable PGO, enable loadable extensions in the `_sqlite` module, and to remove the `idle_test` module ([#1246](https://github.com/heroku/heroku-buildpack-python/pull/1246)). -## v199 (2021-09-05) +## v199 - 2021-09-05 - Python 3.6.15 and 3.7.12 are now available (CPython) ([#1238](https://github.com/heroku/heroku-buildpack-python/pull/1238)). -## v198 (2021-08-30) +## v198 - 2021-08-30 - Python 3.8.12 and 3.9.7 are now available (CPython) ([#1236](https://github.com/heroku/heroku-buildpack-python/pull/1236)). - The default Python version for new apps is now 3.9.7 (previously 3.9.6) ([#1236](https://github.com/heroku/heroku-buildpack-python/pull/1236)). -## v197 (2021-06-28) +## v197 - 2021-06-28 - Python 3.6.14, 3.7.11, 3.8.11 and 3.9.6 are now available (CPython) ([#1219](https://github.com/heroku/heroku-buildpack-python/pull/1219)). - The default Python version for new apps is now 3.9.6 (previously 3.9.5) ([#1219](https://github.com/heroku/heroku-buildpack-python/pull/1219)). - Remove testing & binary generation support for Heroku-16 ([#1214](https://github.com/heroku/heroku-buildpack-python/pull/1214)). -## v196 (2021-05-25) +## v196 - 2021-05-25 - Django collectstatic is no longer skipped if `DISABLE_COLLECTSTATIC` is set to `0` or the empty string ([#1208](https://github.com/heroku/heroku-buildpack-python/pull/1208)). - If Django collectstatic is skipped, output the reason why ([#1208](https://github.com/heroku/heroku-buildpack-python/pull/1208)). - Output a deprecation warning when collectstatic is skipped via the `.heroku/collectstatic_disabled` file ([#1208](https://github.com/heroku/heroku-buildpack-python/pull/1208)). - Remove redundant "Cedar-14 is unsupported" error ([#1212](https://github.com/heroku/heroku-buildpack-python/pull/1212)). -## v195 (2021-05-03) +## v195 - 2021-05-03 - Python 3.8.10 and 3.9.5 are now available (CPython) ([#1204](https://github.com/heroku/heroku-buildpack-python/pull/1204)). -## v194 (2021-04-26) +## v194 - 2021-04-26 - Always output the Python version used and reason why ([#1196](https://github.com/heroku/heroku-buildpack-python/pull/1196)). -## v193 (2021-04-13) +## v193 - 2021-04-13 - Update pip from 20.1.1 to 20.2.4 for Python 2.7 and Python 3.5+ ([#1192](https://github.com/heroku/heroku-buildpack-python/pull/1192)). - Update wheel from 0.34.2 to 0.36.2 for Python 2.7 and Python 3.5+ ([#1191](https://github.com/heroku/heroku-buildpack-python/pull/1191)). - Support build environments where `$BUILD_DIR` is set to a symlink of `/app` ([#992](https://github.com/heroku/heroku-buildpack-python/pull/992)). -## v192 (2021-04-06) +## v192 - 2021-04-06 - Python 3.8.9 and 3.9.4 are now available (CPython) ([#1188](https://github.com/heroku/heroku-buildpack-python/pull/1188)). - Use Python 3.9 as the default Python version for new apps (previously Python 3.6) ([#1187](https://github.com/heroku/heroku-buildpack-python/pull/1187)). - Remove Airflow `SLUGIFY_USES_TEXT_UNIDECODE` workaround ([#1186](https://github.com/heroku/heroku-buildpack-python/pull/1186)). - Fix grammar in the Python 2 EOL message ([#1182](https://github.com/heroku/heroku-buildpack-python/pull/1182)). -## v191 (2021-02-19) +## v191 - 2021-02-19 - Python 3.8.8 and 3.9.2 are now available (CPython) ([#1178](https://github.com/heroku/heroku-buildpack-python/pull/1178)). -## v190 (2021-02-16) +## v190 - 2021-02-16 - Python 3.6.13 and 3.7.10 are now available (CPython) ([#1174](https://github.com/heroku/heroku-buildpack-python/pull/1174)). - The default Python version for new apps is now 3.6.13 (previously 3.6.12) ([#1174](https://github.com/heroku/heroku-buildpack-python/pull/1174)). -## v189 (2021-02-12) +## v189 - 2021-02-12 - Update pipenv from `2018.5.18` to `2020.11.15` ([#1169](https://github.com/heroku/heroku-buildpack-python/pull/1169)). - Remove pinning of pip to `9.0.2` when using pipenv ([#1169](https://github.com/heroku/heroku-buildpack-python/pull/1169)). -## v188 (2020-12-21) +## v188 - 2020-12-21 - Python 3.8.7 is now available (CPython) ([#1125](https://github.com/heroku/heroku-buildpack-python/pull/1125)). -## v187 (2020-12-08) +## v187 - 2020-12-08 - Python 3.9.1 is now available (CPython) ([#1127](https://github.com/heroku/heroku-buildpack-python/pull/1127)). -## v186 (2020-11-18) +## v186 - 2020-11-18 - Update the `BUILD_WITH_GEO_LIBRARIES` error message ([#1121](https://github.com/heroku/heroku-buildpack-python/pull/1121)). - Switch NLTK feature detection away from `sp-grep` ([#1119](https://github.com/heroku/heroku-buildpack-python/pull/1119)). @@ -302,7 +302,7 @@ - Remove vendored `pip-diff` script ([#1118](https://github.com/heroku/heroku-buildpack-python/pull/1118)). - Remove vendored `pip-grep` script ([#1116](https://github.com/heroku/heroku-buildpack-python/pull/1116)). -## v185 (2020-11-12) +## v185 - 2020-11-12 - Error if the unsupported `BUILD_WITH_GEO_LIBRARIES` env var is set ([#1115](https://github.com/heroku/heroku-buildpack-python/pull/1115)). - Remove deprecated GDAL/GEOS/PROJ support ([#1113](https://github.com/heroku/heroku-buildpack-python/pull/1113)). @@ -310,52 +310,52 @@ - Remove redundant Mercurial install step ([#1111](https://github.com/heroku/heroku-buildpack-python/pull/1111)). - Remove support for the Cedar-14 stack ([#1110](https://github.com/heroku/heroku-buildpack-python/pull/1110)). -## v184 (2020-10-21) +## v184 - 2020-10-21 - Vendor buildpack-stdlib instead of fetching from S3 ([#1100](https://github.com/heroku/heroku-buildpack-python/pull/1100)). - Fix metric names for metrics emitted within `sub_env` ([#1099](https://github.com/heroku/heroku-buildpack-python/pull/1099)). -## v183 (2020-10-12) +## v183 - 2020-10-12 - Add support for Heroku-20 ([#968](https://github.com/heroku/heroku-buildpack-python/pull/968)). -## v182 (2020-10-06) +## v182 - 2020-10-06 - Python 3.9.0 is now available (CPython) ([#1090](https://github.com/heroku/heroku-buildpack-python/pull/1090)). - Migrate from the `lang-python` S3 bucket to `heroku-buildpack-python` ([#1089](https://github.com/heroku/heroku-buildpack-python/pull/1089)). - Remove `vendor/shunit2` ([#1086](https://github.com/heroku/heroku-buildpack-python/pull/1086)). - Replace `BUILDPACK_VENDOR_URL` and `USE_STAGING_BINARIES` with `BUILDPACK_S3_BASE_URL` ([#1085](https://github.com/heroku/heroku-buildpack-python/pull/1085)). -## v181 (2020-09-29) +## v181 - 2020-09-29 - PyPy 2.7 and 3.6, version 7.3.2 are now available (Note: PyPy support is in beta) ([#1081](https://github.com/heroku/heroku-buildpack-python/pull/1081)). -## v180 (2020-09-24) +## v180 - 2020-09-24 - Python 3.8.6 is now available (CPython) ([#1072](https://github.com/heroku/heroku-buildpack-python/pull/1072)). -## v179 (2020-09-23) +## v179 - 2020-09-23 - Remove duplicate pipenv metric event ([#1070](https://github.com/heroku/heroku-buildpack-python/pull/1070)). - Emit metrics for how the Python version was chosen for an app ([#1069](https://github.com/heroku/heroku-buildpack-python/pull/1069)). - Emit Python version metric events for all builds, not just clean installs ([#1066](https://github.com/heroku/heroku-buildpack-python/pull/1066)). -## v178 (2020-09-07) +## v178 - 2020-09-07 - Python 3.5.10 is now available (CPython) ([#1062](https://github.com/heroku/heroku-buildpack-python/pull/1062)). -## v177 (2020-08-18) +## v177 - 2020-08-18 - Python 3.6.12 and 3.7.9 are now available (CPython) ([#1054](https://github.com/heroku/heroku-buildpack-python/pull/1054)). - The default Python version for new apps is now 3.6.12 (previously 3.6.11) ([#1054](https://github.com/heroku/heroku-buildpack-python/pull/1054)). -## v176 (2020-08-12) +## v176 - 2020-08-12 - Rebuild the Python 3.4.10 archives with the correct version of Python ([#1048](https://github.com/heroku/heroku-buildpack-python/pull/1048)). - Fix the security update version check message for apps using PyPy ([#1040](https://github.com/heroku/heroku-buildpack-python/pull/1040)). - Remove `vendor/test-utils` ([#1043](https://github.com/heroku/heroku-buildpack-python/pull/1043)). -## v175 (2020-08-05) +## v175 - 2020-08-05 - Update pip from 20.0.2 to 20.1.1 for Python 2.7 and Python 3.5+ ([#1030](https://github.com/heroku/heroku-buildpack-python/pull/1030)). - Update setuptools from 39.0.1 to: ([#1024](https://github.com/heroku/heroku-buildpack-python/pull/1024)) @@ -364,7 +364,7 @@ - 47.1.1 for Python 3.5+ - Switch the `heroku-buildpack-python` repository default branch from `master` to `main` ([#1029](https://github.com/heroku/heroku-buildpack-python/pull/1029)). -## v174 (2020-07-30) +## v174 - 2020-07-30 - For repeat builds, also manage the installed versions of setuptools/wheel, rather than just that of pip ([#1007](https://github.com/heroku/heroku-buildpack-python/pull/1007)). - Install an explicit version of wheel rather than the latest release at the time ([#1007](https://github.com/heroku/heroku-buildpack-python/pull/1007)). @@ -375,33 +375,33 @@ - Install setuptools from PyPI rather than a vendored copy ([#1007](https://github.com/heroku/heroku-buildpack-python/pull/1007)). - Reduce the number of environment variables exposed to `bin/{pre,post}_compile` and other subprocesses ([#1011](https://github.com/heroku/heroku-buildpack-python/pull/1011)). -## v173 (2020-07-21) +## v173 - 2020-07-21 - Python 3.8.5 is now available (CPython). -## v172 (2020-07-17) +## v172 - 2020-07-17 - Python 3.8.4 is now available (CPython). -## v171 (2020-07-07) +## v171 - 2020-07-07 - Python 3.6.11 and 3.7.8 are now available (CPython). -## v170 (2020-05-19) +## v170 - 2020-05-19 - Python 2.7.18, 3.5.9, 3.7.7 and 3.8.3 are now available (CPython). - PyPy 2.7 and 3.6, version 7.3.1 are now available (Note: PyPy support is in beta). - Docs: Fix explanation of runtime.txt generation when using pipenv. - Bugfix: Correctly detect Python version when using a `python_version` of `3.8` in `Pipfile.lock`. -## v169 (2020-04-22) +## v169 - 2020-04-22 - Add a Hatchet test for python 3.8.2 -- Set Code Owners to @heroku/langauges +- Set Code Owners to `@heroku/languages` - Bugfix: Caching on subsequent redeploys - Update tests to support latest version of Python -## v168 (2020-04-06) +## v168 - 2020-04-06 - Doc: Update Readme with version numbers - update Code Owners to include the Heroku Buildpack Maintainers team @@ -410,48 +410,48 @@ - Update Python versions in README to match docs - Django version detection fixed, link updated -## v167 (2020-03-26) +## v167 - 2020-03-26 - Add failcase for cache busting - Bugfix: Clearing pip dependencies -## v166 (2020-03-05) +## v166 - 2020-03-05 - Correct ftp to https in vendored file - Warn for Django 1.11 approaching EOL, provide link to roadmap -## v165 (2020-02-27) +## v165 - 2020-02-27 - Python 3.8.2 now available. -## v164 (2020-02-20) +## v164 - 2020-02-20 - Update requirements.txt builds to use Pip 20.0.2 - Download get-pip.py to tmpdir instead of root dir -## v163 (2019-12-23) +## v163 - 2019-12-23 - New pythons released: Python 3.8.1, 3.7.6, 3.6.10 (CPython) Beta Release: Pypy 2.7 and 3.6, version 7.2.0 -## v162 (2019-12-06) +## v162 - 2019-12-06 - Bug fix: fragile sqlite3 install -## v161 (2019-12-2) +## v161 - 2019-12-02 - Bug fix: Sqlite3 version bump -## v160 (2019-10-23) +## v160 - 2019-10-23 - Bugfix: Pipenv no longer installs twice in CI -## v159 (2019-10-22) +## v159 - 2019-10-22 - Python 2.7.17 now available on Heroku 18 and 16. -## v158 (2019-10-21) +## v158 - 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 @@ -459,11 +459,11 @@ - Test Improvements - Add support for staging binary testing -## v157 (2019-09-18) +## v157 - 2019-09-18 - Typo fixes -## v156 (2019-09-12) +## v156 - 2019-09-12 - Python 3.6.9 and 3.7.4 now available. @@ -471,61 +471,61 @@ - Build utility and documentation updates - Bump Hatchet tests to point at new default python version. -## v155 (2019-08-22) +## v155 - 2019-08-22 add docs and make target for heroku-18 bob builds -## v154 (2019-07-17) +## v154 - 2019-07-17 Fix python 3.5.7 formula actually building 3.7.2 -## v153 (2019-06-21) +## v153 - 2019-06-21 Hotfix for broken heroku-16 deploys -## v152 (2019-04-04) +## v152 - 2019-04-04 Python 3.7.3 now available. -## v151 (2019-03-21) +## v151 - 2019-03-21 Python 3.5.7 and 3.4.10 now available on all Heroku stacks. -## v150 (2019-03-13) +## v150 - 2019-03-13 Python 2.7.16 now available on all Heroku stacks. -## v149 (2019-03-04) +## v149 - 2019-03-04 Hotfix for broken Cedar 14 deploys -## v148 (2019-02-21) +## v148 - 2019-02-21 No user facing changes, improving internal metrics -## v147 (2019-02-07) +## v147 - 2019-02-07 Python 3.7.2 and 3.6.8 now available on all Heroku stacks. -## v146 (2018-11-11) +## v146 - 2018-11-11 Python 3.7.1, 3.6.7, 3.5.6 and 3.4.9 now available on all Heroku stacks. -## v145 (2018-11-08) +## v145 - 2018-11-08 Testing and tooling expanded to better support new runtimes -## v144 (2018-10-10) +## v144 - 2018-10-10 Switch to cautious upgrade for Pipenv install to ensure the pinned pip version is used with Pipenv -## v143 (2018-10-09) +## v143 - 2018-10-09 Add support for detecting `SLUGIFY_USES_TEXT_UNIDECODE`, which is required to install Apache Airflow version 1.10 or higher. -## v142 (2018-10-08) +## v142 - 2018-10-08 Improvements to Python install messaging @@ -533,23 +533,23 @@ Improvements to Python install messaging No user-facing changes, documenting for version clarity -## v138 (2018-08-01) +## v138 - 2018-08-01 Use stack image SQLite3 instead of vendoring -## v137 (2018-07-17) +## v137 - 2018-07-17 Prevent 3.7.0 from appearing as unsupported in buildpack messaging. -## v136 (2018-06-28) +## v136 - 2018-06-28 Upgrade to 3.6.6 and support 3.7.0 on all runtimes. -## v135 (2018-05-29) +## v135 - 2018-05-29 Upgrade Pipenv to v2018.5.18. -## v134 (2018-05-02) +## v134 - 2018-05-02 Default to 3.6.5, bugfixes. @@ -805,28 +805,28 @@ Support for Heroku CI. - Cffi support for argon2 -## v82 (2016-08-22) +## v82 - 2016-08-22 Update to library detection mechanisms (pip-pop). - Updated setuptools to v25.5.0 -## v81 (2016-06-28) +## v81 - 2016-06-28 Updated default Python to 2.7.11. - Updated pip to v8.1.2. - Updated setuptools to v23.1.0. -## v80 (2016-04-05) +## v80 - 2016-04-05 Improved pip-pop compatibility with latest pip releases. -## v79 (2016-03-22) +## v79 - 2016-03-22 Compatibility improvements with heroku-apt-buildpack. -## v78 (2016-03-18) +## v78 - 2016-03-18 Added automatic configuration of Gunicorn's `FORWARDED_ALLOW_IPS` setting. @@ -840,11 +840,11 @@ Improved GDAL support. Updated pip to 8.1.1 and setuptools to 20.3. -## v77 (2016-02-10) +## v77 - 2016-02-10 Improvements to warnings and minor bugfix. -## v76 (2016-02-08) +## v76 - 2016-02-08 Improved Django collectstatic support. @@ -855,75 +855,115 @@ Improved Django collectstatic support. - Updated build output style. - New warning for outdated Python (via pip `InsecurePlatform` warning). -## v75 (2016-01-29) +## v75 - 2016-01-29 Updated pip and Setuptools. -## v74 (2015-12-29) +## v74 - 2015-12-29 Added warnings for lack of Procfile. -## v72 (2015-12-07) +## v72 - 2015-12-07 Updated default Python to 2.7.11. -## v72 (2015-12-03) +## v72 - 2015-12-03 Added friendly warnings for common build failures. -## v70 (2015-10-29) +## v70 - 2015-10-29 Improved compatibility with multi and node.js buildpacks. -## v69 (2015-10-12) +## v69 - 2015-10-12 Revert to v66. -## v68 (2015-10-12) +## v68 - 2015-10-12 Fixed `.heroku/venv` error with modern apps. -## v67 (2015-10-12) +## v67 - 2015-10-12 Further improved cache compatibility with multi and node.js buildpacks. -## v66 (2015-10-09) +## v66 - 2015-10-09 Improved compatibility with multi and node.js buildpacks. -## v65 (2015-10-08) +## v65 - 2015-10-08 Reverted v64. -## v64 (2015-10-08) +## v64 - 2015-10-08 Improved compatibility with multi and node.js buildpacks. -## v63 (2015-10-08) +## v63 - 2015-10-08 Updated Pip and Setuptools. - Setuptools updated to v18.3.2 - Pip updated to v7.1.2 -## v62 (2015-08-07) +## v62 - 2015-08-07 Updated Pip and Setuptools. - Setuptools updated to v18.1 - Pip updated to v7.1.0 -## v61 (2015-06-30) +## v61 - 2015-06-30 Updated Pip and Setuptools. - Setuptools updated to v18.0.1 - Pip updated to v7.0.3 -## v60 (2015-05-27) +## v60 - 2015-05-27 Default Python is now latest 2.7.10. Updated Pip and Distribute. - Default Python version is v2.7.10 - Setuptools updated to v16.0 - Pip updated to v7.0.1 + +[unreleased]: https://github.com/heroku/heroku-buildpack-python/compare/v237...HEAD +[v237]: https://github.com/heroku/heroku-buildpack-python/compare/v236...v237 +[v236]: https://github.com/heroku/heroku-buildpack-python/compare/v235...v236 +[v235]: https://github.com/heroku/heroku-buildpack-python/compare/v234...v235 +[v234]: https://github.com/heroku/heroku-buildpack-python/compare/v233...v234 +[v233]: https://github.com/heroku/heroku-buildpack-python/compare/v232...v233 +[v232]: https://github.com/heroku/heroku-buildpack-python/compare/v231...v232 +[v231]: https://github.com/heroku/heroku-buildpack-python/compare/v230...v231 +[v230]: https://github.com/heroku/heroku-buildpack-python/compare/v229...v230 +[v229]: https://github.com/heroku/heroku-buildpack-python/compare/v228...v229 +[v228]: https://github.com/heroku/heroku-buildpack-python/compare/v227...v228 +[v227]: https://github.com/heroku/heroku-buildpack-python/compare/v226...v227 +[v226]: https://github.com/heroku/heroku-buildpack-python/compare/v225...v226 +[v225]: https://github.com/heroku/heroku-buildpack-python/compare/v224...v225 +[v224]: https://github.com/heroku/heroku-buildpack-python/compare/v223...v224 +[v223]: https://github.com/heroku/heroku-buildpack-python/compare/v222...v223 +[v222]: https://github.com/heroku/heroku-buildpack-python/compare/v221...v222 +[v221]: https://github.com/heroku/heroku-buildpack-python/compare/v220...v221 +[v220]: https://github.com/heroku/heroku-buildpack-python/compare/v219...v220 +[v219]: https://github.com/heroku/heroku-buildpack-python/compare/v218...v219 +[v218]: https://github.com/heroku/heroku-buildpack-python/compare/v217...v218 +[v217]: https://github.com/heroku/heroku-buildpack-python/compare/v216...v217 +[v216]: https://github.com/heroku/heroku-buildpack-python/compare/v215...v216 +[v215]: https://github.com/heroku/heroku-buildpack-python/compare/v214...v215 +[v214]: https://github.com/heroku/heroku-buildpack-python/compare/v213...v214 +[v213]: https://github.com/heroku/heroku-buildpack-python/compare/v212...v213 +[v212]: https://github.com/heroku/heroku-buildpack-python/compare/v211...v212 +[v211]: https://github.com/heroku/heroku-buildpack-python/compare/v210...v211 +[v210]: https://github.com/heroku/heroku-buildpack-python/compare/v209...v210 +[v209]: https://github.com/heroku/heroku-buildpack-python/compare/v208...v209 +[v208]: https://github.com/heroku/heroku-buildpack-python/compare/archive/v207...v208 +[v207]: https://github.com/heroku/heroku-buildpack-python/compare/archive/v206...archive/v207 +[v206]: https://github.com/heroku/heroku-buildpack-python/compare/archive/v205...archive/v206 +[v205]: https://github.com/heroku/heroku-buildpack-python/compare/archive/v204...archive/v205 +[v204]: https://github.com/heroku/heroku-buildpack-python/compare/archive/v203...archive/v204 +[v203]: https://github.com/heroku/heroku-buildpack-python/compare/archive/v202...archive/v203 +[v202]: https://github.com/heroku/heroku-buildpack-python/compare/archive/v201...archive/v202 +[v201]: https://github.com/heroku/heroku-buildpack-python/compare/archive/v200...archive/v201 +[v200]: https://github.com/heroku/heroku-buildpack-python/compare/archive/v199...archive/v200