Skip to content

[CLI] Decide compatibility policy for unified options #58

Closed

Description

@nth-bailey

Context

#50 proposes hidden aliases and migration warnings for existing CLI flags. PR #56 introduces --backend, --style, and repeatable --feature, but removes the old --zod, --source-gen, and --rkyv flags instead of retaining aliases; --zero-copy remains a first-class option because it also supports an explicit false value. This is a user-visible compatibility decision, so #50 must remain open after PR #56 merges.

Investigate and resolve

  • Check which legacy flags and manifest keys were documented and used by released versions, and whether a breaking removal is appropriate for the next release.
  • Decide which legacy flags and keys need temporary aliases, the warning text and removal version, and how --zero-copy=false maps to the unified options.
  • Implement the chosen behavior in CLI parsing and manifest loading, with tests for successful migration, warnings, conflicts, and invalid target combinations.
  • Update migration notes and CLI examples. Record the decision in [CLI & Architecture] Consolidate target-specific boolean flags into unified options (--backend, --style, --feature) #50.

Related: #50, PR #56.

Activity

  1. nth-bailey commented on Sep 23, 2026

    @nth-bailey
    CollaboratorAuthor

    Decision: remove the old one-off flags and manifest keys directly. We will not add compatibility aliases, deprecation notices, or a migration guide at this stage. PR #56 already implements and tests the removal; --zero-copy remains first-class because it supports an explicit false value. #50 has been updated to reflect this policy. PR #59 corrects the remaining wording in the compiler guide and runbook.

  2. changed the title [-][CLI] Decide and implement legacy flag migration for unified options[/-] [+][CLI] Decide compatibility policy for unified options[/+] on Sep 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions