Thank you for investing your time in contributing to our project!
Read our Code of Conduct to keep our community approachable and respectable.
In this guide you will get an overview of the contribution workflow from opening an issue, creating a PR, reviewing, and merging the PR.
To get an overview of the project, read the README file. Here are some resources to help you get started with open source contributions:
- Finding ways to contribute to open source on GitHub
- Set up Git
- GitHub flow
- Collaborating with pull requests
The repository is organized in 3 folders:
- docs: Contains the documentation, written in reStructuredText and uses Sphinx.
- src: Contains the source code.
- tests: Contains all the tests.
If you spot a problem with rez-pip, search if an issue already exists. If a related issue doesn't exist, you can open a new issue using a relevant issue form.
Scan through our existing issues to find one that interests you. You can narrow down the search using labels
as filters. As a general rule, we don’t assign issues to anyone. If you find an issue to work on, you are welcome to say so in the issue and open a PR with a fix.
- Fork the repository.
- Install or update to Python, at the version specified in pyproject.toml.
- Create a working branch and start with your changes!
All changes should be accompanied with tests. The complexity of the tests will vary based on the area you made changes to, the size of the changes etc.
We have multiple types of tests. For example, we have pure unit tests and we also have integration tests.
Tests are written and run with pytest.
To run the tests, you have two options:
- Use
pipx run nox -s test
. -
python -m venv .venv source .venv/bin/activate pip install -r tests/requirements.txt pip install . pytest -v tests
There is no preference. Yuo can use whatever method you prefer. If you are already a nox user, it's pretty handy. If not, then ddon't feel the necessity to use it.
All code should be formatter using Black. No linter is currently configured. Type checking is mendatory and is also set to be strict.
You can format your code using pipx run nox -s format
and type check the code
using pipx run nox -s mypy
.
Commit the changes and tests once you are happy with them.
When you're finished with the changes, create a pull request, also known as a PR.
Try to write a more than one sentence in the description field. Explain why you are doing the changes, why you did the changeds the way you did, tradeoffs. If there is compatibility concerns, please mention them too. The description should be as detailed as possible to help us better review your PR.