Spartacus 开源项目由一组库组成。为了更容易知道哪个版本的库与另一个版本兼容,库版本在所有包中同步。 这意味着当我们要发布 1.5.0 版本时,我们会发布该版本下的所有库,即使某些库与上一个版本相比没有任何变化。 这样一来,我们可以使用单个版本号来指代任何给定版本的整套 Spartacus 库。
如下图所示,Spartacus 项目 Angular.json 文件里一个个类型为 library 的子项目:
对于版本控制,我们遵循语义版本控制,也称为 SemVer。 除了稳定版本,Spartacus 还生产 next 和 rc 版本。
下图是 Spartacus 的 next 版本的例子:
下图是 Spartacus rc 版本的例子:
https://www.npmjs.com/package/@spartacus/core
当 Spartacus 团队完成该版本所有新功能的开发后,将发布一个 rc 版本,这意味着功能和公共 API 都不会发生任何重大变化。 社区可以安全地开始测试 rc 版本中的功能。rc 版本可能包含一些错误,这些错误将在发布稳定版本之前修复。 当没有更多错误并且社区停止报告该版本的问题时,我们将继续制作稳定版本。
Spartacus 项目中的流程是围绕前面部分中描述的版本支持构建的。
develop 分支是默认分支,用于新版本开发,包括次要版本和主要版本。 所有功能和错误修复都合并到此分支。
还有一个维护分支,它随着新的稳定版或 rc 版本而变化,用于补丁版本。 只有错误修复会合并到维护分支。
一旦我们发布 1.4.0-rc.0 版本,release/1.4.x 分支将被视为维护分支。 当我们发布版本 1.5.0-rc.0 时,release/1.5.x 分支成为维护分支,依此类推。
这些分支如下图所示: