-
Notifications
You must be signed in to change notification settings - Fork 3k
Build: Enable engine's checkstyle and error-prone check in Github CI #3509
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
Conversation
|
Oh, I see. The correct way to enable checkstyle check for flink modules is removing the ignored flink paths in java-ci.yaml, instead of enabling all the engines checkstyle check by removing the |
kbendick
left a comment
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.
Left a comment. I too have noticed that checkstyle wasn't run for something, though that case might have been because we were in the middle of migrating to the broken out structure by version.
| - 'mr/**' | ||
| - 'hive3/**' | ||
| - 'hive3-orc-bundle/**' | ||
| - 'hive-runtime/**' | ||
| - 'spark/**' | ||
| - 'flink/**' |
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.
So this will solve your problem, but it might also lead to running java-ci a lot more than is necessary, as it does more than just checkstyle.
Am I correct in thinking that we're just trying to ensure checkstyle runs over changed files? Is there a way we can avoid running the additional 6-11 minute action that makes up all of java-ci for all of these paths if we only need a subset of it?
Or maybe we can run checkstyle in its own workflow to avoid having to run it in every single workflow.
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.
In my view, the overall checkstyle check is necessary. I think the problem is: removing all those ignored engine paths will trigger the extra iceberg-core unit tests check. Because if any engine related changes happen , it will always run the iceberg-core unit tests (even we don't ) I think.
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.
I agree with @openinx. This common rule is the one that should be running the checks. This is to avoid making all of the CI builds more expensive because checkstyle and errorprone take a long time to run.
One thing that we still need to do after this is enable all Flink, Spark, and Hive versions in the job config, not just the default ones.
I think it would be better to keep the ignors as are, but remote I am also working on a PR to make them all exit early if one fails (like before when they were one file). Running all of them if it's possile to avoid it uses up limited capacity for GH Actions (the whole Apache organization shares one set of runners which is pretty limited in size relatively speaking). |
I choose another way in the latest commit because I don't expect to check the checkstyle for those common modules (such as You can see the checkstyle check logs by running the command: |
|
Rerunning CI since I think the Javadoc failure was unrelated. |
|
Thanks, @openinx! |
|
Thank you @openinx! This was an important find! |
This PR is trying to address this comment: #3501 (comment)