Repository navigation
Update the default Python version from 3.14 to 3.15 - #658
Merged
Merged
Conversation
Previously if an app did not specify a Python version (e.g. via a `.python-version` file), then the buildpack would default to the latest Python 3.14 release. Now the buildpack will use the latest Python 3.15 release. Apps that aren't compatible with Python 3.15 will now need to request Python 3.14 explicitly by creating a `.python-version` file containing: `3.14` Note: Unlike in the classic Python buildpack, this change will affect existing apps too, since the CNB does not perform version pinning (due to the UX and app to app consistency issues it causes). Users are strongly advised to never rely on the default version, and instead set an explicit major Python version using a `.python-version` file. However most apps should be compatible, since Python 3.15 was released a month ago (2026-10-09), Python 3.15.1 has since been released (2026-10-21), and Python 3.15 has been used by the python-getting-started project since 2026-10-09. See: https://docs.python.org/3.15/whatsnew/3.15.html Test changes: * Fixtures that use the default Python version now use Python 3.15, and the lockfiles have been re-generated using the latest uv and Poetry (apart from the deliberately out-of-sync ones). `typing-extensions` is now 4.16.0. * The `pip_basic` fixture now pins Python 3.15 using a `.python-version` file, like the other `*_basic` fixtures. The "no Python version specified" case remains covered by the `python_version_unspecified` fixture. * The pip, uv and Poetry "previous buildpack version" cache tests now use buildpack `6.8.0` (the first release that supports Python 3.15) instead of `6.4.0`, since `6.4.0` can't build Python 3.15 apps. GUS-W-20591339.
edmorley
marked this pull request as ready for review
November 9, 2026 16:45
edmorley
enabled auto-merge (squash)
November 9, 2026 16:45
Malax
approved these changes
Nov 9, 2026
Member
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Previously if an app did not specify a Python version (e.g. via a
.python-versionfile), then the buildpack would default to the latest Python 3.14 release.Now the buildpack will use the latest Python 3.15 release.
Apps that aren't compatible with Python 3.15 will now need to request Python 3.14 explicitly by creating a
.python-versionfile containing:3.14Note: Unlike in the classic Python buildpack, this change will affect existing apps too, since the CNB does not perform version pinning (due to the UX and app to app consistency issues it causes). Users are strongly advised to never rely on the default version, and instead set an explicit major Python version using a
.python-versionfile.However most apps should be compatible, since Python 3.15 was released a month ago (2026-10-09), Python 3.15.1 has since been released (2026-10-21), and Python 3.15 has been used by the python-getting-started project since 2026-10-09.
See:
https://docs.python.org/3.15/whatsnew/3.15.html
Test changes:
typing-extensionsis now 4.16.0.pip_basicfixture now pins Python 3.15 using a.python-versionfile, like the other*_basicfixtures. The "no Python version specified" case remains covered by thepython_version_unspecifiedfixture.6.8.0(the first release that supports Python 3.15) instead of6.4.0, since6.4.0can't build Python 3.15 apps.GUS-W-20591339.