Skip to content

Roadmap to v1.0: stable Workshop tooling platform #134

Description

@Teakowa

Goal

Define Wright's pre-1.0 roadmap by user-visible product readiness and real workflow evidence rather than internal migration phases.

Current execution state

The canonical ownership cutover is now substantially complete:

  • raw Workshop convergence is complete through released workshop-rs contracts;
  • opy-rs#8 completed the first OPY→Workshop compiler baseline, with opy-rs / opy-compiler v0.1.5 released;
  • wright#228 merged the source-language ownership cutover and consumes released OPY and DEL owner contracts without Wright-side language-semantic fallbacks;
  • the hosted Wright integration gate passed OPY owner integration, Workshop real-project integration, DEL/OSTW owner integration, benchmarks, scenario validation, LPP, CLI smoke, and distribution validation on the merged cutover head.

The current OPY frontier is no longer #42 → #36 → #37 → #38. Those baseline stages are complete. Residual executable gaps are now attributed by owner:

  • opy-rs#88 — residual OPY frontend/full-project corpus gaps;
  • opy-rs#89 — residual native-WIR lowering divergences;
  • workshop-rs#123 — missing/uncertain canonical WIR carriers exposed by OPY compatibility evidence;
  • workshop-rs#124 — canonical enum-domain ambiguity blocking direct semantic-WIR oracle comparison.

Wright release PR #233 is the pending distribution boundary for the merged ownership cutover; until it lands, GitHub's latest published Wright release remains older than the merged integration reality.

Tooling-first product order

Wright remains the unified tooling/product layer over independently owned language implementations. Product priority remains:

  1. check / diagnostics
  2. lint / static analysis
  3. inspect / semantic query
  4. validated source edits / refactoring
  5. agent / embedding workflows
  6. CI / language services
  7. Workshop stability / cost analysis
  8. compilation / conversion as required by real workflows

Compiler work is product-enabling infrastructure, not the sole progress metric. Wright must not claim source-language behavior beyond what the owning implementations actually support.

Ownership and dependency rules

  • Raw Workshop semantics/catalog/settings/WIR/emission gaps belong to workshop-rs.
  • OPY syntax, preprocessing/macros, semantic model/HIR, compiler behavior, and scoped reconstruction belong to opy-rs.
  • DEL/OSTW source/runtime/compiler semantics belong to deltin-rs.
  • Wright owns orchestration, diagnostics aggregation, lint/analyze/inspect, source-edit product behavior, LSP/CLI/agent surfaces, and cross-language integration.
  • language-provider-protocol is an integration/process protocol, not a language-semantic owner.
  • Missing semantics must be fixed in the owning repository rather than compensated for in Wright.

For cross-repository work, use:

owning repo -> owner contract/tests -> consumable release/contract -> Wright integration -> boundary/real-workflow verification

Compatibility and conversion direction

  • Target observable/canonical semantic equivalence, not generated-text, temporary-variable, formatter, or optimizer-internal identity.
  • Workshop remains the canonical normalization hub for source-language compilation and reconstruction workflows.
  • Source-preserving edits follow semantic understanding → validated source edits → original source; full-file regeneration is not the default mutation model.
  • Workshop→OPY/DEL reconstruction, where pursued, targets useful semantic reconstruction with explicit information-loss boundaries rather than literal source recovery.
  • Known gaps must remain explicit; a supported product surface does not imply unsupported owner semantics are available.

Near-term direction

  • resolve workshop-rs#124 where canonical enum-domain ambiguity blocks stronger OPY semantic comparison;
  • resolve/design workshop-rs#123 before any OPY workaround for constructs the current canonical WIR cannot represent losslessly;
  • continue opy-rs#88/#89 only at the correct owner boundary after Workshop prerequisites are available;
  • release the merged Wright ownership cutover through chore(main): release 0.2.16 #233 and re-verify the user-consumable distribution boundary;
  • keep DEL expansion, protocol work, architecture cleanup, docs, and UX polish secondary unless current real-project evidence promotes them.

v1.0 product contract

Wright 1.0 is ready when users can rely on it as a stable Workshop tooling platform with:

  • cross-platform installation/update;
  • stable declared check, lint, analyze, inspect, source-edit/fix, conversion, and agent/embedding surfaces;
  • canonical raw Workshop parsing/validation/emission through workshop-rs;
  • evidence-backed OPY and DEL/OSTW workflows through independently usable owning implementations without hidden upstream runtime fallback for declared first-party support;
  • validated source-oriented mutation with semantic refusal for unsafe operations;
  • corpus-defined support claims and reproducible implementation/catalog identities;
  • stable CI and machine-readable diagnostic/tool contracts;
  • reviewed licensing/provenance/distribution boundaries;
  • documentation sufficient for users without knowledge of internal compiler architecture.

Planning rules

  • Real user workflows are the primary progress metric.
  • Unit tests, snapshots, minimized fixtures, support matrices, and issue state are regression/planning evidence, not substitutes for rerunning motivating real projects.
  • Keep near-term work concrete and evidence-driven; keep distant work coarse.
  • Do not split catalog-scale work into per-symbol issues.
  • Do not let architecture cleanup, protocol work, CLI polish, documentation volume, or dependency churn outrank missing engine semantics that block real tooling workflows.
  • Repository code, living docs, issues, PRs, and public interfaces should use concrete capabilities/versions rather than temporary internal phase labels.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status
    In Progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions