-
Notifications
You must be signed in to change notification settings - Fork 7
Platform Team Onboarding Guide
Provides the essential information for any new starter to the golang-buddies platform team. We highly encourage you to familiarise yourself with the content below as it will help you navigate the repository configurations, familiarise yourself with the tooling and provide you with enough context to contribute.
The published documents are available at https://rog-golang-buddies.github.io/golang-template-repository/
Please go through the contents in the Continuous integration
section as it covers the CI tools we offer and how it is setup in this repository.
To setup the local development environment see the Quickstart guide.
semantic-release controls releases based on following a commit message convention. It is imperative this convention is followed to ensure releases are triggered.
For a base version of 0.1.0
, the following will apply:
| Type | Release type example | Notes |
|---------------------------|---------------------------|----------------------------------------------------------------|
| `fix` | increments to `0.1.1` | |
| `feat` | increments to `0.1.0` | Resets any existing patch fixes e.g: `0.1.3` will be `0.2.0` |
| `BREAKING CHANGE` | Increments to `1.0.0` | Can be added to any type |
| All others | No version increment | |
See the full example here.
The semantic-release commit message convention has 3 parts to it:
Parts | Description |
---|---|
type | Predefined |
scope | User defined |
msg | User defined |
The following section focuses on scope
to provide some standardisation.
In order to keep the commit scope consistent and meaningful, the following scopes should be used:
The CI tooling scopes should represent the tooling. Some examples are listed below.
sonarcloud
golangci-lint
gitleaks
semantic-release
goreleaser
dependabot
mkdocs
go-test
github # github related things
Examples:
feat(sonarcloud): Add code coverage
The same scopes should be used for documentation updates. For example:
docs(sonarcloud): Add CI docs to describe the workflow
dockerfile
makefile
readme
app
-
Keep the scope names in lowercase and use hyphens
# Do this feat(semantic-release): Add changelog # Not this feat(semanticRelease): Add changelog
-
If multiple scopes need to be added use a comma separated list with no spaces
# Do this fix(semantic-release,gorelease): goreleaser must be run after the tag is created # Not this fix(semantic-release, gorelease): goreleaser must be run after the tag is created