# 文档

学习怎样用 Semifold 统一管理跨语言单仓库中的软件包版本、依赖、变更日志和发布。

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



Semifold 是面向跨语言单仓库的版本与发布工具。它连接使用不同清单文件和软件包仓库的软件包，再以整座仓库为范围管理变更集、相关版本修改、变更日志和按依赖发布。

## 选择你现在要完成的事情 [#选择你现在要完成的事情]

<Cards>
  <Card title="安装 Semifold" href="/zh/docs/getting-started/installation/">
    通过安装脚本、Cargo、npm 或 PyPI 安装已经发布的命令行工具。
  </Card>

  <Card title="完成第一次发布" href="/zh/docs/getting-started/first-release/">
    初始化仓库、创建变更集、检查受影响的软件包，再执行版本修改和发布。
  </Card>

  <Card title="理解 Semifold" href="/zh/docs/introduction/">
    理解清单文件、稳定软件包 ID、依赖、变更集和发布命令怎样连接起来。
  </Card>

  <Card title="配置仓库" href="/zh/docs/configuration/overview/">
    学习 `.changes/config.toml` 的结构和日常维护方式。
  </Card>

  <Card title="扩展软件生态" href="/zh/docs/plugins/overview/">
    使用已经发布的 JavaScript 插件运行时与 TypeScript SDK 接入自定义软件包格式。
  </Card>

  <Card title="查询术语" href="/zh/docs/concepts/glossary/">
    区分软件包、PackageId、软件生态、变更集、发布通道、软件包仓库和各种计划。
  </Card>
</Cards>

## 整座仓库的版本与发布生命周期 [#整座仓库的版本与发布生命周期]

<LifecycleDiagram
  items="[
  '来自不同软件生态的软件包',
  '一张包含依赖关系的工作区图',
  '记录用户可见变化的变更集',
  '联动修改相关版本与变更日志',
  '按每种生态自己的规则依次发布',
]"
/>

每个软件包的生态适配器负责理解自己的清单文件。Semifold 则负责适配器之间的关系：稳定的软件包身份、跨生态依赖传播、变更意图、发布通道、变更日志、发布顺序和失败恢复报告。

## 推荐阅读顺序 [#推荐阅读顺序]

如果你刚接触 Semifold，请先读[介绍](https://semifold.noctisynth.org/zh/docs/introduction/)，不要从完整配置参考开始。然后找一座小仓库完成[第一次发布教程](https://semifold.noctisynth.org/zh/docs/getting-started/first-release/)。遇到陌生概念时，随时查看[术语表](https://semifold.noctisynth.org/zh/docs/concepts/glossary/)。

[命令行文档](https://semifold.noctisynth.org/zh/docs/commands/)会逐个解释命令行为，其中的 [CLI 参数参考](https://semifold.noctisynth.org/zh/docs/commands/reference/)适合快速查询，不适合作为理解工作流的起点。

