发布与版本

当前 Rue 最新稳定版本为 0.1.0

完整的历史发布记录可在项目的变更日志(CHANGELOG)中查看。发布说明会涵盖新特性、修复、潜在不兼容项以及迁移建议。

发布节奏

Rue 不采用固定周期发布,而是以实用为导向的节奏进行:

  • 修补版本(patch):按需发布,集中解决缺陷与小型改进
  • 小版本(minor):引入新特性并提升体验,通常间隔数月;在正式发布前会经历 beta 预发布阶段
  • 大版本(major):提前预告并展开早期讨论,随后进入 alpha / beta 等预发布阶段,以充分收集反馈与完善迁移文档

语义化版本的特殊情况

Rue 遵循 Semantic Versioning,但在以下场景可能存在边界情况:

TypeScript 类型定义

在不同的 小版本 之间,TypeScript 类型可能出现不兼容调整。原因包括:

  • TypeScript 自身在小版本中引入不兼容变更,需要我们同步适配
  • 某些能力依赖更高版本的 TypeScript,从而提升最低要求版本

如果你的项目使用 TS,建议将 Rue 的依赖范围锁定到当前小版本,并在确认后再手动升级至新的小版本。

预编译产物与旧运行时的兼容性

较新的 Rue 编译器(小版本)可能生成对旧运行时(较早小版本)不完全兼容的代码。对于应用开发者,编译器与运行时版本通常一致,因此影响有限;但对库作者而言,如果你分发的是预编译的组件或指令代码,被更旧版本的运行时消费时可能出现行为差异。此时建议在包的 peer 依赖中明确最低要求的小版本。

默认渲染路径与 compat 删除

Rue 当前默认渲染路径已经切到 Block / Vapor / Renderable-first。与此同时,显式 compat 子路径也已经作为 breaking change 删除。也就是说:

  • 主入口默认描述的是当前渲染路径
  • @rue-js/runtime/compat@rue-js/rue/compat 已不存在
  • _\$vaporCreateVNoderenderCompat* 系列 helper 已移除
  • 默认公开 helper 会继续围绕 MountInput / mounted snapshot 组织,而不是继续扩大历史桥接对象契约

如果你维护的是旧的手写渲染 helper、历史 render-function 桥接或预编译产物,请直接改写到默认路径,而不是继续寻找 compat 替代导入。当前迁移指引见 默认 Block / Vapor 路径迁移

预发布版本

小版本通常会经历若干次 beta 预发布;大版本则会经历 alpha 与 beta 阶段。Rue 也可能通过 npm 标签(如 next / beta)提供早期构建用于集成与稳定性测试。

预发布版本仅用于验证与收集反馈,请勿在生产环境使用。预发布之间可能出现破坏性变更,若需要试用请固定到确切版本号并关注发布说明。

弃用策略

Rue 会在小版本中逐步引入更好的替代方案,并将旧特性标记为“弃用”。被弃用的能力在当前主版本中仍可使用,但会在下一个主版本移除。我们会在发布说明中注明弃用条目与迁移路径。

对涉及默认渲染路径、compat 子路径、预编译产物边界的调整,发布说明会明确包含以下信息:

  • 主入口是否发生默认语义变化
  • 已删除的 compat 命名或旧 helper 是否被重新引入
  • 旧 helper / 旧导入路径的替代写法
  • 库作者在 peer 依赖和预编译产物上的最低版本要求

RFC 流程

具有较大 API 面或重要架构变更的提案,会进入 RFC(征求意见) 流程。我们通过公开讨论确保演进路径清晰、风险可控,并邀请社区参与设计反馈。相关讨论通常在 Rue 的 GitHub 仓库提案与讨论区进行。

实验性特性

部分能力会在稳定版文档中出现,但标注为“实验性”。这类特性通常已经在纸面设计(或 RFC)上解决了主要问题,但仍缺少真实项目规模使用的反馈。实验性特性应在可控范围内试用,并预期在任意发布类型中可能发生变更。


在本仓库中,你可以使用以下脚本管理版本与发布说明:

$ pnpm changelog
$ pnpm release

以上命令会依据约定式提交与版本策略生成发布说明,并推动版本号演进;具体细节以仓库脚本为准。