- For a ready feature, improvement or a bugfix: Ensure that everything builds locally, and passes integration and unit tests before making a PR.
To run integration tests, use Maven
integration-testandlombokprofiles (mvn -Pintegration-test -Plombok <...>). - For a prototype, suggested or partly done feature that won't necessarily build or work as intended: Mark your PR as Draft (you can choose to create your PR as draft in the PR creation page, there is a dropdown button for creating the PR). Mark the PR as Ready when your code is ready to be reviewed and merged.
- You SHOULD NOT commit directly to
main. You SHOULD create a branch for your feature, bugfix or improvement. - Before finally merging, you SHOULD use interactive rebase +
git push --forceto get nice linear history. Force-pushing into a remote branch is perfectly fine, provided that no one works on it except you 😄 - Branch Names:
- Branch names MUST use lowercase
kebab-caseand ASCII characters only, to work well across all file systems. Underscores (_) MUST NOT be used. - Branch names SHOULD clearly describe the feature/bugfix/improvement made in the branch. Other than that, we don't enforce any strict naming pattern. E.g., the
security-update-jackson-cve-2023-xxxxbranch name is good;issue-152is bad - For multiple PRs involving the same logical change, you SHOULD use the name format
<logical-change-description>/<concrete-branch-description>, e.g.new-session-manager/move-dependencies
- Branch names MUST use lowercase
For commit messages, follow the rules established in https://cbea.ms/git-commit/ because GitHub UI honors them. Basically:
- Use imperative mood ("Make ...", "Add ...", etc.) in the commit message
- First line of the commit message MUST be a concise summary of the changes. The first line MUST begin with a capital letter. It SHOULD be <= 50 characters, MUST be <= 72 characters.
- Add body to the commit message if you need to clarify your intent or technical implementation details.
To do this, add a second empty line to the message, then put the details on the 3rd and the following lines.
- Each body line MUST be <= 72 characters long.
- If bulleted lists are used in the commit message body, Markdown syntax MUST be used for them.
- If your commit is related to a GitHub issue, you SHOULD add the issue number as a message prefix:
#1: Use New Session Mananager. If the commit message also has a body, you SHOULD finish the body with the line:Fixes: #<issue number>[, #<issue number>, ...]
You SHOULD use comment format recommended by https://conventionalcomments.org/.