[
https://issues.apache.org/jira/browse/IGNITE-25489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aleksandr Chesnokov updated IGNITE-25489:
-----------------------------------------
Description:
Changes to message fields, IDs, enums and IDTO classes can affect rolling
upgrade compatibility. The current check searches Java source text, so it can
flag comments or formatting and miss changes to message registration. Let's add
JSON descriptions that contain only the details relevant to rolling upgrade
compatibility, such as field types, field order, enum values and message IDs.
CI should generate and compare these descriptions and show the diff before
merge, without asking contributors to commit generated files. A diff is a
signal for review, not an automatic compatibility verdict.
h3. Already merged
* IGNITE-29103: message and enum descriptions ([PR
#13675|https://github.com/apache/ignite/pull/13675]).
* IGNITE-29143: committed the generated JSON files to Git and added a CI check
to verify they are up to date ([PR
#13693|https://github.com/apache/ignite/pull/13693]). IGNITE-29261 replaces
this process.
* IGNITE-29146: IDTO descriptions ([PR
#13730|https://github.com/apache/ignite/pull/13730]).
* IGNITE-29144: message ID registrations ([PR
#13763|https://github.com/apache/ignite/pull/13763]).
h3. Deliver in this order
# *IGNITE-29261 - generate and compare in CI.* Remove JSON from Git. During
normal PR checks, compare the target branch snapshot with the PR test merge.
Show the diff in Job Summary and save the full diff as an artifact. Support
target branches with the required generators. A diff gives a warning; build and
comparison errors fail the check. [PR
#13802|https://github.com/apache/ignite/pull/13802] is under review.
# *IGNITE-29145 - report changes in the PR.* A trusted {{workflow_run}}
workflow uses the existing {{check-wire}} result and the JSON completeness
check for the current PR head. On a diff, set {{compatibility}} and post or
update one comment linking to Job Summary. On an empty diff, remove the comment
and only the label set by this workflow. Use {{check-wire}} as the PR check for
the comparison and retire the old Java-text report.
Merge in this order. Refresh the dependent PR after its prerequisite merges.
h3. Done when
For fork and repository PRs on supported target branches, normal checks show
changes to message descriptions, IDTO, enums and IDs before merge. Contributors
do not commit JSON, and reviewers can open the report. The bot comment and
automated label follow the latest successful comparison for the current PR head
once JSON completeness is confirmed. Errors do not look like an empty diff. The
reporting workflow never executes PR code. Compatibility tests and manual
review remain necessary.
h3. Later work
IGNITE-29161 (code hashes) and IGNITE-29230 (semantic comparison) need separate
scope decisions; they are not prerequisites for this rollout. Backporting
generators is separate work. Generated descriptions do not cover every change
in hand-written serialization. Automatic JSON commits are outside this plan.
Background: [Ignite dev-list
discussion|https://lists.apache.org/thread.html/hq3d8opxscww09pobvqfvwgc1d0v9cls].
This ticket records the current plan.
was:
Changes to message fields, IDs, enums and IDTO classes can affect rolling
upgrade compatibility. The current check searches Java source text, so it can
flag comments or formatting and miss changes to message registration. Let's add
JSON descriptions that contain only the details relevant to rolling upgrade
compatibility, such as field types, field order, enum values and message IDs.
CI should generate and compare these descriptions and show the diff before
merge, without asking contributors to commit generated files. A diff is a
signal for review, not an automatic compatibility verdict.
h3. Already merged
* IGNITE-29103: message and enum descriptions ([PR
#13675|https://github.com/apache/ignite/pull/13675]).
* IGNITE-29143: committed the generated JSON files to Git and added a CI check
to verify they are up to date ([PR
#13693|https://github.com/apache/ignite/pull/13693]). IGNITE-29261 replaces
this process.
* IGNITE-29146: IDTO descriptions ([PR
#13730|https://github.com/apache/ignite/pull/13730]).
* IGNITE-29144: message ID registrations ([PR
#13763|https://github.com/apache/ignite/pull/13763]).
h3. Deliver in this order
# *IGNITE-29261 - generate and compare in CI.* Remove JSON from Git. During
normal PR checks, compare the target branch snapshot with the PR test merge.
Show the diff in Job Summary and save the full diff as an artifact. Support
target branches with the required generators. A diff gives a warning; build and
comparison errors fail the check. [PR
#13802|https://github.com/apache/ignite/pull/13802] is under review.
# *IGNITE-29145 - report changes in the PR.* Read the JSON result through a
trusted {{workflow_run}} workflow. For a successful check of the current PR
head with a diff, add the {{compatibility}} label and post or update one bot
comment linking to Job Summary. Remove both on a successful check with no diff.
Replace the old Java-text rule in this step.
Merge in this order. Refresh the dependent PR after its prerequisite merges.
h3. Done when
For fork and repository PRs on supported target branches, normal checks show
changes to message descriptions, IDTO, enums and IDs before merge. Contributors
do not commit JSON, and reviewers can open the report. The label and bot
comment follow the latest successful check of the current PR head. Errors do
not look like an empty diff. The reporting workflow never executes PR code.
Compatibility tests and manual review remain necessary.
h3. Later work
IGNITE-29161 (code hashes) and IGNITE-29230 (semantic comparison) need separate
scope decisions; they are not prerequisites for this rollout. Backporting
generators is separate work. Generated descriptions do not cover every change
in hand-written serialization. Automatic JSON commits are outside this plan.
Background: [Ignite dev-list
discussion|https://lists.apache.org/thread.html/hq3d8opxscww09pobvqfvwgc1d0v9cls].
This ticket records the current plan.
> [Umbrella] Track wire format changes for rolling upgrade compatibility
> ----------------------------------------------------------------------
>
> Key: IGNITE-25489
> URL: https://issues.apache.org/jira/browse/IGNITE-25489
> Project: Ignite
> Issue Type: Improvement
> Reporter: Maksim Timonin
> Assignee: Aleksandr Chesnokov
> Priority: Major
> Labels: IEP-132, ise
> Time Spent: 1h 20m
> Remaining Estimate: 0h
>
> Changes to message fields, IDs, enums and IDTO classes can affect rolling
> upgrade compatibility. The current check searches Java source text, so it can
> flag comments or formatting and miss changes to message registration. Let's
> add JSON descriptions that contain only the details relevant to rolling
> upgrade compatibility, such as field types, field order, enum values and
> message IDs. CI should generate and compare these descriptions and show the
> diff before merge, without asking contributors to commit generated files. A
> diff is a signal for review, not an automatic compatibility verdict.
> h3. Already merged
> * IGNITE-29103: message and enum descriptions ([PR
> #13675|https://github.com/apache/ignite/pull/13675]).
> * IGNITE-29143: committed the generated JSON files to Git and added a CI
> check to verify they are up to date ([PR
> #13693|https://github.com/apache/ignite/pull/13693]). IGNITE-29261 replaces
> this process.
> * IGNITE-29146: IDTO descriptions ([PR
> #13730|https://github.com/apache/ignite/pull/13730]).
> * IGNITE-29144: message ID registrations ([PR
> #13763|https://github.com/apache/ignite/pull/13763]).
> h3. Deliver in this order
> # *IGNITE-29261 - generate and compare in CI.* Remove JSON from Git. During
> normal PR checks, compare the target branch snapshot with the PR test merge.
> Show the diff in Job Summary and save the full diff as an artifact. Support
> target branches with the required generators. A diff gives a warning; build
> and comparison errors fail the check. [PR
> #13802|https://github.com/apache/ignite/pull/13802] is under review.
> # *IGNITE-29145 - report changes in the PR.* A trusted {{workflow_run}}
> workflow uses the existing {{check-wire}} result and the JSON completeness
> check for the current PR head. On a diff, set {{compatibility}} and post or
> update one comment linking to Job Summary. On an empty diff, remove the
> comment and only the label set by this workflow. Use {{check-wire}} as the PR
> check for the comparison and retire the old Java-text report.
> Merge in this order. Refresh the dependent PR after its prerequisite merges.
> h3. Done when
> For fork and repository PRs on supported target branches, normal checks show
> changes to message descriptions, IDTO, enums and IDs before merge.
> Contributors do not commit JSON, and reviewers can open the report. The bot
> comment and automated label follow the latest successful comparison for the
> current PR head once JSON completeness is confirmed. Errors do not look like
> an empty diff. The reporting workflow never executes PR code. Compatibility
> tests and manual review remain necessary.
> h3. Later work
> IGNITE-29161 (code hashes) and IGNITE-29230 (semantic comparison) need
> separate scope decisions; they are not prerequisites for this rollout.
> Backporting generators is separate work. Generated descriptions do not cover
> every change in hand-written serialization. Automatic JSON commits are
> outside this plan.
> Background: [Ignite dev-list
> discussion|https://lists.apache.org/thread.html/hq3d8opxscww09pobvqfvwgc1d0v9cls].
> This ticket records the current plan.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)