joining the scurry of squirrels: contributing to apache flink® · flip (flink improvement...

29
Joining the Scurry of Squirrels: Contributing to Apache Flink® @tzulitai [email protected] Tzu-Li (Gordon) Tai

Upload: others

Post on 20-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Joining the Scurry of Squirrels:

Contributing to Apache Flink®

@[email protected]

Tzu-Li (Gordon) Tai

Page 2: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Who?

▪ Apache Flink Committer

• Streaming connectors (Kafka, Kinesis, Elasticsearch)

▪ Software Engineer at data Artisans

2

Page 3: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Who?

▪ Definitely not a veteran contributor of Apache Flink ;-)

3

… my life of Apache Flink contribution ;)

Page 4: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Who?

▪ Definitely not a veteran contributor of Apache Flink ;-)

4

… my life of Apache Flink contribution ;)

Page 5: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

How can I contribute?

5

The usual first question ...

Page 6: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

It never is just about the code ...

6

Page 7: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Different forms of Contribution

▪ As an user …• file bug reports• join discussions / propose new features on the mailing list• testing release candidates• talk about Flink

▪ As a developer …• submit & review patches for features and fixes• help answer user questions

7

Page 8: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Mailing Lists, JIRA, and Wiki

8

Know your resources!

Page 9: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Know your resources!

▪ The resources is the community, and where everything happens

• Mailing lists• JIRA• Wiki

9

Page 10: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Mailing lists

▪ Developer mailing list• [email protected]• Ask questions about Flink development• Discuss new Flink features

▪ User mailing list• [email protected]• General questions about using Flink

10

Page 11: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

JIRA board

▪ Issue tracking• https://issues.apache.org/jira/browse/FLINK• Where bugs and new features / improvements are filed• All code contributions must always have a corresponding

JIRA issue ticket opened• Do NOT ask questions here (--> mailing lists)

11

Page 12: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Wiki

▪ General information about the project• https://cwiki.apache.org/confluence/display/FLINK• Mostly relevant for FLIPs (Flink Improvement Proposals)• Other info somewhat outdated

12

Page 13: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Apache Flink Patch Submission

13

Page 14: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Patch Submission Process

14

File and discussdirectly on JIRA

Start a discussionon the developer

mailing list

FLIP(Flink Improvement

Proposals)

CommunityConsensus

Submit Githubpull request

Committermerges patch

review & refine

Page 15: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Patch Submission Process

15

File and discussdirectly on JIRA

Start a discussionon the developer

mailing list

FLIP(Flink Improvement

Proposals)

CommunityConsensus

Submit Githubpull request

Committermerges patch

review & refine

Page 16: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

The Apache Way: Community Over Code

16

▪ Changes, especially new features, should be agreed upon by the community

• Does not apply just to the developers• Beneficial to users as a whole

▪ Always seek to reach some level of consensus throughout the code contribution process

• Avoid needing to go back to feature discussion after coding

Page 17: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Patch Submission Process

17

File and discussdirectly on JIRA

Start a discussionon the developer

mailing list

FLIP(Flink Improvement

Proposals)

CommunityConsensus

Submit Githubpull request

Committermerges patch

review & refine

Page 18: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Filing a JIRA

18

▪ Always have a good description of what the issue is

• Bugs - the cause and the proposed solution• Improvements and features - bootstrap potential discussion with the

implementation you have in mind

▪ Remember to appropriately set “Components”

Page 19: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Assign yourself to a JIRA

19

▪ Set the “Assignee” field to yourself

• Notifies others that this issue is already in good hands

▪ Simply request JIRA permission on the developer mailing list

Page 20: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Patch Submission Process

20

File and discussdirectly on JIRA

Start a discussionon the developer

mailing list

FLIP(Flink Improvement

Proposals)

CommunityConsensus

Submit Githubpull request

Committermerges patch

review & refine

Page 21: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

FLIP (Flink Improvement Proposals)

21

▪ Adopted from the Apache Kafka community

▪ Official design documentation for major features• Serves as the basis of discussion on the dev mailing list• Allows the community to decide on the best future-proof design

Page 22: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Patch Submission Process

22

File and discussdirectly on JIRA

Start a discussionon the developer

mailing list

FLIP(Flink Improvement

Proposals)

CommunityConsensus

Submit Githubpull request

Committermerges patch

review & refine

Page 23: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Patch Submission Best Practices

23

▪ Rebase onto latest master prior to opening pull request• git pull --rebase origin master

▪ Squash your commits to appropriate set

▪ Commit message example:• [FLINK-6025] [cep] Implement skip till next match strategy

Page 24: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Patch Submission Best Practices

24

▪ Usually the pull request naming follows the primary commit’s message:• [FLINK-6025] [cep] Implement skip till next match strategy

▪ Address all discussions happening on the pull request

▪ Push follow-up commits

• Retain history of the patch review• Also have meaningful msgs for follow-up commits

Page 25: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Patch Submission Process

25

File and discussdirectly on JIRA

Start a discussionon the developer

mailing list

FLIP(Flink Improvement

Proposals)

CommunityConsensus

Submit Githubpull request

Committermerges patch

review & refine

Page 26: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Closing

26

Page 27: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Final Takeaways

27

▪ Development of Apache Flink is heavily centered around its community

• The Apache Way - community over code• Contributing is never just about writing code

▪ Know the resources and do not hesitate to approach.

▪ Extra pair of helping hands is always welcome ;-) !

Page 28: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Shoutouts

28

▪ Flink CEP

• Complex event processing• Pattern detection for streams• → If interested, contact

Kostas Kloudas ([email protected])

▪ Flink ML

• Online learning• Incremental learning• Model serving• → If interested, contact

Theodore Vasiloudis ([email protected])

Page 29: Joining the Scurry of Squirrels: Contributing to Apache Flink® · FLIP (Flink Improvement Proposals) 21 Adopted from the Apache Kafka community Official design documentation for

Thank you!

@tzulitai@ApacheFlink@dataArtisans