Airblader commented on pull request #17133:
URL: https://github.com/apache/flink/pull/17133#issuecomment-929092061


   > Because of that I'm worried that we'd just end up slapping @PublicEvolving 
on everything
   
   While I understand what you're getting at, this is a human problem that 
tooling cannot solve. We have code reviews and merging is limited to committers 
– we need to be able to trust that such "abuse" or carelessness doesn't happen, 
or address it if it does. Ultimately, we need to be able to change APIs, 
meaning there will always be a way to make the CI happy, and that also means 
there's always a way for people to "just do" something to bypass these tools.
   
   Tooling like this prevents changes to the API when they would happen 
accidentally / unknowingly. For a human it's essentially impossible to notice 
that a public API is returning an internal type somewhere down the line etc., 
and that's what the tooling can prevent.
   
   > but at the same time I could imagine this being very annoying overhead
   
   This is a bit besides the point, but I'd say that having to add JavaDocs to 
every public class is significantly more annoying since it requires actually 
writing custom text, even on test classes.
   
   ---
   
   A whole different approach that I know from other projects (not from the 
Java ecosystem, though) is generating a documentation of all public APIs in the 
CI and also versioning that separate from the code; if someone changes an API 
(be it accidentally or intentionally), the CI will fail. Having to update this 
file in the PR makes it impossible to not be aware of the change to the API 
you're doing. But even then it's the committer's job to review this change and 
ensure it is OK.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to