Thanks for considering contributing to the XRd tools project!
Please have a read through this guide before submitting issues or pull requests, but otherwise we welcome constructive feedback and improvements!
We use GitHub issues to track public bugs. Report a bug or submit a feature request by opening a new issue.
Please note that unfortunately we may not be able to accept all feature requests due to time constraints within the team. Be sure to create an issue before submitting a PR so that we can give feedback to avoid any time being wasted if we're unable to accept a change.
Please include the following in a bug report where possible:
- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can.
- What you expected would happen
- What actually happened
- Log and version output
- Output from
docker logs <ctr>
(or equivalent). - Output of
docker version
(or equivalent). - Output from
uname -a
.
- Output from
- Extra notes
- E.g. why you think this might be happening, or stuff you tried that didn't work
PRs are happily accepted as long as the change has been agreed with maintainers beforehand. This should be done by creating an issue (see above) and stating the intention to implement the change.
Agreeing changes before diving in helps to ensure everyone's happy with the changes and gives a chance for any required discussion to take place!
All tests and checks will be automatically run in a PR via GitHub actions, but it is advisable to get them all passing manually before raising a PR.
The following checks should be run:
- Shellcheck (for bash code)
- Pylint (for python code)
- Mypy (for python code)
- Black and isort formatting (for python code)
- Pytest:
pytest tests/
Install the python dependencies (and shellcheck) using a venv and the requirements.txt
file:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
For convenience all of the above can be run using the commit-check
script, although running each check individually will give faster turnaround for diagnosing individual failures!
Any python code changes should include full code coverage or justification for why this is not required.
Coverage can be checked using the pytest-cov
plugin:
pytest tests/ --cov scripts/
Python code should be formatted using black
- this will be checked by a GitHub action and will block merging PRs.
By contributing, you agree that your contributions will be licensed under the Apache License that covers the project.