SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
How to Contribute to Apache Flink (and Flink at the Apache Software Foundation)
How to Contribute to Apache Flink (and Flink at the Apache Software Foundation)
1.
How to
contribute to
Apache Flink
Robert Metzger
Flink PMC, Software Engineer @ Ververica
rmetzger@apache.org
@rmetzger_
2.
What you will learn today
• What is the Apache Software Foundation
• What are the roles at an Apache project
• How to become a committer
• How to contribute to Apache Flink
• The mailing lists
• The documentation
• Contributing code
• Q & A / Hands-on
3.
Flink and the Apache Software Foundation
• Flink is one of more than 300 top level projects at the ASF
Independent open
source project:
"Stratosphere"
Apache Incubator:
“Apache Flink
(incubating)”
Top level Apache
project
Attic
2009 – 2014 April 2014 – Dec 2014 Since Dec 2014 Hopefully never J
4.
Apache Software Foundation
• Celebrating 20 years of ASF this year
• Initially about Apache HTTP server, “a
patchy server”
• Today, 300+ open source projects (+ 52
incubating)
• 730 members and 7000+ committers
• All volunteer, self-organized, decentralized
• Providing projects with legal and
infrastructure support, and a blueprint
and experience for successful open source
21 founding members
[photo attribution (CC BY) Mark Cox. Tagged image at https://www.flickr.com/photos/iamamoose/63963722/in/album-1381277/ ; gallery at https://www.flickr.com/photos/iamamoose/albums/1381277]
“Community over code”
5.
Apache License 2.0
• Top 3 open source license, used by all ASF projects and many others
• Business friendly (derivative work is allowed to be licensed
differently)
Recommended website: https://tldrlegal.com/license/apache-license-2.0-(apache-2.0)
6.
Roles at the ASF (& Flink)
ASF Members
ASF Board of
directors
Flink PMC Chair
Flink PMC (20) Project Management
Comitee
Flink Committers
(45)
Contributors &
Users
Project oversight: review
releases, long-term health
of project
Permission to commit code,
<user>@apache.org email
Implementation, testing,
documentation, user
support etc.
Day-to-day oversight of
the foundation
Control & “ownership”
members@a.o
board@a.o
private@f.a.o
dev@f.a.o
user@f.a.o
user-zh@f.a.o
commits@f.a.o
issues@f.a.o
public
7.
Becoming a Flink committer: Requirements
• Formally: PMC will vote on a community member to become a
committer (on private@)
• Good contributions over a longer period of time, good technical
oversights and experience (for reviews and discussions)
• Understanding of “The Apache Way”, good community engagement
8.
Contribute to User Support
• user@flink.apache.org (and user-zh@f.a.o) are the primary support
channels: ~150 emails/week. 1000+ subscribers
• Error messages, configuration, API
• Architecture / Design questions
• Stack Overflow
• [apache-flink] tag: 2800 questions,
1100 unanswered
• JIRA (Bug tracker)
• Often, incoming bug reports are ”just” problems
using Flink
Sign up & answer questions
9.
Contribute to
Evangelism
• Meetups
• Speak at your local meetup
• Host a meetup group in your city (Ververica
can help you!)
• Help with venue, organization etc.
• Conferences
• Submit talks at conferences
• Blogs
• Share your experience
• Twitter, LinkedIn, Facebook
• Help spreading the word
10.
Contribute to Flink’s development
• dev@flink.apache.org is the main communication and decision-
making channel of Flink
• Discussion of FLIPs (Flink Improvement Proposals)
• Roadmap planning, release scheduling
• Release voting
• Community health
• All other development and community-related questions (which libraries do
we use, how do we approach large changes)
Join the discussions
11.
Voting: How decisions are being made
• Apache projects vote on: releases, committers, PMC members,
procedural changes, code changes
• +1 / -1, because …
• Most important vote: releases
• Duration of at least 72 hours (workdays)
• Legal checks (checksums, signatures, license documentation) and functional
checks (end to end tests, manual tests, performance)
• See: https://cwiki.apache.org/confluence/display/FLINK/Verifying+a+Flink+Release
• Lazy consensus: Assume consensus after 72 hours, if nobody objects
• Used for smaller changes, procedural changes, ...
12.
Contribute to Flink’s development
• Contribute Documentation (or website)
git clone https://github.com/apache/flink
cd flink/docs/docker
./run.sh
• An easy way to have a lot of impact on Flink
• Jira tickets in component “Documentation” (currently 160
unresolved)
• Small fixes as “[hotfix]” PRs, larger changes through JIRA->PR process
• See also: https://flink.apache.org/contribute-documentation.html
13.
Contribute to Flink’s development: Code
• Contribute code
JIRA Ticket: Get consensus Implement Review Merge
dev@ discussion &
FLIP
Get buy in on your change and find a
committer willing to review and merge
Involved changes often
require a design
document
Reviews happen in pull
requests in a 4-step
process
14.
Contribute to Flink’s development: JIRA
• A good JIRA ticket …
• … is created ahead of time
• ... Clearly describes the problem to solve
• … is assigned to a component, has the right priority
• Get buy-in from a committer … you will need somebody to review and
merge your change later on
• Expect a few days till there’s a first reaction (depending on the
component, complexity) and weeks till there’s consensus
15.
Contribute to Flink’s development: Pull
Request Review
Description
• Formal requirements: JIRA ID in title, description of the change, clean
history (commits prefixed with JIRA ID)
Consensus
• Check if there’s agreement to merge this change as is
• Should not be a problem if JIRA has been “approved”
Architecture
• Architectural fit within Flink
Quality
• Code Quality: documentation, error handling, concurrency / threading,
dependencies
16.
Contribute to Flink’s development: Pull
Request Review: Notes
• Be patient: Reviews take time
• In particular when a release is happening
• Contribute reviews: If you don’t have a feature / fix to contribute,
help checking pull requests in the “quality” stage (see label)
• Stay in touch with the committer managing your contribution
17.
Conclusion
• Introduction on Apache Flink and the ASF
• There are many ways to contribute
• User support
• Project steering
• Evangelism
• Documentation / website
• Code reviews
• Fixes / features
• Even if it sometimes doesn’t seem so: Contributions are very
welcome!
• Reach out to me rmetzger@apache.org / @rmetzger_ if you have
questions
18.
Q & A
Bonus: Hands-on session to help people setting up their development
environments
Robert Metzger
Flink PMC, Software Engineer @ Ververica
rmetzger@apache.org
@rmetzger_