Skip to content

docs: refresh fleet figures from the #91 ledger; correct #92 and #94 scope - #96

Merged
thorwhalen merged 1 commit into
masterfrom
claude/91-fleet-usage-ledger
Aug 21, 2026
Merged

thorwhalen merged 1 commit into
masterfrom
claude/91-fleet-usage-ledger

Conversation

@thorwhalen

Copy link
Copy Markdown
Member

Doc-side landing of the #91 fleet usage ledger. The ledger itself and all its data live in gitignored misc/data/, so only the figures and the two roadmap entries whose scope the fresh scan changed are committable here. Full record: #91 comment.

What changed

Stale figures replaced (2026-08-03 → 2026-08-21 scan):

was now
direct dependents 85 89 (121 transitive, of 217 registry packages)
__init__ exports 147 148
zero fleet usage 86 82, of which 58 public >1 year
submodule-only compat names ~42 47

New, because the regex scan couldn't measure it: import ≠ subclass. 29 dependents actually subclass Store/KvReader/KvPersister/Collection across 141 classes; 3 more import one and never subclass it. wrap_kvs is called by 40 packages across 112 call sites, 29 of them as a class decorator.

#94's candidate pool is 58, not 82. The other 24 zero-usage exports shipped within the last year (the content module, autoviv, path_*_writeback, PathContext, FirstArgIsMapping, unravel_key) — nothing has had time to adopt them, so their absence of usage is not evidence about them. The report generates that split.

#92 reframed. The successor spelling isn't prospective: dol/trans.py already accepts key_encoder/key_decoder/value_encoder/value_decoder as aliases onto the four X_of_Y names, and the fleet is already split across both — 34 pkgs / 132 sites on X_of_Y vs 9 pkgs / 28 sites on encoder-decoder, 5 packages using both. Meanwhile kv_wrap's directional kwargs have no named fleet uses and key_codec/value_codec have zero call sites. Two live spellings to converge, not three peers to reconcile.

Verification

  • dol's own suite: 573 passed, 2 skipped.
  • The census was hand-checked against a sample of dependents before its numbers were trusted; that found and fixed two real defects (a 3× undercount of Collection subclasses, and submodule star imports scored against the wrong surface), both now frozen as regression tests alongside the tool.
  • No code under dol/ is touched by this PR.

Refs #91, #92, #94

…scope

The fleet program's substrate (#91) is built: the one-shot 2026-08-03 import
census is now an append-only ledger in gitignored misc/data/ (full commit pins
+ restore helper, per-dependent baseline suite results, an AST census, a
generated zero-usage report, one immutable record per scan).

Only the doc-side figures are committable — the ledger and its data are
gitignored — so this commit replaces every stale number and the two roadmap
entries whose scope the scan changed:

- 89 direct dependents, not 85 (121 transitive, of 217 registry packages).
- Import != subclass, now measurable: 29 dependents actually subclass a core
  class across 141 classes; 3 more import one and never subclass it.
- #94: 82 of 148 exports have zero fleet usage, but only 58 have been public
  over a year — that cohort is the candidate pool. The other 24 are the
  recently shipped content/autoviv/path_*_writeback surface.
- #92 reframed: the successor spelling is already live (wrap_kvs accepts
  key/value_encoder/_decoder as aliases onto the X_of_Y four) and the fleet is
  already split across both — 34 pkgs/132 sites vs 9 pkgs/28 sites, 5 packages
  using both. Meanwhile kv_wrap's directional kwargs have no named fleet uses
  and key_codec/value_codec have none at all. Two live spellings to converge,
  not three peers to reconcile.

Refs #91, #92, #94
@thorwhalen
thorwhalen merged commit b7269cc into master Aug 21, 2026
12 checks passed
@thorwhalen
thorwhalen deleted the claude/91-fleet-usage-ledger branch August 21, 2026 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant