Skip to content
This repository was archived by the owner on Dec 31, 2021. It is now read-only.

Update python buildpack #1

Open
wants to merge 493 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
493 commits
Select commit Hold shift + click to select a range
54d3c85
Update pip to 23.1.2 and setuptools to 67.7.2 (#1441)
edmorley Apr 27, 2023
ee3c40e
Handle the case where there are multiple bundled pip wheels (#1444)
edmorley Apr 27, 2023
7576b17
Release v232 (#1443)
edmorley Apr 27, 2023
d215801
Remove support for Heroku-18 (#1449)
edmorley May 3, 2023
803977b
Bump rubocop from 1.49.0 to 1.50.2 (#1448)
dependabot[bot] May 3, 2023
968f983
Bump rubocop-rspec from 2.19.0 to 2.20.0 (#1445)
dependabot[bot] May 3, 2023
40d20de
Bump rspec-core from 3.12.1 to 3.12.2 (#1447)
dependabot[bot] May 3, 2023
892d5a0
Bump rspec-expectations from 3.12.2 to 3.12.3 (#1446)
dependabot[bot] May 3, 2023
076cdd2
Update test assertions after changes to the getting started guide (#1…
edmorley May 22, 2023
ad0b97f
Bump rubocop from 1.50.2 to 1.51.0 (#1452)
dependabot[bot] Jun 1, 2023
6da0467
Bump rubocop-rspec from 2.20.0 to 2.22.0 (#1453)
dependabot[bot] Jun 1, 2023
3a443d9
Add support for Python 3.7.17, 3.8.17, 3.9.17, 3.10.12 and 3.11.4 (#1…
edmorley Jun 7, 2023
22dafda
Refactor error handling build_python_runtime.sh (#1455)
edmorley Jun 7, 2023
050d93a
Update setuptools from 67.7.2 to 67.8.0 (#1456)
edmorley Jun 7, 2023
d1357b7
Release v233 (#1457)
edmorley Jun 7, 2023
e5d1040
Bump rubocop from 1.51.0 to 1.54.0 (#1458)
dependabot[bot] Jul 1, 2023
3293b4f
Update Python 3.7 deprecation message now it has reached EOL (#1460)
edmorley Jul 10, 2023
2b630dd
Update AWS_DEFAULT_REGION to match the current S3 region (#1461)
edmorley Jul 10, 2023
252cf9f
Remove stale files from the buildpack publish ignore list (#1462)
edmorley Jul 16, 2023
fce9ad3
Remove stale steps docs (#1463)
edmorley Jul 16, 2023
6aab7e2
Allow packaging tool versions to be updated by Dependabot (#1464)
edmorley Jul 16, 2023
b6acc95
Bump rubocop from 1.54.0 to 1.54.2 (#1466)
dependabot[bot] Jul 16, 2023
9e2fa17
Bump pip from 23.1.2 to 23.2 in /requirements (#1465)
dependabot[bot] Jul 17, 2023
66660e5
Bump setuptools from 67.8.0 to 68.0.0 in /requirements (#1467)
dependabot[bot] Jul 17, 2023
4cc5d68
Bump pipenv from 2023.2.4 to 2023.7.11 in /requirements (#1468)
dependabot[bot] Jul 17, 2023
3a02a6e
Bump pip from 23.2 to 23.2.1 in /requirements (#1470)
dependabot[bot] Jul 23, 2023
68ca30e
Bump wheel from 0.40.0 to 0.41.0 in /requirements (#1469)
dependabot[bot] Jul 23, 2023
08cb18b
Bump pipenv from 2023.7.11 to 2023.7.23 in /requirements (#1471)
dependabot[bot] Jul 24, 2023
2ffd01f
Release v234 (#1472)
edmorley Jul 24, 2023
6e60bbe
Bump rubocop-rspec from 2.22.0 to 2.23.0 (#1474)
dependabot[bot] Aug 1, 2023
6138926
Bump rubocop from 1.54.2 to 1.55.1 (#1473)
dependabot[bot] Aug 1, 2023
e58a32b
Bump rubocop from 1.55.1 to 1.56.1 (#1475)
dependabot[bot] Aug 25, 2023
c2813fa
Bump rubocop-rspec from 2.23.0 to 2.23.2 (#1476)
dependabot[bot] Aug 25, 2023
61195e6
Add support for Python 3.8.18, 3.9.18, 3.10.13 and 3.11.5 (#1477)
edmorley Aug 25, 2023
e282539
Release v235 (#1478)
edmorley Aug 25, 2023
562b290
Group minor/patch version Ruby Dependabot updates into one PR (#1479)
edmorley Aug 31, 2023
23798d1
Bump the ruby-dependencies group with 1 update (#1483)
dependabot[bot] Aug 31, 2023
1c850b8
Bump the ruby-dependencies group with 2 updates (#1488)
dependabot[bot] Oct 1, 2023
163c6b4
Bump actions/checkout from 3 to 4 (#1487)
dependabot[bot] Oct 1, 2023
8f09642
Update pipenv tests (#1489)
edmorley Oct 2, 2023
3ac9ded
Add support for Python 3.12 (#1490)
edmorley Oct 2, 2023
3fbae08
Add support for Python 3.11.6 (#1491)
edmorley Oct 2, 2023
6c49dd8
Release v236 (#1492)
edmorley Oct 2, 2023
d70fc83
Migrate away from the deprecated `pkgutil.find_loader()` (#1493)
edmorley Oct 3, 2023
885ec93
Release v237 (#1493)
edmorley Oct 3, 2023
b2f22c7
Bump pip from 23.2.1 to 23.3.1 in /requirements (#1496)
dependabot[bot] Oct 21, 2023
d9adcb1
Bump wheel from 0.41.0 to 0.41.2 in /requirements (#1482)
dependabot[bot] Oct 21, 2023
63e7e67
Change Dependabot pip directory to repo root (#1499)
edmorley Oct 23, 2023
8f2402d
Bump the ruby-dependencies group with 2 updates (#1505)
dependabot[bot] Nov 1, 2023
153a074
Bump wheel from 0.41.2 to 0.41.3 (#1503)
dependabot[bot] Nov 6, 2023
d26c3a8
Add a Prepare Release GitHub Actions workflow (#1506)
edmorley Nov 6, 2023
ee343d0
Prepare release v238 (#1507)
heroku-linguist[bot] Nov 6, 2023
5c7ccee
Drop support for Python 3.7 (#1508)
edmorley Nov 8, 2023
2de7d15
Prepare release v239 (#1509)
heroku-linguist[bot] Nov 8, 2023
fa4067f
Bump setuptools from 68.0.0 to 68.2.2 (#1501)
dependabot[bot] Nov 8, 2023
d91a725
Bump pipenv from 2023.7.23 to 2023.10.24 (#1502)
dependabot[bot] Nov 8, 2023
031b1d6
Bump pipenv from 2023.10.24 to 2023.11.15 (#1512)
dependabot[bot] Nov 28, 2023
e444f45
Bump wheel from 0.41.3 to 0.42.0 (#1511)
dependabot[bot] Nov 28, 2023
d260e91
Prepare release v240 (#1513)
heroku-linguist[bot] Nov 30, 2023
b24a74d
Bump the ruby-dependencies group with 1 update (#1514)
dependabot[bot] Dec 5, 2023
25ffad0
Add a deprecation warning for Python 3.8 (#1515)
edmorley Dec 5, 2023
20657a5
Use Python 3.12 as the default Python version for new apps (#1516)
edmorley Dec 5, 2023
095c1e7
Add support for Python 3.11.7 (#1517)
edmorley Dec 6, 2023
cb74a74
Add support for Python 3.12.1 (#1518)
edmorley Dec 8, 2023
edcd18b
Prepare release v241 (#1519)
heroku-linguist[bot] Dec 8, 2023
c17713d
Bump the ruby-dependencies group with 1 update (#1522)
dependabot[bot] Jan 2, 2024
d1ca05a
Bump pip from 23.3.1 to 23.3.2 (#1524)
dependabot[bot] Jan 2, 2024
a97924c
Never skip running `pipenv install` (#1526)
edmorley Jan 5, 2024
3e59c28
Fix caching of editable VCS Pipenv dependencies (#1528)
edmorley Jan 6, 2024
31f7b2f
Bump the ruby-dependencies group with 1 update (#1530)
dependabot[bot] Jan 10, 2024
c00d09d
Prepare release v242 (#1531)
heroku-linguist[bot] Jan 10, 2024
35cbe44
Update v242 release date (#1532)
edmorley Jan 10, 2024
473f5bd
Switch to the new "Prepare release" GitHub Actions workflow (#1533)
edmorley Jan 31, 2024
7c84c7d
Reduce team review request noise from CODEOWNERS (#1536)
edmorley Feb 1, 2024
584def2
Bump the ruby-dependencies group with 1 update (#1534)
dependabot[bot] Feb 2, 2024
cd8aec5
Add support for Python 3.11.8 and 3.12.2 (#1538)
edmorley Feb 7, 2024
1d3c716
Prepare release v243 (#1539)
heroku-linguist[bot] Feb 7, 2024
9a8665b
Bump the ruby-dependencies group with 2 updates (#1542)
dependabot[bot] Feb 15, 2024
881f424
Update Pip log output test assertion after PyPI metadata backfill (#1…
edmorley Mar 4, 2024
2e53779
Bump the ruby-dependencies group with 2 updates (#1545)
dependabot[bot] Mar 4, 2024
d676012
Bump the ruby-dependencies group with 1 update (#1548)
dependabot[bot] Mar 6, 2024
36db3fe
Improve `WEB_CONCURRENCY` support (#1547)
edmorley Mar 13, 2024
a25962a
Prepare release v244 (#1549)
heroku-linguist[bot] Mar 13, 2024
c81716b
Add support for Python 3.8.19, 3.9.19 and 3.10.14 (#1551)
edmorley Mar 21, 2024
f8ef4c3
Prepare release v245 (#1552)
heroku-linguist[bot] Mar 21, 2024
2498aeb
Bump pip from 23.3.2 to 24.0 (#1541)
dependabot[bot] Mar 21, 2024
0abcf88
Bump setuptools from 68.2.2 to 69.2.0 (#1553)
dependabot[bot] Mar 21, 2024
20cea02
Bump wheel from 0.42.0 to 0.43.0 (#1550)
dependabot[bot] Mar 21, 2024
9f34ecd
Bump pipenv from 2023.11.15 to 2023.12.1 (#1540)
dependabot[bot] Mar 21, 2024
1593d55
Prepare release v246 (#1554)
heroku-linguist[bot] Mar 25, 2024
4281295
Test WEB_CONCURRENCY calculation for larger dyno sizes (#1555)
edmorley Mar 28, 2024
6d4140b
Bump the ruby-dependencies group with 2 updates (#1557)
dependabot[bot] Apr 8, 2024
6a7da68
Add support for Python 3.11.9 (#1558)
edmorley Apr 8, 2024
84216e6
Prepare release v247 (#1559)
heroku-linguist[bot] Apr 8, 2024
4dd34cd
Add support for Python 3.12.3 (#1560)
edmorley Apr 9, 2024
1819e56
Prepare release v248 (#1561)
heroku-linguist[bot] Apr 9, 2024
7ae0b9d
Update changelog entry for #1560 (#1562)
edmorley Apr 11, 2024
4e335e1
Cleanup binary build workflows/scripts (#1564)
edmorley Apr 15, 2024
1a704d3
Exclude `LD_LIBRARY_PATH` and `PYTHONHOME` when invoking subprocesses…
edmorley Apr 16, 2024
84684a0
Adjust compiler options used to build Python (#1566)
edmorley Apr 16, 2024
bad3e01
Replace the `runtime-fixer` Python script with Bash (#1568)
edmorley Apr 18, 2024
a9bcb10
Fix the "security update available" version check (#1569)
edmorley Apr 18, 2024
42d1ba2
Improve the EOL Python error messaging (#1570)
edmorley Apr 18, 2024
2c35ea4
Change compression format and S3 URL for Python runtime archives (#1567)
edmorley Apr 18, 2024
4e9eac2
Update Python and dependency versions in test fixtures (#1571)
edmorley Apr 18, 2024
96e0ced
Prepare release v249 (#1572)
heroku-linguist[bot] Apr 18, 2024
151fb27
Support building Python binaries for a specific stack (#1573)
edmorley Apr 22, 2024
18ce591
Add Python binary build support for Heroku-24 (#1574)
edmorley Apr 22, 2024
1e63669
Add buildpack support for Heroku-24 (#1575)
edmorley Apr 26, 2024
f900da1
Prepare release v250 (#1576)
heroku-linguist[bot] Apr 26, 2024
4f2b33f
Bump rubocop from 1.63.0 to 1.63.4 in the ruby-dependencies group (#1…
dependabot[bot] May 1, 2024
c233dbd
Build Python 3.10 runtimes for Heroku-24 too (#1579)
edmorley May 3, 2024
806e640
Explicitly install `libreadline-dev` when building Python runtimes (#…
edmorley May 9, 2024
a743d7d
Add pre-upload Python runtime tests (#1581)
edmorley May 9, 2024
e7fc041
Explicitly install `libdb-dev` when building Python runtimes (#1582)
edmorley May 14, 2024
706f33e
Bump the ruby-dependencies group with 2 updates (#1584)
dependabot[bot] May 17, 2024
d815b3d
Make Python runtime archive tests more robust (#1585)
edmorley May 22, 2024
ce39d0c
Fix editable mode tests after latest setuptools release (#1586)
edmorley May 22, 2024
00d8deb
Switch to the GA GitHub Actions ARM runners (#1588)
edmorley May 30, 2024
d8ebe74
Bump rubocop from 1.63.5 to 1.64.1 in the ruby-dependencies group (#1…
dependabot[bot] Jun 1, 2024
a2b7ec5
Add support for Python 3.12.4 (#1591)
edmorley Jun 7, 2024
c506173
Prepare release v251 (#1592)
heroku-linguist[bot] Jun 7, 2024
c3cba15
Enable rspec-retry in CI (#1594)
edmorley Jun 11, 2024
6ef563a
Remove unnecessary `pipenv-to-pip` script (#1593)
edmorley Jun 11, 2024
055f8c6
Misc bash script refactoring (#1595)
edmorley Jun 12, 2024
beb3328
Improve shellcheck coverage (#1596)
edmorley Jun 13, 2024
8c46490
Implement `bin/report` (#1597)
edmorley Jun 17, 2024
68db057
Prepare release v252 (#1598)
heroku-linguist[bot] Jun 17, 2024
3e4cc59
Bump the ruby-dependencies group with 2 updates (#1603)
dependabot[bot] Jun 21, 2024
9b13266
Bump rubocop-rspec from 2.31.0 to 3.0.1 (#1604)
dependabot[bot] Jun 21, 2024
e31b6e4
Update comments in binary build script (#1605)
edmorley Jun 26, 2024
b499813
Improve detection error messages (#1608)
edmorley Jul 1, 2024
5263022
Prepare release v253 (#1609)
heroku-linguist[bot] Jul 1, 2024
afe150b
Update CI to Ubuntu 24.04 runner images (#1610)
edmorley Jul 12, 2024
397e6c7
Bump setuptools from 69.2.0 to 70.3.0 (#1614)
dependabot[bot] Jul 16, 2024
f39d27a
Bump pipenv from 2023.12.1 to 2024.0.1 (#1601)
dependabot[bot] Jul 16, 2024
9a3b907
Prepare release v254 (#1615)
heroku-linguist[bot] Jul 16, 2024
c01046a
Bump the ruby-dependencies group with 2 updates (#1617)
dependabot[bot] Jul 30, 2024
e9835b8
Bump rubocop from 1.65.0 to 1.65.1 in the ruby-dependencies group (#1…
dependabot[bot] Aug 2, 2024
05f25cc
Add support for Python 3.12.5 (#1622)
edmorley Aug 7, 2024
27bfcfb
Prepare release v255 (#1623)
heroku-linguist[bot] Aug 7, 2024
20407e4
Bump the ruby-dependencies group with 2 updates (#1627)
dependabot[bot] Aug 27, 2024
f2372d2
Bump wheel from 0.43.0 to 0.44.0 (#1629)
dependabot[bot] Sep 2, 2024
fb95554
Add setuptools to the Dependabot ignore list (#1631)
edmorley Sep 2, 2024
928d0c5
Bump rubocop from 1.65.1 to 1.66.0 in the ruby-dependencies group (#1…
dependabot[bot] Sep 2, 2024
cee5f83
Add support for Python 3.8.20, 3.9.20, 3.10.15, 3.11.10 and 3.12.6 (#…
edmorley Sep 7, 2024
d13fbbd
Prepare release v256 (#1633)
heroku-linguist[bot] Sep 7, 2024
b5bbcb7
Fix duplicate word in binary build script error messages (#1635)
edmorley Sep 23, 2024
0dde52d
Improve `make run` (#1636)
edmorley Sep 23, 2024
80e7781
Misc integration test improvements (#1634)
edmorley Sep 23, 2024
b9f7f3f
Add more files to the buildpack publishing file exclusion list (#1637)
edmorley Sep 23, 2024
3da3b3a
Format shell scripts using shfmt (#1638)
edmorley Sep 23, 2024
6697fd5
Switch to a new output helper for error messages (#1639)
edmorley Sep 23, 2024
8b00114
Refactor package manager handling (#1640)
edmorley Sep 24, 2024
54940fd
Prepare release v257 (#1641)
heroku-linguist[bot] Sep 24, 2024
4750e23
Consistently use lowercase "pip" (#1643)
edmorley Sep 30, 2024
8656b21
Remove remnants of the `.heroku/vendor/` directory (#1644)
edmorley Sep 30, 2024
e3dbc78
Avoid trailing colon when prepending to optional env vars (#1645)
edmorley Sep 30, 2024
2a23f41
Remove deadcode from vendored buildpack-stdlib (#1647)
edmorley Sep 30, 2024
92c9328
Fix calls to `utils::abort_internal_error` (#1648)
edmorley Sep 30, 2024
4a264fc
Enable Bash exit on undefined variables (`set -u`) (#1646)
edmorley Sep 30, 2024
92661b8
Further `make run` improvements (#1649)
edmorley Sep 30, 2024
b0d0cb5
Add support for Python 3.12.7 (#1650)
edmorley Oct 1, 2024
39abf4f
Prepare release v258 (#1651)
heroku-linguist[bot] Oct 1, 2024
2b04d80
Bump rubocop-rspec from 3.0.5 to 3.1.0 in the ruby-dependencies group…
dependabot[bot] Oct 1, 2024
02f8ec0
Enable remaining optional Shellcheck rules (#1654)
edmorley Oct 3, 2024
92633fc
Enable Bash's `inherit_errexit` (#1655)
edmorley Oct 3, 2024
f29d3dc
Add support for Python 3.9 on Heroku-24 (#1656)
edmorley Oct 7, 2024
a5dfa07
Add additional buildpack metrics (#1657)
edmorley Oct 7, 2024
42499ff
Refactor Python version handling (#1658)
edmorley Oct 9, 2024
5a6ec71
Prepare release v259 (#1659)
heroku-linguist[bot] Oct 9, 2024
dd4d759
Add support for Python 3.13 (#1661)
edmorley Oct 10, 2024
a2cf258
Prepare release v260 (#1662)
heroku-linguist[bot] Oct 10, 2024
737bba1
Create a GitHub Release when publishing a new buildpack version (#1663)
edmorley Oct 14, 2024
d9bdeab
Add support for the `.python-version` file (#1664)
edmorley Oct 14, 2024
99684a6
Prepare release v261 (#1665)
heroku-linguist[bot] Oct 14, 2024
f03ed3f
Improve output utils for warnings, steps and indented output (#1666)
edmorley Oct 23, 2024
cbe99d6
Bump the ruby-dependencies group with 2 updates (#1669)
dependabot[bot] Oct 23, 2024
bf2ce13
Improve error handling and log output of `{pre,post}_compile` hooks (…
edmorley Oct 24, 2024
d92180d
Unskip env var tests on Heroku-22 (#1668)
edmorley Oct 24, 2024
99bd9f9
Fix leftover output::error args usages (#1671)
edmorley Oct 25, 2024
dba9b86
Prepare release v262 (#1672)
heroku-linguist[bot] Oct 25, 2024
f00f258
Improve cache handling (#1679)
edmorley Oct 31, 2024
d8e2ed9
Misc package manager handling refactor (#1680)
edmorley Oct 31, 2024
4df96c2
Prepare release v263 (#1681)
heroku-linguist[bot] Oct 31, 2024
6dda58a
Bump the ruby-dependencies group with 2 updates (#1683)
dependabot[bot] Nov 1, 2024
895a004
Add support for Poetry (#1682)
edmorley Nov 6, 2024
158def0
Prepare release v264 (#1686)
heroku-linguist[bot] Nov 6, 2024
b576e23
Fix using Poetry with outdated Python patch versions (#1687)
edmorley Nov 6, 2024
eed2dc7
Prepare release v265 (#1688)
heroku-linguist[bot] Nov 6, 2024
1f6857e
Log output and error handling improvements (#1689)
edmorley Nov 8, 2024
0cd8efc
Add a warning when multiple package managers are found (#1692)
edmorley Nov 8, 2024
c496baa
Improve NLTK downloader log output and error messages (#1690)
edmorley Nov 8, 2024
bfe0d09
Link to the stable release version of Pipenv's docs (#1693)
edmorley Nov 8, 2024
1416814
Prepare release v266 (#1694)
heroku-linguist[bot] Nov 8, 2024
ddf6aea
Deprecate using Pipenv without a lockfile (#1695)
edmorley Nov 12, 2024
498e2d2
Invoke `python -m venv` from a different working directory (#1698)
edmorley Nov 12, 2024
ca99c39
Prepare release v267 (#1696)
heroku-linguist[bot] Nov 12, 2024
5409e5e
Bump the ruby-dependencies group across 1 directory with 2 updates (#…
dependabot[bot] Dec 3, 2024
6be689b
Bump pip from 24.0 to 24.3.1 (#1685)
dependabot[bot] Dec 3, 2024
a0dbcf7
Bump wheel from 0.44.0 to 0.45.1 (#1707)
dependabot[bot] Dec 3, 2024
1b44202
Prepare release v268 (#1711)
heroku-linguist[bot] Dec 4, 2024
7ca1718
Add support for Python 3.13.1, 3.12.8, 3.11.11, 3.10.16 and 3.9.21 (#…
edmorley Dec 4, 2024
dc79a48
Prepare release v269 (#1713)
heroku-linguist[bot] Dec 4, 2024
b77dd09
Make Python version pinning pin to the major version only (#1714)
edmorley Dec 6, 2024
29f1606
Use Python 3.13 as the default Python version for new apps (#1715)
edmorley Dec 6, 2024
23bc527
Bump poetry from 1.8.4 to 1.8.5 (#1716)
dependabot[bot] Dec 9, 2024
07005f2
Prepare release v270 (#1717)
heroku-linguist[bot] Dec 10, 2024
c4e4a4f
Improve the error message shown for legacy Celery (#1718)
edmorley Dec 12, 2024
e74c46e
Use local scope for variables in output helpers (#1719)
edmorley Dec 12, 2024
8a27499
Improve the error message when bundled pip cannot be found (#1720)
edmorley Dec 12, 2024
eb29986
Update the Python 3.8 EOL warning sunset date (#1721)
edmorley Dec 12, 2024
e831d7e
Prepare release v271 (#1722)
heroku-linguist[bot] Dec 12, 2024
dfd025b
Fix Dev Center links to reflect recent article URL changes (#1723)
edmorley Dec 13, 2024
f225177
Add metrics for the existence of a uv lockfile (#1725)
edmorley Dec 13, 2024
0d42218
Add build environment validation checks (#1724)
edmorley Dec 13, 2024
8732383
Prepare release v272 (#1726)
heroku-linguist[bot] Dec 13, 2024
4f4c3c9
Bump the ruby-dependencies group with 3 updates (#1727)
dependabot[bot] Jan 1, 2025
f686af6
Include dotfiles in error message file listings (#1728)
edmorley Jan 2, 2025
23479e6
Expand buildpack detection known file list (#1729)
edmorley Jan 3, 2025
9a649bc
Prepare release v273 (#1730)
heroku-linguist[bot] Jan 3, 2025
009880b
Remove Python 3.8 support + deprecate Python 3.9 (#1732)
edmorley Jan 8, 2025
3fede9b
Prepare release v274 (#1733)
heroku-linguist[bot] Jan 8, 2025
7de568e
Bump poetry from 1.8.5 to 2.0.1 (#1734)
dependabot[bot] Jan 13, 2025
68913bf
Bump the ruby-dependencies group with 2 updates (#1735)
dependabot[bot] Jan 13, 2025
b90a475
Prepare release v275 (#1736)
heroku-linguist[bot] Jan 13, 2025
4c4cb7a
Tests: Misc package manager test improvements (#1738)
edmorley Jan 27, 2025
17b87c0
Update make target in `bin/report` debug instructions (#1739)
edmorley Jan 27, 2025
b3e0b29
Bump the ruby-dependencies group with 2 updates (#1742)
dependabot[bot] Feb 3, 2025
a61ce1c
Deprecate support for the `runtime.txt` file (#1743)
edmorley Feb 5, 2025
7531824
Add support for Python 3.13.2 and 3.12.9 (#1744)
edmorley Feb 5, 2025
c097dfe
Prepare release v276 (#1745)
heroku-linguist[bot] Feb 5, 2025
20a7829
Improve metrics for builds that fail (#1746)
edmorley Feb 12, 2025
a840ce3
Link to changelog from runtime.txt deprecation message (#1747)
edmorley Feb 12, 2025
4e8ae51
Improve Python download/installation (#1749)
edmorley Feb 17, 2025
fc44144
Prepare release v277 (#1750)
heroku-linguist[bot] Feb 17, 2025
51193fa
Update changelog links and tests after Git tag archival (#1752)
edmorley Feb 19, 2025
ee0a9eb
Change the editable VCS directory location for pip and Pipenv (#1753)
edmorley Feb 19, 2025
f2d2bc7
Improve package manager tests (#1754)
edmorley Feb 20, 2025
bb28227
`make run` workflow improvements (#1755)
edmorley Feb 21, 2025
b38d462
Rewrite editable VCS paths at build time too (#1756)
edmorley Feb 22, 2025
bf280f4
Bump the ruby-dependencies group with 4 updates (#1757)
dependabot[bot] Feb 22, 2025
53a59ae
Prepare release v278 (#1760)
heroku-linguist[bot] Feb 24, 2025
992f51d
Stop installing pip into Poetry's virtual environment (#1761)
edmorley Feb 24, 2025
ff523c2
Misc Poetry cleanups (#1762)
edmorley Feb 24, 2025
25172f4
Migrate to Rubocop's new plugin syntax (#1763)
edmorley Feb 24, 2025
3033b54
Improve package manager bootstrap error messages (#1764)
edmorley Feb 24, 2025
caa1a19
Stop filtering out pip's "Requirement already satisfied" log lines (#…
edmorley Feb 24, 2025
20cd0b6
Bump poetry from 2.0.1 to 2.1.1 (#1758)
dependabot[bot] Feb 25, 2025
a85e52c
Prepare release v279 (#1766)
heroku-linguist[bot] Feb 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .dockerignore

This file was deleted.

35 changes: 35 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# https://editorconfig.org
root = true

[*]
charset = utf-8
end_of_line = lf
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.sh]
binary_next_line = true
# We sadly have to use tabs in shell scripts otherwise we can't indent here documents:
# https://www.gnu.org/software/bash/manual/html_node/Redirections.html#Here-Documents
indent_style = tab
shell_variant = bash
switch_case_indent = true

# Catches scripts that we can't give a .sh file extension, such as the Buildpack API scripts.
[**/bin/**]
binary_next_line = true
indent_style = tab
shell_variant = bash
switch_case_indent = true

[.hatchet/repos/**]
ignore = true

# The setup-ruby GitHub Action creates this directory when caching is enabled, and if
# its not ignored will cause false positives when running shfmt in the CI lint job.
[vendor/bundle/**]
ignore = true

[Makefile]
indent_style = tab
6 changes: 0 additions & 6 deletions .git2gus/config.json

This file was deleted.

7 changes: 7 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
# Default to requesting pull request reviews from the Heroku Languages team.
* @heroku/languages

# However, request review from the language owner instead for files that are updated
# by Dependabot or release automation, to reduce team review request noise.
CHANGELOG.md @edmorley
Gemfile.lock @edmorley
/requirements/ @edmorley
33 changes: 26 additions & 7 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,34 @@
version: 2
updates:
- package-ecosystem: "pip"
- package-ecosystem: "bundler"
directory: "/"
schedule:
interval: "weekly"
interval: "monthly"
labels:
- "c: dependencies"

- package-ecosystem: "bundler"
- "dependencies"
- "ruby"
- "skip changelog"
groups:
ruby-dependencies:
update-types:
- "minor"
- "patch"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
labels:
- "dependencies"
- "github actions"
- "skip changelog"
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
interval: "monthly"
ignore:
# We're not updating to setuptools v71+ due to its new approach to vendored dependencies:
# https://github.com/heroku/heroku-buildpack-python/pull/1630#issuecomment-2324236653
- dependency-name: "setuptools"
labels:
- "c: dependencies"
- "dependencies"
- "python"
104 changes: 104 additions & 0 deletions .github/workflows/build_python_runtime.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: Build and upload Python runtime
run-name: "Build and upload Python ${{ inputs.python_version }}${{ inputs.dry_run && ' (dry run)' || '' }}"

on:
workflow_dispatch:
inputs:
python_version:
description: "Python version (eg: 3.13.0)"
type: string
required: true
stack:
description: "Stack(s)"
type: choice
options:
- auto
- heroku-20
- heroku-22
- heroku-24
default: auto
required: false
dry_run:
description: "Skip uploading to S3 (dry run)"
type: boolean
default: false
required: false

permissions:
contents: read

env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: "us-east-1"
S3_BUCKET: "heroku-buildpack-python"

# Unfortunately these jobs cannot be easily written as a matrix since `matrix.exclude` does not
# support expression syntax, and the `matrix` context is not available inside the job `if` key.
jobs:
heroku-20:
if: inputs.stack == 'heroku-20' || inputs.stack == 'auto'
runs-on: pub-hk-ubuntu-24.04-xlarge
env:
STACK_VERSION: "20"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build Docker image
run: docker build --platform="linux/amd64" --pull --tag buildenv --build-arg=STACK_VERSION builds/
- name: Compile and package Python runtime
run: docker run --rm --volume="${PWD}/upload:/tmp/upload" buildenv ./build_python_runtime.sh "${{ inputs.python_version }}"
- name: Test Python runtime
run: |
RUN_IMAGE='heroku/heroku:${{ env.STACK_VERSION }}'
ARCHIVE_FILENAME='python-${{ inputs.python_version }}-ubuntu-${{ env.STACK_VERSION }}.04-amd64.tar.zst'
docker run --rm --volume="${PWD}/upload:/upload:ro" --volume="${PWD}/builds:/builds:ro" "${RUN_IMAGE}" /builds/test_python_runtime.sh "/upload/${ARCHIVE_FILENAME}"
- name: Upload Python runtime archive to S3
if: (!inputs.dry_run)
run: aws s3 sync ./upload "s3://${S3_BUCKET}"

heroku-22:
if: inputs.stack == 'heroku-22' || inputs.stack == 'auto'
runs-on: pub-hk-ubuntu-24.04-xlarge
env:
STACK_VERSION: "22"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build Docker image
run: docker build --platform="linux/amd64" --pull --tag buildenv --build-arg=STACK_VERSION builds/
- name: Compile and package Python runtime
run: docker run --rm --volume="${PWD}/upload:/tmp/upload" buildenv ./build_python_runtime.sh "${{ inputs.python_version }}"
- name: Test Python runtime
run: |
RUN_IMAGE='heroku/heroku:${{ env.STACK_VERSION }}'
ARCHIVE_FILENAME='python-${{ inputs.python_version }}-ubuntu-${{ env.STACK_VERSION }}.04-amd64.tar.zst'
docker run --rm --volume="${PWD}/upload:/upload:ro" --volume="${PWD}/builds:/builds:ro" "${RUN_IMAGE}" /builds/test_python_runtime.sh "/upload/${ARCHIVE_FILENAME}"
- name: Upload Python runtime archive to S3
if: (!inputs.dry_run)
run: aws s3 sync ./upload "s3://${S3_BUCKET}"

heroku-24:
if: inputs.stack == 'heroku-24' || inputs.stack == 'auto'
strategy:
fail-fast: false
matrix:
arch: ["amd64", "arm64"]
runs-on: ${{ matrix.arch == 'arm64' && 'pub-hk-ubuntu-24.04-arm-xlarge' || 'pub-hk-ubuntu-24.04-xlarge' }}
env:
STACK_VERSION: "24"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build Docker image
run: docker build --platform="linux/${{ matrix.arch }}" --pull --tag buildenv --build-arg=STACK_VERSION builds/
- name: Compile and package Python runtime
run: docker run --rm --volume="${PWD}/upload:/tmp/upload" buildenv ./build_python_runtime.sh "${{ inputs.python_version }}"
- name: Test Python runtime
run: |
RUN_IMAGE='heroku/heroku:${{ env.STACK_VERSION }}'
ARCHIVE_FILENAME='python-${{ inputs.python_version }}-ubuntu-${{ env.STACK_VERSION }}.04-${{ matrix.arch }}.tar.zst'
docker run --rm --volume="${PWD}/upload:/upload:ro" --volume="${PWD}/builds:/builds:ro" "${RUN_IMAGE}" /builds/test_python_runtime.sh "/upload/${ARCHIVE_FILENAME}"
- name: Upload Python runtime archive to S3
if: (!inputs.dry_run)
run: aws s3 sync ./upload "s3://${S3_BUCKET}"
20 changes: 11 additions & 9 deletions .github/workflows/check_changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,19 @@ name: Check Changelog

on:
pull_request:
types: [opened, reopened, edited, synchronize]
types: [opened, reopened, labeled, unlabeled, synchronize]

permissions:
contents: read

jobs:
check-changelog:
runs-on: ubuntu-latest
if: |
!contains(github.event.pull_request.body, '[skip changelog]') &&
!contains(github.event.pull_request.body, '[changelog skip]') &&
!contains(github.event.pull_request.body, '[skip ci]') &&
!contains(github.event.pull_request.labels.*.name, 'c: dependencies')
runs-on: ubuntu-24.04
if: (!contains(github.event.pull_request.labels.*.name, 'skip changelog'))
steps:
- uses: actions/checkout@v1
- name: Checkout
uses: actions/checkout@v4
- name: Check that CHANGELOG is touched
run: git diff remotes/origin/${{ github.base_ref }} --name-only | grep CHANGELOG.md
run: |
git fetch origin ${{ github.base_ref }} --depth 1 && \
git diff remotes/origin/${{ github.base_ref }} --name-only | grep CHANGELOG.md
76 changes: 76 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: CI

on:
push:
# Avoid duplicate builds on PRs.
branches:
- main
pull_request:

permissions:
contents: read

env:
# Used by shfmt and more.
FORCE_COLOR: 1

jobs:
lint:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Ruby and dependencies
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
ruby-version: "3.4"
- name: Run ShellCheck
run: make lint-scripts
- name: Run shfmt
uses: docker://mvdan/shfmt:latest
with:
args: "--diff ."
- name: Run Rubocop
run: bundle exec rubocop

integration-test:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
stack: ["heroku-20", "heroku-22", "heroku-24"]
env:
HATCHET_APP_LIMIT: 300
HATCHET_DEFAULT_STACK: ${{ matrix.stack }}
HATCHET_EXPENSIVE_MODE: 1
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
HEROKU_API_USER: ${{ secrets.HEROKU_API_USER }}
HEROKU_DISABLE_AUTOUPDATE: 1
PARALLEL_SPLIT_TEST_PROCESSES: 75
RSPEC_RETRY_RETRY_COUNT: 2
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Ruby and dependencies
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
ruby-version: "3.4"
- name: Hatchet setup
run: bundle exec hatchet ci:setup
- name: Run Hatchet integration tests
# parallel_split_test runs rspec in parallel, with concurrency equal to PARALLEL_SPLIT_TEST_PROCESSES.
run: bundle exec parallel_split_test spec/hatchet/

container-test:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
# These test both the local development `make run` workflow and that `bin/report` completes successfully
# for both passing and failing builds (since `bin/report` can't easily be tested via Hatchet tests).
- name: Run buildpack using default app fixture
run: make run
- name: Run buildpack using an app fixture that's expected to fail
run: make run FIXTURE=spec/fixtures/python_version_file_invalid_version/ COMPILE_FAILURE_EXIT_CODE=0
31 changes: 31 additions & 0 deletions .github/workflows/hatchet_app_cleaner.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Hatchet App Cleaner

on:
schedule:
# Daily at 6am UTC.
- cron: "0 6 * * *"
# Allow the workflow to be manually triggered too.
workflow_dispatch:

permissions:
contents: read

jobs:
hatchet-app-cleaner:
runs-on: ubuntu-24.04
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
HEROKU_API_USER: ${{ secrets.HEROKU_API_USER }}
HEROKU_DISABLE_AUTOUPDATE: 1
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Ruby and dependencies
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
ruby-version: "3.4"
- name: Run Hatchet destroy
# Only apps older than 10 minutes are destroyed, to ensure that any
# in progress CI runs are not interrupted.
run: bundle exec hatchet destroy --older-than 10
12 changes: 12 additions & 0 deletions .github/workflows/prepare-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Prepare Release

on:
workflow_dispatch:

# Disable all GITHUB_TOKEN permissions, since the GitHub App token is used instead.
permissions: {}

jobs:
prepare-release:
uses: heroku/languages-github-actions/.github/workflows/_classic-buildpack-prepare-release.yml@latest
secrets: inherit
19 changes: 6 additions & 13 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
*.pyc
site
.DS_Store

/.envrc
__pycache__/
.hatchet/repos/

#Venv
buildpack/*

builds/dockerenv.staging*
builds/dockerenv.production

test/scratch
.venv/
# The setup-ruby GitHub Action creates this directory when caching is enabled, so we ignore
# it here so it does not show up in the output of `git ls-files` for `make lint-scripts`.
vendor/bundle/
.DS_Store
.rspec_status
Loading