scapegoat-scala/sbt-scapegoat
54.9
Adequate · 20 September 2026
165
lines of production code
Scala
primary language
1
measurement over time
What this system is
This system is an sbt plugin that integrates the Scapegoat static analysis tool into Scala build projects. It automates the configuration and dependency management of Scapegoat, ensuring reports are generated correctly without leaking plugin artifacts into consumer POMs. The plugin supports multiple Scala versions and recent SBT versions, including SBT 2.x, while providing integration tests to verify its behavior across various project setups.
Behavioural changes
Adopts scalafmt 3.9.8 and updates project configuration
The project now uses scalafmt version 3.9.8 for code formatting, configured via a new \.scalafmt.conf\ file that sets the Scala 2.12 source 3 dialect, a 120-column max width, and specific rewrite rules for trailing commas and Scala 3 syntax. Additionally, the \.gitignore\ has been updated to exclude IDE-specific files (IntelliJ \.iml\, \.idea\, and \.bsp/\) and \credentials.sbt\, while a \.git-blame-ignore-revs\ file was added to ignore the initial scalafmt reformatting commit.
(repo-wide) · high confidence
Scapegoat SBT plugin now uses a dedicated configuration for dependency management
The Scapegoat SBT plugin has been refactored to use a dedicated \ScapegoatDeps\ configuration (hiding it from the standard compile classpath) to manage the \scalac-scapegoat-plugin\ dependency. This change ensures that the plugin artifact is correctly scoped and prevents it from leaking into consumer POMs or interfering with the main compile classpath. The plugin also introduces a \SbtCompat\ abstraction to handle SBT version differences (specifically providing an \uncached\ wrapper for Scala 2 to ensure settings are evaluated correctly), and updates the default version mapping to support newer Scala versions (2.12.20, 2.13.17, 3.7.3) out of the box.
src/main · high confidence
Test coverage
Add sbt integration test for Scapegoat report and POM inclusion; Added scripted tests for SBT plugin auto-configuration.
Dependencies
Scapegoat plugin now supports SBT 2.x and auto-selects Scapegoat versions by Scala version
The sbt-scapegoat plugin has been updated to support cross-compilation for SBT 2.x (specifically 2.0.0-RC6) alongside SBT 1.x, allowing users to adopt newer SBT versions. Additionally, the plugin now automatically selects the appropriate Scapegoat compiler plugin version based on the project's Scala version (e.g., defaulting to 3.2.0 for Scala 2.13.17, 2.1.4 for Scala 2.12.17, and 1.4.9 for Scala 2.11.12), reducing manual configuration requirements.
(dependencies) · 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
Baseline
- First survey — no prior run to compare against. CAI 55.
Lenses
- Code Health 88
- Architecture 100
- Maturity 39
- Readiness 56
- Security 75
Changes since last survey
- 300 commits — 280 feature/other, 20 fixes
By area
- (root) — 126 commits
- (repo) — 61 commits
- src/main — 38 commits
- project/build.properties — 31 commits
- project/plugins.sbt — 23 commits
- .github/workflows — 9 commits
- src/sbt-test — 9 commits
- .gitlab/ci — 3 commits
Notable commits
- fix: Bug fix release
- fix: Fix compile errors
- fix: Fix default minimal warn level
- fix: Fix the configured compiler setting for Minimal Warn Level
- fix: Merge pull request #103 from ches/min-warn-level-fix
- fix: Merge pull request #14 from randomcoder/Fix-Running-Under-Scala-2.11.4
- fix: Merge pull request #151 from Johnnei/fix-minimal-level
- fix: Merge pull request #37 from JoshRosen/fix-34
- fix: Merge pull request #49 from kmudrick/bugfix/build-settings
- fix: Merge pull request #58 from pomadchin/fix/libraryDependencies
- fix: Revert "chore(docs): Update group id"
- fix: Revert "feat: Support Scala 2.13.17 and 3.7.3 out of the box"
- fix: fix publish failure
- fix: fix(ci): Correct syntax to publish from tags
- fix: fix(ci): Fix snapshot publishing
- fix: fix(ci): Include tag checkout for sbt-dynver
- fix: fix(ci): Publishing to Sonatype works again (#183)
- fix: fix(ci): Update GitHub Actions for sbt 2.x support
- fix: fix: Use hidden project configuration for dependency management (#194)
- fix: fix: do not remove 3.1.8 version mappings
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
scapegoat-scala/sbt-scapegoat 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 20 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 f4ed396021cb9a46c2da4ef9af18a151cd3f0e81 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.