The Python Poetry Buildpack prepares the build to be processed by a Python buildpack such as
heroku/python by generating
poetry.lock. With that said, your repo cannot have a
requirements.txt, it will be exported from Poetry (for
runtime.txt see below).
To set up the use of several buildpacks from the Heroku CLI use
heroku buildpacks:clear heroku buildpacks:add https://github.com/moneymeets/python-poetry-buildpack.git heroku buildpacks:add heroku/python
Python version can be forced by setting the
PYTHON_RUNTIME_VERSION variable. Otherwise, it will be read from
poetry.lock; for using Heroku default see below.
heroku config:set PYTHON_RUNTIME_VERSION=3.9.1
Poetry version can be specified by setting
POETRY_VERSION in Heroku config vars. Otherwise, it will default to a hardcoded version.
heroku config:set POETRY_VERSION=1.1.13
Generally all variables starting with
POETRY_ are passed on to Poetry by this buildpack; see the corresponding Poetry documentation section for possible uses.
Exporting of development dependencies (e.g. to run tests in CI pipelines) can be optionally enabled by setting
heroku config:set POETRY_EXPORT_DEV_REQUIREMENTS=1
Generation of the
runtime.txt can be skipped by setting
heroku config:set DISABLE_POETRY_CREATE_RUNTIME_FILE=1
DISABLE_POETRY_CREATE_RUNTIME_FILE is set, the required Python version can be specified in
runtime.txt. Otherwise, if
runtime.txt is present in the repository, the buildpack will prevent the app from being deployed in order to avoid possible ambiguities.
To test your changes locally run the (TAP-compatible) test suite:
Copy the snippet above into CLI.