We use github for our codebase. You can start by reading How To Pull Request.
We keep the stable code in branch main
like golang.org/x
. Development base on branch develop
. And we promise the Forward Compatibility by adding new package directory with suffix v2/v3
when code has break changes.
We use git-flow as our branch organization, as known as FDD
We are using Github Issues for our public bugs. We keep a close eye on this and try to make it clear when we have an internal fix in progress. Before filing a new task, try to make sure your problem doesn’t already exist.
Providing a reduced test code is a recommended way for reporting issues. Then can placed in:
- Just in issues
- Golang Playground
Please do not report the safe disclosure of bugs to public issues. Contact us by Support Email
Before you submit your Pull Request (PR) consider the following guidelines:
- Search GitHub Pulls for an open or closed PR that relates to your submission. You don't want to duplicate existing efforts.
- Please submit an issue instead of PR if you have a better suggestion for format tools. We won't accept a lot of file changes directly without issue statement and assignment.
- Be sure that the issue describes the problem you're fixing, or documents the design for the feature you'd like to add. Before we accepting your work, we need to conduct some checks and evaluations. So, It will be better if you can discuss the design with us.
- Fork the cloudwego repo.
- In your forked repository, make your changes in a new git branch:
git checkout -b my-fix-branch develop
- Create your patch, including appropriate test cases.
- Follow our Style Guides.
- Commit your changes using a descriptive commit message that follows AngularJS Git Commit Message Conventions. Adherence to these conventions is necessary because release notes are automatically generated from these messages.
- Push your branch to GitHub:
git push origin my-fix-branch
- Our development environment keeps up with Go Official.
- You need fully checking with lint tools before submit your pull request. gofmt and golangci-lint
- You are familiar with Github
- Maybe you need familiar with Actions(our default workflow tool).
Good resources: