[ 
https://issues.apache.org/jira/browse/IGNITE-29230?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksandr Chesnokov updated IGNITE-29230:
-----------------------------------------
    Description: This is a possible later step under IGNITE-25489, not a 
prerequisite for IGNITE-29261 or IGNITE-29145. Consider a tool that compares 
two generated JSON description sets, including {{ids.json}}, and explains 
changes that may affect compatibility. Before implementation, agree the 
supported compatibility rules, the role of {{introducedBy}} and 
{{deprecatedBy}}, and whether the tool should only advise or fail CI. The need 
and scope of this semantic analyzer remain open. The current agreed CI step 
uses a plain JSON diff as a signal for manual review.  (was: Since IGNITE-29143 
the message format is described in {{modules/wire-compatibility-check/wire}}. 
Now a reviewer compares two versions of this directory by eye and decides if 
the change is compatible.

Let's add a tool that takes two {{wire/}} directories, for example from two 
releases or from the RU base commit and a pull request, and reports the 
incompatible changes: a changed or removed field, a changed type, a changed 
message ID, a new field without {{introducedBy}}, a removed field without 
{{deprecatedBy}}. A change that keeps the same bytes, for example a field moved 
from a parent class to a child, is not reported. CI runs the tool on every pull 
request against the base commit.)

> Add a tool that compares two wire/ directories
> ----------------------------------------------
>
>                 Key: IGNITE-29230
>                 URL: https://issues.apache.org/jira/browse/IGNITE-29230
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Aleksandr Chesnokov
>            Assignee: Aleksandr Chesnokov
>            Priority: Major
>
> This is a possible later step under IGNITE-25489, not a prerequisite for 
> IGNITE-29261 or IGNITE-29145. Consider a tool that compares two generated 
> JSON description sets, including {{ids.json}}, and explains changes that may 
> affect compatibility. Before implementation, agree the supported 
> compatibility rules, the role of {{introducedBy}} and {{deprecatedBy}}, and 
> whether the tool should only advise or fail CI. The need and scope of this 
> semantic analyzer remain open. The current agreed CI step uses a plain JSON 
> diff as a signal for manual review.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to