Welcome! We gladly accept contributions and encourage you to get involved in making ClusterLink the best it can be! 💖
The ClusterLink community is governed by our Code of Conduct and we expect all contributors to abide by it.
We welcome many different types of contributions including:
- New features
- Builds, CI/CD enhancements
- Bug fixes
- Documentation
- Issue Triage
- Answering questions on Slack/Mailing List
- Web design
- Communications / Social Media / Blog Posts
- Release management
We follow GitHub's Standard Fork & Pull Request Workflow
First, please search the ClusterLink repository with different keywords to ensure your bug is not already reported.
If not, open an issue, providing as much details as possible so we can understand and reproduce the problematic behavior. It is easiest to pinpoint the root cause when you write clear, concise instructions to reproduce the behavior. The more detailed and specific you are, the faster we will be able to help you. Check out How to Report Bugs Effectively.
Please be kind. 😄 Remember that ClusterLink is work in progress and comes at no cost to you.
Submit pull requests at any time. Make sure to write tests to assert your change is working properly and is thoroughly covered.
As with bug reports, please search with a variety of keywords to ensure your suggestion/proposal is new. Please also check for existing pull requests to see if someone is already working on this. We want to avoid duplication of effort.
If the proposal is new and no one has opened pull request yet, you may open either an issue or a pull request for discussion and feedback. If you are going to spend significant time implementing code for a pull request, best to open an issue first and get feedback before investing time and effort.
If possible, make a pull request as small as possible, or submit multiple pull request to complete a feature. Smaller means: easier to understand and review. This in turn means things can be merged faster.
If you're new to ClusterLink, you are in the best position to give us feedback on areas of our project that we can improve, including:
- Problems found during setting up a new developer environment
- Gaps in our guides or documentation
- Bugs in our automation scripts
If something doesn't make sense, or doesn't work when you run it, please open a bug report and let us know!
We have good first issues for new contributors and help wanted issues suitable for any contributor. "Help wanted" issues are suitable for someone who isn't a core maintainer and are good to move onto after your first pull request.
We have a roadmap that will give you a good idea of the larger
features that we are working on right now. That may help you decide what you would
like to work on after you have tackled an issue or two. If you have a big idea for
ClusterLink, you can propose it by creating an issue and marking it enhancement
.
All contributors might get stuck sometimes. The best way to reach us with a question when contributing is to ask on:
- The original GitHub issue
- The developer mailing list
Licensing is important to open source projects. It provides some assurances that the software will continue to be available based under the terms that the author(s) desired. As required by the CNCF's charter, all new code contributions must be accompanied by a Developer Certificate of Origin (DCO). ClusterLink uses the DCO App to enforce the DCO on pull requests.
You may use git option -s
to append automatically to the Sign-off-by
line to your commit messages:
git commit -s
Your sign-off must match the git user and email associated with the commit.