80 lines
2.7 KiB
ReStructuredText
80 lines
2.7 KiB
ReStructuredText
#######################
|
||
Contributing to biboumi
|
||
#######################
|
||
|
||
Biboumi’s main workplace is at https://codeberg.org/poezio/biboumi
|
||
|
||
Before doing anything, you can come on the `XMPP chatroom`_ to discuss your
|
||
changes, issues or ideas.
|
||
|
||
|
||
Bug reports, feature requests
|
||
-----------------------------
|
||
|
||
To open a bug report, or a feature request, please do so on `our bug tracker`_.
|
||
|
||
If the bug you’re reporting is about a bad behaviour of biboumi when some XMPP
|
||
or IRC events occur, please try to reproduce the issue with a biboumi running
|
||
in log_level=0, and include the relevant logs in your bug report.
|
||
|
||
If the issue you’re reporting may have security implications, please
|
||
select the “confidential” flag in your bug report. This includes, but is not limited to:
|
||
|
||
- disclosure of private data that was supposed to be encrypted using TLS
|
||
- denial of service (crash, infinite loop, etc) that can be caused by any
|
||
user
|
||
|
||
|
||
Code
|
||
----
|
||
|
||
To contribute code, you can do so using git: commit your changes on any
|
||
publicly available git repository and communicate us its address. This can
|
||
be done with a `codeberg merge request`_ or just
|
||
by sending a message into the `XMPP chatroom`_.
|
||
|
||
It is suggested that you use codeberg’s merge requests: this will
|
||
automatically run our continuous integration tests.
|
||
|
||
It is also recommended to add some unit or end-to-end tests for the proposed
|
||
changes.
|
||
|
||
|
||
Tests
|
||
-----
|
||
|
||
There are two test suites for biboumi:
|
||
|
||
- unit tests that can be run simply using ``make check``.
|
||
These tests use the Catch2 test framework, are written in pure C++
|
||
and they should always succeed, in all possible build configuration.
|
||
|
||
- a more complex end-to-end test suite. This test suite is written in python3,
|
||
uses a specific IRC server (`charybdis`_), and only tests the most complete
|
||
biboumi configuration (when all dependencies are used).
|
||
Read more about these tests in the specific documentation TODO.
|
||
|
||
All these tests automatically run with various configurations, on various
|
||
platforms, using woodpecker CI.
|
||
|
||
|
||
Coding style
|
||
------------
|
||
Please try to follow the existing style:
|
||
|
||
- Use only spaces, not tabs.
|
||
- Curly brackets are on their own lines.
|
||
- Use this-> everywhere it’s possible.
|
||
- Don’t start class attributes with “m\_” or similar.
|
||
- Type names are in PascalCase.
|
||
- Everything else is in snake_case.
|
||
|
||
|
||
.. _our bug tracker: https://codeberg.org/poezio/biboumi/issues/new
|
||
.. _codeberg merge request: https://codeberg.org/poezio/biboumi/compare/master...master
|
||
.. _XMPP chatroom: xmpp:biboumi@muc.poez.io
|
||
.. _Dockerfile.base: docker/biboumi-test/fedora/Dockerfile.base
|
||
.. _Dockerfile: docker/biboumi-test/fedora/Dockerfile
|
||
.. _charybdis: https://github.com/charybdis-ircd/charybdis
|
||
.. _the __main__.py file: tests/end_to_end/__main__.py
|