Intent record (maintainer, 2026-08-21). dol has accumulated members that no fleet package uses and that don't pull their weight. Tentative rule: if none of the fleet uses it AND it doesn't look useful → move it out of dol. Destination: xdol when it could be useful (it existed for a reason, once); otherwise repurpose as tests or recipes, or delete.
Grounding (current numbers — rescan before acting)
- The import-level fleet scan (2026-08-03, 85 direct dependents) says 86 of 147
dol/__init__.py exports have zero detected fleet usage; 61 of those have been public for over a year (the strongest candidates), 25 are recent additions where adoption may simply be pending.
- A
trans.py survey adds concrete candidates with verified zero usage, e.g.: disallow_overwrites (broken and dead — defines an inner __setitem__ it never attaches; superseded by OverWritesNotAllowedMixin), _kv_wrap_trans_names, store_wrap and kv_wrap_persister_cls (both superseded by Store.wrap; the latter carries its own deprecation TODO), cache_iter (a "being deprecated" alias still exported), mk_kv_reader_from_kv_collection, condition_function_call/constant_output, CachedInvertibleTrans/MapInvertabilityError, iterate_values_and_accumulate_non_error_keys.
Caveats that gate the audit
- Rescan first — the fleet and dol have both moved since the scan.
- Star imports — several packages do
from dol import *; their usage is invisible to an import scan. Needs the ledger's deeper (AST) census, or a runtime check.
- Submodule-only compat surface — ~42 names are imported by the fleet from dol submodules despite not being in
__init__ (including a few private helpers). Any relocation must treat these as public surface.
- Authoritative zero-usage list comes from the fleet-usage ledger — this audit is sequenced behind it.
Relation to existing work
Complementary to #70 (splitting oversized modules / deduping helpers): #70 reorganizes what stays; this issue relocates what shouldn't stay. Cross-reference, don't merge.
Tracked in misc/docs/dol_roadmap.md.
Intent record (maintainer, 2026-08-21). dol has accumulated members that no fleet package uses and that don't pull their weight. Tentative rule: if none of the fleet uses it AND it doesn't look useful → move it out of dol. Destination:
xdolwhen it could be useful (it existed for a reason, once); otherwise repurpose as tests or recipes, or delete.Grounding (current numbers — rescan before acting)
dol/__init__.pyexports have zero detected fleet usage; 61 of those have been public for over a year (the strongest candidates), 25 are recent additions where adoption may simply be pending.trans.pysurvey adds concrete candidates with verified zero usage, e.g.:disallow_overwrites(broken and dead — defines an inner__setitem__it never attaches; superseded byOverWritesNotAllowedMixin),_kv_wrap_trans_names,store_wrapandkv_wrap_persister_cls(both superseded byStore.wrap; the latter carries its own deprecation TODO),cache_iter(a "being deprecated" alias still exported),mk_kv_reader_from_kv_collection,condition_function_call/constant_output,CachedInvertibleTrans/MapInvertabilityError,iterate_values_and_accumulate_non_error_keys.Caveats that gate the audit
from dol import *; their usage is invisible to an import scan. Needs the ledger's deeper (AST) census, or a runtime check.__init__(including a few private helpers). Any relocation must treat these as public surface.Relation to existing work
Complementary to #70 (splitting oversized modules / deduping helpers): #70 reorganizes what stays; this issue relocates what shouldn't stay. Cross-reference, don't merge.
Tracked in
misc/docs/dol_roadmap.md.