This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
authentic2-doc/development.rst

98 lines
2.1 KiB
ReStructuredText

.. _development:
===========
Development
===========
Get the code and the dependencies
=================================
1. Clone the repository::
$ git clone https://git.entrouvert.org/authentic.git
2. Install `lasso <http://lasso.entrouvert.org>`_ python packages::
$ curl https://deb.entrouvert.org/entrouvert.gpg | sudo apt-key add -
$ echo deb http://deb.entrouvert.org/ buster main | \
sudo tee /etc/apt/sources.list.d/entrouvert.list
$ sudo apt-get update
$ sudo apt-get install python-lasso python3-lasso
3. Install dependencies::
$ sudo apt-get install postgresql build-essential gettext sassc \
libldap2-dev libsasl2-dev python3-dev
Run the tests
=============
1. Setup a virtualenv::
$ sudo apt-get install direnv
$ echo layout python3 > authentic/.envrc
$ direnv allow authentic
$ cd authentic
$ pip install tox
2. Run::
$ JENKINS_URL=fakeurl pg_virtualenv tox
.. note::
`tests/test_ldap.py` will fail if `apparmor_status` reports that
`/usr/sbin/slapd` is in enforce mode.
.. note::
Setting `JENKINS_URL` instructs tox to run `[tox:jenkins]` instead
of the default `[tox]`.
2. Run with code coverage::
$ pg_virtualenv tox < /dev/null
$ firefox htmlcov/index.html
.. note::
When running from an interactive shell `< /dev/null` unsets
the `tty` tox sub-type and defines the `COVERAGE` variable.
Update translations
===================
They are updated upstream before the releases to help keep the
vocabulary consistent.
.. note::
The only exception would be a trivial fix such as a typo.
The `.po` files can be updated as follows::
$ ./update-locales.sh
Build the documentation
=======================
1. Clone the repository::
$ git clone https://git.entrouvert.org/authentic2-doc.git
2. Setup a virtualenv::
$ sudo apt-get install direnv
$ echo layout python3 > authentic2-doc/.envrc
$ direnv allow authentic2-doc
$ cd authentic2-doc
$ pip install sphinx
1. Build::
$ make html
2. Display::
$ firefox _build/html/index.html