RFR: 1937: Re-evaulate all PRs when .jcheck/conf changes

Erik Joelsson erikj at openjdk.org
Tue Jun 13 18:07:02 UTC 2023


On Mon, 12 Jun 2023 23:26:53 GMT, Zhao Song <zsong at openjdk.org> wrote:

> As Erik said in the issue: "When we bump the version in .jcheck/conf from N to N+1 in the jdk master branch, PRs with CSRs are often not updated to reflect this."
> 
> This root cause of this is that changing of .jcheck/conf in target ref of the pr will not be able to trigger checkWorkItem for this pr.
> 
> In this patch,
> 1. The prBot will monitor the changes to the .jcheck/conf file in any branch(except for PR branches).
> 2. If the prBot detects an update to the .jcheck/conf file in a branch, it will trigger a checkWorkItem for all open PRs whose target ref is the branch where the .jcheck/conf file was updated.
> 3. To solve the problem related with bot restarting, the contents of the .jcheck/conf file in the target branch of a PR will be included in the metadata hash.

bots/pr/src/main/java/org/openjdk/skara/bots/pr/CheckRun.java line 1338:

> 1336:             // Calculate current metadata to avoid unnecessary future checks
> 1337:             var metadata = workItem.getMetadata(workItem.getPRMetadata(censusInstance, title, updatedBody, pr.comments(), activeReviews,
> 1338:                     newLabels, pr.targetRef(), pr.isDraft(), pr.targetRefJCheckConf()), workItem.getIssueMetadata(updatedBody), expiresIn);

The .jcheck/conf file is already read when creating the `CensusInstance` (and may sometimes even be overridden and located in another repository). I think we should store the raw .jcheck/conf string in `LimitedCensusInstance` and get it from there in the rest of `CheckWorkItem`/`CheckRun`.

bots/pr/src/main/java/org/openjdk/skara/bots/pr/PullRequestBot.java line 197:

> 195:             }
> 196:             var currConf = currConfOpt.get();
> 197:             if (!jCheckConfMap.containsKey(targetRef) || !jCheckConfMap.get(targetRef).equals(currConf)) {

If we don't have a record of .jcheck/conf yet, then we should not schedule a WorkItem. The poller will take care of this in the first round. This logic only needs to worry about changes.

-------------

PR Review Comment: https://git.openjdk.org/skara/pull/1531#discussion_r1228512493
PR Review Comment: https://git.openjdk.org/skara/pull/1531#discussion_r1228499869


More information about the skara-dev mailing list