You are welcome to contribute to RDMO by improving and changing it! However, we want to provide a stable software for the community and therefore ask you to follow the following workflow.
Here is a list of important resources for new contributors:
If you found a bug or want a feature to be added, look at the existing issues first. If you find a corresponding issue, please comment on it. If no issue matches, create one (select "Bug report").
When filing an issue, make sure to answer these questions:
- Which operating system and Python version are you using?
- Which version of this project are you using?
- What did you do?
- What did you expect to see?
- What did you see instead?
The best way to get your bug fixed is to provide a test case, and/or steps to reproduce the issue.
If you want a feature to be added, look at the existing issues first. If you find a corresponding issue, please comment on it. If no issue matches, create one (select "Feature request").
If you decide to work on the issue yourself, please wait until you received some feedback from us. Maybe we are already working on it (and forgot to comment on the issue), or we have other plans for the affected code.
You need Python 3.8+.
Install the package with development requirements:
$ pip install -e ".[dev]"
$ pip show rdmo
Name: rdmo
Version: 2.0.0
[...]
See also: Development docs.
Run the full test suite with pytest:
$ pytest
See also: Testing docs.
It is recommended to open an issue before starting work on anything. This will allow a chance to talk it over with the owners and validate your approach.
Please fork our repository and create a new branch named according to what you want to do (e.g. fix_login_form
or fancy_feature
).
Open a pull request to submit changes to this project. Afterwards, check if your branch is still up to date. If not perform a rebase. The project team will review your pull request.
Your pull request needs to meet the following guidelines for acceptance:
- The pytest suite must pass without errors and warnings.
- Include unit tests.
- If your changes add functionality, update the documentation accordingly.
Feel free to submit early, though—we can always iterate on this.
To run linting and code formatting checks before committing your change, you can install pre-commit as a Git hook by running the following command:
$ pre-commit install
To run the linting and code formatting checks (e.g. ruff) on the entire code base, use the command:
$ pre-commit run --all-files --color=always
These checks will run as a CI job as well.
Please use the coding standards from the Django project and try to follow our conventions as close as possible.
This contributor guide is adapted from cookiecutter-hypermodern-python 2022.6.3 (MIT License).