-
Notifications
You must be signed in to change notification settings - Fork 68
Versioning strategy for Flink connector
This connector project need to support multiple Flink version with multiple Pravega version. With both projects fast developing, although there is not a perfect solution to maintain the large matrix, we need to find a relatively better way to version and maintain the project.
The version is the same with the Pravega client version, the artifact name contains the Scala version after the _
, the project does not support multiple Flink version. It is compiled with the latest Flink version.
<dependency>
<groupId>io.pravega</groupId>
<artifactId>pravega-connectors-flink_2.12</artifactId>
<version>0.5.0</version>
</dependency>
The version is still the same with the Pravega client version, but the connector starts to support multiple Flink versions. Users should provide the Flink major version 1.x
in the middle of the artifact name to use the Pravega Flink connector. It maintains the most recent three minor version of Flink. See below table for the supported versions.
Connector release | Latest Flink version | Supported Flink versions |
---|---|---|
0.6.0/0.6.1/0.6.2/0.7.0 | 1.9 | 1.9, 1.8, 1.7 |
0.7.1/0.8.0/0.8.1 | 1.10 | 1.10, 1.9, 1.8 |
0.9.0 | 1.11 | 1.11, 1.10, 1.9 |
0.10.1 | 1.13 | 1.13, 1.12, 1.11 |
<dependency>
<groupId>io.pravega</groupId>
<artifactId>pravega-connectors-flink-1.10_2.12</artifactId>
<version>0.8.0</version>
</dependency>
Branching
In order to adapt the different API changes in different Flink version, the connector code is diverged into three branches. Targeting a certain version of release, The 3 branches are named as master
, r0.a-flink1.x
, r0.a-flink1.y
. master
is always targeting the latest Flink version and the upcoming Pravega connector release version. The other two are named after the release version and Flink version, 0.a
stands for the release version and 1.x
stands for the Flink Major-Minor version.
By default, all pull requests should be targeted to master
branch, and then carefully cherry-picked by the maintainer if needed. If it is a change for a specific Flink version, we need to mention it in the PR discription and target the PR to the correct branch.