scoverage/sbt-scoverage
64.7
Adequate · 28 September 2026
580
lines of production code
Scala
primary language
2
measurements over time
What this system is
This system is an sbt plugin designed to instrument Scala code and generate coverage reports. It supports aggregating metrics across multi-module projects and allows users to exclude specific files or packages from the analysis. The plugin enforces quality gates by failing builds when coverage falls below configurable minimums and provides commands to toggle coverage on or off. It maintains compatibility with various Scala versions, including Scala 3 and Scala.js.
How it got here
2010–2014 — Initial release and coverage configuration
7 changes.
This period established the sbt-scoverage plugin through initial project scaffolding, documentation, and dependency configuration for Scala 2 and 3. It introduced configurable code coverage minimums with per-file and per-package granularity, allowing builds to fail on insufficient coverage. Comprehensive scripted tests were added to verify correct behavior for both high and low coverage scenarios.
2015–2016 — scripted test expansion
7 changes.
This period focused on expanding the scripted test suite to cover new and existing features, including coverage toggling, aggregation across sub-projects, and Scala.js support. The work involved adding test fixtures and verification logic to ensure correct behavior for commands like coverageOff, coverageAggregate, and toggleCoverage.
2018–2025 — scripted test expansion and Scala 3 support
11 changes.
This period focused on expanding the scripted test suite for the sbt-scoverage plugin, particularly to validate coverage aggregation, custom directory handling, and exclusion logic. Significant effort was dedicated to ensuring compatibility with Scala 3 and its various versions, including specific tests for Scala 3.3.4 and 3.5.0, alongside updates for older Scala versions.
Features
Introduces configurable code coverage minimums with per-file and per-package granularity
The plugin now supports enforcing minimum code coverage thresholds at the total, per-package, and per-file levels. Users can configure specific statement and branch coverage percentages for each scope using new settings keys (e.g., \coverageMinimumStmtTotal\, \coverageMinimumBranchPerPackage\). If the actual coverage falls below these configured minimums, the build can be configured to fail automatically via the \coverageFailOnMinimum\ flag, providing stricter quality gates for CI/CD pipelines.
src/main · high confidence
Test coverage
Added Scala 3.3.4 integration tests for coverage exclusion; Added sbt-test for older Scala versions; Added scripted test for aggregate-only coverage reporting; Added scripted test for bad coverage detection; Added scripted test for coverage-off functionality; Added scripted test for custom coverage data and report directories; Added scripted test for preserving settings overrides during coverage toggle; Added scripted test for scoverage good coverage scenario; Added scripted test for scoverage good coverage scenarios; Added scripted test for scoverage toggle behavior; Added scripted test for the coverageOff task; Added scripted tests for Scala 3 compatibility; Added scripted tests for Scala.js support; Added scripted tests for bad coverage file scenarios; Added test coverage for the coverageAggregate command; Added test fixtures for coverage aggregate sub-projects; Added test for Scala 3 package exclusion in coverage reports; Added test for scoverage aggregation with disabled modules; Added test for scoverage bad coverage scenario; Updated Scala 3 coverage exclusion test fixtures; Updated scripted tests for coverage exclusion of files and packages; Updated test assertions for Scala 3.5.0 coverage exclusions.
Dependencies
Update default scoverage version to 2.5.2 and add Scala 3.8.4 support
The sbt-scoverage plugin now uses scoverage version 2.5.2 by default, ensuring compatibility with the latest coverage instrumentation features. Additionally, the build configuration has been updated to support cross-building for Scala 3.8.4, extending the plugin's compatibility to newer Scala 3 versions. The main build file also sets the base Scala version to 2.12.20 and configures sbt 2.0.1 for non-2.12 Scala binary versions.
(dependencies) · high confidence
Housekeeping
Initial project scaffolding and documentation
The repository is initialized with core configuration and documentation files, including an Apache 2.0 LICENSE, a Code of Conduct, and a README detailing the sbt-scoverage plugin's setup, usage, and integration options. Development tooling is configured via .gitignore, .scalafmt.conf (version 3.11.5), and .scala-steward.conf, while .git-blame-ignore-revs is added to filter out bulk formatting commits.
(repo-wide) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 55 → 65 (+9.3)
- Rubric changed (rubric-2026.09.8 → rubric-2026.09.16) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 100 → 100 (+0.0)
- Maturity 38 → 58 (+19.7)
- Readiness 61 → 61 (+0.0)
- Security 65 → 65 (+0.0)
Resolved (2)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
Changes since last survey
- 2 commits — 2 feature/other, 0 fixes
By area
- (repo) — 1 commit
- project/plugins.sbt — 1 commit
Notable commits
- change: Merge pull request #692 from scala-steward/update/sbt-buildinfo-0.13.2
- change: Update sbt-buildinfo to 0.13.2
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
scoverage/sbt-scoverage was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 28 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit c7ff6f87e28969fcc1203f9bc6f7d12bd9aa73d2 — the exact code this score is about.
- Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-d46da229e3fd.