Contributing
Contributions to Renard are welcome! You are encouraged to open an issue if you encounter a problem or want to discuss a specific feature. If you want to contribute a patch:
Check that your code matches our code quality guidelines and that all existing tests are passing with
RENARD_TEST_ALL=1
.Create a Github pull request with your patch, explaining the rationale behind it and giving a high level overview of your code. Mention the relevant issue if applicable.
We will discuss the contribution further and, hopefully, merge your contribution once the core maintainers are satisified.
Code Quality Guidelines
The source code of Renard is entirely typed. If possible, all functions should be annotated with type information for arguments and return types.
You should write docstrings for non-trivial functions and classes,
using the Spinx docstring format. Do not forget to add your
function/class/module to the docs/reference.rst
file for it to
show up in the online documentation. If necessary, you can add new
documents to the documentation or complete existing ones.
Format all of your code using black
, so that the style stay
consistent in the repository.
When relevant, it’s better to write tests for your code. Tests live in
the tests
directory. We use pytest
to test code, and also use
hypothesis
when applicable. If you open a patch, make sure that
all tests are passing. In particular, do not rely on the CI, as it
does not run time costly tests! Check for yourself locally, using
RENARD_TEST_ALL=1 python -m pytest tests
. Note that there are
specific tests and environment variable for optional dependencies such
as stanza (RENARD_TEST_STANZA_OPTDEP
). These must be explicitely
set to 1
if you want to test optional dependencies, as
RENARD_TEST_ALL=1
does not enable test on these optional
dependencies.