erlware/erlware_commons
59.5
Adequate · 2 October 2026
4.6k
lines of production code
Erlang
primary language
2
measurements over time
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.