跳到主要内容

发布流程

TQUIC的开发遵循git-flow分支模型,并遵循语义版本

分支规范

TQUIC开发遵循git-flow分支模型, 但针对github进行了微小的调整。

  • 对于官方代码库,开发者应遵循git-flow

    • master分支是稳定分支。master分支的最新提交通过了单元测试和回归测试。

    • develop分支是开发分支。develop分支的每个提交通过了单元测试,但没有进行回归测试。

    • release/vX.Y.Z分支是为发布而创建的临时分支。这个分支上的代码正在进行回归测试。

  • 对于复制(forked)的代码库, 开发者不需要严格遵守git-flow。复制的代码库中的每个分支等同于feature分支。具体建议如下:

    • 开发者将复制代码库中的develop分支与官方代码库保持同步。

    • 开发者从复制代码库中的develop分支创建出feature分支。

    • 在完成feature分支的开发后, 开发者向官方代码库发起 Pull Request 以便进行代码评审。

    • 在代码评审过程中,开发者可能继续在feature分支上修改和提交代码。

    • 此外,在复制的代码库中也可以创建bugfix 分支。与feature分支不同的是,开发者应该从bugfix分支向官方代码库的多个分支分别发起 Pull Request ,包括 master分支, develop分支,以及可能的 release/vX.Y.Z分支。

发布流程

发布新版本的操作步骤如下:

  1. develop分支创建一个新分支,分支名称为release/vX.Y.Z。例如release/v0.10.0

  2. 给新的分支添加标签X.Y.Z-rcN(N是补丁号)。第一个标签是0.10.0-rc1, 第二个标签是0.10.0-rc2, 依此类推。

  3. 按如下步骤提交新的版本:

    • 修改 cargo.toml 文件中的版本信息。

    • 测试版本功能的正确性。如果失败,在release/vX.Y.Z分支中修复所有问题,并返回第二步,将补丁号加1。

  4. 完成Release Note的编写。

  5. release/vX.Y.Z分支合并到master分支,删除release/vX.Y.Z分支。将master分支合并到develop分支。

  6. master分支的最新提交添加标签vX.Y.Z

备注

发布分支一旦创建后,一般不允许从develop合入修改到release/vX.Y.Z分支中。这确保了release/vX.Y.Z分支是冻结的,让QA更容易测试。

备注

release/vX.Y.Z分支存在时,如果有问题修复,请同时将bugfix分支合入到master, developandrelease/vX.Y.Z分支。