Project: Keylime (Provisioning / Security & Compliance)
File: CONTRIBUTING.md

When contributing to this repository, please first discuss the change you wish to make via an or email to the . Create an outlining the fix or feature. Fork the keylime repository to your own github account and clone it locally. Hack on your changes. Update the README.md or documentation in the `docs/` directory with details of changes to any interface, this includes new environment variables, exposed ports, useful file locations, CLI parameters and new or changed configuration values. Correctly format your commit message see below. Ensure that CI passes, if it fails, fix the failures. Every pull request requires a review from the before merging. If your pull request consists of more than one commit, please squash your commits as decribed in Keylime uses and to enforce a consistent code style. We provide a configuration to enforce the code style locally and the CI will check if the code is formatted correctly. For usage and installation instructions see the website. Black and isort can also be run manually, but please make sure that the versions used are the ones specified in the `.pre-commit-config.yaml`. We follow the commit formatting recommendations found on . Well formed commit messages not only help reviewers understand the nature of the Pull Request, but also assists the release process where commit messages are used to generate release notes. A good example of a commit message would be as follows: ``` Summarize changes in around 50 characters or less More detailed explanatory text, if necessary. Wrap it to about 72 characters or so. In some contexts, the first line is treated as the subject of the commit and the rest of the text as the body. The blank line separating the summary from the body is critical (unless you omit the body entirely); various tools like `log`, `shortlog` and `rebase` can get confused if you run the two together. Explain the problem that this commit is

Focus on why you are making this change as opposed to how (the code explains that). Are there side effects or other unintuitive consequences of this change? Here's the place to explain them. Further paragraphs come after blank lines. Bullet points are okay, too Typically a hyphen or asterisk is used for the bullet, preceded by a single space, with blank lines in between, but conventions vary here If you use an issue tracker, put references to them at the bottom, like this: Resolves: #123 See also: #456, #789 ``` Note the `Resolves #123` tag, this references the issue raised and allows us to ensure issues are associated and closed when a pull request is merged. Please refer to for a complete list of issue references. Should your pull request consist of more than one commit (perhaps due to a change being requested during the review cycle), please perform a git squash once a reviewer has approved your pull request. A squash can be performed as follows. Let's say you have the following commits: initial commit second commit final commit Run the command below with the number set to the total commits you wish to squash (in our case 3 commits): git rebase -i HEAD~3 You default text editor will then open up and you will see the following:: pick eb36612 initial commit pick 9ac8968 second commit pick a760569 final commit We want to rebase on top of our first commit, so we change the other two commits to `squash`: pick eb36612 initial commit squash 9ac8968 second commit squash a760569 final commit After this, should you wish to update your commit message to better summarise all of your pull request, run: git commit --amend You will then need to force push (assuming your initial commit(s) were posted to github): git push origin your-branch --force [pending] [pending] Keylime adheres to and enforces the Code of Conduct. Please take a moment to read the document.