You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

This page defines the basic rules for creating patches and commits for Flink


NOTE: As of now, these guidelines are being created and refined.


JIRA Issues
We encourage that commits are associated with JIRA issues, but we try to not create unnecessary overhead for small fixes.
Below are the rules when an issue must be created for a change, and when it can be omitted.


No issue is required for 
  • Small fixes like typos, simple warnings, adding/improving a comment

  • Adding and improving existing pages of the documentation

  • Simple improvements of style / elegance / efficiency (simple rewriting a loop / condition / method interaction) if no behavior is changed
==> Basically anything that does not change or add functionality

An issue is required for

Everything else, in particular:

  • Anything that changes functionality or behavior relevant to users

  • Anything that changes functionality or behavior relevant to other components

  • Anything that adds a feature
Multiple commits may refer to the same issue, if the issue is fixed in multiple steps.
[FLINK-1234] [runtime] Runtime support some cool new thing
[FLINK-1234] [java api] Add hook for cool thing to java api
[FLINK-1234] [scala api] Add hook for that thing to scala api
[FLINK-1234] [optimizer] Make optimizer aware that it can exploit this thing

Pull Requests

External contributions are submitted through pull requests.
Committers must also create pull requests to open their code for review under certain circumstances.

A pull request with comments/additional signoff is required for anything that

  •   breaks the public APIs
  •   adds methods to the public APIs (that will need to be kept stable from them on)
  •   alters user-facing behavior (e.g., mutability of types, null value handling, window semantics, ...)
  •   adds user-facing knobs (switches, config parameters, execution option on the execution environment)
  •   adds additional maven dependencies
  •   changes the way components interact
  •   touches highly sensitive and performance critical parts, such memory management or network stack
==> Changes that come with a pull request should have one or more issues associated with them.
Anyone that wants to have comments or some additional pairs of eyes in the code should make a pull request as well.

Naming scheme for commits

The basic naming scheme for commits is 
[issue] [component] Message
for example
[FLINK-9876] [streaming] Extend state checkpointing protocol
For fixes without an issue, the issue can be dropped.
Tags are encouraged, especially for changes that affect a single component. Changes that affect many components may omit the tag.
  • No labels