Contributing Guide #
Thank you for your efforts to improve the fapolicy-analyzer project. This guide will provide information about various aspects of the development workflow, like submitting issues, developing a feature, submitting a pull request, etc.
Developers #
Python bindings #
We write python bindings using PyO3 and setuptools_rust.
We use pipenv for creating a sand-boxed development environment. To
install pipenv
into your home directory:
pip3 install --user pipenv
To build and install the bindings, and to start the virtual development environment, run the following from the top level directory of this repository:
make shell
Note: There may be some additional build-time requirements. See the development wiki page for more details.
Before Submitting a Pull Request #
- Clone the repository
- Create a branch from
master
- Run
make shell
in the repository root - Change necessary code for bug fix, a new feature
- Check linting and format it
make lint
make format
- Make sure all unit-tests pass and that there is greater than 90% converage.
make test
Changelog updates #
We use towncrier to generate a CHANGELOG for each release.
To include your change in the release notes please create a news article in the news
directory.
Valid articles should be saved as <PR>.<CATEGORY>.md
where <PR>
is the pull request number and <CATEGORY>
is one
of:
fixed
- for bug fixesadded
- added a new featurechanged
- changed an existing featureremoved
- removed capabilitypackaging
- an RPM or dependency changes
PRs may be excluded from the documentation requirement if they fall into one of the following categories:
ci
- Continuous Integration changes do not need reported to usersdocumentation
- Documentation improvements do not usually need reported to usersrelease
- Release PRs do not need a news article
To exclude the news check on a PR label the PR with the category or tag PR title with a prefix + :
,
eg. ci: Updated the build
.
Getting Help #
Feel free to ask a question or start a discussion in the Discussion section of this project.
More Resources #
As mentioned above, there is a dedicated Development section on the wiki.
See the Wiki for more general resources.
The fapolicyd project.
Reporting an issue #
Before submitting an issue:
- A clear title
- Provide as detailed a description as possible and ideally the steps to duplicate the issue.