Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

添加版本控制 #15

Open
ReaJason opened this issue Jan 4, 2025 · 0 comments
Open

添加版本控制 #15

ReaJason opened this issue Jan 4, 2025 · 0 comments
Labels
documentation Improvements or additions to documentation

Comments

@ReaJason
Copy link
Owner

ReaJason commented Jan 4, 2025

语义化版本控制

https://semver.org/lang/zh-CN/

版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

主版本号:当你做了不兼容的 API 修改,
次版本号:当你做了向下兼容的功能性新增,
修订号:当你做了向下兼容的问题修正。
先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。

准备第一个版本号取为 1.0.0

  1. bugfix 在 1.0.1
  2. small feature 在 1.1.0
  3. break change 在 2.0.0

版本分为 master 和 dev 两个版本,即两个分支进行分发,master 为稳定版,dev 为开发版

  1. master 版本号就是语义化版本,例如 1.0.0
  2. dev 版本号为 commit hash,例如 90f848d

开发分支

添加新的开发分支取名为 dev,master 分支作为稳定分支,不能直接通过 push 进行代码提交,而应该通过 pull request,以防止 dev 中未完全通过测试的代码提交 push 导致 docker 或分发的 jar 包出现问题。

开发过程变为,新建分支 -> 提交代码 -> 测试通过 -> squash merge into dev -> merge into master

  1. 添加 feature 时,分支命名为 feat/,例如 feat/jetty_agent_shell
  2. 修复 bug 时,分支命名为 fix/,例如 fix/tomcat_filter

发布流程

发布有三个构建物,docker 镜像,generator sdk(后续再支持,需要 downgrade 到 JDK8 以确保高兼容性) 以及 repo release。

当代码合并到 master 之后,确认好 changelog,并提交 changelog 信息以及提交 tag。

  1. 提交 tag 触发 deploy ci
  2. 编译 generator 包并使用 gradle push 到 maven central
  3. 编译 web 以及 boot 包将 boot.jar 上传到 artifact 中
  4. 使用 Dockerfile 将 boot.jar 编译成镜像并上传到 docker hub,分别添加 :latest 以及 :version 两个镜像
  5. 将 changelog 解析成 release info,并将 boot.jar boot-image.tar 提交到 release 中,添加新的 version release。

版本更新

  1. boot ui 需要展示当前的版本号信息,以及 changelog。
  2. boot ui 能接收到版本更新信息以提醒版本更新,dev 接收到 dev 以及 master 的版本信息,master 只能接收到 master 的。
@ReaJason ReaJason added the documentation Improvements or additions to documentation label Jan 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant