Skip to content

22. German is a built-in default, not an entry point

Context

ADR 0010 registered the German pack through the denckring.lang entry-point group so that a pack shipping inside the core wheel would take the same path a third-party pack takes. That demonstration worked, and it stopped working the moment a German data distribution became possible.

lang._install raises DuplicatePack when two entry points claim one language — deliberately, because silently choosing would make answers depend on installation order. Core claims de by entry point, so pip install denckring[de] would have raised on the first get_pack("de") call.

English never had this problem: the core English pack is a built-in default, which is precisely what lets denckring-en-data override it.

Decision

German moves into _DEFAULTS beside English, and core declares no entry points at all.

Consequences

de now behaves exactly like en: core provides the floor, a data distribution upgrades it, and precedence resolves without a collision.

The demonstration ADR 0010 wanted is not lost but improved. The entry-point path is now exercised by two genuinely external distributions, denckring-en-data and denckring-de-data, rather than by core against itself — which is a stronger demonstration than the one removed, because a same-wheel pack could never have proved that precedence works.