|
88 | 88 | end |
89 | 89 | end |
90 | 90 |
|
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 |
96 | 92 | # This test performs an initial build using an older buildpack version, followed |
97 | 93 | # by a build using the current version. This ensures that: |
98 | 94 | # - The current buildpack can successfully read the version metadata |
99 | 95 | # written to the build cache by older buildpack versions. |
100 | 96 | # - If no Python version is specified, the same major version as the |
101 | 97 | # last build is used (sticky major versioning). |
102 | 98 | # - 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'] } |
104 | 100 |
|
105 | 101 | it 'builds with the same major Python version as the last build' do |
106 | 102 | app.deploy do |app| |
|
109 | 105 | app.push! |
110 | 106 | expect(clean_output(app.output)).to include(<<~OUTPUT) |
111 | 107 | 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 |
113 | 109 | remote: |
114 | 110 | remote: ! Warning: No Python version was specified. |
115 | 111 | remote: ! |
|
131 | 127 | remote: ! In the new file, specify your app's major Python version number |
132 | 128 | remote: ! only. Don't include quotes or a 'python-' prefix. |
133 | 129 | 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, |
135 | 131 | remote: ! update your .python-version file so it contains exactly: |
136 | | - remote: ! 3.12 |
| 132 | + remote: ! 3.14 |
137 | 133 | remote: ! |
138 | 134 | remote: ! We strongly recommend that you don't specify the Python patch |
139 | 135 | remote: ! version number, since it will pin your app to an exact Python |
|
152 | 148 | remote: ! file and this warning will be made an error. |
153 | 149 | remote: |
154 | 150 | 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} |
160 | 155 | 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") |
162 | 157 | expect($CHILD_STATUS.exitstatus).to eq(0) |
163 | 158 | end |
164 | 159 | end |
|
0 commit comments