百积木文档
开发指南Bundle 开发

Bundle 修改与发布工作流

按版本固定文档完成 Bundle-first 源码修改、审核、发布、安装和验证。

本页定义修改百积木 Bundle、模块源码和项目文件时的统一执行流程,适用于人工操作、Manager、 命令行工具、代码生成器和其他自动化。它不授予额外权限,也不替代发布者与审核者分离;所有操作 只能使用当前用户已经获得的工作区和市场权限。

1. 固定 CLI 与文档版本

baijimu --version
baijimu capabilities --help
baijimu capabilities --offline --json

从离线能力输出读取 documentation.versiondocumentation.commandSchemadocumentation.offlineCapabilities。精确版本页面或 JSON 不可访问时停止,不得改用 其他 CLI 版本或搜索结果猜测参数。执行每个写命令前仍要读取对应的 --help

需要动态资源或执行写操作时先验证登录:

baijimu auth status --verify
baijimu capabilities --json

认证、工作区权限或发布权限缺失时,保留错误并请求用户完成授权,不能编辑认证文件、复用 其他用户凭据或直接修改服务器状态。

2. 解析目标并读取源事实

使用 CLI 列表、查询和命令自身的名称解析能力,把工作区、项目、Bundle、模块和版本解析为 唯一稳定 ID。零匹配或多匹配时停止。不得把示例值、缓存值或模糊搜索的第一项当作目标。

读取项目文件、Git 状态、Bundle Manifest、当前版本和安装状态,明确本次变更属于:

  • module.jsonmethods/*.json 的源码修改;
  • Bundle Manifest 中精确资源版本的更新;
  • 已发布 Bundle 的安装或升级。

模块源码项目可以独立存在,但模块定义和版本必须归属 Bundle。不要创建平行的独立模块审核、 市场或安装链路。

3. 修改规范源

通过 baijimu project filebaijimu project git 当前版本提供的命令读写项目文件。 只修改预期文件,并在修改后重新读取内容和差异。

HTTP 方法必须遵循 HTTP methodBody 源契约: 所有可修改源码的生产者都直接写 snake_case;历史驼峰只允许在读取边界转换。不能因为存在 兼容读取就继续生产旧字段,也不能把 module.json 或方法外层协议机械改名。

4. 提交并创建模块版本

baijimu project git status <projectId>
baijimu project git diff <projectId> <path>
baijimu project git commit <projectId> --message '<message>' --file <path>

baijimu bundle module freeze <workspace> <bundle> <projectId> \
  --module-id <moduleId> \
  --version <semanticVersion> \
  --commit-id <commitId>

提交前确认差异只包含授权范围内的文件。使用提交返回的真实 commitId 创建不可变模块版本, 不得用分支名、未提交工作区或旧提交代替。完成后回查模块版本的 Git 提交、定义和安装 Artifact。

5. 发布不可变 Bundle 版本

在 Manifest 中引用精确模块语义版本和其他资源版本,然后更新并发布:

baijimu bundle update <workspace> <bundle> --manifest @bundle-manifest.json
baijimu bundle version publish <workspace> <bundle> --version <bundleVersion>

发布后记录返回的 Bundle 版本 ID,并回查版本内容。源码提交、模块版本创建和 Bundle 版本发布是 三个不同事实;任一步成功都不能代替后续步骤。

6. 审核与公共市场

baijimu bundle review list <workspace>
baijimu bundle review history <workspace> <bundleVersionId>

工作区审核未通过时停止。创建者、发布者和审核者的权限边界由平台执行,不得自行批准、伪造状态 或绕过审核。通过后,按本机帮助把精确 Bundle 版本提交公共市场审核:

baijimu bundle market publish <workspace> <bundle> \
  --version-id <bundleVersionId>

“Bundle 版本已发布”“工作区审核通过”“已提交市场审核”和“公共市场已发布”是不同状态, 必须分别回查。市场审核未完成时不能报告已上架。

7. 安装、升级与端到端验证

对明确的目标工作区执行安装或升级,并读取资源台账:

baijimu bundle install <workspace> <bundle>
baijimu bundle upgrade <workspace> <bundle> --version-id <bundleVersionId>
baijimu bundle resources <workspace> <bundle>

最终验证至少包括:

  1. 安装记录引用目标 Bundle 版本,所有物化资源状态成功。
  2. Runtime 只安装一个预期模块版本,服务目录出现预期业务 ID 和方法列表。
  3. 使用运行时方法定义构造真实调用;业务参数只放入参数对象,无参数时显式使用 {}
  4. HTTP 方法 Artifact 只含规范 snake_case methodBody 字段,调用结果符合返回和错误契约。
  5. 平台应用、工作流和生命周期资源按 Manifest 可见,升级没有覆盖用户配置或重复创建外部资源。

只有目标操作成功且状态源与端到端调用一致时才能报告完成。报告中包含稳定 ID、版本、提交、 审核/市场状态和验证证据;仍缺少的认证、权限或人工审核必须单独列出。

本页内容