typelevel/discipline
55.2
Adequate · 20 September 2026
168
lines of production code
Scala
primary language
1
measurement over time
What this system is
This system is a Scala library designed to define and compose type-class law checks for algebraic structures. It provides core abstractions like the Laws trait and Predicate to facilitate property-based testing via RuleSets. The project supports multiple Scala versions and platforms, leveraging ScalaCheck for verification.
Features
Initial project setup and documentation
The repository is initialized with core configuration files including a .gitignore for sbt and IDE artifacts, a .scalafmt.conf for code formatting (version 3.11.0), and a .mergify.yml for automated PR handling. The README is updated to document usage for Scala 2.12, 2.13, and 3.1, specifying the 'discipline-core' artifact version 1.5.0 and linking to external framework bindings (scalatest, specs2, munit). The LICENSE file copyright is updated to include 2021.
(repo-wide) · high confidence
Introduction of core law definition and predicate abstractions
The core library now includes the foundational \Laws\ trait and \Predicate\ abstraction, enabling users to define and compose type-class law checks via a structured \RuleSet\ hierarchy that prevents redundant property evaluation, alongside a simple boolean predicate type for use in law definitions.
core/src/main · high confidence
Test coverage
Added test suite for algebraic law definitions
Added new test files (\LawSpec.scala\ and \laws.scala\) in the \core/src/test\ directory to verify the structure and properties of algebraic laws (such as rings, groups, and monoids) within the discipline module. These tests ensure that the rule sets correctly compute and expose the expected properties for various algebraic structures.
core/src/test · high confidence
Dependencies
Update build to Scala 1.7 with Scala 3.3.7 and ScalaCheck 1.19.0
The project build has been updated to base version 1.7, supporting Scala versions 2.12.21, 2.13.18, and 3.3.7 across JVM, JS, and Native platforms. The core library dependency on ScalaCheck has been upgraded to version 1.19.0. Additionally, the JDK release target is set to 8, and version introduction metadata has been configured for the new Scala 3.3.7 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
Baseline
- First survey — no prior run to compare against. CAI 55.
Lenses
- Code Health 100
- Architecture 69
- Maturity 48
- Readiness 50
- Security 70
Changes since last survey
- 300 commits — 296 feature/other, 4 fixes
By area
- (repo) — 100 commits
- (root) — 80 commits
- project/plugins.sbt — 56 commits
- project/build.properties — 34 commits
- .github/workflows — 29 commits
- core/src — 1 commit
Notable commits
- fix: Fix root module name
- fix: Fix the build
- fix: Merge pull request #445 from TonioGela/sbt-tl-fix
- fix: Merge pull request #463 from danicheg/fix-root-module-name
- change: 1.3.0 was cursed
- change: Bump base version
- change: Bump base version to 1.5
- change: Bump base version to 1.7
- change: Cross-publish for Scala 3 + Native
- change: Enabling tag publishing
- change: Exclude Native 3
- change: Merge branch 'main' into update/sbt-scala-native-crossproject-1.2.0
- change: Merge branch 'main' into update/sbt-scala-native-crossproject-1.2.0
- change: Merge branch 'main' into update/sbt-scalajs-1.10.0
- change: Merge branch 'main' into update/scala-library-2.12.19
- change: Merge pull request #294 from scala-steward/update/sbt-1.5.8
- change: Merge pull request #295 from scala-steward/update/scalafmt-core-3.2.2
- change: Merge pull request #296 from scala-steward/update/sbt-scalafmt-2.4.6
- change: Merge pull request #298 from scala-steward/update/sbt-1.6.0
- change: Merge pull request #299 from scala-steward/update/sbt-1.6.1
- …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
typelevel/discipline 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 7658404a2ed98d75f3860b7e6a4f80f146e2700d — 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.