Bug Type
CI / Test Coverage
Environment
Current master
Expected behavior
The PD and Store CI workflows run multiple test suites in separate Maven invocations:
PD: pd-common-test, pd-core-test, pd-client-test, pd-rest-test
Store: store-common-test, store-client-test, store-core-test,
store-rocksdb-test, store-server-test, store-raftcore-test
The Codecov upload should represent the union of every suite executed by the job. For
example, coverage produced by KvClientTest during pd-client-test must still be present
after pd-rest-test finishes.
Actual behavior
Coverage from earlier suites can be lost or omitted before upload:
- The workflows invoke Maven separately for each profile while reusing module-local JaCoCo
execution data.
hg-pd-test and hg-store-test regenerate report-aggregate during each test invocation
instead of producing one final report.
- The PD job runs
mvn clean package between coverage-producing suites, deleting previously
collected target data.
- Aggregate reports are generated below the test modules, but the workflow points Codecov at
the repository-level target/site/jacoco path.
- Store's aggregate project does not directly depend on
hg-store-rocksdb, so the RocksDB
bundle is not guaranteed to appear in the aggregate report.
A recent example is PR #3157: the focused KvClientTest suite passes and exercises the changed
reconnect paths, but Codecov reports 0% patch coverage for the changed KvClient /
AbstractClient lines.
Java 17 compatibility
PD and Store currently use JaCoCo 0.8.4, which officially supports class files only through
Java 12. HugeGraph is moving toward Java 17, while JaCoCo 0.8.8 is the first release with
official Java 17/18 support and is already used by hugegraph-server/hugegraph-test.
The coverage fix should therefore update the PD/Store JaCoCo configuration to 0.8.8 as part of
making this pipeline usable on Java 17.
Proposed solution
- Move destructive packaging/cleaning before all coverage-producing suites.
- Append execution data across the separate suite invocations.
- Assign a deterministic JaCoCo session ID to every suite.
- Generate one
report-aggregate during a final verify invocation.
- Upload the exact module-local
jacoco.xml file.
- Validate that the report contains every expected suite session, covered instructions, and
expected module groups.
- Add
hg-store-rocksdb as a direct dependency of the Store aggregate project.
- Upgrade PD/Store JaCoCo from 0.8.4 to 0.8.8 for Java 17 compatibility.
Scope
This issue covers repository-level PD/Store coverage collection, deterministic
aggregation/upload, and the minimum JaCoCo upgrade needed for Java 17 compatibility.
It does not require production-code changes, artificial coverage increases, Codecov
flags/carry-forward configuration, or a broader Codecov Action modernization.
Bug Type
CI / Test Coverage
Environment
Current
masterExpected behavior
The PD and Store CI workflows run multiple test suites in separate Maven invocations:
The Codecov upload should represent the union of every suite executed by the job. For
example, coverage produced by
KvClientTestduringpd-client-testmust still be presentafter
pd-rest-testfinishes.Actual behavior
Coverage from earlier suites can be lost or omitted before upload:
execution data.
hg-pd-testandhg-store-testregeneratereport-aggregateduring each test invocationinstead of producing one final report.
mvn clean packagebetween coverage-producing suites, deleting previouslycollected
targetdata.the repository-level
target/site/jacocopath.hg-store-rocksdb, so the RocksDBbundle is not guaranteed to appear in the aggregate report.
A recent example is PR #3157: the focused
KvClientTestsuite passes and exercises the changedreconnect paths, but Codecov reports 0% patch coverage for the changed
KvClient/AbstractClientlines.Java 17 compatibility
PD and Store currently use JaCoCo 0.8.4, which officially supports class files only through
Java 12. HugeGraph is moving toward Java 17, while JaCoCo 0.8.8 is the first release with
official Java 17/18 support and is already used by
hugegraph-server/hugegraph-test.The coverage fix should therefore update the PD/Store JaCoCo configuration to 0.8.8 as part of
making this pipeline usable on Java 17.
Proposed solution
report-aggregateduring a finalverifyinvocation.jacoco.xmlfile.expected module groups.
hg-store-rocksdbas a direct dependency of the Store aggregate project.Scope
This issue covers repository-level PD/Store coverage collection, deterministic
aggregation/upload, and the minimum JaCoCo upgrade needed for Java 17 compatibility.
It does not require production-code changes, artificial coverage increases, Codecov
flags/carry-forward configuration, or a broader Codecov Action modernization.