|
| 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