[
https://issues.apache.org/jira/browse/IGNITE-29145?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aleksandr Chesnokov updated IGNITE-29145:
-----------------------------------------
Description:
After IGNITE-29261, replace Java-text reporting with the JSON comparison
result. Keep the existing {{check-wire}} result in the PR checks. When there is
a diff, add {{compatibility}} and post or update one bot comment linking to Job
Summary. When the diff is empty, remove the bot comment and remove the label
only if this workflow set the current label. A manually applied label keeps its
ownership. A successful rerun with a diff can put back a label that a reviewer
removed.
h3. When to publish
* Require a successful {{check-wire}} job and a successful {{Check all wire
format descriptions are collected}} step from {{check-java}} on the PR head.
Use the completeness step result even if an unrelated check fails. If either
required result fails, is cancelled, is skipped or cannot be verified, leave
the label and comment as they are.
* Match the run to the open PR, including fork PRs, and check that its head and
target branch still match. Accept the snapshot of that target branch even if
the branch has advanced.
h3. Implementation
Keep the existing read-only {{pull_request}} workflow and {{check-wire}} steps.
In a trusted {{workflow_run: completed}} workflow on the default branch, handle
PR runs of the code-check workflow. Read the existing step results through the
Actions API. After a successful comparison, a successful conditional upload of
{{wire-diff}} means there is a diff. A skipped upload means the diff is empty.
If the result is ambiguous, leave the PR as it is.
Give PR write permissions only to the publisher and run only trusted
default-branch code there. Identify the bot comment with a marker. Remove the
old Java-text reporting rule and its separate {{Rolling upgrade compatibility}}
check when switching to the new workflow.
h3. Done when
* Verify that a diff creates one comment with the Job Summary link, and a rerun
updates that comment. Verify that an empty diff removes the comment and only
the bot-owned label.
* Verify manual labels, manual removal followed by a rerun with a diff, failed
or skipped completeness checks, unrelated failures, an outdated PR head and an
advanced target branch.
* Verify the flow on a fork PR after the publisher is on the default branch.
The PR checks show the result in {{check-wire}}.
Plan: IGNITE-25489. Prerequisite: IGNITE-29261. Semantic analysis is tracked
separately. [ASF policy|https://infra.apache.org/github-actions-policy.html].
was:
After IGNITE-29261, replace the Java-text rule in
{{check-protected-classes.yml}} with the JSON comparison result. When a
successful check of the current PR head finds a diff, add the {{compatibility}}
label and post or update one bot comment with a link to Job Summary. When a
successful check finds no diff, remove the label and the bot comment for the
wire format check. Publish only results from successful checks of the current
PR head.
h3. Implementation
Keep the build and comparison in the read-only {{pull_request}} workflow.
Publish a result artifact for both changed and unchanged results; a missing
diff artifact alone does not prove success. A separate {{workflow_run:
completed}} workflow must use trusted code from the default branch, handle only
the code-check workflow's PR runs, validate the result and recheck the current
open PR head before updating the PR, including for forks. Use a marker to
identify the comment owned by this workflow. Give write permissions only to
this job and never execute PR code or artifact contents in it. Retire the old
Java-text reporting rule in the same change.
h3. Done when
Verify diff, no diff, reverted changes, failed and cancelled checks, and an
older result arriving after a newer push. Repeat a check with a diff and verify
that it updates the same comment. Test with a fork PR after the workflow is on
the default branch. Semantic analysis is outside this task.
Plan: IGNITE-25489. Prerequisite: IGNITE-29261. Use {{completed}} so the label
and comment reflect the finished JSON comparison. [ASF
policy|https://infra.apache.org/github-actions-policy.html].
> Label and comment on PRs with wire format changes
> -------------------------------------------------
>
> Key: IGNITE-29145
> URL: https://issues.apache.org/jira/browse/IGNITE-29145
> Project: Ignite
> Issue Type: Improvement
> Reporter: Aleksandr Chesnokov
> Assignee: Aleksandr Chesnokov
> Priority: Major
> Labels: IEP-132, ise
>
> After IGNITE-29261, replace Java-text reporting with the JSON comparison
> result. Keep the existing {{check-wire}} result in the PR checks. When there
> is a diff, add {{compatibility}} and post or update one bot comment linking
> to Job Summary. When the diff is empty, remove the bot comment and remove the
> label only if this workflow set the current label. A manually applied label
> keeps its ownership. A successful rerun with a diff can put back a label that
> a reviewer removed.
> h3. When to publish
> * Require a successful {{check-wire}} job and a successful {{Check all wire
> format descriptions are collected}} step from {{check-java}} on the PR head.
> Use the completeness step result even if an unrelated check fails. If either
> required result fails, is cancelled, is skipped or cannot be verified, leave
> the label and comment as they are.
> * Match the run to the open PR, including fork PRs, and check that its head
> and target branch still match. Accept the snapshot of that target branch even
> if the branch has advanced.
> h3. Implementation
> Keep the existing read-only {{pull_request}} workflow and {{check-wire}}
> steps. In a trusted {{workflow_run: completed}} workflow on the default
> branch, handle PR runs of the code-check workflow. Read the existing step
> results through the Actions API. After a successful comparison, a successful
> conditional upload of {{wire-diff}} means there is a diff. A skipped upload
> means the diff is empty. If the result is ambiguous, leave the PR as it is.
> Give PR write permissions only to the publisher and run only trusted
> default-branch code there. Identify the bot comment with a marker. Remove the
> old Java-text reporting rule and its separate {{Rolling upgrade
> compatibility}} check when switching to the new workflow.
> h3. Done when
> * Verify that a diff creates one comment with the Job Summary link, and a
> rerun updates that comment. Verify that an empty diff removes the comment and
> only the bot-owned label.
> * Verify manual labels, manual removal followed by a rerun with a diff,
> failed or skipped completeness checks, unrelated failures, an outdated PR
> head and an advanced target branch.
> * Verify the flow on a fork PR after the publisher is on the default branch.
> The PR checks show the result in {{check-wire}}.
> Plan: IGNITE-25489. Prerequisite: IGNITE-29261. Semantic analysis is tracked
> separately. [ASF policy|https://infra.apache.org/github-actions-policy.html].
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)