docs/en/developers/How_to_Contribute.md
Contributing to StarRocks is cordially welcome from everyone. Contributing to StarRocks is not limited to contributing code. Below, we list different approaches to contributing to our community.
| Report a bug | You can file an issue to report a bug with StarRocks. You can also click Feedback in the upper-right corner of the page you are reading in the Documentation Site to report a bug. |
|---|---|
| Contribute code | You can contribute your code by fixing a bug or implementing a feature. |
| Contribute test case | You can contribute your test cases. |
| Help review code | If you are an active contributor or committer of StarRocks, you can help us review the pull requests (PRs). |
| Contribute documentation | StarRocks community maintains a tremendous amount of documentation both in Chinese and English. You can contribute documentation changes by fixing a documentation bug or proposing a new piece of content. |
| Help StarRocks users | You can help newcomers who meet difficulties in our community. |
| Spread the word about StarRocks | You can author an article or give a talk about us to help spread our technology to the world. |
NOTE
To contribute documentation, remember to sign off your commit using
git commit -s. Otherwise, the Developer Certificate of Origin (DCO) check will fail and the PR may be blocked. In addition, prefix[Doc]to your PR title and select the Doc check box.
The best place to get a wide variety of help about StarRocks is via StarRocks's Slack Channel For contribution-related discussions, please go to the #contributing-to-starrocks channel.
You can also report issues and problems, or suggest new features, on GitHub.
Our community strictly adheres to the code of conduct.
Everyone is encouraged to participate in the StarRocks project. Anyone can make an impact by simply being involved in the discussions about new features, project roadmap, architecture, and even reporting issues you are facing.
The roles listed below are a few possible ways to get involved in the community, it also defines what is expected from each role.
Participants are actively involved in the community and work to make StarRocks better for everyone.
As a participant, you can submit issue reports on GitHub, contribute test cases, translate/modify documentation, help answer user questions in forums or communities, participate in events, share your experience with StarRocks, star StarRocks on GitHub, and more.
Expectations and responsibilities:
Follow the community's code of conduct.
Be involved in discussions and community events.
Share feedback with the community so everyone else knows what is/isn’t working.
Suggest improvements.
StarRocks Community Champions are a group of passionate community evangelists and pioneers who are well-versed in StarRocks technology. They enjoy sharing the latest developments and products in the community, and their enthusiasm drives the progress and development of the community.
Product
Early access to new products/features.
Participate in exclusive meetings with the project core team.
Community
Listed as a StarRocks champion on the website.
Exclusive prizes and badges.
Events
Free access to StarRocks' events.
Expense reimbursement for travel and accommodations for events.
VIP seats and VIP events.
Everyone who contributes can become a StarRocks contributor. The members will provide mentorship and guidance when new contributors need assistance.
As a Contributor, we expect you to
Actively participate in StarRocks' project development.
Participate in community events (meetups, hackathons, etc.).
Learn and help others learn StarRocks-related technologies.
Be listed as a StarRocks contributor.
Be awarded a StarRocks Contributor e-certificate.
Active contributors are contributors who have made outstanding contributions and sustained commitment to StarRocks. They actively participate in the community by contributing code, improving docs, and helping others.
Have 5 merged PRs or fixed major bugs.
Participate in more than 5 code reviews.
Actively participate in community events such as online/offline meetups and community discussions.
Join the community meeting and discussion.
Mentor and guide new contributors.
Be listed as a StarRocks Active Contributor.
Be awarded a StarRocks Active Contributor e-certificate.
Committers are promoted from Active Contributors.
They have the authority to merge PRs into master branches and are responsible for the planning and maintenance of StarRocks. They also are active members in sharing their knowledge with the community.
Have a deep understanding of StarRocks' principles and future plans.
Have the ability to deal with various issues that arise in the project promptly.
Lead a major development, write and revise related documents.
Receive at least two PMC nominations and pass voting.
Mentor and guide other memberships in the community.
Ensure continued health of subproject.
Be granted write access to StarRocks repos (to be specified).
Be listed as a StarRocks Committer.
Be awarded a StarRocks Committer e-certificate.
PMCs are promoted from Committers. They have the authority to merge merge PRs into master branches and are responsible for the planning and maintenance of StarRocks. They also are active members in sharing their knowledge with the community.
In-depth understanding of StarRocks principles and a clear understanding of StarRocks' future plans.
Have the ability to deal with project issues promptly.
Lead project development and iterations, and steer the overall direction of the project.
Receive at least two PMC nominations and pass voting.
Mentor and guide other memberships in the community.
Ensure continued health of the project, such as code quality and test coverage.
Make and approve technical design decisions.
Define milestones and releases.
Vote and promote new committers and PMCs.
Be listed as a StarRocks PMC.
Be awarded a StarRocks PMC e-certificate.
If you don't know how to get started, this is the process we suggest for contributions. This process is designed to help reduce your learning curve and get your pull requests merged more efficiently!
Sign the Contributor License Agreement (CLA).
Start a discussion by creating a Github issue, or asking on Slack channel unless the change is trivial).
Before getting your hands on codes, you should comment in the issue body, and inform the maintainer to assign you the issue that you wish to solve. It is recommended to share your plan on how to solve this problem in the issue body as well.
Implement the change.
If the change is major, split it into smaller PRs.
Include tests and documentation as necessary.
Create a Github pull request:
In StarRocks community, we follow the fork-and-merge GitHub workflow when contributing code.
Review is required by at least 2 reviewers:
For StarRocks project, we require at least 2 lgtm from reviewers (committers) to merge the pull request.
This normally happens within a few days, but may take longer if the change is major, complex, or if a critical reviewer is unavailable. (feel free to ping the reviewer on the pull request).
Maintainers merge the pull request after the final changes are accepted.