Semifold
命令行

配置文件

同步发现的软件包、迁移旧字段,并在不重写无关策略的情况下维护命名发布通道。

smif config 集中维护 .changes/config.toml

smif config sync
smif config migrate
smif config channel set|clear

同步工作区

先执行只读检查:

smif config sync --check

sync 运行软件包发现,再与 [packages] 比较。它报告新增、缺失、重命名、移动和冲突,同时保留注释和有意配置的字段。计划没有歧义时,去掉 --check 即可应用。

使用 --resolver rust --resolver nodejs 可以限制扫描的软件生态。--prune 会删除完整、成功扫描中不存在的已配置软件包;部分扫描或冲突无法证明删除安全时,Semifold 会拒绝清理。

从 v0.2.x 迁移

smif config migrate --check
smif config migrate

Semifold 会在严格加载项目之前读取并迁移 v0.2.x 配置。它可以替换旧 version-mode、规范已知的 snake_case 字段,并为旧的版本存在性检查补充必需的 type,同时保留无关 TOML 和注释。需要迁移时,--check 返回非零状态且不写文件。

其他命令无法按当前契约加载 TOML 配置时,会完整显示底层解析或验证错误,再提示尝试运行 smif config migrate。迁移仍然失败表示问题不属于受支持的旧字段转换,应按该错误手工修正;该命令不迁移 JSON 配置,也不能修复文件读取权限。

设置或清除发布通道

smif config channel set beta --package web --bump minor
smif config channel clear --package web

set 接受命名通道,并要求可重复的 --package--all。一次性的 --bump preserve|patch|minor|major 决定首次进入通道时使用的稳定版本基线;成功的 version 会消费它。clear 恢复默认稳定通道。两项操作都支持 --check

对于 Node.js 软件包,如果配置的 npm publish 缺少匹配的 --tag,Semifold 会报告策略不一致,但不会替用户改写命令。

--check--dry-run

--check 判断持久化配置是否已经处于请求状态,适合持续集成检查配置漂移;--dry-run 用来预览操作。两者都不写配置,但成功条件不同。

本页内容