All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Changed the
pip installcommands used to install the pip and Poetry package managers to now use--isolatedmode. (#434)
2.5.1 - 2025-09-23
2.5.0 - 2025-09-19
2.4.5 - 2025-09-09
- Updated uv from 0.8.13 to 0.8.15. (#420)
2.4.4 - 2025-08-26
- Updated uv from 0.8.9 to 0.8.13. (#413)
2.4.3 - 2025-08-15
- The Python 3.13 version alias now resolves to Python 3.13.7. (#409)
2.4.2 - 2025-08-13
- Updated uv from 0.8.5 to 0.8.9. (#405)
2.4.1 - 2025-08-06
- The Python 3.13 version alias now resolves to Python 3.13.6. (#401)
2.4.0 - 2025-08-06
- Updated pip from 25.1.1 to 25.2. (#394)
- Updated Poetry from 2.1.3 to 2.1.4. (#398)
- Updated uv from 0.8.4 to 0.8.5. (#399)
2.3.0 - 2025-08-01
- Updated uv from 0.7.20 to 0.8.4. (#393)
2.2.3 - 2025-07-10
2.2.2 - 2025-06-17
- Updated uv from 0.7.10 to 0.7.13. (#380)
2.2.1 - 2025-06-12
- The Python 3.13 version alias now resolves to Python 3.13.5. (#378)
2.2.0 - 2025-06-03
- The Python 3.13 version alias now resolves to Python 3.13.4. (#374)
- The Python 3.12 version alias now resolves to Python 3.12.11. (#374)
- The Python 3.11 version alias now resolves to Python 3.11.13. (#374)
- The Python 3.10 version alias now resolves to Python 3.10.18. (#374)
- The Python 3.9 version alias now resolves to Python 3.9.23. (#374)
- Updated uv from 0.7.6 to 0.7.10. (#375)
2.1.0 - 2025-05-20
- Updated pip from 25.0.1 to 25.1.1. (#365)
- Updated Poetry from 2.1.2 to 2.1.3. (#364)
- Updated uv from 0.7.3 to 0.7.6. (#368 and #369)
2.0.0 - 2025-05-13
- Added support for the package manager uv. (#362)
1.0.0 - 2025-05-02
- Removed support for the deprecated
runtime.txtfile. Python versions must now be specified using a.python-versionfile instead. (#352) - Removed support for Ubuntu 20.04 (and thus Heroku-20 /
heroku/builder:20). (#358)
- Improved the error messages shown when
.python-versioncontains an invalid Python version or stray invisible characters (such as ASCII control codes). (#353 and #354) - Improved the error messages shown if I/O errors occur. (#355 and #356)
0.26.1 - 2025-04-08
- The Python 3.13 version alias now resolves to Python 3.13.3. (#349)
- The Python 3.12 version alias now resolves to Python 3.12.10. (#349)
- The Python 3.11 version alias now resolves to Python 3.11.12. (#349)
- The Python 3.10 version alias now resolves to Python 3.10.17. (#349)
- The Python 3.9 version alias now resolves to Python 3.9.22. (#349)
0.26.0 - 2025-04-08
- Updated pip from 24.3.1 to 25.0.1. (#332)
- Updated Poetry from 2.1.1 to 2.1.2. (#343)
- Updated libcnb to 0.28.1, which includes tracing improvements/fixes. (#344)
0.25.0 - 2025-03-11
- Stopped using
--linkwhen running Django's collectstatic command, since it doesn't work with remote storage backends. (#339)
0.24.2 - 2025-03-03
- Updated libcnb to 0.27.0, which includes opentelemetry 0.28 and the new custom OTLP File Exporter. (#334)
0.24.1 - 2025-02-26
- Updated Poetry from 2.0.1 to 2.1.1. (#331)
0.24.0 - 2025-02-05
- Added
runtime.txtsupport for thepython-3.Xmajor Python version form. (#322) - Enabled
libcnb'stracefeature. (#320)
- The Python 3.13 version alias now resolves to Python 3.13.2. (#326)
- The Python 3.12 version alias now resolves to Python 3.12.9. (#326)
- Deprecated support for the
runtime.txtfile. (#325) - Improved the error messages shown when the
.python-versionfile contents aren't valid. (#325)
0.23.0 - 2025-01-13
- Updated Poetry from 1.8.5 to 2.0.1. (#316)
0.22.0 - 2025-01-08
- Removed support for Python 3.8. (#313)
- Deprecated support for Python 3.9. (#314)
- Buildpack detection now recognises more Python-related file and directory names. (#312)
- Improved the error messages shown for EOL or unrecognised major Python versions. (#313)
0.21.0 - 2024-12-18
- The build now fails early if known problematic Python and pip-related env vars have been set by the user or earlier buildpacks. (#308)
- The
PIP_PYTHONenv var is now only set at build time. (#307)
0.20.1 - 2024-12-13
- Fixed colour resetting for build output header, error and warning messages. (#303 / heroku/libcnb.rs#890)
0.20.0 - 2024-12-10
- Updated the default Python version from 3.12 to 3.13. (#299)
- Updated Poetry from 1.8.4 to 1.8.5. (#300)
0.19.2 - 2024-12-04
- The Python 3.13 version alias now resolves to Python 3.13.1. (#297)
- The Python 3.12 version alias now resolves to Python 3.12.8. (#297)
- The Python 3.11 version alias now resolves to Python 3.11.11. (#297)
- The Python 3.10 version alias now resolves to Python 3.10.16. (#297)
- The Python 3.9 version alias now resolves to Python 3.9.21. (#297)
0.19.1 - 2024-11-04
0.19.0 - 2024-10-10
- Added support for Python 3.13. (#280)
0.18.1 - 2024-10-01
- The Python 3.12 version alias now resolves to Python 3.12.7. (#276)
0.18.0 - 2024-09-17
- The Python version can now be configured using a
.python-versionfile. Both the3.Xand3.X.Yversion forms are supported. (#272)
- pip is now only available during the build, and is no longer included in the final app image. (#264)
- Improved the error messages shown when an end-of-life or unknown Python version is requested. (#272)
0.17.1 - 2024-09-07
- Updated the default Python version from 3.12.5 to 3.12.6. (#266)
0.17.0 - 2024-09-04
- Added initial support for the Poetry package manager. (#261)
0.16.0 - 2024-08-30
- App dependencies are now installed into a virtual environment instead of user site-packages. (#257)
- pip is now installed into its own layer (as a user site-packages install) instead of into system site-packages in the Python layer. (#258)
0.15.0 - 2024-08-07
- Updated the default Python version from 3.12.4 to 3.12.5. (#244)
- Updated pip from 24.1.2 to 24.2. (#236)
0.14.0 - 2024-08-07
- Stopped explicitly installing setuptools and wheel. They will be automatically installed by pip into an isolated build environment if they are required for building a package. (#243)
0.13.0 - 2024-08-01
- Stopped manually creating a
srcdirectory inside the pip dependencies layer. pip will create the directory itself if needed (when there are editable VCS dependencies). (#228) - Stopped setting
CPATHandPKG_CONFIG_PATHat launch time. (#231) - The
bindirectory in the pip dependencies layer is now always added toPATHinstead of only when an installed dependency has an entry point script. (#232) - The pip cache layer is now exposed to pip invocations in later buildpacks. (#234)
0.12.1 - 2024-07-15
0.12.0 - 2024-06-27
- Updated pip from 24.0 to 24.1.1. (#219)
- Updated setuptools from 70.0.0 to 70.1.1. (#218)
- Buildpack detection now recognises more types of Python-related files. (#215)
0.11.0 - 2024-06-07
- Updated the default Python version from 3.12.3 to 3.12.4. (#210)
- Updated setuptools from 69.5.1 to 70.0.0. (#205)
0.10.0 - 2024-05-03
- Added support for Ubuntu 24.04 (and thus Heroku-24 /
heroku/builder:24). (#202) - Added support for the ARM64 CPU architecture (Ubuntu 24.04 only). (#202)
0.9.0 - 2024-05-03
- Updated setuptools from 68.0.0 to 69.5.1. (#200)
- Updated wheel from 0.42.0 to 0.43.0. (#179)
- The buildpack now implements Buildpack API 0.10 instead of 0.9, and so requires
lifecycle0.17.x or newer. (#197) - The buildpack's base image compatibility metadata is now declared using
[[targets]]instead of[[stacks]]. (#197) - Changed compression format and S3 URL for Python runtime archives. (#197)
- Removed support for Python 3.7. (#197)
0.8.4 - 2024-04-09
- Updated the default Python version from 3.12.2 to 3.12.3. (#189)
0.8.3 - 2024-03-25
- Updated pip from 23.3.2 to 24.0. (#172)
0.8.2 - 2024-02-07
- Updated the default Python version from 3.12.1 to 3.12.2. (#167)
0.8.1 - 2024-01-11
- Updated pip from 23.3.1 to 23.3.2. (#156)
0.8.0 - 2023-12-08
- Updated the default Python version from 3.11.6 to 3.12.1. (#152 and #154)
- Updated wheel from 0.41.3 to 0.42.0. (#150)
0.7.3 - 2023-11-06
- Updated wheel from 0.41.2 to 0.41.3. (#137)
0.7.2 - 2023-10-24
- Updated pip from 23.2.1 to 23.3.1. (#131)
- Updated wheel from 0.41.0 to 0.41.2. (#100)
- Updated buildpack display name and description. (#135)
0.7.1 - 2023-10-02
- Updated the default Python version from 3.11.5 to 3.11.6. (#121)
0.7.0 - 2023-09-19
- Django's
collectstaticcommand is now automatically run for Django apps that use static files. (#108)
0.6.0 - 2023-08-25
- Updated the default Python version from 3.11.4 to 3.11.5. (#101)
- Removed support for Salesforce Functions. (#83)
0.5.0 - 2023-07-24
- User-provided environment variables are now propagated to subprocesses such as
pip install. (#65) - Updated pip from 23.1.2 to 23.2.1. (#67 and #76)
- Updated setuptools from 67.8.0 to 68.0.0. (#51)
- Updated wheel from 0.40.0 to 0.41.0. (#78)
0.4.0 - 2023-06-07
- Updated the default Python version from 3.11.3 to 3.11.4. (#45)
- Updated setuptools from 67.7.2 to 67.8.0. (#43)
- Updated libcnb from 0.11.5 to 0.12.0. (#35)
- The buildpack now implements Buildpack API 0.9 instead of 0.8, and so requires
lifecycle0.15.x or newer. (#35)
0.3.0 - 2023-04-27
0.2.0 - 2023-04-11
- Updated the default Python version from 3.11.2 to 3.11.3. (#22)
- Updated setuptools from 67.5.0 to 67.6.1. (#24)
- Updated wheel from 0.38.4 to 0.40.0. (#24)
- The
PYTHONHOMEenvironment variable is now set, to work around uWSGI not handling relocated Python installs correctly. (#25)
0.1.0 - 2023-03-06
- Initial implementation. (#3)