ThoughtWorksInc/Binding.scala
55.6
Adequate · 27 September 2026
2.3k
lines of production code
Scala
primary language
4
measurements over time
What this system is
Behavioural changes
Added platform-specific cache and buffer implementations for Scala.js and JVM
New source files were added to provide platform-specific implementations for internal caching and buffer management. For the JavaScript target, \BindingJvmOrJs.scala\ and \SafeBufferJvmOrJs.scala\ were introduced to utilize Scala.js-specific types like \scalajs.js.Array\ and \JSConverters\. For the JVM target, corresponding files were added to use standard Scala collections such as \Vector\ and \ArrayBuffer\. These changes introduce new internal APIs for managing cache data and safe buffers, which may affect how the library manages state and memory on each platform.
(repo-wide) · high confidence
Adds Scala 3-specific implementation for Binding and BindingSeq
A new file, Binding2Or3.scala, introduces Scala 3-specific implementations for the Binding and BindingSeq classes. This includes macro-based implementations for map, flatMap, withFilter, and foreach operations, as well as extension methods and type aliases to support Scala 3's metaprogramming features. This change enables the library to function correctly on Scala 3 while maintaining backward compatibility.
Binding/shared/src/main/scala-3 · high confidence
Internal refactoring of Scala 2 macro implementations
The Scala 2-specific macro implementations for \Binding\ and \BindingSeq\ (including \foreach\, \map\, \flatMap\, \withFilter\, and \bind\) have been consolidated into a new internal file, \Binding2Or3.scala\. This change reorganizes the internal structure of the library by moving macro logic and related type classes (such as \Monad\ instances) into a dedicated, private object, improving code organization without altering the public API or user-facing behavior.
Binding/shared/src/main/scala-2 · medium confidence
Introduce Stable binding and refactor Var implementation
The Binding object now includes a new Stable trait for data binding expressions with a stable reference to their value, alongside a refactored Var class that manages change listeners and cache updates. This change also moves the scalaz instance to a separate file and updates the Binding2Or3 module for Scala 3 compatibility.
Binding/shared/src/main/scala · medium confidence
SafeBuffer now supports adding and removing elements during iteration
The SafeBuffer implementation has been updated to allow adding or removing elements via += and -= inside a foreach block. Previously, modifying the buffer during iteration would likely cause issues or be restricted; now, the buffer tracks its state (Idle, CleanForeach, DirtyForeach) to safely handle mutations during iteration, throwing an IllegalStateException for other methods while the foreach is active.
SafeBuffer/shared · medium confidence
Update project configuration and documentation for modern Scala and html.scala integration
The project's build and configuration files have been updated to support modern Scala versions and the html.scala UI framework. The \.scalafmt.conf\ now specifies \runner.dialect = scala213source3\ and \version = "3.7.5"\. The \README.md\ has been completely rewritten to document the integration with \html.scala\ as the primary UI framework, replacing the previous built-in \dom\ library. The \README-zh.md\ has been added to provide Chinese documentation. Additionally, a \LICENSE\ file (MIT) and a \.git-blame-ignore-revs\ file for formatting commits have been introduced.
(repo-wide) · high confidence
Upgrade build tooling and Scala.js configuration
The project's build configuration has been updated to use sbt 1.10.11 and includes several plugin upgrades: sbt-scalajs-crossproject 1.3.2, sbt-scala-js-map 4.1.1, sbt-example 9.3.1, and sbt-best-practice 8.4.0. Additionally, a new file \project/plugins.sbt.scala-js.0.6\ was added to support cross-building for Scala.js 0.6 alongside the primary 1.x versions.
project · high confidence
Test coverage
Added regression tests for Binding.scala edge cases; Added unit tests for the Binding library.
Dependencies
Restructure build configuration for cross-compilation
The project's build configuration has been reorganized to support cross-compilation for both JavaScript and JVM platforms. New shared build files define dependencies for Scala 2.13 and 3, including updates to ScalaTest (3.2.19 for Binding, 3.2.14 for SafeBuffer) and the addition of \sbt-crossproject\ support. The root \build.sbt\ now uses \CrossProject\ to manage \Binding\ and \SafeBuffer\ modules, with specific filtering for unidoc generation.
(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
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 42 → 56 (+13.5)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 98 (-2.0)
- Architecture 100 (new)
- Maturity 52 → 50 (-2.5)
- Readiness 30 → 46 (+16.0)
- Security 42 → 62 (+20.2)
Resolved (12)
- Dimension evaluation failed
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- No automated tests
- No exposed public API
- No tests found
- Test reliability not included
New (15)
- Duplicated block (10 lines × 2) (Binding/shared/src/main/scala-2/com/thoughtworks/binding/Binding2Or3.scala)
- FileTooLong: binding/Binding.scala (Binding/shared/src/main/scala/com/thoughtworks/binding/Binding.scala)
- FixmeComment (Binding/shared/src/test/scala/com/thoughtworks/binding/BindingTest.scala)
- Further orphaned files (smaller)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- Orphaned knowledge (Binding/shared/src/main/scala/com/thoughtworks/binding/Binding.scala)
- Workflow holding a long-lived secret is unscoped
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
ThoughtWorksInc/Binding.scala 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 27 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 5f1acd3d9a8ac6527f76dcfbb18ce1c4fedd796d — 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-d00c643c3f66.