We use Git for our version control system. The master
branch is the home of the current development candidate. Releases are tagged.
We accept changes to the code via GitHub Pull Requests (PRs). One workflow for doing this is as follows:
- Go to your
$GOPATH/src/deis
directory andgit clone
thegithub.com/deis/steward
repository. - Fork that repository into your GitHub account
- Add your repository as a remote for
$GOPATH/src/github.com/deis/steward
- Create a new working branch (
git checkout -b my-feature
) and do your work on that branch. - When you are ready for us to review, push your branch to GitHub, and then open a new pull request with us.
All git commit messages should loosely follow semantic commit messages. We've relaxed the requirement that a full commit message body be present, however you must indicate if your commit closes any issue. See below for an example commit message:
test(cf mode): Add more integration tests
Fixes #1234
Common commit types:
fix
: Fix a bug or errorfeat
: Add a new featureref
: refactor some codedoc
: Change documentationtest
: Improve testing
Common scopes:
k8s
: general interaction with the Kubernetes APIk8s/claim
: CRUD actions on claimsk8s/claim/state
: the claim state machinemode
: generic mode interfaces and data typesmode/{cf,helm,cmd}
: specific mode functionality*
: two or more scopes
Read more:
- The Deis Guidelines were the inspiration for this section.
- Karma Runner defines the semantic commit message idea.
We follow the Go coding style standards very closely. Typically, running go fmt
will make your code beautiful for you.
We also typically follow the conventions recommended by go lint
and govet
. We encourage you to install an extension to your IDE that automatically runs go fmt
and go vet
against your code as you develop.
Read more:
- Effective Go introduces formatting.
- The Go Wiki has a great article on formatting.