Skip to content

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## [Unreleased]
44

5+
- The Python 3.14 version alias now resolves to Python 3.14.6. ([#2105](https://github.com/heroku/heroku-buildpack-python/pull/2105))
6+
- The Python 3.13 version alias now resolves to Python 3.13.14. ([#2105](https://github.com/heroku/heroku-buildpack-python/pull/2105))
57

68
## [v345] - 2026-06-04
79

lib/python_version.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ set -euo pipefail
77
LATEST_PYTHON_3_10="3.10.20"
88
LATEST_PYTHON_3_11="3.11.15"
99
LATEST_PYTHON_3_12="3.12.13"
10-
LATEST_PYTHON_3_13="3.13.13"
11-
LATEST_PYTHON_3_14="3.14.5"
10+
LATEST_PYTHON_3_13="3.13.14"
11+
LATEST_PYTHON_3_14="3.14.6"
1212

1313
OLDEST_SUPPORTED_PYTHON_3_MINOR_VERSION=10
1414
NEWEST_SUPPORTED_PYTHON_3_MINOR_VERSION=14

spec/hatchet/python_version_spec.rb

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -88,19 +88,15 @@
8888
end
8989
end
9090

91-
# TODO: Enable on Heroku-26 after the default Python version next changes (for the 3.14.5
92-
# release), since for now there isn't a historic buildpack version we can use in this test
93-
# whose stack check permits Heroku-26 and also has a different default Python version so
94-
# that we can test the sticky versions feature.
95-
context 'with an app last built using an older default Python version', stacks: %w[heroku-22 heroku-24] do
91+
context 'with an app last built using an older default Python version' do
9692
# This test performs an initial build using an older buildpack version, followed
9793
# by a build using the current version. This ensures that:
9894
# - The current buildpack can successfully read the version metadata
9995
# written to the build cache by older buildpack versions.
10096
# - If no Python version is specified, the same major version as the
10197
# last build is used (sticky major versioning).
10298
# - Changes in the pip version are handled correctly.
103-
let(:buildpacks) { ['https://github.com/heroku/heroku-buildpack-python#v267'] }
99+
let(:buildpacks) { ['https://github.com/heroku/heroku-buildpack-python#v342'] }
104100

105101
it 'builds with the same major Python version as the last build' do
106102
app.deploy do |app|
@@ -109,7 +105,7 @@
109105
app.push!
110106
expect(clean_output(app.output)).to include(<<~OUTPUT)
111107
remote: -----> Python app detected
112-
remote: -----> No Python version was specified. Using the same major version as the last build: Python 3.12
108+
remote: -----> No Python version was specified. Using the same major version as the last build: Python 3.14
113109
remote:
114110
remote: ! Warning: No Python version was specified.
115111
remote: !
@@ -131,9 +127,9 @@
131127
remote: ! In the new file, specify your app's major Python version number
132128
remote: ! only. Don't include quotes or a 'python-' prefix.
133129
remote: !
134-
remote: ! For example, to request the latest version of Python 3.12,
130+
remote: ! For example, to request the latest version of Python 3.14,
135131
remote: ! update your .python-version file so it contains exactly:
136-
remote: ! 3.12
132+
remote: ! 3.14
137133
remote: !
138134
remote: ! We strongly recommend that you don't specify the Python patch
139135
remote: ! version number, since it will pin your app to an exact Python
@@ -152,13 +148,12 @@
152148
remote: ! file and this warning will be made an error.
153149
remote:
154150
remote: -----> Discarding cache since:
155-
remote: - The Python version has changed from 3.12.7 to #{LATEST_PYTHON_3_12}
156-
remote: - The pip version has changed from 24.0 to #{PIP_VERSION}
157-
remote: - The legacy SQLite3 headers and CLI binary need to be uninstalled
158-
remote: -----> Installing Python #{LATEST_PYTHON_3_12}
159-
remote: -----> Installing pip #{PIP_VERSION} and setuptools #{SETUPTOOLS_VERSION}
151+
remote: - The Python version has changed from 3.14.4 to #{LATEST_PYTHON_3_14}
152+
remote: - The pip version has changed from 26.0.1 to #{PIP_VERSION}
153+
remote: -----> Installing Python #{LATEST_PYTHON_3_14}
154+
remote: -----> Installing pip #{PIP_VERSION}
160155
OUTPUT
161-
expect(app.run('python -V')).to eq("Python #{LATEST_PYTHON_3_12}\n")
156+
expect(app.run('python -V')).to eq("Python #{LATEST_PYTHON_3_14}\n")
162157
expect($CHILD_STATUS.exitstatus).to eq(0)
163158
end
164159
end

spec/spec_helper.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
LATEST_PYTHON_3_10 = '3.10.20'
1414
LATEST_PYTHON_3_11 = '3.11.15'
1515
LATEST_PYTHON_3_12 = '3.12.13'
16-
LATEST_PYTHON_3_13 = '3.13.13'
17-
LATEST_PYTHON_3_14 = '3.14.5'
16+
LATEST_PYTHON_3_13 = '3.13.14'
17+
LATEST_PYTHON_3_14 = '3.14.6'
1818
DEFAULT_PYTHON_FULL_VERSION = LATEST_PYTHON_3_14
1919
DEFAULT_PYTHON_MAJOR_VERSION = DEFAULT_PYTHON_FULL_VERSION.gsub(/\.\d+$/, '')
2020

0 commit comments

Comments
 (0)