Skip to content

Update the default Python version from 3.14 to 3.15 - #658

Merged
edmorley merged 1 commit into
mainfrom
edmorley/default-python-3.15
Nov 9, 2026
Merged

edmorley merged 1 commit into
mainfrom
edmorley/default-python-3.15

Conversation

@edmorley

@edmorley edmorley commented Nov 9, 2026

Copy link
Copy Markdown
Member

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.

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 edmorley self-assigned this Nov 9, 2026
@edmorley
edmorley marked this pull request as ready for review November 9, 2026 16:45
@edmorley
edmorley requested a review from a team as a code owner November 9, 2026 16:45
@edmorley
edmorley enabled auto-merge (squash) November 9, 2026 16:45
@edmorley
edmorley disabled auto-merge November 9, 2026 16:57
@edmorley
edmorley merged commit bcba945 into main Nov 9, 2026
13 checks passed
@edmorley
edmorley deleted the edmorley/default-python-3.15 branch November 9, 2026 16:58
@edmorley

edmorley commented Nov 9, 2026

Copy link
Copy Markdown
Member Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants