# 发布状态

在不修改软件包文件、变更日志和变更集的情况下，计算整座仓库的版本决定。

Source: https://semifold.noctisynth.org/zh/docs/commands/status/
Language: zh



`smif status` 是变更集与版本修改之间的只读检查点。

```bash
smif status
```

## 它会计算什么 [#它会计算什么]

Semifold 把已配置软件包加载成一张依赖图，合并请求的版本提升级别，应用发布通道与依赖传播规则，并展示：

* 每个受影响软件包的当前版本和目标版本；
* `.changes/add-api.md` 这样的直接原因；
* 因依赖或共享版本传播而加入的软件包；
* 警告和一段确定性的 12 位计划指纹。

相同仓库输入下，[`smif version`](https://semifold.noctisynth.org/zh/docs/commands/version/) 会重新计算同一项版本决定。`status` 不持久化计划，也不会修改清单、变更日志、配置或变更集。

## 拉取请求评论 [#拉取请求评论]

```bash
smif status --comment
```

`--comment` 把状态报告写成 GitHub 拉取请求评论，只能在预期的持续集成环境使用。`smif init` 生成的状态工作流会调用这条路径。

启用全局 `--dry-run` 后，Semifold 可以收集并渲染评论预览所需的只读事实，但绝不会创建或更新 Pull Request 评论。

如果 GitHub 拒绝创建或更新评论，发布计划仍然有效，`status` 也会成功完成。警告会展示失败的操作、GitHub API 状态与消息、GitHub 返回的文档链接，并为 `403 Forbidden` 响应提供权限检查提示。

如果软件包、目标版本或原因错误，应修改变更集或依赖配置，不要手工改软件包版本来掩盖问题。

## GitHub 错误诊断 [#github-错误诊断]

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

评论和变更文件查询（包括分页）失败时会显示详细原因。创建或更新评论失败仍为警告，不影响已经生成的发布计划。

