Skip to content
CAI
Software that uses CAICheck a score

sbt/sbt-release

65.0

Adequate · 28 September 2026

1.2k

lines of production code

Scala

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is an sbt plugin designed to automate the release process for Scala projects. It manages version bumping, snapshot handling, and Git or Mercurial tagging while supporting cross-building across multiple Scala versions. The plugin ensures release integrity by halting on test failures and provides compatibility layers to function across different sbt versions.

How it got here

2011–2014 — sbt 2 and Scala 3 compatibility

4 changes.

The project established its initial repository structure and licensing, then focused on extending support to sbt 2 and Scala 3 through dedicated compatibility layers. This period also included updating core dependencies and adding scripted tests to ensure the release process correctly halts on test failures.

2015–2018 — comprehensive test coverage expansion

9 changes.

This period focused on significantly expanding the test suite for the sbt-release plugin through the addition of numerous scripted and unit tests. The work verified core functionalities such as version parsing, command-line arguments, cross-building, and default behaviors across different version control systems like Git and Mercurial. These changes ensured robust handling of edge cases, including snapshot management, tag conflicts, and test skipping during the release process.

Features

Initial project setup with Apache 2.0 license and Scalafmt configuration

The repository now includes a \.scalafmt.conf\ file configuring code formatting (version 3.11.5, Scala 2.12 dialect) and an Apache License 2.0 file, establishing the legal and stylistic baseline for the project. A \.gitignore\ entry was also added to exclude \.bsp\ directories.

(repo-wide) · high confidence

Behavioural changes

Support for sbt 2 and Scala 3 via compatibility layers

The release plugin now supports sbt 2 and Scala 3 by introducing version-specific compatibility modules. New files in \src/main/scala-2\ and \src/main/scala-3\ provide \LoadCompat\ and \ReleasePluginCompat\ implementations that adapt to internal API changes in sbt 1.1+ and sbt 2 (such as \sbt.Load\ becoming private and the introduction of \testFull\ and \cleanFull\). The shared \Compat.scala\ object handles sbt version differences for key indexing and task execution, ensuring the release process works correctly across sbt 1.0.x, 1.1.x, and 2.x.

src/main · high confidence

Test coverage

Added scripted test for Mercurial-based releases; Added scripted test for command-line version specification; Added scripted test for cross-building with sbt-release; Added scripted test for release tasks as steps; Added scripted test for skipping tests during release; Added scripted test to verify release process stops on test failure; Added scripted tests for default tag management behavior; Added scripted tests for the 'with-defaults' release behavior; Added test for sbt-release exit code handling; Added tests for version parsing and bumping strategies.

Dependencies

Update sbt-release to 2.0.8 and specs2-core to 4.23.0

The build definition now targets sbt 2.0.8, enabling the plugin to run on the latest sbt 2.x series while maintaining compatibility with sbt 1.x through cross-building logic. The test framework dependency specs2-core has been upgraded to version 4.23.0. These changes are reflected in the root build.sbt and the various scripted test project definitions located under src/sbt-test/sbt-release/.

(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

Score

  • CAI 64 → 65 (+0.8)
  • 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 55 → 55 (+0.0)
  • Readiness 56 → 59 (+3.2)
  • Security 78 → 78 (+0.0)

Resolved (4)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no licence statement (README.md)
  • Documentation: no usage examples (README.md)
  • Off-boarding risk: anonymized user #1

New (1)

  • Off-boarding risk: anonymized user #1

Changes since last survey

  • 2 commits — 2 feature/other, 0 fixes

By area

  • .github/workflows — 2 commits

Notable commits

  • change: Bump actions/setup-java from 6.0.0 to 6.0.1
  • change: Bump sbt/setup-sbt from 1.5.8 to 1.5.9

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

sbt/sbt-release 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 59477f81a029aef6cf57631de4f29de2e80bf97b — 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.