Skip to content

[路线图 / Roadmap] v0.1.0 后完善实验性 React 19 绑定 / Complete the experimental React 19 binding after v0.1.0 #7

Description

@tiye

中文

目标

在 v0.1.0 恢复基线之上,把 react.mbt 从可用的客户端实验推进为一致、可测试的 React 19 绑定,同时明确保持实验性状态。

当前进度

已交付基线

阶段 1:正确性与应用基础

阶段 2:React 19 应用集成

阶段 3:API 广度与发布纪律

#17 当前量化证据

  • moon.mod / package.json:2/2 对齐 0.2.0。
  • Changelog:7 个 release sections,GitHub 远端 6/6 历史 tags 覆盖,Unreleased 条目 0;本地私有 tag 不计入公开账本。
  • 工作树与 clean clone:MoonBit 54/54、Chromium 7/7、diagnostics 0、production build 成功。
  • GitHub Release 制品:17 文件、47,050 bytes、SHA-256 1631dd35bfeeb190d293ee33dcbf7d4cb0c826340cbb82fdbaf5e4683b7fc955、SHA256SUMS 下载核验通过、意外文件 0。
  • 历史缺口已处理:GitHub v0.1.0 未曾发布到 mooncakes.io;新的 0.2.0 已由 Actions 发布,并由全新下游模块精确验证 4/4。
  • 发布验证 artifact:mooncakes-0.2.0-verification,artifact id 9747734053,SHA-256 6a140f815127d7d808b7af49db64a66ab33980bef6752dc31cf37e1089871960。

完成结论

  • 9/9 路线图项目完成;阶段 1、2、3 均为 100%。
  • React 19 绑定的正确性、应用集成、API 广度与发布纪律均有固定的量化门禁;后续工作应作为新一轮路线图管理。

后续 PR 统一质量门槛

  1. 公共 API 行为映射到固定 React 版本官方契约,PR 列出符合点。
  2. FFI/转换逻辑有确定性 MoonBit 回归;生命周期、DOM 或调度行为有真实 React 浏览器用例。
  3. 报告单测总数、浏览器场景数、React/page diagnostics 数量和生产构建结果。
  4. React warnings/errors、page errors 和未处理 rejection 必须为 0。
  5. 公共接口检查 moon info diff;生成内容通过 moon fmt、幂等检查和 git diff --check。
  6. 测试验证可观察结果或精确调用/生命周期计数,不能只验证“代码能运行”。
  7. Issue 与 PR 的中文、英文说明分区展示,证据逐项对应指标。
  8. 覆盖率区分 MoonBit runner 与真实浏览器,并为 DOM/async 路径提供浏览器证据。
  9. 生成 API 报告条目数、类别覆盖、幂等性和既有接口兼容结果。
  10. 发布只允许从 clean clone/main tag 执行;版本、Changelog、release title、制品 checksum 与精确下游安装必须有自动门禁和日志。

English

Goal

Build on the restored v0.1.0 baseline and move react.mbt from a capable client-side experiment toward a coherent, tested React 19 binding while keeping its experimental status explicit.

Current progress

Delivered baseline

Phase 1: correctness and application foundations

Phase 2: React 19 application integration

Phase 3: API breadth and release discipline

Current quantitative evidence for #17

  • moon.mod / package.json: 2/2 aligned at 0.2.0.
  • Changelog: 7 release sections, 6/6 historical GitHub tags covered, Unreleased entries: 0; local-only tags do not enter the public ledger.
  • Working tree and clean clone: MoonBit 54/54, Chromium 7/7, zero diagnostics, successful production build.
  • GitHub Release artifact: 17 files, 47,050 bytes, SHA-256 1631dd35bfeeb190d293ee33dcbf7d4cb0c826340cbb82fdbaf5e4683b7fc955; downloaded SHA256SUMS passes, unexpected files: 0.
  • Historical gap resolved: GitHub v0.1.0 was never published to mooncakes.io; the new 0.2.0 was published by Actions and passed exact fresh-downstream verification 4/4.
  • Publication verification artifact: mooncakes-0.2.0-verification, artifact id 9747734053, SHA-256 6a140f815127d7d808b7af49db64a66ab33980bef6752dc31cf37e1089871960.

Completion

  • All 9/9 roadmap items are complete; phases 1, 2, and 3 are each at 100%.
  • The React 19 binding's correctness, application integration, API breadth, and release discipline now have fixed quantitative gates; further work should be managed as a new roadmap cycle.

Shared quality gate for future PRs

  1. Public API behavior maps to official contracts for the pinned React version, with conformance points listed in the PR.
  2. FFI/conversion logic has deterministic MoonBit regressions; lifecycle, DOM, or scheduling behavior has real React browser cases.
  3. Report total unit tests, browser scenarios, React/page diagnostics, and production build results.
  4. React warnings/errors, page errors, and unhandled rejections must all be zero.
  5. Public interfaces inspect moon info; generated content passes formatting, idempotence, and git diff --check.
  6. Tests verify observable results or exact call/lifecycle counts, not merely execution.
  7. Issues and PRs present Chinese and English separately, with evidence mapped to metrics.
  8. Coverage distinguishes the MoonBit runner from real-browser execution and supplies browser evidence for DOM/async paths.
  9. Generated APIs report entry count, category coverage, idempotence, and existing-interface compatibility.
  10. Releases run only from a clean clone/main tag; version, Changelog, release title, artifact checksum, and exact downstream installation require automated gates and retained logs.

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

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions