Hi all,

As we are getting closer to releasing Flink-1.3, I would like to open a 
discussion
on how far back we provide backwards compatibility for.

The reason for opening the discussion is that i) for the users and for the 
adoption of the project, it is good to have an explicitely stated policy that 
implies
certain guarantees, and ii) keeping code and tests for backwards compatibility 
with 
Flink-1.1 does not offer much. On the contrary, I think that it leads to:

1) dead or ugly code in the codebase, e.g. deprecated class fields that could 
go away and 
ugly if() loops (see aligned window operators that were deprecated in 1.2 and 
are now 
normal windows), etc
2) expensive tests (as, normally, they read from a savepoint)
3) binary files in the codebase for holding the aforementioned savepoints

My proposal for such a policy would be to offer backwards compatibility for one 
previous version. 

This means that 1.3 will be compatible with 1.2 (not 1.1). This still allows a 
clear 
"backwards compatibility" path when jumping versions (a user that goes 
from 1.1 to 1.3 can go initially 1.1 -> 1.2, take a savepoint, and then 1.2 -> 
1.3),
while also allowing us to clean up the codebase a bit. 

What do you think?

Kostas

Reply via email to