playframework/play-slick
60.6
Adequate · 28 September 2026
716
lines of production code
Scala
primary language
2
measurements over time
What this system is
This system is the Slick database integration module for the Play Framework, providing a bridge between Play's dependency injection and the Slick ORM. It manages database configuration, connection lifecycle, and lazy initialization through centralized settings and Guice bindings. The module also includes an adapter for the evolutions system to handle database schema migrations and connection management correctly.
Architecture
Reorganized build infrastructure with new AutoPlugins and dependency management
The project's build structure has been reorganized into dedicated Scala files (Common, Dependencies, Omnidoc, Playdoc) to improve modularity. This change introduces new sbt AutoPlugins: Common sets test execution settings, Omnidoc adds source URL metadata to JAR manifests for documentation linking, and Playdoc handles the packaging of Play documentation artifacts. Dependency management is now centralized in Dependencies.scala, defining specific versions for Slick (3.6.1), H2 (2.5.252), and Play (via the interplay plugin), while plugins.sbt configures the sbt-plugin, play-docs-sbt-plugin, sbt-scalafmt, sbt-mima-plugin, and sbt-ci-release.
project · high confidence
Behavioural changes
Introduce Slick-based DBApi adapter for evolutions
The evolutions module now includes a new EvolutionsModule and DBApiAdapter that bridges Play's standard DBApi interface to the Slick database configuration. This allows the evolutions system to correctly read database URLs and manage connections (including autocommit and transaction isolation) directly from Slick's data sources, resolving issues where connection leaks or ambiguous configurations previously occurred.
src/evolutions/src/main · high confidence
Refactored database configuration to use dependency injection and lazy initialization
The core database access API has been restructured to rely on dependency injection via the new \SlickApi\ and \DatabaseConfigProvider\ traits, replacing the previous global \Play.current\ lookups. Configuration is now centralized in \reference.conf\ under \play.slick.db\, and database instances are initialized lazily to prevent early initialization errors. Deprecated global accessors have been removed in favor of injecting \DatabaseConfigProvider\ (optionally named via \@NamedDatabase\) or accessing \SlickApi\ directly, ensuring cleaner lifecycle management and shutdown hooks for database connections.
src/core/src/main · high confidence
Repository reorganization and tooling standardization
The repository has been reorganized to align with Play Framework standards: the project is now published under the \org.playframework\ Maven group ID, the default branch has been renamed to \main\, and the license has been standardized to Apache 2.0. Additionally, the codebase is now formatted using scalafmt version 3.11.5, and the README has been updated with comprehensive version compatibility matrices and community badges.
(repo-wide) · high confidence
Test coverage
Added test utility for accessing Play reference configuration; Added tests for DBApiAdapter autocommit behavior and EvolutionsModule DI bindings; Added unit tests for Slick database integration components.
Dependencies
Upgrade to Play 2.8.0-M2 and Scala 2.13.18
The build configuration has been updated to target Play 2.8.0-M2 and Scala 2.13.18, with the default Scala version set to 2.13. This change also configures the project to compile against Java 17 and enables binary compatibility checks (MiMa) against version 6.1.0 to ensure API stability for upcoming releases.
(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 54 → 61 (+6.4)
- Rubric changed (rubric-2026.09.8 → rubric-2026.09.16) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 100 → 66 (-34.3)
- Maturity 35 → 54 (+19.7)
- Readiness 69 → 69 (+0.0)
- Security 60 → 60 (+0.0)
Resolved (2)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
Changes since last survey
- 17 commits — 17 feature/other, 0 fixes
By area
- (repo) — 9 commits
- project/Dependencies.scala — 2 commits
- project/plugins.sbt — 2 commits
- (root) — 1 commit
- .github/scala-steward.conf — 1 commit
- .github/workflows — 1 commit
- src/core — 1 commit
Notable commits
- change: Avoid deprecated wildcard initialization
- change: Merge pull request #1179 from scala-steward/update/scala3-library-3.9.0
- change: Merge pull request #1192 from mkurz/pin-scala-2.13.x-main
- change: Merge pull request #1193 from mkurz/remove-default-options-resolvers
- change: Merge pull request #1194 from scala-steward/update/patches
- change: Merge pull request #1197 from mkurz/scala-3.3-lts-and-next-symbolic-ci
- change: Merge pull request #1198 from mkurz/fix-future-jdk-warnings
- change: Merge pull request #1199 from mkurz/rename-scala33-lts-version
- change: Merge pull request #1200 from mkurz/test-java-25
- change: Merge pull request #1201 from scala-steward/update/patches
- change: Name Scala 3.3 LTS version explicitly
- change: Pin Scala 2 updates to 2.13.x
- change: Remove obsolete DefaultOptions resolvers
- change: Test on Java 25
- change: Use symbolic Scala versions in CI
- change: h2 2.5.252 (was 2.5.250)
- change: sbt-mima-plugin 1.2.1 (was 1.2.0)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
playframework/play-slick 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 c94ed301deeef95d9a7de3218ba55f4ceafd79ec — 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-2d9048c36d26.