Thanks for contributing, and thanks for reading this doc before doing it!
This is a set of guidelines for contributing to DevStream. These are only guidelines, not rules. So, use your best judgment, and feel free to propose changes to this document.
Report bugs, create issues, propose new features by creating an issue with the corresponding issue template, and label it accordingly.
If you intend to change the public API or make any non-trivial change, filing an issue first is recommended. This lets us reach an agreement on your proposal before putting significant effort into it.
If you are only fixing a bug, it’s OK to submit a PR without an issue. In this case, Filing an issue is still recommended because it helps us track the issue.
A group of engineers maintains DevStream at Merico, led by @ironcore864.
We aim to reply to issues within 24 hours.
We use golangci-lint
(official website, GitHub) for linting, which is a Go linters aggregator. It's also integrated with the GitHub Actions workflows.
- The list of linters enabled by default is documented here.
- It can be integrated with IDE
- You can run it locally.
Besides, we also use the Go Report Card. There is a badge like in the main README.md.
We try our best to follow the conventional commits guidelines.
TL;DR: The commit message should be structured as follows:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
where "type" can be:
feat
: implements a featurefix
: patches a bugBREAKING CHANGE
: a breaking change. Or append!
at the end of "feat" or "fix", likefeat!
andfix!
- other types are allowed, for example:
build
,chore
,ci
,docs
,style
,refactor
,perf
,test
Both "body" and "footer" are optional; BREAKING CHANGE can be addressed both in the title as well as in the footer. Some examples:
feat: send an email to the customer when a product is shipped
feat!: send an email to the customer when a product is shipped
feat(api): send an email to the customer when a product is shipped
feat(api)!: send an email to the customer when a product is shipped
BREAKING CHANGE: send an email to the customer when a product is shipped
-
feat!: send an email to the customer when a product is shipped A detailed description in the body. BREAKING CHANGE: readdressing the breaking change in the footer.
See creating_a_plugin.md.