SuperAPI AI 工具集

package-release

部署与运维

查看项目

更新于 10-16 08:19

技能介绍

Package Release 是面向 OpenPress 框架维护者的发布工作流技能,仅在 OpenPress 框架仓库内使用,不适用于下游工作区。

用途与职责 它在准备、解除阻塞或完成 OpenPress 框架包发布时使用,主要职责包括:在暂存或开 PR 前盘点本地与发布相关的变更;检查当前文档和内置技能中是否残留过时的发布指导;确认影响包的变更都有 changeset 覆盖;编写范围明确、含验证说明的发布 PR;在发布就绪时合并自动生成的 Changesets 版本 PR;在发布后监控 GitHub Actions 并核对 npm/GitHub Releases。

使用方式(预检) 先运行以下命令检查环境:

git status --short git branch --show-current git remote -v gh auth status gh repo view --json nameWithOwner,defaultBranchRef

如果工作区内容混杂,只暂存明确路径,不要暂存生成产物,例如 public/openpress/、dist-react/、.deploy/、.openpress/ 或临时脚本。

本地变更盘点 在写 PR 前对 diff 进行分类:

git diff --stat git diff --name-only find .changeset -maxdepth 1 -type f -name "*.md" ! -name README.md -print

预期的分类桶包括:runtime/framework(packages/core/)、CLI/scaffold(packages/cli/、packages/create/)、landing/docs(apps/web/、docs/)、bundled skills(skills/)、dogfood verification(press/、tests/press-lint.test.mjs)。影响包的变更需要 changeset;仅文档或仅技能的变更可以跳过 npm 发布,除非它们有意作为包发布说明的一部分。

文档与技能预检 以 catalog 测试作为已退役生命周期/启动器技能名称的判断依据:

node --test packages/core/tests/openpress-skill-catalog.test.mjs

然后扫描当前文档和技能中过时的 CSS/source-boundary 表述(排除历史 specs/plans/changelogs):

rg -n 'press/shared/theme|shared/theme|base/page-contract.css|base/print.css|base/typography.css|theme must define|page contract'
docs skills apps/web/src/content/docs packages/cli/README.md README.md

允许出现的命中包括:历史 specs/plans/changelogs;明确说明不要使用已退役接口的文字;仍受支持 API 值(如 social-square)的类型/参考条目。当活动文档/技能把用户导向已移除的生命周期技能、内置启动器、共享主题基线或工作区自有的页面外壳 CSS 时,需要修正。

验证关卡 先运行窄范围检查,再运行发布关卡:

node --test packages/core/tests/openpress-skill-catalog.test.mjs node --test tests/press-lint.test.mjs pnpm --filter @open-press/core test:node pnpm run typecheck pnpm --filter web build git diff --check pnpm changeset status --since main

如果 pnpm changeset status --since main 显示没有 changeset 但包文件有变化,就添加或暂存缺失的 changeset。如果 changeset 未跟踪,先暂存再重新运行该命令。

发布 PR 分支名可形如:codex/release-<short-scope>。PR 正文必须包含:改了什么;为什么改;对用户/开发者的影响;运行了哪些检查;changeset 状态;关于有意未暂存文件的明确说明。除非用户要求可供审查,与发布相关的 PR 以草稿形式打开。

发布 发布 PR 合并到 main 后,第一次 release 工作流运行会打开一个名为 chore: version packages 的 Changesets 版本 PR,该 PR 不会发布。完成发布需要:

gh pr list --state open --json number,title,headRefName,baseRefName,url,statusCheckRollup gh pr view <version-pr> --json files,body,statusCheckRollup,url

确认它只提升包版本、更新 changelog 并移除已消费的 changeset,准备好后合并:

gh pr merge <version-pr> --merge --delete-branch

如果分支策略阻止直接合并且未启用自动合并,确认该 PR 就是生成的版本 PR 后,才可使用管理员合并:

gh pr merge <version-pr> --merge --delete-branch --admin

监控发布:

gh run list --workflow release.yml --limit 5 gh run watch <run-id> --exit-status

核对包与 Releases:

npm view @open-press/core version npm view @open-press/cli version npm view @open-press/create version gh release list --limit 8

最后报告确切的 npm 版本、release 工作流 URL、版本 PR 编号以及所用到的任何手动覆盖操作。

适用场景与限制 适用于 OpenPress 框架仓库的包发布准备、排障与收尾工作;不适用于下游工作区。技能本身未提供付费、定价或平台支持范围等信息。