Skip to content

[Feature]: Promote view to Stable — freeze the directive contract after the 1.14 additions #136

Description

@JosunLP

Pre-flight checklist

  • I searched existing issues and did not find a duplicate request.
  • I explained the problem or use case, not just the desired API.

Problem or use case
view is the declarative rendering layer and is still Beta, despite being central to authoring. Its directive contract changed materially just one minor ago: 1.14.0 added bq-once, bq-init, bq-pre, bq-cloak, bq-html-safe, and bq-memo, plus a full bq-on modifier system. Known rough edges remain (e.g., bq-for duplicate-key fallback warnings and object-expression parsing edge cases). A templating contract that just grew and still has parsing edge cases is not yet a stable foundation.

Proposed solution
Freeze the directive set and its expression grammar for at least one minor cycle, resolve the documented edge cases (duplicate-key handling in bq-for, object-expression parsing), and publish a complete, versioned directive reference with the SSR support status of each directive (coordinating with #128). Define view exit criteria: frozen directives, documented grammar, resolved parser edge cases, and full SSR/client behavior parity documented per directive.

Possible API or UX shape

## Stability: targeting Stable in 1.15.0
Frozen directives: bq-text, bq-html, bq-html-safe, bq-if, bq-show, bq-for,
bq-class, bq-style, bq-bind:*, bq-model, bq-on(+modifiers), bq-once, bq-init,
bq-pre, bq-cloak, bq-memo
Exit criteria:
- [ ] Directive set + expression grammar frozen for one minor
- [ ] bq-for duplicate-key + object-expression edge cases resolved
- [ ] Per-directive SSR support documented (#128)

Alternatives considered
Promoting view while parser edge cases remain — risks shipping a "stable" surface that still surprises users. Continuing to add directives before freezing — fine for Beta, but it must stop for one cycle to earn Stable.

Relevant area
view

Additional context
The declarative transitions in #137 and the optional compiled path in #138 are view enhancements that can land before or after promotion; this ticket is specifically the freeze-and-stabilize tracking issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    viewChanges to the view module

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions