New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FLINK-3129] Add tooling to ensure interface stability #2042
Conversation
Thanks for the pull request! Could you elaborate on how and where this will be integrated with our CI or release process? |
The plugin runs with every mvn verify call. For each maven module, it will download the last stable release (in this case 1.0.0) and check it against the build (currently the 1.1-SNAPSHOT). |
+1 Looks good to me. Only wondering, how much will it affect our build time? We might want to run this in a dedicated profile. |
Thank you for the review. Its very low overhead since the 1.0.0 jar's are cached in the local .m2 directory and the tool is doing the check really fast. |
@@ -82,6 +82,10 @@ | |||
|
|||
private static final long DEFAULT_RESTART_DELAY = 10000L; | |||
|
|||
// This field was used as a key for storing the EC in the Job Configuration | |||
@Deprecated | |||
public static final String CONFIG_KEY = "runtime.config"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this change belongs in the "Fix breaking changes in flink-core" commit, unless they will be squashed.
no my concern wasn't even remotely addressed. In commit 6c07936 you add CONFIG_KEY in the ExecutionConfig, while the subsequent commit b0acd97 removes it again. so now the public static key is still removed which shouldn't be the case, no? |
Okay, let me explain: I decided to remove the field, even though its public, and strictly speaking a breaking API change. However, it was a mistake to mark the field as public (back then, when it was added). It was only used internally as a configuration key for storing the serialized execution config (so it was something only used by flink). I've added this exclude to the API check to ignore the breaking change: |
This pull request adds a maven module for ensuring interface stability (japicmp).
I needed to revert some of the changes since 1.0:
getMetricGroup()
in theRuntimeContext
an evolving API.Key
interface.Once this has been merged, I'll file JIRAs for 2.0 to remove these changes.