理解Apache发布的内容和流程

总的来说,Source Release是Apache关注的重点,也是发布的必须内容;而Binary Release是可选项,Dubbo可以选择是否发布二进制包到Apache仓库或者发布到Maven中央仓库。

请参考以下链接,找到更多关于ASF的发布指南:

• Apache Release Guide

• Apache Release Policy

• Maven Release Info

本地构建环境准备

主要包括签名工具、Maven仓库认证相关准备

  1. 安装GPG,参见 https://www.gnupg.org/downloa...

如Mac OS

clipboard.png

  1. 用gpg生成key

根据提示,生成key

clipboard.png

查看key id

clipboard.png

如果有多个public key,设置默认key

~/.gnupg/gpg.conf

clipboard.png

  1. 设置Apache中央仓库

Dubbo项目的父pom为apache pom

clipboard.png

添加以下内容到.m2/settings.xml

clipboard.png

clipboard.png

打包&上传

  1. 从主干分支拉取新分支作为发布分支,如现在要发布2.6.4版本,则从2.6.x拉出新分支2.6.4-release,此后2.6.4 Release Candidates涉及的修改及打标签等都在2.6.4-release分支进行,最终发布完成后合入主干分支。
  2. 首先,在2.6.4-release分支验证maven组件打包、source源码打包、签名等是否都正常工作。

clipboard.png

  1. 用maven-release-plugin发布

先用dryRun验证是否ok

clipboard.png

验证通过后,执行release:prepare

clipboard.png

执行release:perform,做正式发布

clipboard.png

准备Apache发布

  1. 准备svn本机环境(Apache使用svn托管项目的发布内容)
  2. 将dubbo checkout到本地目录

clipboard.png

  1. 当前发布版本为2.6.4,新建目录

clipboard.png

  1. 添加public key到KEYS文件。KEYS主要是让参与投票的人在本地导入,用来校验sign的正确性
  2. 拷贝Dubbo根目录下的source.zip包到svn本地仓库dubbo/2.6.4
  3. 生成sha512签名

clipboard.png

  1. 如果有binary release要同时发布

clipboard.png

  1. 提交到Apache svn

clipboard.png

验证Release Candidates

证环节包含但不限于以下内容和形式:

  1. Check signatures and hashes are good

clipboard.png

  1. 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

clipboard.png

• Release candidates match with corresponding tags, you can find tag link and hash in vote email.

进入投票

投票分两个阶段:

  1. Dubbo社区投票,发起投票邮件到dev@dubbo.apache.org。在社区开发者Review,并统计到3个同意发版的binding票后,即可进入下一阶段的投票。
  2. Apache社区投票,发起投票邮件到general@apache.org。在Apache PMC Review,并统计到3个统一发版的binding票后,即可进行正式发布。

邮件模板:

clipboard.png

正式发布

  1. 提交https://dist.apache.org/repos...://dist.apache.org/repos/dist/release/incubator/dubbo/,完成正式发布。
  2. 发邮件到dev@dubbo.apache.org和general@apache.org,通知社区发布完成。

完成Maven Convenient Binary发布(可选)

apache.repository.org nexus仓库的权限已经申请,参见jira。

之前发布到maven仓库的atifacts都处于staging状态,用Apache id登录apache.repository.org,完成发布。

本文作者:中间件小哥

阅读原文

本文为云栖社区原创内容,未经允许不得转载。


阿里云云栖号
27.8k 声望35.7k 粉丝

阿里云官网内容平台