Skip to content

Commit c4d6364

Browse files
committed
update release doc
1 parent 76e9227 commit c4d6364

File tree

2 files changed

+66
-46
lines changed

2 files changed

+66
-46
lines changed

doc/fluid/dev/releasing_process_cn.md

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,23 @@
11
# PaddlePaddle发行规范
22

3-
PaddlePaddle使用git-flow branching model做分支管理,使用[Semantic Versioning](http://semver.org/)标准表示PaddlePaddle版本号。
3+
PaddlePaddle使用Trunk Based Development,使用[Semantic Versioning](http://semver.org/)标准表示PaddlePaddle版本号。
44

55
PaddlePaddle每次发新的版本,遵循以下流程:
66

77
1.`develop`分支派生出新的分支,分支名为`release/版本号`。例如,`release/0.10.0`
8-
1. 将新分支的版本打上tag,tag为`版本号rc.Patch号`。第一个tag为`0.10.0rc1`,第二个为`0.10.0rc2`,依次类推。
9-
1. 对这个版本的提交,做如下几个操作:
10-
* 使用Regression Test List作为检查列表,测试本次release的正确性。
11-
* 如果失败,记录下所有失败的例子,在这个`release/版本号`分支中,修复所有bug后,Patch号加一,到第二步
12-
* 修改`python/setup.py.in`中的版本信息,并将`istaged`字段设为`True`。
13-
* 将这个版本的python wheel包发布到pypi。
14-
* 更新Docker镜像(参考后面的操作细节)。
15-
1. 第三步完成后,将`release/版本号`分支合入master分支,将master分支的合入commit打上tag,tag为`版本号`。同时再将`master`分支合入`develop`分支。
16-
1. 协同完成Release Note的书写。
8+
2. 将新分支的版本打上tag,tag为`版本号rc.Patch号`。第一个tag为`0.10.0-rc0`
9+
3. 新分支一般不接受新的feature和优化。QA在release分支上进行测试。研发基于最新的develop开发。
10+
4. QA和研发发现的bug,在develop上修复验证后,cherry-pick到release分支。直到release分支相对稳定。
11+
5. 如果有需要,在release分支最新代码上打上新的tag,比如`0.10.0-rc1`,让更多的用户加入测试。重复3-4步。
12+
6. release分支稳定后,打上正式的release tag,比如`0.10.0`
13+
7. 将这个版本的python wheel包发布到pypi。
14+
8. 更新Docker镜像(参考后面的操作细节)。
1715

1816
需要注意的是:
1917

20-
* `release/版本号`分支一旦建立,一般不允许再从`develop`分支合入`release/版本号`。这样保证`release/版本号`分支功能的封闭,方便测试人员测试PaddlePaddle的行为。
21-
*`release/版本号`分支存在的时候,如果有bugfix的行为,需要将bugfix的分支同时merge到`master`, `develop``release/版本号`这三个分支。
18+
* bug修复需要先在develop上进行,然后进入release分支。而不是直接在release分支上开发。
19+
20+
* release分支原则上只接受修复类的修改,不接受新feature。
2221

2322
## 发布wheel包到pypi
2423

@@ -61,24 +60,21 @@ docker push [镜像]:[version]
6160

6261
## PaddlePaddle 分支规范
6362

64-
PaddlePaddle开发过程使用[git-flow](http://nvie.com/posts/a-successful-git-branching-model/)分支规范,并适应github的特性做了一些区别
63+
PaddlePaddle开发过程使用[Trunk Based Development](https://trunkbaseddevelopment.com/) 开发规范
6564

66-
* PaddlePaddle的主版本库遵循[git-flow](http://nvie.com/posts/a-successful-git-branching-model/)分支规范。其中:
67-
* `master`分支为稳定(stable branch)版本分支。每一个`master`分支的版本都是经过单元测试和回归测试的版本。
68-
* `develop`分支为开发(develop branch)版本分支。每一个`develop`分支的版本都经过单元测试,但并没有经过回归测试。
69-
* `release/版本号`分支为每一次Release时建立的临时分支。在这个阶段的代码正在经历回归测试。
65+
* `develop`分支为开发(develop branch)版本分支。每一个`develop`分支的版本都经过单元测试。并且会经过模型回归测试。
66+
* `release/版本号`分支为每一次Release时建立的临时分支。release分支主要用于测试,bug修复和最终发版。
67+
* `master`分支因为历史原因,已经废弃。
7068

71-
* 其他用户的fork版本库并不需要严格遵守[git-flow](http://nvie.com/posts/a-successful-git-branching-model/)分支规范,但所有fork的版本库的所有分支都相当于特性分支
69+
* 其他开发者fork的feature branch
7270
* 建议,开发者fork的版本库使用`develop`分支同步主版本库的`develop`分支
73-
* 建议,开发者fork的版本库中,再基于`develop`版本fork出自己的功能分支。
74-
* 当功能分支开发完毕后,向PaddlePaddle的主版本库提交`Pull Reuqest`,进而进行代码评审。
75-
* 在评审过程中,开发者修改自己的代码,可以继续在自己的功能分支提交代码。
76-
77-
* BugFix分支也是在开发者自己的fork版本库维护,与功能分支不同的是,BugFix分支需要分别给主版本库的`master``develop`与可能有的`release/版本号`分支,同时提起`Pull Request`
71+
* 建议,开发者fork的版本库中,再基于`develop`版本fork出自己的feature branch。
72+
* 当feature branch开发完毕后,向PaddlePaddle的主版本库提交`Pull Reuqest`,进而进行代码评审。
73+
* 在评审过程中,开发者修改自己的代码,可以继续在自己的feature branch提交代码。
7874

7975
## PaddlePaddle回归测试列表
8076

81-
本列表说明PaddlePaddle发版之前需要测试的功能点。
77+
TODO
8278

8379
### PaddlePaddle Book中所有章节
8480

doc/fluid/dev/releasing_process_en.md

Lines changed: 46 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,23 @@ Each time we release a new PaddlePaddle version, we should follow the below step
1717
* Update the Docker images (see below instructions for detail).
1818
1. After above step, merge `release/[version]` branch to master and push a tag on the master commit,
1919
then merge `master` to `develop`.
20-
1. Update the Release Note.
20+
1. Update the Release Note.
2121

22-
***NOTE:***
22+
1. Create a new release branch from `develop`,named `release/[version]`. E.g.,`release/0.10.0`
23+
2. Create a new tag for the release branch, tag format: `version-rc.Patch`. The first tag is `0.10.0-rc0`
24+
3. New release branch normally doesn't accept new features or optimizations. QA will test on the release branch. Developer should develop based on `develop` branch.
25+
4. If QA or Developer find bugs. They should first fix and verity on `develop` branch. Then cherry-pick to the release branch. Wait until the release branch is stable.
26+
5. If necessary, create a new tag on the relese branch, e.g. `0.10.0-rc1`. Involve more users to try it and repeat step 3-4.
27+
6. After release branch is stable,Create the official release tag,such as `0.10.0`.
28+
7. Release the python wheel package to pypi.
29+
8. Update the docker image (More details below).
30+
31+
NOTE:
32+
33+
* bug fix should happen on `develop` branch, then cherry-pick to relese branch. Avoid developing directly on release branch.
34+
35+
* release normally only accept bug fixes. Don't add new features.
2336

24-
* Do ***NOT*** merge commits from develop branch to release branches to keep the release branch contain
25-
features only for current release, so that we can test on that version.
26-
* If we want to fix bugs on release branches, we must merge the fix to master, develop and release branch.
2737

2838
## Publish Wheel Packages to pypi
2939

@@ -95,28 +105,42 @@ Tags that need to be updated are:
95105
96106
You can then checkout the latest pushed tags at https://hub.docker.com/r/paddlepaddle/paddle/tags/.
97107
108+
## PaddlePaddle 分支规范
109+
110+
PaddlePaddle开发过程使用[Trunk Based Development](https://trunkbaseddevelopment.com/) 开发规范。
111+
112+
* `develop`分支为开发(develop branch)版本分支。每一个`develop`分支的版本都经过单元测试。并且会经过模型回归测试。
113+
* `release/版本号`分支为每一次Release时建立的临时分支。release分支主要用于测试,bug修复和最终发版。
114+
* `master`分支因为历史原因,已经废弃。
115+
116+
* 其他开发者fork的feature branch。
117+
* 建议,开发者fork的版本库使用`develop`分支同步主版本库的`develop`分支
118+
* 建议,开发者fork的版本库中,再基于`develop`版本fork出自己的feature branch。
119+
* 当feature branch开发完毕后,向PaddlePaddle的主版本库提交`Pull Reuqest`,进而进行代码评审。
120+
* 在评审过程中,开发者修改自己的代码,可以继续在自己的feature branch提交代码。
121+
122+
## PaddlePaddle回归测试列表
123+
124+
TODO
125+
98126
## Branching Model
99127
100-
We use [git-flow](http://nvie.com/posts/a-successful-git-branching-model/) as our branching model,
101-
with some modifications:
102-
103-
* `master` branch is the stable branch. Each version on the master branch is tested and guaranteed.
104-
* `develop` branch is for development. Each commit on develop branch has passed CI unit test, but no
105-
regression tests are run.
106-
* `release/[version]` branch is used to publish each release. Latest release version branches have
107-
bugfix only for that version, but no feature updates.
108-
* Developer forks are not required to follow
109-
[git-flow](http://nvie.com/posts/a-successful-git-branching-model/)
110-
branching model, all forks is like a feature branch.
111-
* Advise: developer fork's develop branch is used to sync up with main repo's develop branch.
112-
* Advise: developer use it's fork's develop branch to for new branch to start developing.
113-
* Use that branch on developer's fork to create pull requests and start reviews.
114-
* developer can push new commits to that branch when the pull request is open.
115-
* Bug fixes are also started from developers forked repo. And, bug fixes branch can merge to
116-
`master`, `develop` and `releases`.
128+
PaddlePaddle uses [Trunk Based Development](https://trunkbaseddevelopment.com/) as our branching model.
129+
130+
* `develop` branch is used for development. Each comment to `develop` branc goes through unit tests and model regression tests.
131+
* `release/[version]` branch is used for each release. Release branch is used for tests, bug fix and evetual release.
132+
* `master` branch as been deprecated for historical reasons
133+
134+
* Developer's feature branch。
135+
* Developer's feature branch should sync with upstream `develop` branch.
136+
* Developer's feature branch should be forked from upstream `develop` branch.
137+
* After feature branch is ready, create a `Pull Request` against the Paddle repo and go through code review.
138+
* In the review process, develop modify codes and push to their own feature branch.
117139
118140
## PaddlePaddle Regression Test List
119141
142+
TODO
143+
120144
### All Chapters of PaddlePaddle Book
121145
122146
We need to guarantee that all the chapters of PaddlePaddle Book can run correctly. Including

0 commit comments

Comments
 (0)