Skip to content
CAI
Software that uses CAICheck a score

erlsci/iso8601

58.8

Adequate · 2 October 2026

659

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 an Erlang library for parsing, formatting, and manipulating ISO 8601 date and time data. It supports standard and expanded year representations, time intervals, durations, and subsecond precision arithmetic. The project enforces high code quality through automated coverage validation and comprehensive unit and property-based testing.

Features

Added code coverage validation script

A new Erlang script, \scripts/check\_coverage.escript\, has been added to the project. This tool aggregates coverage data from EUnit, Common Test, and Proper runs, calculates the line coverage percentage for the \iso8601\ module, and enforces a 95% coverage threshold. It will fail the build if the aggregate or per-module coverage drops below this limit, helping maintain code quality standards.

scripts · high confidence

Library rebranded to iso8601 with expanded ISO 8601 support

The project has been renamed from erlang\_iso8601 to iso8601 and updated to version 1.4. This release adds support for ISO 8601 time intervals (parse\_interval, interval\_bounds, format\_interval), expanded year representations (including positive years with more than four digits and negative astronomical years via parse\_expanded/format\_expanded), and microsecond precision in parse\_exact. It also corrects apply\_duration to properly handle negative durations and fixes year arithmetic on leap days. The library now includes a Makefile, rebar.config, and comprehensive test coverage, while maintaining backward compatibility for existing date and time formatting and parsing functions.

(repo-wide) · high confidence

Major feature expansion: ISO 8601 durations, intervals, expanded years, and new time arithmetic

The library has been significantly expanded beyond basic date parsing and formatting. Users can now parse and format ISO 8601 durations (e.g., P1Y2M) and intervals (e.g., start/end or start/duration), as well as handle expanded year representations including negative (astronomical) years. New API functions allow adding or subtracting days, months, and years to datetimes, and a new \parse\_exact/1\ function provides subsecond precision. The version has been bumped to 1.4.0 with updated metadata for Hex.pm.

src · high confidence

Behavioural changes

Removal of legacy .app file in favor of .app.src

The pre-compiled application resource file (ebin/iso8601.app) has been removed from the repository. This change aligns with the project's build process, which generates the .app file from the source template (ebin/iso8601.app.src) during compilation, ensuring that version numbers and module lists are managed consistently rather than being manually maintained in a static file.

ebin · high confidence

Test coverage

Added comprehensive unit and property-based tests for ISO 8601 parsing and formatting

Added new test suites in \test/iso8601\_tests.erl\ and \test/prop\_iso8601.erl\ to verify the \iso8601\ module. The unit tests cover parsing various date, time, week, and duration formats, including edge cases like fractional seconds and timezone offsets. The property-based tests ensure round-trip consistency for standard and expanded year formats, as well as interval start/end and duration bounds calculations.

test · 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 59 → 59 (+0.0)
  • Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 97 → 97 (+0.0)
  • Architecture 69 → 69 (+0.0)
  • Maturity 53 → 53 (+0.0)
  • Readiness 64 → 64 (+0.0)
  • Security 57 → 57 (+0.0)

Resolved (5)

  • Coverage not measured — no coverage collector is wired up
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no licence statement (README.md)
  • Documentation: no usage examples (README.md)
  • Off-boarding risk: anonymized user #1

New (2)

  • Dependency hygiene PARTLY measured — rebar3 pinning read, dependency currency not (no rebar.lock-pinned Hex declaration to grade)
  • Off-boarding risk: anonymized user #1

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

Survey your own repository

erlsci/iso8601 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 c594869a1814b02112c6a4b65782289b8c57c7f7 — 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.