Today in v1
programNode.origin is an enumeration recording which toolchain generated the program description, limited to anchor and shank. As codama-idl/codama#309 points out, a whitelist cannot keep up with an open ecosystem of producers. Beyond that, the attribute describes provenance rather than the program itself: it invites consumers to branch on where an IDL came from instead of on what the graph actually says, and it silently goes stale as the IDL is edited after generation.
Proposal
Remove the attribute and the programOrigin enumeration. Tools that genuinely need provenance metadata can attach it via the universal plugins list (#124) without the spec having to know every toolchain name.
Migration
upgradeV1ToV2 drops the attribute.
Part of #102 — Tier A.
Today in v1
programNode.originis an enumeration recording which toolchain generated the program description, limited toanchorandshank. As codama-idl/codama#309 points out, a whitelist cannot keep up with an open ecosystem of producers. Beyond that, the attribute describes provenance rather than the program itself: it invites consumers to branch on where an IDL came from instead of on what the graph actually says, and it silently goes stale as the IDL is edited after generation.Proposal
Remove the attribute and the
programOriginenumeration. Tools that genuinely need provenance metadata can attach it via the universalpluginslist (#124) without the spec having to know every toolchain name.Migration
upgradeV1ToV2drops the attribute.Part of #102 — Tier A.