config.toml 配置文件的完整参考。
config.toml 文件由 smif init 创建,存储在 changeset 目录(.changes/config.toml 或 .changesets/config.toml)。它配置分支、标签、包和解析器特定设置。
[branches] 部分配置发布流水线的 Git 分支名称。
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
base |
string | "main" |
发布的基础分支 |
release |
string | "release" |
Release 分支名称 |
[tags] 部分映射标签键到人类可读的描述,用于变更日志分类。
| 字段 | 类型 | 说明 |
|---|---|---|
<key> |
string | 在 changesets 中使用的标签键(如 feat、fix) |
<value> |
string | 在变更日志中显示的描述(如 New Features) |
[packages] 部分定义 Semifold 管理的仓库中的所有包。
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
path |
string | 是 | 包根目录的路径 |
resolver |
string | 是 | 解析器类型(rust、nodejs、python、cpp) |
version-mode |
string | 否 | 版本模式(semantic 或 pre-release) |
assets |
array | 否 | 发布时要上传的资源 |
Semantic(默认):
Pre-release:
[resolver.<type>] 部分配置发布和版本检查的解析器特定设置。
| 字段 | 类型 | 说明 |
|---|---|---|
pre-check |
object | 版本存在性检查设置 |
prepublish |
array | 发布前运行的命令 |
publish |
array | 用于发布的命令 |
post-version |
array | 版本提升后运行的命令 |
| 变量 | 说明 |
|---|---|
{{ package.name }} |
包名称 |
{{ package.version }} |
包版本 |
prepublish、publish 或 post-version 中的每个命令可以包含:
| 字段 | 类型 | 说明 |
|---|---|---|
command |
string | 可执行命令 |
args |
array | 命令参数 |
extra-env |
object | 环境变量 |
stdout |
string | stdout 处理(inherit、pipe、null) |
stderr |
string | stderr 处理(inherit、pipe、null) |
dry_run |
boolean | 在 dry-run 模式下跳过此命令 |