Description
Automatic Django static asset generation (running the manage.py collectstatic
command) was added in #108.
At the moment there is no way to force disable the feature (beyond removing django.contrib.staticfiles
from INSTALLED_APPS
in the app's Django config, or removing the manage.py
script), whereas the classic Python buildpack allows disabling it using DISABLE_COLLECTSTATIC=1
.
That said, the new implementation performs more thorough checks to see whether the app is using the static files feature, so between that and a few other improvements (like now passing env vars to the subprocess), there should be fewer cases where the feature needs manually disabling.
Some scenarios in which the ability to disable might be needed:
- the user needs to run a step between Python package installation and running collectstatic (such as patching invalid urls in CSS comments to work around https://code.djangoproject.com/ticket/21080)
- the user can't debug a failure locally or at build time, and wants the build to succeed so they can debug at runtime
If we decide we should still add support for disabling automatic Django static asset generation, then we should probably use config options in project.toml
rather than env vars (to encourage infrastructure as code). However, this depends on us figuring out a convention there for all of our buildpacks.
Either way, we'll also need to add deprecation (or error) messages if DISABLE_COLLECTSTATIC
is set (or if .heroku/collectstatic_disabled
exists), to warn that it no longer does anything (for people migrating from the classic buildpack).