Skip to content
CAI
Software that uses CAICheck a score

sbt/flyway-sbt

56.3

Adequate · 20 September 2026

488

lines of production code

Scala

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is an sbt plugin that integrates the Flyway database migration tool into Scala build environments. It provides commands to manage database schema changes, including migrating, cleaning, and validating migration scripts. The plugin supports cross-building for Scala 2.12 and Scala 3, ensuring compatibility with various Flyway versions and allowing for custom callback handling and migration naming validation.

Features

Initial release of the sbt Flyway plugin

This change introduces the sbt plugin for Flyway, extracted from the main Flyway repository (starting from version 4.2.0). It provides the \FlywayPlugin\ to manage database migrations via \sbt flywayMigrate\ and \sbt flywayClean\. The entry includes the plugin's configuration file (\.scalafmt.conf\), dependency management setup (\.scala-steward.conf\), and documentation (\README.md\) detailing usage, including the requirement to explicitly enable the plugin in \build.sbt\ to avoid triggering unrelated compile tasks.

(repo-wide) · high confidence

Behavioural changes

Added Scala 3 compatibility layer for sbt plugin internals

Introduced new \PluginCompat\ implementations for Scala 3 (\src/main/scala-3/\) to support the sbt 2.x cross-build, defining type aliases for \HashedVirtualFileRef\ and \VirtualFile\ and adapting the \toNioPath\ conversion logic, while maintaining the existing Scala 2.12 (\src/main/scala-2.12/\) compatibility layer using \java.io.File\ and \Attributed\[File\]\.

src/main · high confidence

Migration to flywaysbt package and Flyway 12.0.0 upgrade

The plugin source has been moved from the root package to the flywaysbt package, and the underlying Flyway library has been upgraded to version 12.0.0. This update includes the addition of the flywayValidateMigrationNaming setting, which allows users to configure whether migration files with non-standard naming conventions should be ignored during validation.

repository · high confidence

Test coverage

Add test case for Flyway execution without compilation dependencies; Added Flyway SBT test fixtures with database migration scripts; Added Flyway callback test infrastructure; Added integration tests for Flyway SBT plugin commands; Added test case for Flyway callback functionality; Added test case for invalid migration naming validation; Added test for Flyway clean and migrate commands.

Dependencies

Upgrade to Flyway 13.6.0 and Scala 3.8.4

The sbt plugin dependency on Flyway has been updated to version 13.6.0, and the supported Scala versions are now 2.12.21 and 3.8.4. This update ensures compatibility with the latest Flyway features and fixes, while also aligning the build environment with current Scala releases. The plugin continues to support cross-building for both Scala 2.12 and Scala 3.

(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 56.

Lenses

  • Code Health 100
  • Architecture 100
  • Maturity 47
  • Readiness 46
  • Security 70

Changes since last survey

  • 300 commits — 298 feature/other, 2 fixes

By area

  • (root) — 116 commits
  • (repo) — 111 commits
  • project/build.properties — 29 commits
  • .github/workflows — 13 commits
  • project/plugins.sbt — 12 commits
  • project/plugin.sbt — 7 commits
  • src/main — 6 commits
  • src/sbt-test — 6 commits

Notable commits

  • fix: Fix warnings
  • fix: Merge pull request #176 from john-joe-givery/log-fix
  • change: Add 'Reformat with scalafmt 3.9.7' to .git-blame-ignore-revs
  • change: Add missing override keyword
  • change: Avoid deprecated scala.App
  • change: Create .scala-steward.conf
  • change: Enable syntax highlight in README code block
  • change: Merge branch 'main' into update/sbt-github-actions-0.26.0
  • change: Merge pull request #131 from scala-steward/update/flyway-core-11.3.3
  • change: Merge pull request #132 from scala-steward/update/scalafmt-core-3.9.1
  • change: Merge pull request #134 from scala-steward/update/scalafmt-core-3.9.2
  • change: Merge pull request #135 from scala-steward/update/sbt-1.10.9
  • change: Merge pull request #136 from scala-steward/update/sbt-1.10.10
  • change: Merge pull request #137 from scala-steward/update/sbt-github-actions-0.25.0
  • change: Merge pull request #138 from scala-steward/update/scalafmt-core-3.9.3
  • change: Merge pull request #141 from scala-steward/update/sbt-ci-release-1.9.3
  • change: Merge pull request #142 from scala-steward/update/flyway-core-11.4.0
  • change: Merge pull request #143 from scala-steward/update/scalafmt-core-3.9.4
  • change: Merge pull request #144 from scala-steward/update/sbt-1.10.11
  • change: Merge pull request #145 from scala-steward/update/flyway-core-11.4.1
  • …and 280 more

Architecture

  • 0 containers · 1 bounded contexts · 0 dependency edges (baseline)

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/flyway-sbt 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 a2810766be8dcbb7c7a0dde6e4dcc1ada8aa3449 — 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.