Skip to content

Commit 878bf32

Browse files
committed
doc: add contribution guide
Once the background documentation is written, it is time to add the contribution guide also.
1 parent 063f417 commit 878bf32

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

CONTRIBUTION.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Contribution guide
2+
3+
This document describes how to contribute to pytest-httpserver.
4+
5+
In the case you want to add your own code to the source code, create a pull
6+
request, and it will be reviewed in a few days. Currently all developers working
7+
on this software in their spare time so please be patient.
8+
9+
This software has only one main purpose: to be useful for the developers and the
10+
users, to help them to achieve what they intend to do with this small library.
11+
It was created by a few people who are doing it in their spare time. This piece
12+
of software is provided for free under the MIT license.
13+
14+
There's a section in the documentation explaining the design decisions and the main
15+
concepts about the library. Please read it:
16+
https://pytest-httpserver.readthedocs.io/en/latest/background.html
17+
18+
19+
## Rules
20+
21+
There are a few rules you are kindly asked to accept:
22+
23+
* there are no coding style rules enforced, however please follow the style of
24+
the source code and try to make it consistent. pep8 is a rule of thumb,but
25+
there's no enforcement (yet).
26+
27+
* tests should be written for the new code. If there's a complex logic
28+
implemented, it should be tested on different valid and invalid inputs and
29+
scenarios.
30+
31+
* the software is released under the MIT license, which is simple and liberal.
32+
Due to the size of the project, there are no contribution agreements but you
33+
are informally advised to accept that license.
34+
35+
* it may be obvious but your code should make the software better, not worse.
36+
37+
## How to start developing
38+
39+
* the development is arranged around a virtualenv which needs to be created by
40+
the `make dev` command. It will create it in the `.venv` directory.
41+
42+
* you can let your IDE of your choice to use the `.venv/bin/python` interpreter to
43+
use so it will know all the dependencies and so on.
44+
45+
* running tests on the localhost can be done by issuing `make quick-test`. It is
46+
"quick" because it tests the software with only one interpreter. Note that the
47+
library can be used by many supported interpreters and unless it is absolutely
48+
required, we don't want to drop support.
49+
50+
## More technical details
51+
52+
* for some bigger changes, release notes needs to be written. This is done by
53+
the 'reno' tool. If you don't write any notes, no problem, it will be written
54+
by someone who merges your PR.
55+
56+
* documentation also needs to be written and updated. It means mostly
57+
docstrings, but if the PR changes the code and the way of working
58+
conceptually, the main documentation (located in the doc directory) needs to
59+
be updated and extended. This can be also done by someone else if you don't
60+
want.

0 commit comments

Comments
 (0)