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
+56-1Lines changed: 56 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,62 @@ sidebar_position: 1
21
21
22
22
# Contribute Code
23
23
24
-
TODO
24
+
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.
25
+
26
+
:::warning
27
+
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.
28
+
:::
29
+
30
+
## Looking for what to contribute
31
+
32
+
- If you have a good idea for the contribution, you can proceed to [the code contribution process](#code-contribution-process).
33
+
- 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).
34
+
- 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.
35
+
36
+
37
+
## Code Contribution Process
38
+
39
+
### Discuss
40
+
41
+
Create an issue and reach consensus.
42
+
43
+
**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.**
44
+
45
+
### Implement
46
+
47
+
Implement the change according to the Code Style and Quality(refer to the [Flink doc](https://flink.apache.org/how-to-contribute/code-style-and-quality-preamble/) Guide and the approach agreed upon in the issue.
48
+
49
+
1. Only start working on the implementation if there is consensus on the approach (e.g. you are assigned to the ticket)
50
+
2. If you are newer, can refer to [ide setup](/community/dev/ide-setup) to setup a Fluss dev environment.
51
+
52
+
### Review
53
+
Create the pull request and work with the reviewer.
54
+
55
+
1. Make sure no unrelated or unnecessary reformatting changes are included.
56
+
2. Please ensure that the test passing.
57
+
3. Please don't resolve conversation.
58
+
59
+
### Merge
60
+
A committer of Fluss checks if the contribution fulfills the requirements and merges the code to the codebase.
61
+
62
+
## Pull Request Guide
63
+
64
+
Considerations before opening a pull request:
65
+
66
+
- 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.
67
+
68
+
- 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`.
69
+
70
+
- Fill out the pull request 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.
71
+
72
+
- Make sure that the change passes the automated tests, i.e., `mvn clean verify` passes.
73
+
74
+
- Each pull request should address only one issue, not mix up code from multiple issues.
75
+
76
+
77
+
There is a separate guide on [how to review a pull request](how-to-contribute/review-pull-requests.md), including our pull request review process. As a code author, you should prepare your pull request to meet all requirements.
78
+
79
+
You need to make sure that all GitHub Actions CI checks must pass for a pull request. If there are any failures, it is essential to investigate the exception stack by in the CI logs. Additionally, GitHub Actions automatically collects and uploads Maven logs (logs printed by log4j in the code) to GitHub Artifacts (see the "Artifacts" section in this [build](https://github.com/alibaba/fluss/actions/runs/13761957739)). These logs are particularly valuable for debugging issues that are difficult to reproduce in a local environment.
Licensed under the Apache License, Version 2.0 (the "License");
10
+
you may not use this file except in compliance with the License.
11
+
You may obtain a copy of the License at
12
+
13
+
http://www.apache.org/licenses/LICENSE-2.0
14
+
15
+
Unless required by applicable law or agreed to in writing, software
16
+
distributed under the License is distributed on an "AS IS" BASIS,
17
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+
See the License for the specific language governing permissions and
19
+
limitations under the License.
20
+
-->
21
+
22
+
# How to Review a Pull Request
23
+
24
+
This guide is for all committers and contributors that want to help with reviewing code contributions. Thank you for your effort - good reviews are one of the most important and crucial parts of an open source project. This guide should help the community to make reviews such that:
25
+
26
+
* Contributors have a good contribution experience.
27
+
* Our reviews are structured and check all important aspects of a contribution.
28
+
* We make sure to keep a high code quality in Fluss.
29
+
* We avoid situations where contributors and reviewers spend a lot of time refining a contribution that gets rejected later.
30
+
31
+
## Review Checklist
32
+
33
+
Every review needs to check the following six aspects. **We encourage to check these aspects in order, to avoid
34
+
spending time on detailed code quality reviews when formal requirements are not met or there is no consensus in
35
+
the community to accept the change.**
36
+
37
+
### 1. Is the Contribution Well-Described?
38
+
39
+
Check whether the contribution is sufficiently well-described to support a good review. Trivial changes and fixes
40
+
do not need a long description. If the implementation is exactly according to a prior discussion on issue or the
41
+
development mailing list, only a short reference to that discussion is needed.
42
+
43
+
If the implementation is different from the agreed approach in the consensus discussion, a detailed description of
44
+
the implementation is required for any further review of the contribution.
45
+
46
+
### 2. Does the Contribution Need Attention from some Specific Committers?
47
+
48
+
Some changes require attention and approval from specific committers.
49
+
50
+
If the pull request needs specific attention, one of the tagged committers/contributors should give the final approval.
51
+
52
+
### 3. Is the Overall Code Quality Good, Meeting Standard we Want to Maintain in Fluss?
53
+
54
+
- Does the code follow the right software engineering practices? Is the code correct, robust, maintainable, testable?
55
+
- Are the changes performance aware, when changing a performance sensitive part?
56
+
- Are the changes sufficiently covered by tests? Are the tests executing fast?
57
+
- If dependencies have been changed, were the NOTICE files updated?
58
+
59
+
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/).
60
+
61
+
### 4. Are the documentation updated?
62
+
63
+
If the pull request introduces a new feature, the feature should be documented.
0 commit comments