Skip to content

[GenAI] Improve code coverage for org.apache.commons:commons-compress:1.23.0 using gpt-5.6-luna - #9490

Open
graalvmbot wants to merge 3 commits into
masterfrom
ai/kimeta/code-coverage-commons-compress-1.23.0-gpt-5.6-luna-forge-9455-20260823143626-8ca377815bbc
Open

[GenAI] Improve code coverage for org.apache.commons:commons-compress:1.23.0 using gpt-5.6-luna#9490
graalvmbot wants to merge 3 commits into
masterfrom
ai/kimeta/code-coverage-commons-compress-1.23.0-gpt-5.6-luna-forge-9455-20260823143626-8ca377815bbc

Conversation

@graalvmbot

Copy link
Copy Markdown
Collaborator

Code coverage improvement

Fixes: #9455

  • Coordinate: org.apache.commons:commons-compress:1.23.0
  • Coverage suite path: tests/src/org.apache.commons/commons-compress/1.23.0/code-coverage-improvement
  • Model: gpt-5.6-luna
  • Needs human intervention: no

JaCoCo coverage

Every figure divides by the same denominator: the 4366 library methods JaCoCo
can rule on, made up of 2688 public API methods and 1678 internal methods, which
are disjoint by construction. Each checkpoint is counted over that one frozen
set of method ids from a single JaCoCo report, so every phase starts where the
previous phase ended.

Checkpoint Covered Share
Run start 269/4366 6.16%
After Simple Jacoco guidance phase 2340/4366 53.6%
After PGO guidance phase (final) 3290/4366 75.36%
  • Simple Jacoco guidance phase: +2071 methods, +47.44pp
  • PGO guidance phase: +950 methods, +21.76pp
  • Run total: +3021 methods, +69.2pp
  • Remaining uncovered: 1076 of 4366

Where the coverage and the remaining headroom sit:

Method universe Run start Final Still uncovered
Public API 134/2688 2051/2688 637
Internal 135/1678 1239/1678 439

Token usage

Phase Input Input (cached) Output
convert 168,124 1,346,560 10,487
prepare 241,084 2,009,600 10,779
api-inventory 101,562 560,128 6,753
api-coverage 3,145,312 71,865,856 268,773
prepare-native-metadata 401,144 449,024 8,998
deep-coverage 2,209,180 49,029,120 177,541
finalization 82,019 633,344 5,435
Total 6,348,425 125,893,632 488,766

Input is uncached input tokens; Input (cached) is cache reads.

Local CI Verification

  • Status: success
  • Commands run: 0
  • Fixup attempts: 0

Forge-Publication-ID: forge-9455-20260823143626-8ca377815bbc

@graalvmbot graalvmbot added code-coverage-improvement GenAI PRs produced by generative AI rhei labels Aug 23, 2026
Spotless requires the license header to be followed immediately by the
package declaration, and `spotlessCheck` runs in CI while finalization
never does. Remove the description comment that sat between them.
kimeta added a commit that referenced this pull request Aug 27, 2026
Finalization validated a run with checkstyle, the JVM tests, and the stats
task, then published a branch. It never ran Spotless, which gates every pull
request, so a run could finalize clean and still fail review on a check its
own verification skipped. Run 9455 did exactly that: eight tasks completed,
`finalize-verify` accepted the artifacts, and #9490 opened with a failing
Spotless job over twelve files.

Put the step ahead of checkstyle rather than beside the other validations.
`spotlessApply` writes the licence header that `licenseHeaderFile` requires
immediately before `package`, which is the same header checkstyle's
`RegexpHeader` demands. That run stranded itself in human intervention at the
checkstyle step over missing CC0 headers the formatter would have written, so
ordering the formatter first turns a repair pass into a no-op. Later steps
renumber, and every `fail`, transition, description, and repair instruction
moves with them; `fix_passes` rises to seven so its documented meaning of one
repair per failing step still holds.

Exclude `forge/local_repositories` from root Spotless. The prepare phase
materializes the tested library's own sources there, and commons-compress
ships an ISO-8859-1 file that fails the task outright. Passing `-Pcoordinates`
does not scope it away. The tree is gitignored so CI never saw it, but a
finalization step would meet it on every run and fail on third-party code this
repository neither owns nor formats.

Tell the cover agents the header must sit against the `package` line, so
generated tests satisfy the formatter when written instead of at the gate.
kimeta added a commit that referenced this pull request Aug 27, 2026
`Forge Branch Ready` triggered on every push to `ai/**`. Actions reports a
push-triggered job as a check run on the pushed commit, so once the publisher
opened a pull request from that branch, the gate kept re-running there and
reporting into a pull request it was never meant to judge.

It cannot pass on those pushes either. Every validation reads the descriptor
committed at the tip, so a maintainer repairing a published branch fails the
first check with `Exactly one tip-committed forge-publication.json is required`
and nothing to publish. #9490 shows the shape: a formatting repair pushed on
top of the descriptor commit turned the branch red on a check that had already
done its job.

Scope the trigger to `stats/*/*/*/forge-publication.json`, the exact path
`validate` requires of every route. A push without a descriptor now starts no
run at all, so it reports no check; the publication push still validates and
still gates `Forge Open PR` through `workflow_run`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

code-coverage-improvement GenAI PRs produced by generative AI rhei

2 participants