Want to contribute? That's great! Any contribution is welcome, e.g. documentation, bug reports, feature request, issues, blog posts, tutorials, feature implementations, etc. You can contribute code or documentation through the standard GitHub pull request model. For large contributions we do encourage you to file a ticket in the GitHub issue tracking system prior to any development to coordinate with the DST development team early in the process. Coordinating up front helps to avoid frustration later on.
Note that this repository only contains the source code of DST. For issues / pull requests related only to documentation please refer to the dst-doc repository.
-
We use the GitHub issue tracker and this branching model.
-
When you want to submit a patch to any DST project, you must sign a CLA (once) and sign your commits.
-
Your contribution must be licensed under the Apache-2.0 license, the license used by this project.
-
When submitting a pull-request to the project, please note / ensure the following:
- If possible, keep the changes small and simple which makes review process easier.
- Add / retain copyright notices.
- Document the code by following Go commentary guidelines.
- Make sure to run linter with the project's linter config and fix any errors or warnings.
- Verify that the code builds cleanly and passes all unit tests.
- Ensure good test coverage by including unit tests when adding significant amount of functionalities.
- Please follow these guidelines on how to write a good commit message. If available, please include the ticket number. And don't forget the Signed-Off-By line.
- Create a pull request against the develop branch.
Include a copyright notice and license in each new file to be contributed, consistent with the style used by this project. If your contribution contains code under the copyright of a third party, document its origin, license, and copyright holders.
Each contributor is responsible for identifying themselves in the NOTICE file, the project's list of copyright holders and authors. Please add the respective information corresponding to the Signed-off-by tag as part of your first pull request.
If you are a developer who is authorized to contribute to DST on behalf of your employer, then add your company / organization to the list of copyright holders in the NOTICE file. As author of a corporate contribution you can also add your name and corporate email address as in the Signed-off-by tag.
We believe that if successful the DST project should move to a neutral home in the long run (e.g. to some not-for-profit foundation). To allow us to retain the necessary open source licensing flexibility please ensure you have signed the Contributor License Agreement (CLA) before creating any pull request. All contributors will retain ownership in their contributions while granting us the necessary legal rights. The CLA only needs to be signed once and it covers all Direct State Transfer repositories.
This project also tracks patch provenance and licensing using Signed-off-by tags. With the sign-off in a commit message you certify that you authored the patch or otherwise have the right to submit it under an open source license and you acknowledge that the CLA signed for any DST project also applies to this contribution. The procedure is simple: just append a line
Signed-off-by: Random J Developer <[email protected]>
to every commit message using your real name or your pseudonym and a valid email address.
If you have set your user.name
and user.email
git configs you can
automatically sign the commit by running the git-commit command with the
-s
option. There may be multiple sign-offs if more than one developer
was involved in authoring the contribution.
Often employers or academic institution have ownership over code that is written in certain circumstances, so please do due diligence to ensure that you have the right to submit the code.
If you are a developer who is authorized to contribute to DST on behalf of your employer, then please use your corporate email address in the Signed-off-by tag. Otherwise please use a personal email address.