Please make sure the bug is not already reported by searching the repository with reasonable keywords. Then, open an issue with steps to reproduce.
Recommend the standard GitHub flow based on forking and pull requests.
The following diagram and practice steps show the basic process of contributing code to CubeFS:
- Fork CubeFS to your repository.
- Add remote for your forked repository.
(Example:$ git remote add me https://github.com/your/cubefs
) - Make sure your local master branch synchronized with the master branch of main repository.
(Example:$ git checkout master && git pull
) - Create local new branch from your up-to-dated local master branch, then checkout to it and leaves your changes.
(Example:$ git branch your-branch && git checkout your-branch
) - Commit and push to your forked remote repository.
(Example:$ git commit -s && git push me
) - Make a pull request that request merging your own branch on your forked repository into the master branch of the main repository.
(Example: mergeyour/cubefs:your-branch
intocubefs/cubefs:master
)
Note 1:
The DOC Check is enabled and required. Please make sign your commit by using -s
argument to add a valid Signed-off-by
line at bottom of your commit message.
Example:
$ git commit -s
Note 2:
If your pull request solves an existing issue or implements a feature request with an existing issue.
Please use the fixes keyword in the pull request to associate the pull request with the relevant issue.
Note 3:
Every pull request that merges code to the master branch needs to be approved by at least one core maintainer for code review and pass all checks (including the DCO check) before it can be merged.
- Follow the coding standards of Go.
- Ensure that your code is formatted using
go fmt
orgofumpt
before submitting it. - Ensure that each new source file starts with a license header.
- Ensure that there are enough unit tests.
- Ensure that there are enough comments.
- Follow the Angular commit guidelines.
- Commits must be signed and the signature must match the author.
- If there is an issue, you need to link to related issues.
Example:
For example, the author information must match the Signed-off-by information.
Author: users <users@cubefs.groups.io>
Date: Thu Apr 27 09:40:02 2023 +0800
feat(cubefs): this is an example
close: #1
Signed-off-by: users <users@cubefs.groups.io>