Skip to content
CAI
Software that uses CAICheck a score

tototoshi/slick-joda-mapper

60.6

Adequate · 20 September 2026

551

lines of production code

Scala

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a Scala library that provides Joda-Time type mappings for the Slick database persistence framework. It enables developers to store and retrieve Joda-Time date and time types, such as DateTime, Instant, and LocalDateTime, across various SQL databases including PostgreSQL, MySQL, and H2. The library handles the conversion between Joda-Time objects and SQL types, ensuring correct timezone handling and compatibility with modern Slick versions.

Features

Support for Joda-Time DateTimeZone, LocalDateTime, Instant, and LocalTime

The Joda SQL type converter now supports additional Joda-Time types, allowing users to map DateTimeZone, LocalDateTime, Instant, and LocalTime to their corresponding SQL types. This enables more granular handling of time and date data in Slick applications using Joda-Time. Additionally, a minor fix ensures correct method invocation for getTime() in the millisToSqlType helper.

src/main/scala/com/github/tototoshi/slick/converter · high confidence

Behavioural changes

Migration to Slick 3.x API and GitHub Actions CI

The library has been updated to support Slick 3.x, introducing a behavioral change in how users import Joda-Time support. Instead of the generic \com.github.tototoshi.slick.JodaSupport.\_\, users must now import database-specific support classes (e.g., \H2JodaSupport\, \PostgresJodaSupport\) that match their Slick driver, as mixing different drivers is no longer supported. The project also migrated its continuous integration from Travis CI to GitHub Actions and updated the README to reflect the new Slick 3.x usage patterns and dependency configurations.

(repo-wide) · high confidence

Updated Joda-Time support for Slick 3.x with timezone-aware DateTime mapping

The Joda-Time integration has been refactored to support Slick 3.x, replacing the old Slick 2.x driver traits with a new \GenericJodaSupport\ class that works with \JdbcProfile\. This change adds support for \DateTimeZone\, \Instant\, \LocalDateTime\, and \LocalTime\ in addition to the existing \DateTime\ and \LocalDate\. Crucially, the \DateTime\ mapper now accepts an optional \Calendar\ parameter to handle timezones correctly when setting timestamps, addressing previous issues where timezone information was ignored. Pre-configured support objects are provided for H2, Postgres, MySQL, Hsqldb, SQLite, Oracle, and SQL Server.

src/main/scala/com/github/tototoshi/slick · high confidence

Test coverage

Added tests for Joda-time support and type converters

Added a new \JodaSupportSpec\ integration test that validates Joda-time types (DateTimeZone, LocalDate, DateTime, Instant, LocalDateTime, LocalTime) across MySQL, PostgreSQL, and H2 databases, including a MySQL configuration file for test setup. Expanded \JodaSqlTypeConverterSpec\ to cover all Joda-time converters (DateTimeZone, Instant, LocalDateTime, LocalTime) and migrated the test suite to ScalaTest 3.0 (AnyFunSpec/Matchers).

src/test · high confidence

Dependencies

Migrated build definition to sbt 1.10.7 and updated plugins

The project build has been upgraded to sbt version 1.10.7, replacing the legacy \project/SlickJodaMapperBuild.scala\ build definition with the modern \project/build.properties\ configuration. Additionally, the \sbt-scalariform\ plugin was updated from version 1.0.1 to 1.8.3 (migrating to the \org.scalariform\ organization), and publishing plugins \sbt-sonatype\ (3.12.2) and \sbt-pgp\ (2.3.1) were added or updated to support modern release workflows.

project · high confidence

Update project dependencies and Scala versions

The build configuration has been updated to support Scala 2.12.20, 2.13.16, and 3.3.5, with 2.13.16 set as the default. Key library versions have been upgraded, including Slick to 3.5.2, Joda-Time to 2.12.7, and the MySQL connector to 9.2.0. Test dependencies such as ScalaTest (3.2.19), testcontainers-scala (0.41.8), and H2 (2.2.224) have also been updated to their latest versions.

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

Lenses

  • Code Health 100
  • Architecture 69
  • Maturity 48
  • Readiness 72
  • Security 70

Changes since last survey

  • 300 commits — 293 feature/other, 7 fixes

By area

  • (repo) — 152 commits
  • (root) — 113 commits
  • project/build.properties — 14 commits
  • project/plugins.sbt — 13 commits
  • .github/workflows — 5 commits
  • src/test — 2 commits
  • .github/CODEOWNERS — 1 commit

Notable commits

  • fix: Revert commit(s) 4fa915c
  • fix: Revert commit(s) 51c457a
  • fix: Revert commit(s) 6e817f7
  • fix: Revert commit(s) 85fd9d3
  • fix: Revert commit(s) dfb756d
  • fix: Revert commit(s) fccfb3a
  • fix: fix slick version for Scala 3
  • change: Add test for setTimeZone
  • change: Bump actions/checkout from 2.4.0 to 3
  • change: Bump actions/checkout from 3 to 4
  • change: Bump actions/setup-java from 3 to 4
  • change: Correct an error in the crossScalaVersions setting
  • change: Install sbt
  • change: Merge branch 'master' into dependabot/github_actions/actions/checkout-4
  • change: Merge branch 'master' into update-slick-3-4
  • change: Merge branch 'master' into update/h2-2.1.212
  • change: Merge branch 'master' into update/joda-time-2.12.5
  • change: Merge branch 'master' into update/mysql-connector-j-8.3.0
  • change: Merge branch 'master' into update/mysql-connector-java-8.0.29
  • change: Merge branch 'master' into update/mysql-connector-java-8.0.33
  • …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

tototoshi/slick-joda-mapper 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 656c75917ea1bfedd8efb4982b6818663430dbec — 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.