Skip to content

docs/emitter-design: target options are free-form, with no validation, versioning or lifecycle #706

Closed

Description

@OmarAlJarrah

Problem

EmitterInput.Options is "module path, root package, output layout — free-form per target". Free-form options can't be validated before Generate runs, can't evolve without breaking existing configurations, and give no way to change a default for new SDKs without changing it for existing ones.

Proposal

  • Each target declares a typed options schema: required fields, defaults, validation, validated before Generate.
  • The options carry a version, with migrations from each earlier version.
  • Capabilities carries lifecycle: experimental, hidden, sunset.
  • A behavior change that would alter existing SDKs is introduced as the default for new configurations only, pinned for existing ones through the manifest, with an upgrade report listing where a configuration differs from current defaults.

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority:P2Rarer spec shapes, or an IR decision to settle before the emittertype:docsDocumentation only

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions