diff --git a/CHANGELOG.md b/CHANGELOG.md index a91b2d3cc..7b21fda9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased +- Python 3.8.8 and 3.9.2 are now available (CPython) ([#1178](https://github.com/heroku/heroku-buildpack-python/pull/1178)). ## v190 (2021-02-16) diff --git a/README.md b/README.md index 53acf7926..949cfd316 100644 --- a/README.md +++ b/README.md @@ -60,8 +60,8 @@ Specify a Python Runtime Supported runtime options include: -- `python-3.9.1` -- `python-3.8.7` +- `python-3.9.2` +- `python-3.8.8` - `python-3.7.10` - `python-3.6.13` - `python-2.7.18` diff --git a/bin/default_pythons b/bin/default_pythons index fbcfad72b..a2aeb3cc1 100755 --- a/bin/default_pythons +++ b/bin/default_pythons @@ -5,8 +5,8 @@ # the env vars to subprocesses. # shellcheck disable=2034 -LATEST_39="python-3.9.1" -LATEST_38="python-3.8.7" +LATEST_39="python-3.9.2" +LATEST_38="python-3.8.8" LATEST_37="python-3.7.10" LATEST_36="python-3.6.13" LATEST_35="python-3.5.10" diff --git a/builds/runtimes/python-3.8.8 b/builds/runtimes/python-3.8.8 new file mode 100755 index 000000000..ad417233a --- /dev/null +++ b/builds/runtimes/python-3.8.8 @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +# Build Path: /app/.heroku/python/ + +source $(dirname $0)/python3 diff --git a/builds/runtimes/python-3.9.2 b/builds/runtimes/python-3.9.2 new file mode 100755 index 000000000..ad417233a --- /dev/null +++ b/builds/runtimes/python-3.9.2 @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +# Build Path: /app/.heroku/python/ + +source $(dirname $0)/python3 diff --git a/spec/fixtures/pipenv_and_runtime_txt/runtime.txt b/spec/fixtures/pipenv_and_runtime_txt/runtime.txt index 1a1817944..30a1be66f 100644 --- a/spec/fixtures/pipenv_and_runtime_txt/runtime.txt +++ b/spec/fixtures/pipenv_and_runtime_txt/runtime.txt @@ -1 +1 @@ -python-3.9.1 +python-3.9.2 diff --git a/spec/fixtures/python_3.8/runtime.txt b/spec/fixtures/python_3.8/runtime.txt index 3e4835ce2..e9b5778f7 100644 --- a/spec/fixtures/python_3.8/runtime.txt +++ b/spec/fixtures/python_3.8/runtime.txt @@ -1 +1 @@ -python-3.8.7 +python-3.8.8 diff --git a/spec/fixtures/python_3.9/runtime.txt b/spec/fixtures/python_3.9/runtime.txt index 1a1817944..30a1be66f 100644 --- a/spec/fixtures/python_3.9/runtime.txt +++ b/spec/fixtures/python_3.9/runtime.txt @@ -1 +1 @@ -python-3.9.1 +python-3.9.2 diff --git a/spec/fixtures/runtime_txt_only/runtime.txt b/spec/fixtures/runtime_txt_only/runtime.txt index 1a1817944..30a1be66f 100644 --- a/spec/fixtures/runtime_txt_only/runtime.txt +++ b/spec/fixtures/runtime_txt_only/runtime.txt @@ -1 +1 @@ -python-3.9.1 +python-3.9.2 diff --git a/spec/fixtures/runtime_txt_with_stray_whitespace/runtime.txt b/spec/fixtures/runtime_txt_with_stray_whitespace/runtime.txt index c82071859..82f2ebb74 100644 --- a/spec/fixtures/runtime_txt_with_stray_whitespace/runtime.txt +++ b/spec/fixtures/runtime_txt_with_stray_whitespace/runtime.txt @@ -1,3 +1,3 @@ - python-3.9.1 + python-3.9.2 \ No newline at end of file diff --git a/spec/hatchet/pipenv_spec.rb b/spec/hatchet/pipenv_spec.rb index e6e5811ad..1a12083d8 100644 --- a/spec/hatchet/pipenv_spec.rb +++ b/spec/hatchet/pipenv_spec.rb @@ -131,7 +131,21 @@ context 'with a Pipfile.lock containing python_full_version 3.9.1' do let(:app) { Hatchet::Runner.new('spec/fixtures/pipenv_python_full_version') } - include_examples 'builds using Pipenv with the requested Python version', '3.9.1' + it 'builds with the outdated Python version specified' do + app.deploy do |app| + expect(clean_output(app.output)).to match(Regexp.new(<<~REGEX)) + remote: -----> Python app detected + remote: ! Python has released a security update! Please consider upgrading to python-#{LATEST_PYTHON_3_9} + remote: Learn More: https://devcenter.heroku.com/articles/python-runtimes + remote: cp: cannot stat '/tmp/build_.*/requirements.txt': No such file or directory + remote: -----> Installing python-3.9.1 + remote: -----> Installing pip 20.1.1, setuptools 47.1.1 and wheel 0.34.2 + remote: -----> Installing dependencies with Pipenv 2020.11.15 + remote: Installing dependencies from Pipfile.lock \\(e13df1\\)... + remote: -----> Installing SQLite3 + REGEX + end + end end context 'with a Pipfile.lock containing an invalid python_version', diff --git a/spec/hatchet/python_version_spec.rb b/spec/hatchet/python_version_spec.rb index f521ce1c2..d5065fa8b 100644 --- a/spec/hatchet/python_version_spec.rb +++ b/spec/hatchet/python_version_spec.rb @@ -160,13 +160,13 @@ include_examples 'builds with the requested Python version', LATEST_PYTHON_3_7 end - context 'when runtime.txt contains python-3.8.7' do + context 'when runtime.txt contains python-3.8.8' do let(:app) { Hatchet::Runner.new('spec/fixtures/python_3.8') } include_examples 'builds with the requested Python version', LATEST_PYTHON_3_8 end - context 'when runtime.txt contains python-3.9.1' do + context 'when runtime.txt contains python-3.9.2' do let(:app) { Hatchet::Runner.new('spec/fixtures/python_3.9') } include_examples 'builds with the requested Python version', LATEST_PYTHON_3_9 diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 7d63c0a2f..3312b9c75 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -11,8 +11,8 @@ LATEST_PYTHON_3_5 = '3.5.10' LATEST_PYTHON_3_6 = '3.6.13' LATEST_PYTHON_3_7 = '3.7.10' -LATEST_PYTHON_3_8 = '3.8.7' -LATEST_PYTHON_3_9 = '3.9.1' +LATEST_PYTHON_3_8 = '3.8.8' +LATEST_PYTHON_3_9 = '3.9.2' LATEST_PYPY_2_7 = '7.3.2' LATEST_PYPY_3_6 = '7.3.2' DEFAULT_PYTHON_VERSION = LATEST_PYTHON_3_6