Skip to content
CAI
Software that uses CAICheck a score

erlware/erlware_commons

59.5

Adequate · 2 October 2026

4.6k

lines of production code

Erlang

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a collection of Erlang utility libraries, likely part of the Erlware Common Components project, designed to provide foundational tools for command-line applications and general software development. It offers capabilities for structured logging with ANSI color support, semantic version parsing, and type conversion utilities. Additionally, it implements a unified dictionary behavior that abstracts over various underlying data structures like lists, maps, and trees, all supported by comprehensive unit tests.

Features

Add command-line logging level macros

A new header file, include/ec\_cmd\_log.hrl, has been added to define logging severity macros (EC\_ERROR, EC\_WARN, EC\_INFO, EC\_DEBUG) for use in the system's command-line programming module.

include · high confidence

Add new utility modules for command-line logging, type conversion, and dictionary implementations

This change introduces several new modules to the library. The \ec\_cmd\_log\ module provides a structured logging API for command-line applications, supporting log levels (debug, info, warn, error) and ANSI color output. The \ec\_cnv\ module adds utility functions for converting terms between types (e.g., string to integer, binary to atom) with strict and non-strict modes. Additionally, the \ec\_dictionary\ behavior and its implementations (\ec\_assoc\_list\, \ec\_dict\, \ec\_gb\_trees\, \ec\_orddict\) provide a unified interface for key-value stores, allowing users to switch between different underlying data structures (lists, dicts, gb\_trees, or ord\_dicts) via a common API.

src · high confidence

Added semantic version parser grammar

A new PEG grammar file (ec\_semver\_parser.peg) has been added to the priv directory to define the parsing rules for semantic version strings. This grammar handles major, minor, and patch numeric components, optional pre-release identifiers (alpha parts), and build metadata, converting numeric segments to integers and alpha segments to binaries during the parse process.

priv · high confidence

Test coverage

New unit tests for Erlware Common Components modules

Added new EUnit test suites for several Erlware Common Components modules, including ec\_cmd\_log, ec\_cnv, ec\_file, ec\_gb\_trees, ec\_git\_vsn, ec\_lists, ec\_plists, ec\_semver, and ec\_talk. These tests verify core functionality such as log level handling, type conversions, file operations, dictionary management, version parsing, list processing, and semantic version comparison.

test · high confidence

Dependencies

Migration to rebar3 and updated build configuration

The project has migrated its build system from rebar2 to rebar3, replacing the previous configuration with a new rebar.config that depends on the cf library (version 0.3) and configures EUnit and cover reporting. A rebar.config.script is now used to conditionally apply dialyzer warnings based on the OTP release version, and a rebar.lock file has been added to manage dependency resolution.

(repo-wide) · 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 63 → 59 (-3.7)
  • Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 90 → 90 (+0.0)
  • Architecture 100 → 100 (+0.0)
  • Maturity 48 → 48 (-0.3)
  • Readiness 64 → 47 (-17.0)
  • Security 85 → 93 (+7.3)

Resolved (3)

  • Coverage not measured — no coverage collector is wired up
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

erlware/erlware_commons 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 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 16dc9923eb7e0d295bf4ddb7d95221cb92191ce7 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.