Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Display a deprecation warning for runtime.txt #1642

Open
edmorley opened this issue Sep 25, 2024 · 0 comments
Open

Display a deprecation warning for runtime.txt #1642

edmorley opened this issue Sep 25, 2024 · 0 comments

Comments

@edmorley
Copy link
Member

edmorley commented Sep 25, 2024

Support for .python-version files has been added to the Python CNB (our next-generation buildpack, currently in preview) in heroku/buildpacks-python#272, and is about to be added to this buildpack (the classic Python buildpack; the one currently used on Heroku) in #932 / #1664.

The .python-version file is superior to runtime.txt in several ways:

  • it is commonly supported/used by other tools (unlike runtime.txt, which is Heroku proprietary)
  • it supports the major Python version syntax (eg 3.X rather than 3.X.Y), so supports automatic security updates without needing to manually bump the patch version each time.

As such, at some time after #932 has been implemented, we should add a deprecation warning when runtime.txt is used, to gently encourage apps to transition to .python-version files.

We'll continue to support runtime.txt in the classic buildpack, but having it show a deprecation warning will ease the future transition to the Python CNB (which itself will drop support for runtime.txt before GA: heroku/buildpacks-python#275).

GUS-W-16878260.

browniebroke pushed a commit to cookiecutter/cookiecutter-django that referenced this issue Jan 26, 2025
)

Heroku now supports the `.python-version` file as an alternative to the
Heroku-specific (and now deprecated) `runtime.txt` file, and recommends
apps switch to using the former since it's more widely supported by other
tooling.

The `.python-version` file is supported by pyenv, uv, the GitHub Actions
`setup-python` action and many others.

In addition, the `.python-version` file supports the version being specified
as just the major version (eg `3.12` vs `3.12.N`) which means will pick up
Python patch updates automatically (which is the recommended usage on
Heroku).

See:
https://devcenter.heroku.com/changelog-items/3005
heroku/heroku-buildpack-python#1642
https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#using-the-python-version-file-input
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant