Skip to content

Commit 2ea915e

Browse files
committed
Release: 2.0.0
1 parent 8b4943c commit 2ea915e

File tree

3 files changed

+101
-1
lines changed

3 files changed

+101
-1
lines changed

DevSOP.md

+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
# 开发指引
2+
3+
------
4+
5+
## 发版规约
6+
7+
1. 拉取 master 最新代码: `git pull`
8+
2. 从 master 检出 `[版本分支]`: `git checkout -b v${x.y.z}`
9+
3. 批量修改父子所有 `pom.xml` 中的 `<version>`: 版本号 `+1`, 末尾增加 `-SNAPSHOT` 快照标识
10+
4. push `[版本分支]` 到 Github
11+
5.`[版本分支]` 检出 `[特性分支]`: `git checkout -b feature-${xxx}`
12+
6.`[特性分支]` 修改代码(可以随时提交到 Github)
13+
7. 每完成一个需求修改后,在 Github 合并 `[特性分支]``[版本分支]`,此时会触发流水线自动 deploy `SNAPSHOT` 版本到 Maven 中央仓库
14+
8. 重复步骤 4 ~ 5, 直到当前版本的需求开发完成
15+
9. **宣布封版**,在 Github [删除](../../branches)所有 `[特性分支]`
16+
10. 在本地切换到 `[版本分支]`: `git checkout v${x.y.z}`
17+
11. 拉取 `[版本分支]` 最新代码: `git pull`
18+
12. 批量修改父子所有 `pom.xml` 中的 `<version>`: 移除末尾的 `-SNAPSHOT` 快照标识
19+
13. 提交 `[版本分支]` 到 Github,此时会触发流水线自动生成 Javadoc
20+
14. 等待 Javadoc 发布完成(Github Actions 会推送变更到 `[版本分支]`
21+
15. 在 Github 合并 `[版本分支]` 到 master
22+
16. 在 Github 对 `[版本分支]` 发起 `Releases` 动作(会强制新建 `Tag`,名称和 `[版本分支]` 一致),此时会触发流水线自动 deploy `Release` 版本到 Maven 中央仓库
23+
17. 重复步骤 1, 进入下一轮迭代
24+
25+
> 批量修改版本号,可以借助 [`bin/set_version.sh[ps1]`](bin/set_version.sh) 脚本
26+
27+
28+
<details>
29+
<summary><b>分支示意图</b></summary>
30+
<br/>
31+
32+
```mermaid
33+
graph LR
34+
master((master)) -- checkout --> version[vX.Y.Z<br/>版本分支]
35+
version -- checkout --> featureA(feature-AAA<br/>特性分支 A)
36+
version -- checkout --> featureN(feature-...<br/>特性分支 N)
37+
featureA -- merge:SNAPSHOT --> version
38+
featureN -- merge:SNAPSHOT --> version
39+
version -- merge:Javadoc --> master
40+
version -- archive:RELEASE --> tag((tag<br/>X.Y.Z))
41+
```
42+
43+
</details>
44+
45+
<details>
46+
<summary><b>发版流程示意图</b></summary>
47+
<br/>
48+
49+
```mermaid
50+
sequenceDiagram
51+
participant Local
52+
participant Github
53+
participant Github Action
54+
participant Sonatype
55+
participant Github Pages
56+
Github->>Local: 拉取 master 最新代码<br/>git pull
57+
Local->>Local: 检出 [版本分支]<br/>git checkout -b v${x.y.z}
58+
Local->>Local: 批量修改父子所有 pom.xml 的版本
59+
Note left of Local: 版本号 +1<br/>末尾增加 -SNAPSHOT
60+
Local->>Github: 提交 [版本分支]<br/>git push
61+
Local->>Local: 检出 [特性分支]<br/>git checkout -b feature-${xxx}
62+
loop 当前版本需求开发
63+
Local->>Local: 修改代码
64+
Local->>Github: 提交修改<br/>git push
65+
Github->>Github: 合并 [特性分支] 到 [版本分支]
66+
Github->>Github Action: 触发流水线
67+
Github Action->>Sonatype: 发布 SNAPSHOT 版本
68+
end
69+
Note left of Github: 封版
70+
Github->>Github: 删除所有 [特性分支]
71+
Local->>Local: 切换到 [版本分支]<br/>git checkout v${x.y.z}
72+
Local->>Local: 拉取 [版本分支] 最新代码<br/>git pull
73+
Local->>Local: 批量修改父子所有 pom.xml 的版本
74+
Note left of Local: 移除末尾的 -SNAPSHOT
75+
Local->>Github: 提交 [版本分支]<br/>git push
76+
loop 等待 Javadoc 发布
77+
Github->>Github Action: 触发流水线
78+
Github Action->>Github Pages: 发布 Javadoc
79+
end
80+
Github->>Github: 合并 [版本分支] 到 master
81+
Github->>Github: 对 [版本分支] 发起 Releases
82+
Note left of Github: 强制新建 Tag<br/>名称和 [版本分支] 一致
83+
Github->>Github Action: 触发流水线
84+
Github Action->>Sonatype: 发布 Release 版本
85+
```
86+
87+
</details>
88+
89+
90+
## 发布位置
91+
92+
[pom.xml](./pom.xml)`<distributionManagement>` 指定版本的发布目标位置是 [sonatype nexus](https://s01.oss.sonatype.org/)
93+
94+
检索关键字 `exp-blog` 可检索到本工程的[所有依赖构件](https://s01.oss.sonatype.org/#nexus-search;quick~exp-blog)
95+
96+
![](./imgs/01.png)
97+
98+
> 用在 [sonatype jira](https://issues.sonatype.org) 注册的账号即可登录 [sonatype nexus](https://s01.oss.sonatype.org/)
99+
100+

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
<dependency>
7171
<groupId>com.exp-blog</groupId>
7272
<artifactId>auto-upgrader</artifactId>
73-
<version>2.0.0-SNAPSHOT</version>
73+
<version>${LATEST_VERSION}</version>
7474
</dependency>
7575
```
7676

src/main/resources/.verinfo

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)