This PR changes the way Cantus Ultimus handles dependencies. In the process, it closes #734.
Change introduced:
python dependencies are managed with the poetry package. These are now configured in the pyproject.toml file and locked with the poetry.lock file. A dev dependency group is introduced that includes python dependencies useful for development when installed outside the app container but unnecessary for deployment; these can now be standardized across development environments. The README is updated to account for these changes.
The build process of the app container has been adjusted to account for the use of poetry.
Previously, python dependencies were installed as part of the nginx container build in order to collect Django-managed static files to a location in that container. This PR removes the need for python in the nginx container build process by collecting static files in the app container, and sharing them via a new volume with the nginx container. As I result, I'm going to say this closes #552. No other optimizations currently seem available.
NOTE: The django-extensions (and by extension, its dependency Werkzeug) are in fact development dependencies, but need to be installed in the app container. I've opened #839 to address this at a later date.
This PR changes the way Cantus Ultimus handles dependencies. In the process, it closes #734.
Change introduced:
poetry
package. These are now configured in thepyproject.toml
file and locked with thepoetry.lock
file. Adev
dependency group is introduced that includes python dependencies useful for development when installed outside theapp
container but unnecessary for deployment; these can now be standardized across development environments. The README is updated to account for these changes.app
container has been adjusted to account for the use ofpoetry
.nginx
container build in order to collect Django-managed static files to a location in that container. This PR removes the need for python in thenginx
container build process by collecting static files in theapp
container, and sharing them via a new volume with thenginx
container. As I result, I'm going to say this closes #552. No other optimizations currently seem available.NOTE: The
django-extensions
(and by extension, its dependencyWerkzeug
) are in fact development dependencies, but need to be installed in theapp
container. I've opened #839 to address this at a later date.