lancewalton/treelog
50.4
Adequate · 20 September 2026
980
lines of production code
Scala
primary language
1
measurement over time
What this system is
TreeLog is a Scala library that provides tree-structured logging for functional computations, built on the Cats ecosystem. It allows developers to attach annotations to computation nodes and serialize execution logs to JSON. The system supports Scala 2.12, 2.13, and 3, offering utilities for handling parallel execution, error propagation, and nested computation tracing.
Features
Established SBT build configuration with Scala 3 support
The project now uses SBT version 1.12.14 for building, configured via new \build.properties\ and \plugins.sbt\ files. The build includes plugins for CI release (1.12.0), dependency updates (0.7.0), type-level linting (0.5.7), and code formatting (2.6.2). A new utility object provides a helper to detect Scala 3 versions, indicating support for Scala 3 in the build process.
project · high confidence
Project initialization and documentation overhaul
The repository has been initialized with essential configuration files, including a \.gitignore\ for build artifacts and IDE files, a \.scalafmt.conf\ enforcing Scala 3 formatting rules, and a \.git-blame-ignore-revs\ file to ignore automated formatting commits. The \README.md\ has been significantly expanded to describe TreeLog's tree-structured logging capabilities, providing installation instructions for Scala 2.13/3.x and detailed usage examples, while \release\_notes.md\ and \release-process.md\ document the library's version history and publishing workflow.
(repo-wide) · high confidence
Behavioural changes
Added Scala 3 compatibility shims for LazyList creation
A new Scala 3-specific compatibility layer (ScalaCompat.scala) has been introduced to bridge API differences between Scala versions. This adds helper methods to create LazyList instances from varargs and to convert Iterables to LazyLists, ensuring consistent behavior for users relying on these collection operations across different Scala environments.
src/main/scala-3 · high confidence
Test coverage
Added Scala example code for annotations, futures, options/eithers, quadratic roots, and serialization; Added unit tests for LogTree syntax and serialization.
Dependencies
Initial sbt build configuration for treelog-cats
The project now uses an sbt build file (build.sbt) to manage dependencies and compilation. It configures cross-compilation for Scala 2.12.21, 2.13.18, and 3.3.8, with Scala 3.3.8 as the default. Key dependencies include cats-core and cats-free at version 2.13.0, scalatest 3.2.19, and argonaut/argonaut-cats 6.3.13 for testing. Compiler plugins like kind-projector (0.13.4) and better-monadic-for (0.3.1) are added for Scala 2.x versions. The build also sets up publishing metadata, developer information, and a 'commitCheck' command.
(dependencies) · high confidence
Migration to Cats and Scala 2.13 support
The library has migrated its functional programming foundation from Scalaz to Cats, updating the core syntax and type classes to use the Cats ecosystem. This change includes adding support for Scala 2.13 through version-specific compatibility shims in \ScalaCompat.scala\ that bridge \LazyList\ and \Stream\ differences. The core data structures, including \Tree\, \LogTreeLabel\, and \DescribedComputation\, have been reimplemented to rely on Cats types, enabling users to benefit from the updated library dependencies and newer Scala version features.
src/main/scala · 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 50.
Lenses
- Code Health 100
- Architecture 69
- Maturity 38
- Readiness 48
- Security 75
Changes since last survey
- 300 commits — 289 feature/other, 11 fixes
By area
- (root) — 131 commits
- (repo) — 100 commits
- project/plugins.sbt — 25 commits
- project/build.properties — 22 commits
- .github/workflows — 11 commits
- src/main — 10 commits
- src/test — 1 commit
Notable commits
- fix: Fix artifact name and update it to the latest version
- fix: Fix contributing developer URLs
- fix: Fix releases
- fix: Fix: treat scaladoc errors as warnings during publish
- fix: Revert "try setting sbtPluginPublishLegacyMavenStyle := false"
- fix: fix build syntax
- fix: fix cross publishing
- fix: fix links
- fix: fix scaladoc
- fix: revert sbt-site change which broke the build
- fix: try to fix publishing
- change: Add 'Reformat with scalafmt 3.7.10' to .git-blame-ignore-revs
- change: Add 'Reformat with scalafmt 3.8.6' to .git-blame-ignore-revs
- change: Add 'Reformat with scalafmt 3.9.6' to .git-blame-ignore-revs
- change: Add scala 3.5 and 3.6
- change: Allow publish overwrite
- change: Change sbt alias testAll to commitCheck
- change: Clarify versioning
- change: Cleaning things up
- change: Correct email addresses
- …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
lancewalton/treelog 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 f7dd7a2c7aca53be5e0c1dbc54643631e0a3fd51 — 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.