Skip to content

Fleet usage ledger: a versioned record of who uses dol, how, and at which commit #91

Description

@thorwhalen

Intent record (maintainer, 2026-08-21). Several upcoming programs — the transform-vocabulary migration, the cruft audit, and any change to the wrap_kvs surface — all need the same substrate: a reliable, versioned answer to who uses dol, how, and at which commit.

What exists today

A local-only inventory (gitignored misc/data/, regenerable by script) already records an import-level census of all 85 direct dependents: file:line import records, per-dependent short commit / branch / dirty state, a symbol fan-out index (which dol names each package imports), a test-gate order, and a uniform test runner. A separate one-off side scan holds the only call-site kwarg data we have (12 wrap_kvs call sites across 5 repos). Numbers are from the 2026-08-03 scan — rescan before relying on them.

The ask: grow the snapshot into a ledger

  1. Pin manifest — full commit hashes (currently short); a per-dependent baseline test result (status, exact command, duration) captured at scan time alongside the dol commit; and a restore helper that puts the fleet back at the pinned state. Purpose: back-compat tooling can be exercised against a frozen fleet, and a red suite under a dol candidate can be distinguished from a pre-existing failure.
  2. Deeper granularity (AST, not regex) — subclass detection (who actually subclasses Store/KvReader/KvPersister, vs merely importing them) and a call-site kwarg census (who passes key_of_id/obj_of_data/postget/preset/…). The current regex scan stops at import statements.
  3. Zero-usage report — computed from the ledger (public exports vs detected usages), as the authoritative input to the cruft audit. Two caveats the report must carry: several packages do from dol import * (usage invisible to an import scan), and ~42 names are imported from dol submodules without being in __init__ — a compat surface any cleanup must respect.
  4. Successive scans — timestamp + schema version per scan; a ledger of scans over time, not a single overwritten snapshot.

Privacy discipline stays as-is: outputs live in gitignored local storage, no absolute paths.

What this unblocks

  • The vocabulary-migration program (frozen-fleet back-compat testing, kwarg census to scope the break).
  • The cruft audit (authoritative zero-usage list).
  • The dependents test-gate for any wrap_kvs-surface work (P2 of the flat-model roadmap, misc/docs/dol_roadmap.md).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions