Skip to content

How to release CarrierNativeSdk

chenyu edited this page Apr 15, 2019 · 2 revisions

本文案描述Elastos.NET.Carrier.Native.Sdk发布版本的流程。

一、下载SDK仓库

下载全新SDK仓库用于发版:

$ git clone [email protected]:elastos/Elastos.NET.Carrier.Native.SDK.git

二、切换到发布版本的分支

现在的发版分支为release-v5.2,命令如下:

$ git checkout release-v5.2

三、创建工作分支

基于release-v5.2创建工作分支fea-newrelease,命令如下:

$ git checkout -b fea-newrelease

四、cherry-pick 合并commit

通过cherry-pick 合并master上的多个commit到工作分支fea-newrelease上。

1、查看master的log信息

$ git log master --oneline -5

(显示简单的log信息,若想要具体的信息,需用git log)。例如:

6fa261d (origin/master, origin/HEAD, master) Fix compilation erros for windows to export static libraries
a7c57d2 Export static libraries on iOS, and static and dynamic libraries on other platforms
7e47787 Update cygwin to 3.0.6-1. (#218)
c6ea5d4 modify including the head files about dependency libcrystal (#216)
2f6adc7 fix @loader_path value for run elatests on MacOS (#214) (#215)

2、查看工作分支的log信息

再查看fea-newrelease上的log信息,命令如下:

$ git log --oneline -5

例如:

$ 5b6a151 (HEAD -> fea-newrelease, tag: release-v5.2.3, origin/release-v5.2, release-v5.2) fix @loader_path value for run elatests on MacOS (#214)
cc488fc Modify ela_get_version(). (#212)
b6aa775 Update cygwin for windows platforms
975055e Check portforwarding option in stream channel to open/close portfrowarding. (#210)
9c1c607 fix cross compiling environment (#209)

3、寻找上一版本发版节点

对比master和release-v5.2的log对比,找出上一个版本发版节点(如上例信息可知上一版本节点为2f6adc7),从该节点往上找到需要合入的commit id,通过cherry-pick逐个合并commit。例如:

$ git cherry-pick  c6ea5d4
$ git cherry-pick  7e47787
$ git cherry-pick  a7c57d2
$ git cherry-pick  6fa261d

当执行完cherry-pick以后,将会生成一个新的提交;这个新的提交的哈希值和原来的不同,但标识名是一样。如果顺利,就会正常提交;如果在cherry-pick的过程中出现了冲突,就跟普通的冲突一样,手工解决,然后通过git add,git commit产生新的提交。

4、修改 CHANGELOG.MD

修改根目录下的 CHANGELOG.MD,添加本次发版信息,随后对该文件进行提交。

5、提交所有修改

提交所有需要合入的代码后,通过git push上传代码。

6、Pull Request

进入github,在fea-newrelease分支上pull request。等待系统编译通过后将新代码合入release-v5.2分支中。

7、发布版本

确保在release-v5.2分支中,选择draft a new release,填写版本信息,发版。