Indigo
Indigo is Laws.Africa's legislation database for managing, consolidating and publishing legislation in the Akoma Ntoso format.
It is a Django python web application using:
- Django
- Cobalt -- a lightweight Python library for working with Akoma Ntoso
- Bluebell -- a generic Akoma Ntoso 3 parser, supporting all hierarchical elements and multiple document types
- django-rest-framework
Read the full documentation at indigo.readthedocs.io.
Local development
Refer to https://indigo.readthedocs.io/en/latest/running/index.html
Adding translation strings
Each indigo package has its own translations in the locale
directory, and Javascript translations are in
static/i18n
. Translations for strings are added on CrowdIn.
If you have added or changed strings that need translating, you must tell Django to update the .po files so that translations can be supplied through CrowdIn.
scripts/extract-translations.sh
npm run extract-translations
And then commit the changes. CrowdIn will pick up any changed strings and make them available for translation. Once they are translated, it will open a pull request to merge the changes into master.
Once merged into master, you must tell Django to compile the .po files to .mo files:
python manage.py compilemessages
And then commit the changes.
npm module dependencies
Indigo is migrating to modules written in ES6 using Vue. This code needs to be compiled into a single JS file using webpack.
npm install
npx webpack
During development, using npx webpack -w
to watch for changes and recompile automatically.
Testing
To run the tests use:
python manage.py test
Production deployment
Read the documentation for details on deploying Indigo.
An example Dockerfile
and docker-compose.yml
are provided as a starting point for running Indigo.
Releasing a New Version
- Run the tests!
- Update
__version__
inindigo/version.py
appropriately - Update
docs/changelog.rst
- Commit changes
- Tag:
git tag vX.X.X
and push to githubgit push; git push --tags
License and Copyright
The project is licensed under a GNU GPL 3 license.
Indigo is Copyright 2015-2020 AfricanLII.