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