Contributing Guide
This guide is geared for developers and maintainers of buildtest who want to contribute back to buildtest project. There are many ways you can help contribute to buildtest that may include:
Improve user documentation
Increase test coverage of buildtest regression tests.
Work on an existing issue
Report a bug or new feature requests at https://github.com/buildtesters/buildtest/issues
Overview
buildtest codebase is written in Python 3, so if you are new to Python you will want to check out the python 3 tutorial. This is a good starting point to understand python basics. If you are familiar with Python 2 you may want to review the Python 2-3 cheat sheet.
buildtest relies on YAML and JSON Schema, you should review Understanding JSON Schema article as it provides a thorough overview of JSON Schema. There are several resources to help you learn YAML for instance you can check out:
buildtest has a regression test that is run via pytest. You should be familiar with pytest and it’s usage and documentation as it will help you write regression test. The regression test makes use of coverage to measure code coverage of buildtest source code. This is configured in pyproject.toml file located in top of repo. The coverage data is pushed to codecov at https://codecov.io/gh/buildtesters/buildtest/.
buildtest has several CI checks written in GitHub workflows. These are found in .github/workflows directory of buildtest. You should familiarize yourself with github worflow syntax if you want to contribute back to github workflows.
Git is essential to code contribution so we recommend you get comfortable using git as it will be discussed in code contributing guide. We recommend you review one the following guides to help you learn git:
Documentation is built via sphinx and hosted via readthedocs. Be sure to check out readthedocs documentation to understand how this platform works. The buildtest project is hosted at https://readthedocs.org/projects/buildtest/ which hosts the public documentation at https://buildtest.readthedocs.io/. The documentation pages are written in reStructured Text (rST) which is Sphinx’s markup language when hosting the docs.
Contributing Topics
- Developers Contributing Guide
- GitHub Integrations
- Building Documentation
- Buildtest Unit Tests
- Contributing to Schemas
- Maintainer Guide
- New Maintainers Checklist