forked from Github-Mirrors/canaille
84 lines
2.5 KiB
ReStructuredText
84 lines
2.5 KiB
ReStructuredText
Contribute
|
|
==========
|
|
|
|
Contributions are welcome!
|
|
|
|
The repository is hosted at `gitlab.com/yaal/canaille <https://gitlab.com/yaal/canaille>`_.
|
|
|
|
Development environment
|
|
-----------------------
|
|
|
|
.. code-block:: console
|
|
|
|
python3 setup.py compile_catalog
|
|
cd demo
|
|
./run.sh # or `docker-compose up` to run it with docker
|
|
|
|
.. warning ::
|
|
|
|
On Debian or Ubuntu systems, the OpenLDAP `slapd` binary usage might be restricted by apparmor,
|
|
and thus makes the tests and the demo fail. This can be mitigated by removing apparmor restrictions
|
|
on `slapd`.
|
|
|
|
.. code-block:: console
|
|
|
|
sudo apt install --yes apparmor-utils
|
|
sudo aa-complain /usr/sbin/slapd
|
|
|
|
Then you have access to:
|
|
|
|
- A canaille server at `localhost:5000 <http://localhost:5000>`_
|
|
- A dummy client at `localhost:5001 <http://localhost:5001>`_
|
|
- Another dummy client at `localhost:5002 <http://localhost:5002>`_
|
|
|
|
The canaille server has some default users:
|
|
|
|
- A regular user which login and password are **user**;
|
|
- A moderator user which login and password are **moderator**;
|
|
- An admin user which admin and password are **admin**.
|
|
|
|
Unit tests
|
|
----------
|
|
|
|
To run the tests, you just need to run `tox`. Everything must be green before patches get merged.
|
|
|
|
The test coverage is 100%, patches won't be accepted if not entirely covered. You can check the
|
|
test coverage with ``tox -e coverage``.
|
|
|
|
Code style
|
|
----------
|
|
|
|
We use `black` along with other tools to format our code.
|
|
Please run ``tox -e style`` on your patches before submiting them.
|
|
In order to perform a style check and correction at each commit you can use our
|
|
`pre-commit <https://pre-commit.com/>`_ configuration with ``pre-commit install``.
|
|
|
|
Front
|
|
-----
|
|
|
|
The interface is built upon the `Fomantic UI <https://fomantic-ui.com/>`_ CSS framework.
|
|
The dynamical parts of the interface use `htmx <https://htmx.org/>`_.
|
|
|
|
- Using Javascript in the interface is tolerated, but the whole website MUST be accessible
|
|
for browsers without Javascript support.
|
|
- Because of Fomantic UI we have a dependency to jQuery, however new contributions should
|
|
not depend on jQuery at all.
|
|
See the `related issue <https://gitlab.com/yaal/canaille/-/issues/130>`_.
|
|
|
|
Translation
|
|
-----------
|
|
|
|
Translations are done with `Weblate <https://hosted.weblate.org/engage/canaille/>`_,
|
|
so all translation contributions should be done there.
|
|
|
|
Documentation
|
|
-------------
|
|
|
|
|
|
The documentation is generated when the tests run:
|
|
|
|
.. code-block:: console
|
|
|
|
tox -e doc
|
|
|
|
The generated documentation is in `./build/sphinx/html/` directory.
|