title: “ServiceComb发版指南” lang: cn ref: release_guide permalink: /cn/developers/release-guide/ excerpt: “ServiceComb发版指南 介绍如何在Apache发版” last_modified_at: 2018-05-08T09:55:44+08:00 author: Asif Siddiqui tags: [发版] redirect_from:
{% include toc %}
本文向大家介绍如何在Apache上进行ServiceComb项目发版.
ServiceComb Java-Chassis和Saga使用Maven进行版本发布,我们需要在发布前对Maven进行一些配置。
在使用Maven把发行包发布到仓库之前,参考了Maven项目的设定指南。请特别注意加密密码。
<settings> ... <servers> <!-- Per http://maven.apache.org/developers/committer-settings.html --> <!-- To stage a release of some part of Maven --> <server> <id>apache.releases.https</id> <username> <!-- YOUR APACHE LDAP USERNAME --> </username> <password> <!-- YOUR APACHE LDAP PASSWORD --> </password> </server> </servers> ... <profiles> <profile> <id>apache-release</id> <properties> <gpg.useagent>false</gpg.useagent> <gpg.passphrase><!-- YOUR GPG PASSPHRASE --></gpg.passphrase> <test>false</test> </properties> </profile> </profiles> ... </settings>
准备和校验发行包
git clone https://github.com/apache/servicecomb-service-center.git cd servicecomb-service-center gvt restore
在master分支上打上准备发布版本的标签。
运行RAT工具,检查所有源文件头都有合法的ASF声明, 请参考该文档。
运行make_release.sh
脚本,请参考该文档。
上一步将会在根目录下生成发行包。
在Linux与Windows环境下运行前端与service-center。
进行集成测试。
如果以上全部测试都通过了,将发行包分发给同事在不同机器上进行验证。
将标签推送到主仓库。
给发行包签名
从Github下载要发行版本标签的源码包。
生成Linux发行包,Windows发行包和源码包的签名和校验和。
上传发行版到Apache发行开发仓库.
从SVN下载发行包,验证签名和校验。
PMC批准
发送投票邮件至 dev@servicecomb.apache.org, 发起PMC批准.
等待72小时,或者获得3票+1并且没有-1。如果有-1票,修正问题并从第1步重新开始。
通告
上传发行包至Apache发行仓库。
等待24小时,让所有镜像同步。
上传发行页面至ServiceComb网站。
准备和校验发行包
~/.gnupg
中没有GPG密钥文件,则将GPG密钥文件拷贝至~/.gnupg
文件夹。gpg.conf pubring.gpg random_seed secring.gpg trustdb.gpg
更新~/.m2/settings.xml
文件中的GPG密码。
更新~/.m2/settings.xml
文件中的Apache帐户用户名和密码。
克隆java-chassis代码
git clone https://github.com/apache/servicecomb-java-chassis.git
find . -name 'pom.xml'|xargs perl -pi -e 's/1.0.0-m2-SNAPSHOT/1.0.0-m2/g'
在需要release的分支上打上准备发布版本的标签。
运行以下命令
mvn clean deploy -DskipTests -Prelease -Pdistribution -Ppassphrase
如果执行失败,需要解决问题,从步骤7重新开始。
如果步骤7命令执行成功,则所有的jar包都已经成功上传至maven临时仓库。
使用apache帐号登录到Apache Nexus,点击“Staging Repositories”,搜索“servicecomb”,根据时间找到最近的java-chassis相关的记录,close该条记录,得到maven临时仓库的链接,例如:https://repository.apache.org/content/repositories/orgapacheservicecomb-1385
将release分支以及标签分别push至主仓库。
给发行包签名
从临时仓库下载二进制包及签名
例如:https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-bin.zip
https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-bin.zip.asc
从临时仓库下载源码包及签名
例如:https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-src.zip
https://repository.apache.org/content/repositories/orgapacheservicecomb-1385/org/apache/servicecomb/apache-servicecomb-java-chassis-distribution/1.2.0/apache-servicecomb-java-chassis-distribution-1.2.0-src.zip.asc
生成二进制包和源码包的校验和
例如:sha512sum -b apache-servicecomb-java-chassis-distribution-1.2.0-bin.zip > apache-servicecomb-java-chassis-distribution-1.2.0-bin.zi.sha512
sha512sum -b apache-servicecomb-java-chassis-distribution-1.2.0-src.zip > apache-servicecomb-java-chassis-distribution-1.2.0-src.zip.sha512
将步骤11、12、13相关的文件,上传到Apache开发仓库.
SVN命令:
svn co https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-java-chassis cd serviecomb-java-chassis mkdir -p 1.2.0/rc01 cp xxx/* 1.2.0/rc01 svn add 1.2.0/rc01 svn ci 1.2.0/rc01
PMC批准
等待72小时,或者获得3票+1并且没有-1。如果有-1票,修正问题,并删除主仓库的release版本对应的标签,并从第1步重新开始。
通告
将dev的文件移动到release目录中,同时确认已经被存档,同时更新网站上相关链接。
找一下脚本
同时删除Apache开发仓库中的目录
svn rm -r 1.2.0 checkin?
使用apache帐号登录到Apache Nexus,点击“Staging Repositories”,搜索“servicecomb”,选中java-chassis相关的所有记录,点击“Drop”。
使用apache帐号登录到Apache Nexus,点击“Staging Repositories”,搜索“servicecomb”,找到需要发布的java-chassis记录,点击release
等待24小时,让所有镜像同步。
上传发行页面至ServiceComb网站。 fork https://github.com/apache/servicecomb-website/ 1.总版本,url 2.java-chassis的RN和download(url) 3.中文、英文 PR
发送发行通告邮件到dev@servicecomb.apache.org, announce@apache.org。 模板:
准备和校验发行包
git clone https://github.com/apache/servicecomb-saga.git
find . -name 'pom.xml'|xargs perl -pi -e 's/1.0.0-m2-SNAPSHOT/1.0.0-m2/g'
在master分支上打上准备发布版本的标签。
清理repository.apache.org中所有冗余的发行版。
将GPG密钥文件拷贝至文件夹备用。
更新~/.m2/settings.xml
文件中的GPG密钥文件路径和密码.
更新设置内Apache帐户用户名和密码。
运行以下命令。
mvn deploy -DskipTests -Prelease -Pdistribution -Ppassphrase
上述命令执行成功,所有的jar包都成功上传至临时仓库后,运行门槛测试以验证基本功能。
将临时仓库共享给多人,在不同的机器和环境上进行验证。
如果验证全部通过,将标签提交至主仓库。
清理Apache临时仓库。
给发行包签名
从临时仓库下载二进制包和源码包。
生成二进制包和源码包的签名和校验和。
上传发行包到Apache发行开发仓库. .
从SVN下载发行包,验证签名和校验。
PMC批准
发送投票邮件至 dev@servicecomb.apache.org, 发起PMC批准.
等待72小时,或者获得3票+1并且没有-1。如果有-1票,修正问题并从第1步重新开始。
通告
上传发行包至Apache发行仓库。
等待24小时,让所有镜像同步。
上传发行页面至ServiceComb网站。
注意 整个发行过程通常需要2周时间,如果PMC全部都一次性通过。因此请提前准备发行活动。