You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: website/community/how-to-contribute/contribute-code.md
+198-1Lines changed: 198 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,204 @@ sidebar_position: 1
5
5
6
6
# Contribute Code
7
7
8
-
TODO
8
+
Fluss is maintained, improved, and extended by code contributions of volunteers. We welcome contributions to Fluss, but due to preserve the high quality of the code base, we follow a contribution process that is explained in this document.
9
9
10
+
IMPORTANT: Please read this document carefully before starting to work on a code contribution. Follow the process and guidelines explained below. Contributing to Fluss does not start with opening a pull request. We expect contributors to reach out to us first to discuss the overall approach together. Without consensus with the Fluss committers, contributions might require substantial rework or will not be reviewed.
11
+
12
+
## Looking for what to contribute
13
+
14
+
- If you have a good idea for the contribution, you can proceed to [the code contribution process](#code-contribution-process).
15
+
- If you are looking for what you could contribute, you can browse [open issues](https://github.com/alibaba/fluss/issues), which are not assigned, and then follow [the code contribution process](#code-contribution-process).
16
+
- If you are very new to the Fluss project and ready to tackle some open issues, we've collected some [good first issues](https://github.com/alibaba/fluss/contribute) for you.
<p><b>To request an issue, please note that it is not just a "please assign it to me", you need to explain your understanding of the issue, and your design, and if possible, you need to provide your POC code.</b></p>
<p>Implement the change according to the Code Style and Quality(refer to the <a href="https://flink.apache.org/how-to-contribute/code-style-and-quality-preamble/">Flink doc</a>) Guide and the approach agreed upon in the issue.</p>
99
+
<p><b>Only start working on the implementation if there is consensus on the approach (e.g. you are assigned to the ticket)</b></p>
<p>Create the pull request and work with the reviewer.</p><br />
108
+
<p><b>1.Make sure no unrelated or unnecessary reformatting changes are included. 2.Please ensure that the test passing. 3.Please don't resolve conversation.</b></p>
<p>A committer of Fluss checks if the contribution fulfills the requirements and merges the code to the codebase.</p>
117
+
</div>
118
+
</div>
119
+
</div>
120
+
</div>
121
+
122
+
123
+
### Pull Request Guide
124
+
125
+
#### Before PR Checklist
126
+
127
+
- Make sure that the pull request corresponds to a [GitHub issue](https://github.com/alibaba/fluss/issues). Exceptions are made for typos in JavaDoc or documentation files, which need no issue.
128
+
129
+
- Name the pull request in the format "[component] Title of the pull request", where *[component]* should be replaced by the name of the component being changed. Typically, this corresponds to the component label assigned to the issue (e.g., [kv], [log], [client], [flink]). Skip *[component]* if you are unsure about which is the best component. **Hotfixes** should be named for example `[hotfix][docs] Expand JavaDoc for PuncuatedWatermarkGenerator`.
130
+
131
+
- Fill out the PR template to describe the changes contributed by the pull request. Please describe it such that the reviewer understands the problem and solution from the description, not only from the code. That will give reviewers the context they need to do the review.
132
+
133
+
- Make sure that the change passes the automated tests, i.e., `mvn clean verify` passes.
134
+
135
+
- Each pull request should address only one issue, not mix up code from multiple issues.
136
+
137
+
#### How to debug failed cases?
138
+
139
+
140
+
141
+
### Code Review Guide
142
+
143
+
Every review needs to check the following six aspects. **We encourage to check these aspects in order, to avoid
144
+
spending time on detailed code quality reviews when formal requirements are not met or there is no consensus in
145
+
the community to accept the change.**
146
+
147
+
### 1. Is the Contribution Well-Described?
148
+
149
+
Check whether the contribution is sufficiently well-described to support a good review. Trivial changes and fixes
150
+
do not need a long description. If the implementation is exactly according to a prior discussion on issue or the
151
+
development mailing list, only a short reference to that discussion is needed.
152
+
153
+
If the implementation is different from the agreed approach in the consensus discussion, a detailed description of
154
+
the implementation is required for any further review of the contribution.
155
+
156
+
### 2. Does the Contribution Need Attention from some Specific Committers?
157
+
158
+
Some changes require attention and approval from specific committers.
159
+
160
+
If the pull request needs specific attention, one of the tagged committers/contributors should give the final approval.
161
+
162
+
### 3. Is the Overall Code Quality Good, Meeting Standard we Want to Maintain in Fluss?
163
+
164
+
- Does the code follow the right software engineering practices? Is the code correct, robust, maintainable, testable?
165
+
- Are the changes performance aware, when changing a performance sensitive part?
166
+
- Are the changes sufficiently covered by tests? Are the tests executing fast?
167
+
- If dependencies have been changed, were the NOTICE files updated?
168
+
169
+
Code guidelines can be found in the [Flink Java Code Style and Quality Guide](https://flink.apache.org/how-to-contribute/code-style-and-quality-java/).
170
+
171
+
### 4. Are the documentation updated?
172
+
173
+
If the pull request introduces a new feature, the feature should be documented.
174
+
175
+
## Become a Committer
176
+
177
+
### How to become a committer
178
+
179
+
There is no strict protocol for becoming a committer. Candidates for new committers are typically people that are
180
+
active contributors and community members. Candidates are suggested by current committers or PPMC members, and
181
+
voted upon by the PPMC.
182
+
183
+
If you would like to become a committer, you should engage with the community and start contributing to Fluss in
184
+
any of the above ways. You might also want to talk to other committers and ask for their advice and guidance.
185
+
186
+
- Community contributions include helping to answer user questions on the mailing list, verifying release candidates,
187
+
giving talks, organizing community events, and other forms of evangelism and community building. The "Apache Way" has
188
+
a strong focus on the project community, and committers can be recognized for outstanding community contributions even
0 commit comments