Apache Software Foundation: How To Contribute, with Apache Flink as Example (2016/10/6 Flink.TW 3rd Meetup)
1. Apache Software Foundation:
How to Contribute
tzulitai@apache.org
Tzu-Li (Gordon) Tai
@tzulitai Oct 2016 @ Flink.tw Meetup
with Apache Flink as example ;)
2. ● 戴資力(Gordon)
● Apache Flink Committer
● Co-organizer of Apache Flink Taiwan User Group
● Software Engineer @ VMFive
● Java, Scala
● Enjoy developing distributed computing systems
XX Who am I?
0
3. ● Approaching Apache projects as a new contributor
● The contribution process, with Apache Flink as an example
● Becoming an Apache Committer
XX This talk will be about ...
1
4. How can I start contributing?
The usual first question ...
2
5. Look for tasks on
The project JIRA
board
Attend mail thread
discussions
3
Every Apache project has it’s own JIRA board
Every Apache project has 2 mailing lists:
1) User mailing list: user@xxx.apache.org
2) Dev mailing list: dev@xxx.apache.org
6.
7.
8. Yo! I have this really nice
feature I implemented for the
project.
Please review it and merge it!
It’s really useful !!
11. The Committer
hmmm ….
I don’t see any prior discussion on
this feature.
It’s a pretty big chunk of code, is
there a design doc to refer to?
The New Contributor
12. The Committer The New Contributor
hmmm ….
I don’t see any prior discussion on
this feature.
It’s a pretty big chunk of code, is
there a design doc to refer to?
No!
But it’s really useful. We’ve been
running it in production for a while
already!
13. The Committer
Hey, lets slow things down a bit.
We should fall back to the mailing
threads and discuss with others on
how to proceed ...
The New Contributor
14. The Committer The New Contributor
Hey, lets slow things down a bit.
We should fall back to the mailing
threads and discuss with others on
how to proceed ...
15. Look for tasks on
The project JIRA
board
Attend mail thread
discussions
Reach
Community
Consensus
The Apache Way:
Community over Code
8
Ways to reach consensus:
● Start a discussion thread
● Ping a Committer
16. Look for tasks on
The project JIRA
board
Attend mail thread
discussions
Reach
Community
Consensus
Code & Submit Patch
reviews & refines
8
17. Look for tasks on
The project JIRA
board
Attend mail thread
discussions
Reach
Community
Consensus
Code & Submit Patch
reviews & refines
Committer merges
patch
8
18. The process, in Apache Flink
A Demo is worth a Hundred Slides ;)
9
19. Apache Flink
an open-source platform for distributed
stream and batch data processing
● Apache Top-Level Project since Jan. 2015
● Streaming Dataflow Engine at its core
○ Low latency
○ High Throughput
○ Stateful
○ Distributed
10
20. ● ~230 contributors, 23 Committers / PMCs
● Used adoption:
○ Alibaba - realtime search ranking optimization
○ Uber - ride request fufillment marketplace
○ Netflix - Stream Processing as a Service (SPaaS)
○ Kings Gaming - realtime data science dashboard
○ ...
Apache Flink
an open-source platform for distributed
stream and batch data processing
10
21. Becoming an Apache Committer
If you want to take it really serious ...
11
27. Gaining trust among the current project PMCs and Committers:
It’s all about Trust!
● Show constant quality on your submissions
● Show responsibility in maintaining your code
● Become an expert in at least one of the major components
● Provide detailed reviews for other contributors’ submissions
● Answer user questions / attend discussions on the mailing list
● Help out testing of releases
13
28. Gaining trust among the current project PMCs and Committers:
It’s all about Trust!
● Show constant quality on your submissions
● Show responsibility in maintaining your code
● Become an expert in at least one of the major components
● Provide detailed reviews for other contributors’ submissions
● Answer user questions / attend discussions on the mailing list
● Help out testing of releases
13
29. Gaining trust among the current project PMCs and Committers:
It’s all about Trust!
● Show constant quality on your submissions
● Show responsibility in maintaining your code
● Become an expert in at least one of the major components
● Provide detailed reviews for other contributors’ submissions
● Answer user questions / attend discussions on the mailing list
● Help out testing of releases
13
30.
31. Gaining trust among the current project PMCs and Committers:
It’s all about Trust!
● Show constant quality on your submissions
● Show responsibility in maintaining your code
● Become an expert in at least one of the major components
● Provide detailed reviews for other contributors’ submissions
● Answer user questions / attend discussions on the mailing list
● Help out testing of releases
13
32.
33. Gaining trust among the current project PMCs and Committers:
It’s all about Trust!
● Show constant quality on your submissions
● Show responsibility in maintaining your code
● Become an expert in at least one of the major components
● Provide detailed reviews for other contributors’ submissions
● Answer user questions / attend discussions on the mailing list
● Help out testing of releases
13