SuperAPI AI 工具集

releasing

部署与运维

查看项目

更新于 10-16 03:36

技能介绍

用途:面向 Vuetify 0 仓库的发布流程,指导如何编写 changeset(.changeset/.md)以及为 @vuetify/v0 与 @paper/ 设计系统切版本、发版。流程由 Changesets 驱动:推送到 master 会打开或更新「Version Packages」PR,合并后经 npm(无令牌 OIDC)发布,并生成 GitHub release(.github/workflows/release.yml)。分支模型(不同变更类型对应目标分支)写在根目录 CLAUDE.md 中并始终加载,本技能覆盖 PR 已落在正确分支之后的部分。

主要能力与命令:pnpm changeset 用于每次变更编写一个 changeset;pnpm release:prepare 做发布前校验(validate + build)。发布由 master 上的 Version Packages PR 自动完成,不要手动 npm publish;唯一例外是首次创建新的 scoped 包(OIDC 不能 PUT 尚不存在的名称),需由已登录的人执行 npm publish --access public,然后添加 trusted publisher(GitHub Actions / org vuetifyjs / repo 0 / workflow release.yml / environment empty),且每个包在 PUT 前都必须有 publishConfig.access: public。新名称发布成功但 npm view 返回 404 属 packument 延迟,不应因此中止 GitHub release 步骤。changeset 文件不得混用公开包与私有包(privatePackages.version: false 会将私有包视为忽略,changesets 拒绝混合文件)。合并前审查 Version Packages PR 的版本号(如 1.1.0 与 1.0.6),核对 master 上待处理的 changeset 中 @vuetify/v0 的 minor/major 是否与目标 minor 一致;若不一致则不要合并,应把游离的 feat PR 重定向到 dev,或接受当前 minor 为 master 的功能、dev 列车为下一个 minor。dev → master 必须是 merge commit,不可 squash。若已有发布包以 caret 范围依赖 v0,不要 unpublish。除非 John 明确许可,代理不合并该 PR、不执行 dev→master。

changeset 内容契约:正文会逐字进入 changelog 与 GitHub release notes,属于发布说明文案。首行为 conventional-commit 摘要 type(Scope): what changed (#PR),从使用方视角写;当首行已能回答「是否影响我」「我是否需要做任何事」时,可单独作为完整 changeset。正文可选,仅在首行无法回答时补充:行为差异、值得量化的性能变化(写明幅度)、破坏性/迁移步骤、新的公开选项或逃生口。不要写机制细节(内部 composable、私有字段、从兄弟包镜像的重构),这些只进 PR 描述与 commit body。

版本域:@vuetify/v0 是唯一已发布的 substrate,按自身 v<version> GitHub release 发布;@vuetify/paper 为私有/休眠,已不再属于 changesets fixed 组。设计系统(@paper/*,如 @paper/genesis)各自独立版本与发布,使用 name@version release。@paper/genesis 依赖 @vuetify/v0,substrate 大版本升级(如 1.x → 2.0.0)会超出 genesis 的 ^ 范围,changesets 会一并 bump 并重新发布 genesis,属预期行为,需在 Version Packages PR 中审查。

预发布/beta 通道(可选):稳定发布为默认,除非存在 .changeset/pre.json,仓库不处于 changesets pre 模式。进入预发布通道:pnpm changeset pre enter <tag>(如 beta 或 rc),按正常 Version Packages 流程发布(…-<tag>.N 对应 dist-tag)。下一次稳定发布前需 pnpm changeset pre exit,提交删除 .changeset/pre.json,再合并产生干净稳定版本的 Version Packages PR;跳过 pre exit 会发布另一个预发布版本或打错 tag。