This is an automated email from the ASF dual-hosted git repository.
nicholasjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-paimon.git
The following commit(s) were added to refs/heads/master by this push:
new 65f13da18 [doc] Document how to contribute (#939)
65f13da18 is described below
commit 65f13da18379f758bcccf2d059bb08485cb91894
Author: Jingsong Lee <[email protected]>
AuthorDate: Thu Apr 20 13:25:04 2023 +0800
[doc] Document how to contribute (#939)
---
docs/content/project/contributing.md | 255 +++++++++++++++++++++++++++++++++++
1 file changed, 255 insertions(+)
diff --git a/docs/content/project/contributing.md
b/docs/content/project/contributing.md
new file mode 100644
index 000000000..9e885d0c6
--- /dev/null
+++ b/docs/content/project/contributing.md
@@ -0,0 +1,255 @@
+---
+title: "Contributing"
+weight: 3
+type: docs
+aliases:
+- /project/contributing.html
+---
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Contributing
+
+Apache Paimon (incubating) is developed by an open and friendly community.
Everybody is cordially welcome to join
+the community and contribute to Apache Paimon. There are several ways to
interact with the community and contribute
+to Paimon including asking questions, filing bug reports, proposing new
features, joining discussions on the mailing
+lists, contributing code or documentation, improving website, testing release
candidates and writing corresponding blog etc.
+
+<h1>What do you want to do?</h1>
+<p>Contributing to Apache Paimon goes beyond writing code for the project.
Below, we list different opportunities to help the project:</p>
+
+<table class="table table-bordered">
+ <thead>
+ <tr>
+ <th>Area</th>
+ <th>Further information</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><span class="glyphicon glyphicon-exclamation-sign"
aria-hidden="true"></span> Report Bug</td>
+ <td>To report a problem with Paimon, open <a
href="https://github.com/apache/incubator-paimon/issues">Paimon’s issues</a>.
<br/>
+ Please give detailed information about the problem you encountered and,
if possible, add a description that helps to reproduce the problem.</td>
+ </tr>
+ <tr>
+ <td><span class="glyphicon glyphicon-console" aria-hidden="true"></span>
Contribute Code</td>
+ <td>Read the <a href="#code-contribution-guide">Code Contribution
Guide</a></td>
+ </tr>
+ <tr>
+ <td><span class="glyphicon glyphicon-ok" aria-hidden="true"></span> Code
Reviews</td>
+ <td>Read the <a href="#code-review-guide">Code Review Guide</a></td>
+ </tr>
+ <tr>
+ <td><span class="glyphicon glyphicon-thumbs-up"
aria-hidden="true"></span> Release Version</td>
+ <td>Releasing a new Paimon version.</td>
+ </tr>
+ <tr>
+ <td><span class="glyphicon glyphicon-user" aria-hidden="true"></span>
Support Users</td>
+ <td>Reply to questions on the <a
href="https://github.com/apache/incubator-paimon#mailing-lists">user mailing
list</a>,
+ check the latest issues in <a
href="https://github.com/apache/incubator-paimon/issues">Issues</a> for tickets
which are actually user questions.
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td><span class="glyphicon glyphicon-volume-up"
aria-hidden="true"></span> Spread the Word About Paimon</td>
+ <td>Organize or attend a Paimon Meetup, contribute to the Paimon blog,
share your conference, meetup or blog
+ post on the <a
href="https://github.com/apache/incubator-paimon#mailing-lists">[email protected]
mailing list</a>.
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <span class="glyphicon glyphicon-question-sign"
aria-hidden="true"></span> Any other question? Reach out to the
+ <a
href="https://github.com/apache/incubator-paimon#mailing-lists">[email protected]
mailing list</a> to get help!
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+## Code Contribution Guide
+
+Apache Paimon is maintained, improved, and extended by code contributions of
volunteers. We welcome contributions to Paimpn.
+
+Please feel free to ask questions at any time. Either send a mail to the Dev
mailing list or comment on the issue you are working on.
+
+<style>
+.contribute-grid {
+ margin-bottom: 10px;
+ display: flex;
+ flex-direction: column;
+ margin-left: -2px;
+ margin-right: -2px;
+}
+
+.contribute-grid .column {
+ margin-top: 4px;
+ padding: 0 2px;
+}
+
+@media only screen and (min-width: 480px) {
+ .contribute-grid {
+ flex-direction: row;
+ flex-wrap: wrap;
+ }
+
+ .contribute-grid .column {
+ flex: 0 0 50%;
+ }
+
+ .contribute-grid .column {
+ margin-top: 4px;
+ }
+}
+
+@media only screen and (min-width: 960px) {
+ .contribute-grid {
+ flex-wrap: nowrap;
+ }
+
+ .contribute-grid .column {
+ flex: 0 0 25%;
+ }
+}
+
+.contribute-grid .panel {
+ height: 100%;
+ margin: 0;
+}
+
+.contribute-grid .panel-body {
+ padding: 10px;
+}
+
+.contribute-grid h2 {
+ margin: 0 0 10px 0;
+ padding: 0;
+ display: flex;
+ align-items: flex-start;
+}
+
+.contribute-grid .number {
+ margin-right: 0.25em;
+ font-size: 1.5em;
+ line-height: 0.9;
+}
+</style>
+
+<div class="contribute-grid">
+ <div class="column">
+ <div class="panel panel-default">
+ <div class="panel-body">
+ <h2><span class="number">1</span><a href="#consensus">Discuss</a></h2>
+ <p>Create a Issue or mailing list discussion and reach consensus</p>
+ <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>
+ </div>
+ </div>
+ </div>
+ <div class="column">
+ <div class="panel panel-default">
+ <div class="panel-body">
+ <h2><span class="number">2</span><a
href="#implement">Implement</a></h2>
+ <p>Create the Pull Request and the approach agreed upon in the
issue.</p>
+ <p><b>1.Only create the PR if you are assigned to the issue. 2.Please
associate an issue (if any), e.g. fix #123. 3.Please enable the actions of your
own clone project.</b></p>
+ </div>
+ </div>
+ </div>
+ <div class="column">
+ <div class="panel panel-default">
+ <div class="panel-body">
+ <h2><span class="number">3</span><a href="#review">Review</a></h2>
+ <p>Work with the reviewer.</p><br />
+ <p><b>1.Make sure no unrelated or unnecessary reformatting changes are
included. 2.Make sure your change has been rebased to the latest commits in
your base branch.</b></p>
+ </div>
+ </div>
+ </div>
+ <div class="column">
+ <div class="panel panel-default">
+ <div class="panel-body">
+ <h2><span class="number">4</span><a href="#merge">Merge</a></h2>
+ <p>A committer of Paimon checks if the contribution fulfills the
requirements and merges the code to the codebase.</p>
+ </div>
+ </div>
+ </div>
+</div>
+
+## Code Review Guide
+
+Every review needs to check the following six aspects. **We encourage to check
these aspects in order, to avoid
+spending time on detailed code quality reviews when formal requirements are
not met or there is no consensus in
+the community to accept the change.**
+
+#### 1. Is the Contribution Well-Described?
+
+Check whether the contribution is sufficiently well-described to support a
good review. Trivial changes and fixes
+do not need a long description. If the implementation is exactly according to
a prior discussion on issue or the
+development mailing list, only a short reference to that discussion is needed.
+
+If the implementation is different from the agreed approach in the consensus
discussion, a detailed description of
+the implementation is required for any further review of the contribution.
+
+#### 2. Does the Contribution Need Attention from some Specific Committers?
+
+Some changes require attention and approval from specific committers.
+
+If the pull request needs specific attention, one of the tagged
committers/contributors should give the final approval.
+
+#### 3. Is the Overall Code Quality Good, Meeting Standard we Want to Maintain
in Paimon?
+
+- Does the code follow the right software engineering practices? Is the code
correct, robust, maintainable, testable?
+- Are the changes performance aware, when changing a performance sensitive
part?
+- Are the changes sufficiently covered by tests? Are the tests executing fast?
+- If dependencies have been changed, were the NOTICE files updated?
+
+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/).
+
+#### 4. Are the documentation updated?
+
+If the pull request introduces a new feature, the feature should be documented.
+
+## Become a Committer
+
+#### How to become a committer
+
+There is no strict protocol for becoming a committer. Candidates for new
committers are typically people that are
+active contributors and community members. Candidates are suggested by current
committers or PPMC members, and
+voted upon by the PPMC.
+
+If you would like to become a committer, you should engage with the community
and start contributing to Apache Paimon in
+any of the above ways. You might also want to talk to other committers and ask
for their advice and guidance.
+
+- Community contributions include helping to answer user questions on the
mailing list, verifying release candidates,
+ giving talks, organizing community events, and other forms of evangelism and
community building. The "Apache Way" has
+ a strong focus on the project community, and committers can be recognized
for outstanding community contributions even
+ without any code contributions.
+
+- Code/technology contributions include contributed pull requests (patches),
design discussions, reviews, testing,
+ and other help in identifying and fixing bugs. Especially constructive and
high quality design discussions, as well
+ as helping other contributors, are strong indicators.
+
+#### Identify promising candidates
+
+While the prior points give ways to identify promising candidates, the
following are "must haves" for any committer candidate:
+
+- Being community minded: The candidate understands the meritocratic
principles of community management. They do not
+ always optimize for as much as possible personal contribution, but will help
and empower others where it makes sense.
+
+- We trust that a committer candidate will use their write access to the
repositories responsibly, and if in doubt,
+ conservatively. It is important that committers are aware of what they know
and what they don't know. In doubt,
+ committers should ask for a second pair of eyes rather than commit to parts
that they are not well familiar with.
+
+- They have shown to be respectful towards other community members and
constructive in discussions.