heroku / heroku/buildpacks-python
Support disabling automatic Django static asset generation
- Dominant language
- Rust
- Stars
- 33
- Forks
- 3
- Avg merge
- 12h 51m
- Merged PRs (30d)
- 9
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).
GUS-W-14109400.
Contributor guide
Assessment
This issue has not been assessed yet.