大模型应用
在开发测试中把未发布的 cyrus-core 以 test…
当需要让托管的 GUI(CYHOST)指向本仓库中尚未正式发布的 cyrus-core 进行跨包开发测试时,用 test dist-tag 发布预发布版本而不影响 latest。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
在开发测试中把未发布的 cyrus-co特定
解决思路
- 在仓库根目录执行 pnpm install 安装依赖。
- 在仓库根目录执行 pnpm build 构建所有包,确保 workspace:* 依赖在发布前已解析。
- 判断是否需要重新发布 claude-runner:运行 LOCAL_CR=$(node -p "require('./packages/claude-runner/package.json').version") 和 npm view "cyrus-claude-runner@${LOCAL_CR}" version 2>/dev/null 检查本地版本是否已在 npm 上;再运行 git diff --quiet HEAD -- packages/claude-runner/src packages/claude-runner/package.json && echo "clean" || echo "dirty" 检查是否有未提交/未推送的源码改动。若 (a) 无输出(本地版本不在 npm 上)或 (b) 输出 dirty,则需要重新发布 claude-runner;若两者都干净则跳过此步;不确定时询问用户。
- 若需重新发布 claude-runner:按与 cyrus-core 相同的算法确定下一个 -test.N,将 packages/claude-runner/package.json 版本改为如 0.0.X-test.N,然后 cd packages/claude-runner && pnpm publish --access public --no-git-checks --tag test && cd ../..,再执行 pnpm install 刷新 lockfile 以便 cyrus-core 获取新的 claude-runner。
- 将 cyrus-core 升级到下一个 -test.N 预发布版本:读取 packages/core/package.json 当前版本(如 0.1.22),将 patch 加一(如 0.1.23),追加 -test.N,N 从 0 开始,若 <bumped>-test.N 已存在于 npm(包括中止/陈旧的先前尝试)则递增。用以下命令查找已存在的 -test.N 并选出下一个 N:BUMPED=0.1.23; npm view cyrus-core versions --json | jq -r '.[]' | grep -E "^${BUMPED}-test\.[0-9]+$" | awk -F'test.' '{print $2}' | sort -n | tail -1(若为空则 N=0,否则取最大值加一)。将选定版本(如 0.1.23-test.0)写回 packages/core/package.json,不要提交,保留为本地工作区改动。
- 发布 cyrus-core 并打上 test dist-tag:cd packages/core && pnpm publish --access public --no-git-checks --tag test && cd ../..。使用 --tag test 意味着 npm install cyrus-core@test 会安装此版本,而 latest dist-tag 不会被移动,生产安装(npm install cyrus-core)不受影响。
- 验证 dist-tag 是否正确落地:运行 npm view cyrus-core dist-tags,确认 latest 与发布前一致且 test 指向刚发布的版本;若 latest 被移动则说明出错,停止并排查后再告知他人安装。
- 打印安装说明,同时给出两种形式供开发者复制粘贴:Published cyrus-core@<version> under dist-tag `test`. Install with: npm install cyrus-core@test 或 pinned: npm install cyrus-core@<version>;若第 3 步也重新发布了 claude-runner,则一并包含其版本。
- 始终使用 --no-git-checks,以便在功能分支且工作区脏的情况下也能发布。
- 始终使用 --tag test,以保留 latest dist-tag 用于正式发布。
- 预发布版本(任何带 - 后缀如 -test.0 的版本)不会被 npm install cyrus-core 自动安装,除非显式指定 tag 或版本,因此可安全重复运行。
- 若发布了 claude-runner,发布后运行 pnpm install,使 lockfile 在 cyrus-core 构建/发布前反映新发布的版本。
- 注意从根目录执行 pnpm install + pnpm build 在干净树上合计约需 3 分钟,需相应规划命令超时时间。
适用边界 · 注意事项
- 需要走完整发布流程时(更新 CHANGELOG、创建 git tag、创建 GitHub release、移动 Linear issue、开 PR、提交版本号变更)不适用,本技能刻意不做这些。
- 需要发布其他 workspace 包(edge-worker、cyrus CLI、linear-event-transport 等)时不适用,本技能只发布 cyrus-core(必要时加 claude-runner)。
- 不确定 claude-runner 是否需要重新发布时应先询问用户,而不是盲目跳过或发布。