# Contributing

We welcome any and all contributions to Witness! If you are interested in contributing there are a few guidelines we ask
that you follow.

## Finding an issue to work on

We maintain our backlog and list of work in Github issues.  Issues are a good place to start to find a way to contribute
as maintainers actively groom the backlog.  If you have an issue that is not in the Github issues for the project feel
free to create an issue.  Please comment on an issue to let others know that you are working on it.

## Committing

The Witness maintainers have chosen to adopt the [Coventional Commit](https://www.conventionalcommits.org/en/v1.0.0/)
specification for commit messages.  Please read and familiarize yourself with the specification in preparation for your
work to be brought upstream.

We also ask that you sign-off your commits.  By signing off you agree to the
[Developer Certificate of Origin](https://developercertificate.org).

Each commit should be a meaningful body of work.  This typically means a pull request will consist of a singular commit
but there are cases where multiple commits per pull request is warranted.  It is okay to make small multiple commits
while going through the review process but you will be asked to rebase your commits as the final step of a pull request.
If you are uncomfortable with rebasing please ask a maintainer to help out or rebase for you.

Commit messages should begin with a short description that fits within about 80 characters.  The body of the commit
should be descriptive about what is being done in your commit.

Tests should be written whenever possible.

## Opening a Pull Request

Once you're ready for your code to be reviewed you can open a pull request.  Draft pull requests are also welcome for
works in progress.  Each pull request should link to the issue that is being addressed.  All CI processes are required
to pass and a maintainer's approval is required for pull requests to be upstreamed.

Maintainers may request changes and ask questions during the review process.  We seek to maintain a welcoming
collaborative environment.  Please see CODE_OF_CONDUCT.md in the project's root for the code of conduct.  Reviews and
change requests are always to be constructive.  If you have questions or concerns during the review process feel free to
reach out at [community@testifysec.com](mailto:community@testifysec.com).
