Contributions of all kinds are welcome.
To submit a bug report, please use the issue tracker.
Before trying to submit an issue, make sure that there is not already a similar one reported.
Your message should contain as much information as possible such as:
- the environment in which you worked (OS name and version, python version, etc...)
- Guidance on how to reproduce the issue. For example a small piece of code that can be run immediately.
- Tell me what you mean by failure i.e. what are you expecting to happen.
To fix a bug, look at the issues reported and every issue with the label bug is open to anyone who would like to correct it. Look at code contribution section before submitting a pull request.
To submit feedback, use the discussions forum. Please do not use the issue tracker, I will just close it.
If you want to propose a new feature:
- explain in detail how it would work.
- keep the scope as narrow as possible to make it easier to develop.
- if you want to propose code, just read below the section code contribution.
Here are some preferences I have when coding:
- When writing a test function, the name should be as obvious as possible about what we want to test. I prefer the
formulation
test_should..<expectation>..when..<condition>
. I'm not saying it is the best option all the time, but it often tends to be more readable.
Ready to contribute? Here is how to set up the project for local development.
-
Fork the ws repo on GitHub.
-
Clone your fork locally. If you don't know how to proceed, take a look at this article.
-
Install the dependencies needed by the project. You must first install poetry on your computer. After that, you can run:
poetry install
-
Install the pre-commit hooks
pre-commit install
-
Create a branch for local development
git checkout -b name-of-bug-or-feature
-
Make sure you respect the code style when developing.
-
When you are done with your work, you need to pass all the tests using nox.
nox -s lint tests
-
Commit your changes and push your branch to GitHub. For the commit message, you should use the convention described here. It is the convention developed by the angular project. There is just one notable difference I'm adding. The verb must be conjugated in the past tense because I believe we are talking about a done action and not an action to be performed. Also, for the scope, there is no particular set of scopes, so feel free to add what you think suits well your changes. If you don't have one in mind, don't put anything.
-
Before submitting the pull request, you should verify that you include tests. There is also a code coverage configured with the project. You can check the pull request status to know if your tests cover all the code you wrote. If your pull request add functionality, please update the documentation.
-
Submit your pull request through the GitHub website.