Semifold
命令行

更新版本

把软件包版本、内部依赖要求、变更日志和已消费变更集作为一项发布操作进行校验和应用。

smif version 执行发布过程中会修改文件的部分。已经启用生成的 GitHub Actions 工作流时,同一次发布应使用 smif ci,不要再在本地运行这条命令。

smif version --dry-run
smif version

规划与校验

命令会重新计算 smif status 展示的同一项版本决定,再让每个内置适配器或仓库插件生成确定性的清单修改。正常写入开始前,Semifold 会校验目标路径、预期文件哈希、修改冲突、变更日志模板、软件包身份和完整依赖图。

正常执行可能修改:

  • 软件包版本和符合条件的内部依赖要求;
  • 工作区共享版本来源;
  • 软件包变更日志;
  • 一次性的 channel-bump 配置;
  • 已经消费的变更集文件;
  • 配置的版本修改后命令(post-version)。

工作区保护

命令默认拒绝不干净的 Git 工作区。--allow-dirty 表示现有差异有意参与这次操作,不代表无关修改已经变得安全。

预演

--dry-run 会准备并校验发布,但不执行正常的文件写入。配置明确设置 dry-run = true 的版本修改后命令仍然会运行,因此这种命令必须可以安全重复执行。

失败与恢复

规划或校验失败时,软件包文件和变更集保持不变。如果已经应用文件修改后某个版本修改后命令失败,Semifold 会保留这些修改和变更集,并报告失败命令与恢复事实。请检查 Git diff、修复钩子后重试,不要手工删除变更集。

成功后,在把生成内容提交到配置的发布分支之前,仍应运行测试并审查完整差异。

GitHub 错误诊断

GitHub 操作失败时会显示失败操作、HTTP 状态、API 消息,以及可用的校验详情和文档链接。客户端错误保留底层错误链。这些信息无需开启 --debug,GitHub token 会被遮蔽。403 会按操作提供权限检查提示,但不会将原因一律断定为权限不足。

changelog 的 PR 元数据查询失败仍为警告,同时显示受影响的包及 GitHub 诊断。版本准备会继续执行,仅缺少对应远程元数据。

本页内容