Successfully reported this slideshow.

How to Contribute to Apache Flink (and Flink at the Apache Software Foundation)



1 of 20
1 of 20

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

How to Contribute to Apache Flink (and Flink at the Apache Software Foundation)

  1. 1. How to contribute to Apache Flink Robert Metzger Flink PMC, Software Engineer @ Ververica @rmetzger_
  2. 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. 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. 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 ; gallery at] “Community over code”
  5. 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:
  6. 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> 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. 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. 8. Contribute to User Support • (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. 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. 10. Contribute to Flink’s development • 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. 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: • Lazy consensus: Assume consensus after 72 hours, if nobody objects • Used for smaller changes, procedural changes, ...
  12. 12. Contribute to Flink’s development • Contribute Documentation (or website) git clone cd flink/docs/docker ./ • 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:
  13. 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. 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. 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. 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. 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_ if you have questions
  18. 18. Q & A Bonus: Hands-on session to help people setting up their development environments Robert Metzger Flink PMC, Software Engineer @ Ververica @rmetzger_