Skip to content

Integrate coverage_tool reports into documentation - #425

Open
AlexanderLanin wants to merge 3 commits into
eclipse-score:mainfrom
etas-contrib:coverage-docs
Open

AlexanderLanin wants to merge 3 commits into
eclipse-score:mainfrom
etas-contrib:coverage-docs

Conversation

@AlexanderLanin

Copy link
Copy Markdown
Member

Make module code coverage available in the published documentation using the existing component ownership metadata. Coverage currently reaches the CI summary but is not supplied to docs-as-code in its expected location and source-path namespace.

Export coverage through coverage_tool for the integrated Baselibs, Persistency and Logging releases, rebase source paths to ref_int’s external repositories, and combine the reports at coverage-report/coverage_report.dat. Update docs-as-code to the revision supporting LCOV input.

Other modules continue to run unit tests without coverage, with activation comments for when a release using coverage_tool is integrated. Collection adds no coverage percentage gate and uses only the component Need IDs and code targets already exported by the modules.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The integration spans three pinned module workspaces and docs-as-code, while mocked export tests leave end-to-end Bazel/toolchain compatibility, real coverage export, documentation builds, and lockfile consistency unverified.

No open issues 🎉

What changed in this PR

Integrates module coverage into published documentation by exporting LCOV reports, rebasing source paths to reference integration’s external repositories, and combining reports for docs-as-code.

Changes:

  • Enables coverage exports for Baselibs, Persistency, and Logging; other modules continue running tests without coverage.
  • Adds report normalization, combination, and regression tests.
  • Updates docs-as-code to an LCOV-capable revision and documents the reporting flow.
File Description
scripts/​tests/​test_module_tests.py Tests coverage arguments, path normalization, exports, and report combination.
scripts/​module_tests.py Exports, rebases, and combines coverage reports for supported modules.
known_good.json Updates the docs-as-code revision for LCOV support.
docs/​integration_process/​step_7_reporting.rst Documents component coverage and local documentation commands.
bazel_common/​score_modules_tooling.MODULE.bazel Aligns the generated docs-as-code pin with known-good metadata.
.gitignore Excludes generated coverage reports.
.github/​workflows/​test_and_docs.yml Clarifies in comments how combined coverage reaches the documentation build.

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings October 29, 2026 20:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The dependency bump leaves MODULE.bazel.lock unchanged despite the repository’s required lockfile refresh, leaving the committed resolution inconsistent with the updated revision.

No open issues 🎉

1 previously missed issue

In code that hasn't changed since last review

Medium severity Refresh MODULE.bazel.lock after dependency hash changes

known_good.json:310

This dependency bump updates known_good.json and the generated override but leaves MODULE.bazel.lock unchanged. The repository requires a lockfile refresh alongside hash changes (.github/instructions/module-bazel-lock.instructions.md:15–28). After regenerating the known-good outputs, please run bazel mod deps --lockfile_mode=update and commit the resulting lockfile changes so the committed resolution remains consistent with the new docs-as-code revision.

Review effort: Balanced

@github-actions

Copy link
Copy Markdown

The created documentation from the pull request is available at: docu-html

Copilot AI balanced review requested due to automatic review settings October 30, 2026 08:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The dependency bump omits the required refreshed MODULE.bazel.lock, leaving stale resolved dependencies that can fail the Bzlmod Lockfile Check.

1 open issue

Review effort: Balanced

Comment thread known_good.json
"score_docs_as_code": {
"repo": "https://github.com/eclipse-score/docs-as-code.git",
"hash": "f1b30375e49646d95ca52565c41f5b926b0aa884"
"hash": "946fd135045841db63e18ffd532374963e84a220"
Comment thread scripts/module_tests.py
targets = [*test_args[split + 1 :], *(f"-{target}" for target in excludes)]
flags = test_args[:split]
targets = list(test_args[split + 1 :])
if enabled and module == "score_baselibs":

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hardcoded sounds not a good idea to me. Can we have a list of modules in config

Comment thread scripts/module_tests.py
"""Rebase coverage_tool's canonical paths into ref_int's external module namespace."""
lines = []
for line in text.splitlines():
if line.startswith("SF:"):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks a bit fuzzy here. I would say lets use pythons path tooling and refactor

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants