Shoulder
欢迎各类型的贡献,不限于优化代码格式
、优化注释/JavaDoc
、修复 BUG
、新增功能
、流程建议
、宣传
。
您的任何贡献将成为 Shoulder Commiter
,对于创建 / 回复 / 提交代码活跃的Commiter
将成为Shoulder Key Person
,共同主导 Shoulder
的演进。
Shoulder
是多个标准的 Spring Boot Starter
项目(Spring官方解释什么是 SpringBootStarter),使用 Maven
作为依赖管理和构建工具,只需要本地安装 Maven 3.6
或更高版本即可正常开发代码和单元测试,无需其它的环境准备工作。
可以参考 工程目录 快速理解 Shoulder
的工程结构。
需要遵循以下步骤:
- 认领 ISSUE,确认代码改动目的
- 获取代码
- 修改代码
- 合并代码
注意:不论您是修复 bug、新增功能或者改进现有功能,在您提交代码之前,请创建 或 评论一个 Issue
,描述您要修复的问题或者要增加、改进的功能。
目的:说明改动背景,避免与他人重复工作,有利于代码合并请求通过。
在创建或评论 Issue 后,点击右上角的Fork
按钮,复制一份主干代码到您的代码仓库。
Fork
后,通过 git clone xx
或者在页面上下载,将代码下载到本地。
拉完分支后,就可以修改代码了。
注意项:
- 代码风格保持一致,如 import顺序、空格、换行、注释等
- 补充单元测试代码
- 确保新修改后内容通过所有单元测试。您可以通过
mvn clean test
或IDEA
触发所有单元测试 - 若为 bug 修复,希望提供新的单元测试来证明以前的代码存在 bug,且新的代码已经解决了这些 bug
- 确保相关文档也被更新,如一些
README.MD
文档
修改好后可以使用 git 提交,以下是几个例子
git commit -am 'feat: 添加xx功能'
git commit -am 'bugfix: 修复xx场景下xxx'
git commit -am 'doc: 修改xxx注释,说明文档'
执行如下命令提交本地修改到您的远程仓库上:
git push origin "branchname"
建议PR前先 Merge 您的目标分支代码,避免代码冲突。
进入您 GitHub
上对应仓库,按右上角的 pull request
按钮。选择目标分支,如 0.8.x
并确认,PR校验 + CodeReview 通过后您的代码就会合入完成并作为Shoulder
的一部分。
同 Spring Boot
,但 1.0.0-RELEASE
之前只有主分支
-
开发分支(开发完毕合并至预发布分支 或 维护分支)
-
新功能分支命名: feature-{issue编号}
-
缺陷修复分支命名: bug-{issue编号}
-
重构分支命名: refactor-{issue编号}
-
改进分支命名: improve-{issue编号}
-
-
预发布分支(单人开发时,开发分支与预发布分支为同一分支) pre-{x.y.z}
-
已发布的版本,维护分支(基于发布分支): {x.y}.x
-
发布 Tag 命名: {x.y.z}
目前该流程由仓库负责人负责
-
发布前(准备)
- 更新依赖版本
- 更新发行版本号
- 本地构建、测试
- CHANGELOG、README 修订或使用工具 (TODO DOC 优化:后续规范commit信息, 根据 commit 自动生成)
-
发布
- 推送到
Maven Central
,提交至代码库(git)并触发 CI flow- 打TAG,推到 github
- 推送到
-
发布后(清理)
- 在社交平台宣布发布一个新版本
- pom.xml更新到下一个开发版本,推到github
- 在web页面上更新版本
- 在GitHub上更新发行说明
- 关闭/创建里程碑、标签。(TODO 后续使用自动化工具如 spring 开源的 label robot)
- 分支清理,删掉里程碑内的无用分支,包括开发分支(如:1.5/dev/lym/feature-1),发布分支
- 在其他频道、社交平台上宣布发行
场景描述:已经发布1.1
,但发现缺陷,需要发布1.1.1
修复版本
- 基于1.1.0分支创建1.1.x的维护分支:maintain/1.1.x,1.1.x版本后续所有维护修改均以该分支为基础开发,停止维护时删除该分支。
- 在
maintain/1.1.x
上将版本修改为1.1.1-SNAPSHOT
,修复缺陷 - 集成测试通过后修改版本为
1.1.1
- 将
1.1.1
的jar发布到maven仓库 - 基于
maintain/1.1.x
分支创建release/1.1.1
分支 - 在
release/1.1.1
上创建tagv1.1.1
- 删除
release/1.1.1
分支
注:
- 当
1.1.1-SNAPSHOT
再出现缺陷时,回到第2步直到7。
IDEA:settings - Editor - Code Style - enable formatter marks in comments
IDEA 可以为我们自动转化:
- 打开设置
File -> Settings -> Editor -> File Encodings
- 勾选
Transparent native-to-ascii conversion