~singpolyma/biboumi

ref: 7f2e74c09161737ca0b84995c5017b0fd043f32b biboumi/doc/contributing.rst -rw-r--r-- 2.9 KiB
7f2e74c0 — louiz’ Add a doc describing how to write e2e tests 3 years ago
                                                                                
e75b551a louiz’
7b2215b8 louiz’
e75b551a louiz’
7b2215b8 louiz’
5ffd976d louiz’
7b2215b8 louiz’
62225e8f louiz’
7b2215b8 louiz’
5ffd976d louiz’
7b2215b8 louiz’
62225e8f louiz’
d721c6be louiz’
eefb1fa3 louiz’
d721c6be louiz’
7b2215b8 louiz’
5ffd976d louiz’
7b2215b8 louiz’
5ffd976d louiz’
7b2215b8 louiz’
5ffd976d louiz’
00a2e8dd louiz’
5ffd976d louiz’
00a2e8dd louiz’
7b2215b8 louiz’
dd4c54c6 louiz’
7f2e74c0 louiz’
dd4c54c6 louiz’
7f2e74c0 louiz’
dd4c54c6 louiz’
7b2215b8 louiz’
2ad098de louiz’
7b2215b8 louiz’
dd4c54c6 louiz’
3d1e85fd louiz’
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#######################
Contributing to biboumi
#######################

Biboumi’s main workplace is at https://lab.louiz.org/louiz/biboumi

The repository is also mirrored on other websites, for example on github,
but that’s mainly for the convenience of users.

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 gitlab’s
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 `gitlab merge request`_, or a `github pull request`_ or just
by sending a message into the `XMPP chatroom`_.

It is suggested that you use gitlab’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 gitlab 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 gitlab’s bug tracker: https://lab.louiz.org/louiz/biboumi/issues/new
.. _gitlab merge request: https://lab.louiz.org/louiz/biboumi/merge_requests/new
.. _github pull request: https://github.com/louiz/biboumi/pulls
.. _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