Skip to content

[beta.2.3] Consolidate framework fixtures and consumer qualification #1333

Description

@SisyphusZheng

ADR-0152 / #1341 scheduling amendment: execute cleanup alongside every Beta.2.1/Beta.2.2 replacement; Beta.2.3 is the residual closure checkpoint, not the start of cleanup. Remove displaced owners and their callers/checkers/docs together with regression evidence.

[beta.2.3] Consolidate framework fixtures and consumer qualification

Part of #1322. Release: beta.2.3. Excludes examples/**.

Vocabulary (use consistently)

  • Package conformance — owned by the package.
  • Adapter fixture — minimal app proving adapter semantics.
  • External consumer — hermetic scratch project proving published/packed package behavior.
  • Product dogfood — real first-party product-shaped application, primarily www.

Stop calling every internal fixture "dogfood".

ui-dogfood ruling

packages/adapter-vite/__fixtures__/ui-dogfood is in scope (package fixture, not example). Its semantic coverage (dialog; dropdown; tabs; forms; focus; keyboard; ARIA; open/light/closed roots; DSD; no-JS; claim; node identity; reconnect) is valuable and must survive. But ask whether it needs a permanent full mini-app (routes/components/islands/deno config/lockfile/Vite config/Playwright setup). Preferred end state: packages/ui -> package/browser conformance; adapter-vite fixture -> adapter-specific integration only; www -> product-shaped dogfood. Preserve coverage under correct owners; delete the miniature application shell if it has no unique responsibility. Never delete real coverage to reduce files.

Packed consumer consolidation

Packed UI qualification tests a different boundary ("does the actual tarball work outside the monorepo") and stays. Consolidate scripts around a scenario harness if beneficial: workspace / packed starter / packed UI / published package / deployment. Do not preserve one bespoke orchestration script per scenario forever.

Release

beta.2.3.

Two-core-product refinement (2026-09-07)

Qualification fixtures cover two adoption paths: standalone Element build/pack/plain HTML, and Router Framework application flow. UI is dogfood/reference input. Reuse shared test infrastructure but preserve these distinct consumer boundaries; do not let monorepo aliases stand in for packed-artifact proof.

Accepted refinement — 2026-09-08 (supersedes conflicting earlier scope)

  • Four packed consumers: standalone Element; Router Route Mode without Element runtime; Lit Framework Mode without Native compiler/runtime; Native Framework Mode.
  • Verify install/declarations/browser graph, SSR/SSG/client continuation, JS-disabled forms, cleanup and documented runtime/browser matrix.
  • Record build/bundle/matching-memory baselines and preserve existing fixture consolidation acceptance.

Governing plan (2026-09-08)

Maintainer-approved: ADR-0152, docs/current/VERSION_PLAN.md and #1341. Execution: https://github.com/orgs/open-element/projects/3. Acceptance checkpoints replace the three-day schedule. No automatic beta.2.4. Native/Lit are formal Framework Mode targets, not already-shipped support. Existing release records/versions remain unchanged; no closure without final-SHA evidence. examples/** stays frozen.

WTR-first browser conformance pilot (2026-09-08)

Audit/proposed pilot: docs/architecture/infrastructure-reduction.md, planning PR #1342. Select WTR for browser conformance; qualification is still pending.

  • Migrate facade lifecycle/attribute and composed-event/shadow cases using real Chromium/Firefox/WebKit. Compile Native fixtures through the official existing build path, consume ESM; no second TSX compiler.
  • Include a minimal equivalent Lit connection/host case, without claiming full Lit Framework Mode support or introducing Lit into standalone Element just for test helpers.
  • Verify nonzero failing tests/setup/browser errors; record build glue, install burden, time and source-map/debug experience.
  • Retain Playwright full-document SSR/DSD/native-navigation/POST E2E and Deno pure/runtime tests.
  • Replace platform conformance currently simulated by facade-dom.ts and app/dom-stubs.ts after parity. Retain only justified minimal counting doubles from test-dom.ts for operation-count assertions.
  • Move UI component conformance out of full adapter mini-app shells while preserving adapter/packed/no-JS boundaries.
  • Reconsider WTR only for documented correctness/distribution/sustainable-integration blockers with explicit plan reassessment; less glue alone does not override contribution priority. Do not adopt competing runners for identical responsibilities.
    Lit upstream uses WTR (including SSR integration); this helps portable browser reproductions. URLPatternList upstream uses Node tests, so matching contributions follow its existing harness. No guarantee of PR acceptance; do not optimize for PR count.
    First pilot during Beta.2.2; qualified consolidation closes Beta.2.3. Existing feat: implement Beta.2.1 unified Router and standalone Element tooling #1343 blockers stay first.

Accepted upstream-contribution priority — 2026-09-08

WTR is now the SELECTED browser-conformance direction, not a tied candidate with Vitest. Qualify using official compiled ESM, Chromium/Firefox/WebKit and recipient-native Lit/WTR reproductions. Less Vite glue alone is not grounds to switch; document concrete correctness/distribution/sustainable-integration blockers for explicit plan reassessment. Preserve Playwright full-document E2E, Deno tests and necessary counting doubles. Pilot Beta.2.2, qualified deletion/consolidation Beta.2.3; no second compiler or permanent runner abstraction.

Use docs/architecture/infrastructure-reduction.md and VERSION_PLAN as scope. Prepare useful generic fixes for contribution through normal authorization; no invented bugs, cosmetic PR quota, or upstream-response release dependency. No migration is completed by this update.

Approved executable maturation — 2026-09-09

  • WTR consumes official compiled ESM, never a test-only TSX transform.
  • First cases: open-input/open-button validation/reset/submitter/overrides; dialog/dropdown Escape/light dismiss/focus/reconnect; paired Native/Lit application journeys.
  • Preserve full-document Playwright E2E and Deno pure/runtime tests; counting doubles are not browser conformance.
  • Three-browser assertions and missing-browser/setup failures propagate nonzero through required CI.
  • Delete migrated fake-platform code only after coverage transfer. Pilot Beta.2.2; consolidation Beta.2.3. Prefer recipient-native upstream reproductions, with no PR quota.

Scope: docs/architecture/alpha-maturation.md and VERSION_PLAN (planning PR #1342). Upstream contribution potential can justify bounded extra integration cost; no invented defects, PR quota or upstream-response release dependency. This update changes planned work, not implementation status.

Activity

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

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions