版本命名

GoFrame 采用 GNU 风格的版本命名规则:

MajorVersion.MinorVersion.Revision

即:

主版本号.子版本号.修正版本号

如:

v0.0.1, v1.1.0, 1.7.1

版本号说明:

  • MajorVersion 主版本号: GoFrame 的版本号是从 0 开始的,从 alphabeta 一直到现在的正式版本,主版本号表示一个全新的框架版本,例如:重大的重构、重大的feature改动、重大的不兼容性的变化。
  • MinorVersion 子版本号:发布较大的新 feature 功能,或者较大的重构或者模块变化,或者出现不兼容性改动,会增加子版本号;子版本的发布会伴随着完整的 change log,算是一个较大的版本发布,有仪式感。子版本通常几个月发布一次。
  • Revision 修正版本号:往往是 bug fix,或者增加较小的 feature,较小的功能改进或者模块变化,在保证完整向后兼容的前提下,会增加修正版本号。修正版本会不定时、较高频率进行发布。
  • 当主版本号增加时,子版本号及修正版本号置 0
  • 当子版本号增加时,修正版本号置 0

兼容性保证

GoFrame 承诺每一次修正版本的发布都会保证所有模块完整的向后兼容性,该版本可以随意升级。

由于 GoFrame 框架的发展非常迅速,陆续的新特性和新功能添加、更加完善细致的功能改进和锤炼, 因此子版本的发布不一定能保证所有模块完整的向后兼容性,但任何子版本的发布都会有完整的change log, 通知发布。如果有部分模块的兼容性调整,那么也会伴随着相关的重点标注说明,往往也有升级操作指导。

版本升级方式

Golang 项目开发不推荐直接使用 vendor 的方式,不推荐直接使用框架 master 分支的方式。推荐使用 go modules 的包管理方式,即使用 go.mod 来管理引用包的版本号。

每一次计划版本升级之前,在仓库查看最新的版本号: https://github.com/gogf/gf/v2/releases ,选择一个需要升级的版本号,修改 go.mod 保存后,Goland IDE将会自动下载对应版本号的框架。

如果是升级到最新的框架版本,也可以通过cli工具在项目根目录下执行 gf up -a 进行完整的升级。

使用特定版本

master 分支

master 分支是公测分支,所有的待发布代码先合并到 master 分支,进过一定时间的测试之后会打上 tag 正式发布。一些 issue 在修复完毕之后,开发者急于使用最新版本可以尝试使用 master 分支,更新方式如下:

  1. go get -u github.com/gogf/gf@master

也可以更新到特定的 git reversion

  1. go get -u github.com/gogf/gf@4d3273379022a9518c1dc20ebada612cddeed764

develop 分支

develop 分支是开发分支,所有的开发特性 feature 分支会统一合并到 develop 分支上进行联调测试,没有问题之后再合并到 master 分支。注意, develop 分支不能用于生产环境。贡献者提交的 PR 也统一合并到 develop 分支。更新方式如下:

  1. go get -u github.com/gogf/gf@develop

也可以更新到特定的 git reversion

  1. go get -u github.com/gogf/gf@0e58b6e95ba211fcde27954a68cbf4acadbb6bc9