- If you've encountered a bug, open a Bug Report.
- If you want [PROJECT'S NAME] to have a new functionality, open a Feature Request.
Select an issue that you want to resolve.
The recommended workflow is to fork this repository and open pull requests from your fork.
- Click on the Fork button on GitHub
- Clone the original repository
- Add your repository as a new remote
# Clone original repository
git clone git@github.com:PoCInnovation/$REPOSITORY.git
# Add your fork as a remote
git remote add <fork_name> https://github.com/$YOUR_GITHUB_USER/$REPOSITORY.git
# Create a new branch
git switch -c my_branch
# Make changes to your branch
# ...
# Commit changes - remember to sign!
git commit -s
# Push your new branch
git push <fork name>
# Create a new pull request from https://github.com/PoCInnovation/$REPOSITORY/pulls
# Switch to the main branch
git switch main
# Pull origin's change
git pull
# Switch to your branch
git switch my_branch
# Rebase your branch changes on top of the updated main branch
git rebase main
# Update your pull request with latest changes
git push -f <fork name>
Contributions to this project must be accompanied by a Developer Certificate of Origin (DCO).
All commit messages must contain the Signed-off-by line with an email address that matches the commit author. When committing, use the --signoff
flag:
git commit -s
The Signed-off-by line must match the author's real name, otherwise the PR will be rejected.
Please read first this article : How to Write a Git Commit Message.
Then, follow these guidelines:
- Group Commits: Each commit should represent a meaningful change. Instead, these commits should be squashed together into a single "Add Feature" commit.
For instance, a PR should not look like :
- Add Feature X
- Fix Typo
- Changes to features X
- Bugfix for feature X
- Fix Linter 7)
- ...
- Each commit should work on its own: it must compile, pass the linter and so on.
This makes life much easier when using
git log
,git blame
,git bisect
, etc...
For instance, when doing agit blame
on a file to figure out why a change was introduced, it's pretty meaningless to see a Fix linter commit message. "Add Feature X" is much more meaningful.
-
Use
git rebase -i main
to group commits together and rewrite their commit message -
To add changes to the previous commit, use
git commit --amend -s
. This will change the last commit (amend) instead of creating a new commit. -
Format: Use the imperative mood in the subject line: "If applied, this commit will your subject line here"
-
Add the following prefixes to your commit message to help trigger automated processes:
docs:
for documentation changes only (e.g.,docs: Fix typo in X
);test:
for changes to tests only (e.g.,test: Check if X does Y
);chore:
general things that should be excluded (e.g.,chore: Clean up X
);ci:
for internal CI specific changes (e.g.,ci: Enable X for tests
);
Made with ❤️ by PoC