如何完成一次Apache的版本发布
总的来说,源版本是街头流氓关注的重点,也是发布的必须内容;而二进制发布是可选项,杜博可以选择是否发布二进制包到街头流氓仓库或者发布到专家中央仓库。有一个空数组,可以扩展权限。publisher 4096/28681 CB 12018-04-26 # 28681 CB 1就是keyiduid[ultimate]liujunliujun@apache.org. 从主干分支拉取新分支作为发布分支,如现在要发布2.6.4版本,则从2.6.x拉出新分支2.6.4-release,此后2.6.4 Release Candidates涉及的修改及打标签等都在2.6.4-release分支进行,最终发布完成后合入主干分支。首先,在2.6.4-release分支验证maven组件打包、source源码打包、签名等是否都正常工作。$mvncleaninstall-Papache-release$mvndeploy#将snapshot包推送到maven中央仓库,处于staging状态。添加public key到KEYS文件。KEYS主要是让参与投票的人在本地导入,用来校验sign的正确性
理解街头流氓发布的内容和流程
总的来说,源版本是街头流氓关注的重点,也是发布的必须内容;而二进制发布是可选项,杜博可以选择是否发布二进制包到街头流氓仓库或者发布到专家中央仓库。
请参考以下链接,找到更多关于格式的发布指南:
阿帕奇发布指南
阿帕奇发布政策
马文发布信息
本地构建环境准备
主要包括签名工具、Maven仓库认证相关准备
安装GPG,参见
https://www.gnupg.org/download/index.html
如雨衣操作系统
$ brewerinstallgpg
$gpg -版本#检查版本,应该为2.x
用每加仑格令数(每加仑谷物)生成钥匙
$ gpg 2-full-gen-keygpg(GNupg)2。0 .12;版权所有(三)2009版权所有软件基金会有限公司
这个免费软件:你可以下载和分发。
有一个空数组,可以扩展权限。
请选择您想要的密钥类型:
(1)RSAnDrsa(默认)
(2)DSAandElgamal
(3)每日生活津贴(仅限签署)
(4)RSA(仅签名)
你的选举?一介于1024和4096位之间。
你想要什么?(2048)4096请求的密钥大小是4096位
请指定keyshaudevalid。0=密钥dones notexpire
n=key expirestandardys
nw=keyexpiresinnweeks
nm=密钥过期树脂月数
ny=key experiesnyarskeyisvalidfor?(0)
KeydoesnotexpireatallIsthiscorrect正确正确吗?(y/N)y
gnupgneedstoconstructauseridoindify您的密钥。实名: robertburrelldonkin
电子邮件地址: rdonkin @ Apache。org comment : code signing key you selected this user-id : \’ RobertBurrellDonkin(code signing key)RDO nkin @ Apache .组织变革名称、评论、邮件还是投诉?O
您需要一个密码保护密码。#填入密码,以后打包过程中会经常用到
查看密钥自我
$ gpg-list-key
publisher 4096/28681 CB 12018-04-26 # 28681 CB 1就是keyiduid[ultimate]liujun(apache-dubbo)liujun@apache.org
subrsa4096/D3D6984B2018-04-26#通过模块发送密钥到keyserver $ gpg-keyserverpgpkeys . MIT . edu-send-key 28681 CB 1 #其中,pgpkeys.mit.edu为随意挑选的密钥服务器,密钥服务器列表为:https://sks-keyservers.net/status/,因为相互之间是自动同步的,选任意一个都可以。
如果有多个公钥,设置默认钥匙
~/.gnupg/gpg.conf
#如果您的密码超过一个,您可能希望#取消对以下选项的注释并键入您的首选密钥id .默认值-密钥key28681CB1
根据提示,生成key
设置Apache中央仓库
...apache.snapshots.httpsapache.releases.https...gpg.passphrase
Dubbo项目的父pom为apache pom
org.apacheapache19
添加以下内容到.m2/settings.xml
所有密码请使用[maven-encryption-plugin](http://maven.apache.org/guides/mini/guide-encryption.html)加密后再填入
打包&上传
从主干分支拉取新分支作为发布分支,如现在要发布2.6.4版本,则从2.6.x拉出新分支2.6.4-release,此后2.6.4 Release Candidates涉及的修改及打标签等都在2.6.4-release分支进行,最终发布完成后合入主干分支。
首先,在2.6.4-release分支验证maven组件打包、source源码打包、签名等是否都正常工作
$mvncleaninstall-Papache-release$mvndeploy#将snapshot包推送到maven中央仓库,处于staging状态
用maven-release-plugin发布
$mvnrelease:clean$mvnrelease:prepare-Papache-release-Darguments=\"-DskipTests\"-DautoVersionSubmodules=true-Dusername=YOURGITHUBID#执行完成后:1.生成source.zip包;2.打出tag,并推送到github仓库;3.分支版本自动升级为2.6.4-SNAPSHOT,并将修改推送到github仓库
执行release:perform,做正式发布
$mvn-Preleaserelease:perform-Darguments=\"-DskipTests\"-DautoVersionSubmodules=true-Dusername=YOURGITHUBID#所有artifacts发布到配置的远程maven中央仓库,处于staging状态
先用dryRun验证是否ok
$mvnrelease:prepare-Papache-release-Darguments=\"-DskipTests\"-DautoVersionSubmodules=true-Dusername=YOURGITHUBID-DdryRun=true
验证通过后,执行release:prepare
准备Apache发布
准备svn本机环境(Apache使用svn托管项目的发布内容)
将dubbo checkout到本地目录
$svncheckouthttps://dist.apache.org/repos/dist/dev/incubator/dubbo#假定本地目录为~/apache/incubator/dubbo
当前发布版本为2.6.4,新建目录
$cd~/apache/incubator/dubbo#dubbosvn根目录$mkdir2.6.4
添加public key到KEYS文件。KEYS主要是让参与投票的人在本地导入,用来校验sign的正确性
拷贝Dubbo根目录下的source.zip包到svn本地仓库dubbo/2.6.4
生成sha512签名
$shasum-a512dubbo-incubating-2.6.4-source-release.zip>>dubbo-incubating-2.6.4-source-release.zip.sha512
如果有binary release要同时发布
#到dubbo项目distribution的module下,执行:$mvninstall#target目录下,拷贝bin-release.zip以及bin-release.zip.asc到svn本地仓库dubbo/2.6.4#参考第6步,生成sha512签名
提交到Apache svn
$svnstatus$svncommit-m\'preparefor2.6.4RC1\'
验证Release Candidates
证环节包含但不限于以下内容和形式:
Check signatures and hashes are good
sha512dubbo-incubating-${release_version}-bin-release.zip.sha512sha512dubbo-incubating-${release_version}-source-release.zip.sha512
unzip dubbo-incubating-${release_version}-source-release.zip to the default directory and check the following:
Directory with
incubator
in name
dubbo-incubating-${release_version}-bin-release
DISCLAIMER file exists
LICENSE and NOTICE file exists and contents are good
All files and no binary files exist
All files has standard ASF License header
Can compile from source
All unit tests can pass
mvncleantest#Thiswillrunallunittests#youcanalsoopenratandstyleplugintocheckifeveryfilemeetsrequirements.mvncleaninstall-Drat.skip=false-Dcheckstyle.skip=false
Release candidates match with corresponding tags, you can find tag link and hash in vote email.
进入投票
投票分两个阶段:
Dubbo社区投票,发起投票邮件到dev@dubbo.apache.org。在社区开发者Review,并统计到3个同意发版的binding票后,即可进入下一阶段的投票。
Apache社区投票,发起投票邮件到general@apache.org。在Apache PMC Review,并统计到3个统一发版的binding票后,即可进行正式发布。
邮件模板:
HelloDubboCommunity,ThisisacallforvotetoreleaseApacheDubbo(Incubating)version2.6.4.Thereleasecandidates:https://dist.apache.org/repos/dist/dev/incubator/dubbo/2.6.4/Gittagfortherelease:https://github.com/apache/incubator-dubbo/tree/dubbo-2.6.4Hashforthereleasetag:afab04c53edab38d52275d2a198ea1aff7a4f41eReleaseNotes:https://github.com/apache/incubator-dubbo/releases/tag/untagged-4775c0a22c60fca55118TheartifactshavebeensignedwithKey:28681CB1,whichcanbefoundinthekeysfile:https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYSThevotewillbeopenforatleast72hoursoruntilnecessarynumberofvotesarereached.Pleasevoteaccordingly:[]+1approve[]+0noopinion[]-1disapprovewiththereasonThanks,TheApacheDubbo(Incubating)Team
正式发布
提交https://dist.apache.org/repos/dist/dev/incubator/dubbo目录下的发布包到https://dist.apache.org/repos/dist/release/incubator/dubbo/,完成正式发布。
发邮件到dev@dubbo.apache.org和general@apache.org,通知社区发布完成。
《如何完成一次Apache的版本发布》来自互联网同行内容,若有侵权,请联系我们删除!