#+TITLE: Contributing
#+HTML_HEAD: <link rel="stylesheet" href="https://sandyuraz.com/styles/org.min.css">

* Contributing
  :PROPERTIES:
  :CUSTOM_ID: contributing
  :END:
Thank you for considering a contribution to this project!

All changes will need to:

- build successfully with =docker build .=,
- be signed-off,
- have good commit messages.

Additionally changes that are not backwards-compatible (for example
changing or removing API) need to first be discussed using issues.

** Build
   :PROPERTIES:
   :CUSTOM_ID: build
   :END:
=docker build .= will perform all necessary checks including lints and
integration tests

** Commit messages
   :PROPERTIES:
   :CUSTOM_ID: commit-messages
   :END:
Commit messages should be self-contained and describe the motivation for
a change. The subject line should be short, with any elaborations in the
body. If the commit closes an issue, write =Closes #issuenumber= at the
end of the body.

Keep in mind [[https://chris.beams.io/posts/git-commit/][the seven rules
of a great Git commit message]]:

1. Separate subject from body with a blank line
2. Limit the subject line to 50 characters
3. Capitalize the subject line
4. Do not end the subject line with a period
5. Use the imperative mood in the subject line
6. Wrap the body at 72 characters
7. Use the body to explain what and why vs. how
