Development¶
Developing with Docker¶
The Release Coordinator includes a docker-compose.yml file that is
configured to quickly get started with running and developing on the codebase.
Running docker-compose up from the root directory will start up the
Coordinator and dependent services such as a postgres database, redis, a task
runner, and a task scheduler.
The codebase will also be mounted into the running services so that development
changes may be reflected immediately.
Changing Settings¶
The Coordinator includes three settings files by default: development,
testing, and production.
When run using docker-compose, the Coordinator will default to the
testing settings, which will enforce authentication and permissions
checking.
The settings that the Coordinator runs with may be configured with the
DJANGO_SETTINGS_MODULE environment variable.
For example, when running with docker-compose:
DJANGO_SETTINGS_MODULE=coordinator.settings.testing docker-compose up
Often, it’s desirable to want full access to the api without having to
configure an authentication backend or gain access to an existing one.
To do this, the development settings may be used which will automatically
authenticate every request as an ADMIN user and giving complete access to
the api.
Generating Mock Data¶
When running with docker-compose, the Coordinator will automatically
bootstrap the database with a number of fake entries to enable faster
development.
This setting may be overridden by providing any value other than FAKE for
the PRELOAD_DATA environment variable.
The mock data is generated through a Django management command, fakedata,
which may be run by itself if developing outside of docker:
python manage.py fakedata