Aleksandr Chesnokov created IGNITE-29261:
--------------------------------------------
Summary: Generate and compare wire format descriptions in CI
instead of tracking them in Git
Key: IGNITE-29261
URL: https://issues.apache.org/jira/browse/IGNITE-29261
Project: Ignite
Issue Type: Improvement
Reporter: Aleksandr Chesnokov
Assignee: Aleksandr Chesnokov
Contributors currently have to regenerate and commit the message format JSON
files. If they forget this step, CI fails and they need an extra commit, often
after the code review.
Let's stop tracking these generated files in Git. For pull requests targeting
master, a committer starts the check before merge. CI builds two fixed
revisions, generates their wire format descriptions, including ids.json, and
shows the diff and the compared commit SHAs in the GitHub Actions Job Summary.
* Collect the generated descriptions under target/ and remove the generated
JSON files from Git together with the check that requires contributors to
commit them.
* Keep the existing collection and message ID generation. Check that both
generated sets are complete. A failed build, incomplete generation or an
unsupported base revision must fail the check, not produce an empty diff.
* A non-empty diff is a signal for review and must not fail the check. It does
not prove that the change is incompatible.
* Make the report accessible from the pull request. Keep the complete diff
available if the Summary shows only a preview.
* Support pull requests from forks. Verify field changes, message ID changes
and changes that only affect comments or formatting.
* Update the instructions for generating and reviewing the descriptions.
The comparison revisions still need to be agreed: the merge base and PR HEAD,
or the current target branch commit and the result of merging the PR into it.
Updating the compatibility label is a separate task (IGNITE-29145). Support for
release branches and semantic compatibility analysis are outside this task.
Discussion:
https://lists.apache.org/thread.html/hq3d8opxscww09pobvqfvwgc1d0v9cls
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)