blob: 9d8a8b9dc312fd7bc3d68c73130a09469cabe103 [file] [log] [blame]
<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=canonical href=https://cn.dubbo.apache.org/zh-cn/contact/committer/release-guide/common/><script>var _hmt=_hmt||[];(function(){var e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?3b78f49ba47181e4d998a66b689446e9",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta http-equiv=Content-Security-Policy content="frame-src *"><meta name=generator content="Hugo 0.122.0"><link rel="shortcut icon" type=image/png href=/imgs/favicon.png><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=manifest href=/manifest.webmanifest><title>通用 Release 流程 | Apache Dubbo</title><meta property="og:title" content="通用 Release 流程">
<meta property="og:description" content="通用 Release 流程"><meta property="og:type" content="article"><meta property="og:url" content="https://cn.dubbo.apache.org/zh-cn/contact/committer/release-guide/common/"><meta property="article:section" content="contact"><meta property="article:modified_time" content="2023-03-01T09:48:32+08:00"><meta itemprop=name content="通用 Release 流程"><meta itemprop=description content="通用 Release 流程"><meta itemprop=dateModified content="2023-03-01T09:48:32+08:00"><meta itemprop=wordCount content="487"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="通用 Release 流程"><meta name=twitter:description content="通用 Release 流程"><script async src="https://www.googletagmanager.com/gtag/js?id=G-NM6FFMT51J"></script><script>var doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date),gtag("config","G-NM6FFMT51J",{anonymize_ip:!1})}</script><link rel=preload href=/scss/main.min.f77e221bcdbe0cadb996060fe82063c747b60c229a1f8bbf0ee529adbadd84fa.css as=style><link href=/scss/main.min.f77e221bcdbe0cadb996060fe82063c747b60c229a1f8bbf0ee529adbadd84fa.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script><meta name=theme-color content="#326ce5"><link rel=stylesheet href=/css/feature-states.css><meta name=description content="通用 Release 流程"><meta property="og:description" content="通用 Release 流程"><meta name=twitter:description content="通用 Release 流程"><meta property="og:url" content="https://cn.dubbo.apache.org/zh-cn/contact/committer/release-guide/common/"><meta property="og:title" content="通用 Release 流程"><meta name=twitter:title content="通用 Release 流程"><meta name=twitter:image:alt content="Apache Dubbo"><meta property="og:type" content="article"><meta name=viewport content="width=device-width"><script async defer src=/js/github-buttons.js></script><link href=/css/community.css rel=stylesheet><link href=/css/contactus.css rel=stylesheet><link href=/css/language.css rel=stylesheet><script src=/js/script.js></script></head><body class="td-page td-documentation"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar" data-auto-burger=primary><a class=navbar-brand href=/zh-cn/><span class=navbar-logo></span><span class="text-uppercase font-weight-bold">Apache Dubbo</span></a><div class="td-navbar-nav-scroll ml-md-auto" id=main_navbar><ul class="navbar-nav mt-2 mt-lg-0"><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/zh-cn/overview/home/><span>文档</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/zh-cn/blog/><span>博客</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/zh-cn/download/><span>版本发布</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class="nav-link active" href=/zh-cn/contact/><span class=active>联系社区</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=https://start.dubbo.apache.org/bootstrap.html target=_blank><span>Initializer</span><i class='fas fa-external-link-alt'></i></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/zh-cn/github/><span>Github</span><i class='fa-brands fa-github'></i></a></li><li class="nav-item dropdown d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdownMenuLink role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class="dropdown-menu dropdown-menu-right" aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li><li class="nav-item dropdown d-lg-block"><div class="nav-item d-none d-lg-block"></div></li></ul></div></nav><section class="header-hero text-white pb-0 light-text"></section></header><div class="container-fluid td-outer"><div class=td-main><div class="row flex-md-nowrap"><div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none"><script>$(function(){$("#td-section-nav a").removeClass("active"),$("#td-section-nav #m-zh-cncontactcommitterrelease-guidecommon").addClass("active"),$("#td-section-nav #m-zh-cncontactcommitterrelease-guidecommon-li span").addClass("td-sidebar-nav-active-item"),$("#td-section-nav #m-zh-cncontactcommitterrelease-guidecommon").parents("li").addClass("active-path"),$("#td-section-nav li.active-path").addClass("show"),$("#td-section-nav li.active-path").children("input").prop("checked",!0),$("#td-section-nav #m-zh-cncontactcommitterrelease-guidecommon-li").siblings("li").addClass("show"),$("#td-section-nav #m-zh-cncontactcommitterrelease-guidecommon-li").children("ul").children("li").addClass("show"),$("#td-sidebar-menu").toggleClass("d-none")})</script><div id=td-sidebar-menu class="td-sidebar__inner d-none"><div id=content-mobile><form class="td-sidebar__search d-flex align-items-center"><button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav foldable-nav" id=td-section-nav><ul class="td-sidebar-nav__section pr-md-3 ul-0"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cncontact-li><ul class=ul-1><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cncontactbooks-li><input type=checkbox id=m-zh-cncontactbooks-check>
<label for=m-zh-cncontactbooks-check><a href=/zh-cn/contact/books/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cncontactbooks><span>书籍与资料</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cncontactcontributor-li><input type=checkbox id=m-zh-cncontactcontributor-check>
<label for=m-zh-cncontactcontributor-check><a href=/zh-cn/contact/contributor/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cncontactcontributor><span>Contributor 指南</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cncontactcontributorbecome-a-committer_dev-li><input type=checkbox id=m-zh-cncontactcontributorbecome-a-committer_dev-check>
<label for=m-zh-cncontactcontributorbecome-a-committer_dev-check><a href=/zh-cn/contact/contributor/become-a-committer_dev/ title="如何成为 Dubbo Committer" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cncontactcontributorbecome-a-committer_dev><span>成为 Committer</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cncontactcontributornew-contributor-guide_dev-li><input type=checkbox id=m-zh-cncontactcontributornew-contributor-guide_dev-check>
<label for=m-zh-cncontactcontributornew-contributor-guide_dev-check><a href=/zh-cn/contact/contributor/new-contributor-guide_dev/ title=新贡献者向导 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cncontactcontributornew-contributor-guide_dev><span>新手向导</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cncontactcontributormailing-list-subscription-guide_dev-li><input type=checkbox id=m-zh-cncontactcontributormailing-list-subscription-guide_dev-check>
<label for=m-zh-cncontactcontributormailing-list-subscription-guide_dev-check><a href=/zh-cn/contact/contributor/mailing-list-subscription-guide_dev/ title=邮件列表订阅向导 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cncontactcontributormailing-list-subscription-guide_dev><span>邮件组向导</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cncontactcontributorreporting-security-issues_dev-li><input type=checkbox id=m-zh-cncontactcontributorreporting-security-issues_dev-check>
<label for=m-zh-cncontactcontributorreporting-security-issues_dev-check><a href=/zh-cn/contact/contributor/reporting-security-issues_dev/ title=报告安全问题 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cncontactcontributorreporting-security-issues_dev><span>反馈漏洞</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cncontactcontributorsoftware-donation-guide_dev-li><input type=checkbox id=m-zh-cncontactcontributorsoftware-donation-guide_dev-check>
<label for=m-zh-cncontactcontributorsoftware-donation-guide_dev-check><a href=/zh-cn/contact/contributor/software-donation-guide_dev/ title=软件捐献向导 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cncontactcontributorsoftware-donation-guide_dev><span>捐献向导</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cncontactcontributordubbo-extension-guide_dev-li><input type=checkbox id=m-zh-cncontactcontributordubbo-extension-guide_dev-check>
<label for=m-zh-cncontactcontributordubbo-extension-guide_dev-check><a href=/zh-cn/contact/contributor/dubbo-extension-guide_dev/ title="扩展 Dubbo 向导" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cncontactcontributordubbo-extension-guide_dev><span>扩展 Dubbo</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cncontactcontributortest-coverage-guide_dev-li><input type=checkbox id=m-zh-cncontactcontributortest-coverage-guide_dev-check>
<label for=m-zh-cncontactcontributortest-coverage-guide_dev-check><a href=/zh-cn/contact/contributor/test-coverage-guide_dev/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cncontactcontributortest-coverage-guide_dev><span>测试覆盖率向导</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cncontactcommitter-li><input type=checkbox id=m-zh-cncontactcommitter-check>
<label for=m-zh-cncontactcommitter-check><a href=/zh-cn/contact/committer/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cncontactcommitter><span>Committer 指南</span></a></label><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cncontactcommitternew-committer-guide_dev-li><input type=checkbox id=m-zh-cncontactcommitternew-committer-guide_dev-check>
<label for=m-zh-cncontactcommitternew-committer-guide_dev-check><a href=/zh-cn/contact/committer/new-committer-guide_dev/ title="Apache 提交者注册流程" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cncontactcommitternew-committer-guide_dev><span>注册流程</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cncontactcommittercla-signing-guide_dev-li><input type=checkbox id=m-zh-cncontactcommittercla-signing-guide_dev-check>
<label for=m-zh-cncontactcommittercla-signing-guide_dev-check><a href=/zh-cn/contact/committer/cla-signing-guide_dev/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cncontactcommittercla-signing-guide_dev><span>CLA 签署向导</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-zh-cncontactcommitterrelease-guide-li><input type=checkbox id=m-zh-cncontactcommitterrelease-guide-check>
<label for=m-zh-cncontactcommitterrelease-guide-check><a href=/zh-cn/contact/committer/release-guide/ title="如何准备 Apache Release" class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-zh-cncontactcommitterrelease-guide><span>发版准备</span></a></label><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cncontactcommitterrelease-guidecommon-li><input type=checkbox id=m-zh-cncontactcommitterrelease-guidecommon-check>
<label for=m-zh-cncontactcommitterrelease-guidecommon-check><a href=/zh-cn/contact/committer/release-guide/common/ title="通用 Release 流程" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cncontactcommitterrelease-guidecommon><span>通用 Release</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cncontactcommitterrelease-guidejava-sdk-li><input type=checkbox id=m-zh-cncontactcommitterrelease-guidejava-sdk-check>
<label for=m-zh-cncontactcommitterrelease-guidejava-sdk-check><a href=/zh-cn/contact/committer/release-guide/java-sdk/ title="Java SDK Release 流程" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cncontactcommitterrelease-guidejava-sdk><span>Java SDK Release</span></a></label></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cncontactcommitterwebsite-guide_dev-li><input type=checkbox id=m-zh-cncontactcommitterwebsite-guide_dev-check>
<label for=m-zh-cncontactcommitterwebsite-guide_dev-check><a href=/zh-cn/contact/committer/website-guide_dev/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cncontactcommitterwebsite-guide_dev><span>网站向导</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cncontactcommitterlabel-an-issue-guide_dev-li><input type=checkbox id=m-zh-cncontactcommitterlabel-an-issue-guide_dev-check>
<label for=m-zh-cncontactcommitterlabel-an-issue-guide_dev-check><a href=/zh-cn/contact/committer/label-an-issue-guide_dev/ title=给问题打标签 class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cncontactcommitterlabel-an-issue-guide_dev><span>问题标签</span></a></label></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-zh-cncontactcommitterapache-dubbo-page_dev-li><input type=checkbox id=m-zh-cncontactcommitterapache-dubbo-page_dev-check>
<label for=m-zh-cncontactcommitterapache-dubbo-page_dev-check><a href=/zh-cn/contact/committer/apache-dubbo-page_dev/ title="官方 Dubbo 主页的维护" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-zh-cncontactcommitterapache-dubbo-page_dev><span>官方主页</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/contact/>联系社区</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/contact/committer/>Committer 指南</a></li><li class=breadcrumb-item><a href=https://cn.dubbo.apache.org/zh-cn/contact/committer/release-guide/>发版准备</a></li><li class="breadcrumb-item active" aria-current=page><a href=https://cn.dubbo.apache.org/zh-cn/contact/committer/release-guide/common/ aria-disabled=true class="btn-link disabled">通用 Release</a></li></ol></nav><div class=td-content><h1>通用 Release 流程</h1><div class=lead>通用 Release 流程</div><header class=article-meta></header><h2 id=理解-apache-发布的内容和流程>理解 Apache 发布的内容和流程</h2><p>总的来说,Source Release 是 Apache 关注的重点,也是发布的必须内容;而 Binary Release 是可选项,Dubbo 可以选择是否发布二进制包到 Apache 仓库或者发布到 Maven 中央仓库。</p><p>请参考以下链接,找到更多关于 ASF 的发布指南:</p><ul><li><a href=http://www.apache.org/dev/release-publishing>Apache Release Guide</a></li><li><a href=http://www.apache.org/dev/release.html>Apache Release Policy</a></li><li><a href=http://www.apache.org/dev/publishing-maven-artifacts.html>Maven Release Info</a></li></ul><h2 id=发布流程>发布流程</h2><h3 id=1-准备分支>1. 准备分支</h3><p>从主干分支拉取新分支作为发布分支,如现在要发布 <code>${release_version}</code> 版本,则从开发分支拉出新分支 <code>${release_version}-release</code>,此后<code>${release_version}</code> Release Candidates 涉及的修改及打标签等都在<code>${release_version}-release</code>分支进行,最终发布完成后合入主干分支。</p><p>例:如 Java SDK 需要发布 <code>3.0.10</code> 版本,从 <code>3.0</code> 分支拉出新分支 <code>3.0.10-release</code>,并在此分支提交从 Snapshot 替换为 <code>3.0.10</code> 版本号的 commit。</p><h3 id=2-github-打标签并发布-pre-release-状态>2. Github 打标签并发布 Pre Release 状态</h3><p>在对应 GitHub 仓库中基于 <code>${release_version}-release</code> 分支,打标签 <code>${release_version}-release</code>,填写 Release Note 并发布 Pre Release 状态。(<strong>不允许在投票流程正式通过前把 Release 状态置为正式发布状态</strong></p><p>注:打完标签之后此分支不允许再提交任何 commit,需要保证分支中最后一个 commit 就是标签的 commit 和投票中的 commit。</p><h3 id=3-预发布二进制包可选>3. 预发布二进制包(可选)</h3><p>通过构建工具推送二进制包到托管平台,如 Java SDK 发布到 Maven 仓库,状态为 Staging。</p><p>注:如果托管平台不支持预发布功能,则需要在投票正式通过后再发布。</p><h3 id=4-构建-source-release-文件>4. 构建 Source Release 文件</h3><p>将源码使用 zip 格式进行打包,使用个人 gpg 证书进行签名得到 asc 文件以及使用 shasum 工具生成 sha512 文件。</p><p>例:如 Java SDK 发布 <code>3.0.10</code> 版本,需要构建 <code>apache-dubbo-3.0.10-src.zip</code><code>apache-dubbo-3.0.10-src.zip.asc</code><code>apache-dubbo-3.0.10-src.zip.sha512</code> 三个文件。</p><h3 id=5-提交-source-release-文件到-apache-svn-仓库>5. 提交 Source Release 文件到 Apache SVN 仓库</h3><p>将 Source Release 文件推送到 <code>https://dist.apache.org/repos/dist/dev/dubbo/</code> 仓库中,文件存储到 <code>https://dist.apache.org/repos/dist/dev/dubbo/${component_name}/${release_version}/</code> 目录下。(需要 Committer 权限才能推送)</p><h3 id=6-发送投票邮件>6. 发送投票邮件</h3><p>使用 Apache 邮箱发送投票邮件,投票邮件的标题为:<code>[VOTE] Release ${component_name} ${release_version} RC1</code>,邮件内容需要包含以下内容:</p><ul><li>Source Release 的链接</li><li>二进制包预发布的链接(如有)</li><li>GitHub Tag 标签</li><li>最后一个 Commit 的 Hash</li><li>Release Note 链接</li><li>Source Release 使用的签名文件</li></ul><p>以上的 Source Release、Tag、Hash、Release Note 必须完全对应</p><p>例:如 Java SDK 发布 <code>3.0.10</code> 版本,发送的邮件如下</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>Project: [VOTE] Release Apache Dubbo 3.0.10 RC1
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>Hello Community,
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>This is a call for vote to release Apache Dubbo version 3.0.10
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>The release candidates:
</span></span><span style=display:flex><span>https://dist.apache.org/repos/dist/dev/dubbo/dubbo/3.0.10/
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>The staging repo:
</span></span><span style=display:flex><span>https://repository.apache.org/content/repositories/orgapachedubbo-1216/
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>Git tag for the release:
</span></span><span style=display:flex><span>https://github.com/apache/dubbo/tree/dubbo-3.0.10
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>Hash for the release tag:
</span></span><span style=display:flex><span>e7894ca374e966a1d807e34b2744f276b843f39f
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>Release Notes:
</span></span><span style=display:flex><span>https://github.com/apache/dubbo/releases/tag/dubbo-3.0.10
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>The artifacts have been signed with Key 2B249EDD, which can be
</span></span><span style=display:flex><span>found in the keys file:
</span></span><span style=display:flex><span>https://dist.apache.org/repos/dist/dev/dubbo/KEYS
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>The vote will be open for at least 72 hours or until the necessary number of
</span></span><span style=display:flex><span>votes are reached.
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>Please vote accordingly:
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>[ ] +1 approve
</span></span><span style=display:flex><span>[ ] +0 no opinion
</span></span><span style=display:flex><span>[ ] -1 disapprove with the reason
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>Thanks,
</span></span><span style=display:flex><span>The Apache Dubbo Team
</span></span></code></pre></div><h3 id=7-pmc-检查版本信息并进行投票>7. PMC 检查版本信息,并进行投票</h3><p>详细的检查列表请参考官方的 <a href=https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist>check list</a></p><h3 id=8-投票通过发布投票结果>8. 投票通过,发布投票结果</h3><p>在至少等待 72 小时且至少 3 位 PMC 投 +1 approve 票之后,可以发送邮件宣布投票结果。
投票结果邮件的标题为:<code>[RESULT] [VOTE] Release ${component_name} ${release_version} RC1</code>,邮件内容需要包含投票的 PMC 信息和投票的 thread。
(可以通过 <a href=https://lists.apache.org/list.html?dev@dubbo.apache.org>https://lists.apache.org/list.html?dev@dubbo.apache.org</a> 找到)</p><p>例:如 Java SDK 发布 <code>2.7.16</code> 版本,发送的邮件如下</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>Project: [RESULT] [VOTE] Release Apache Dubbo 2.7.16 RC1
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>Hello Dubbo Community,
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>The release vote finished, We’ve received
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>+1 binding, Jun Liu
</span></span><span style=display:flex><span>+1 binding, Laurence
</span></span><span style=display:flex><span>+1 binding, Hao Guo
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>The vote and result thread:
</span></span><span style=display:flex><span>https://lists.apache.org/thread/o4hk0b0rok78kw7ftqh0ly49wg8whgps
</span></span><span style=display:flex><span>The vote passed. I am working on the further release process, thanks.
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>Best regards,
</span></span><span style=display:flex><span>The Apache Dubbo Team
</span></span></code></pre></div><h3 id=9-github-标记正式-release>9. Github 标记正式 Release</h3><p>在 GitHub 上正式把前面第 2 步打的标签更新为正式发布状态。</p><h3 id=10-合并-release-分支回主干>10. 合并 Release 分支回主干</h3><p><code>${release_version}-release</code> 合并回开发主干,并更新最新 snapshot 版本号。(<code>${release_version}-release</code> 可以不保留)</p><h3 id=11-移动-source-release-到-release-仓库重要>11. 移动 Source Release 到 release 仓库(重要)</h3><p><code>https://dist.apache.org/repos/dist/dev/dubbo/</code> 仓库中存储的 Source Release 文件移动到 <code>https://dist.apache.org/repos/dist/release/dubbo/</code> 仓库中。(仅 PMC 有权限)
同时删除之前的 Source Release 文件。(会被自动存放在 Archive 仓库)</p><h3 id=12-正式发布二进制包如有>12. 正式发布二进制包(如有)</h3><p>将前面第 3 步发布的预发布状态的二进制包更新为正式发布状态。</p><h3 id=13-更新-dubbo-website-文档>13. 更新 Dubbo Website 文档</h3><p>更新最新的 Source Release 等信息到 <code>dubbo-website</code> 对应文件中,至少包括 Source Release 的下载方式和二进制包的引用方式(如有),同时将历史的发布的链接更新到 archive 的域名下。</p><h3 id=14-发布正式发布结果通知>14. 发布正式发布结果通知</h3><p>投票结果邮件的标题为:<code>[Announce] Release ${component_name} ${release_version} released</code></p><p>注:最好等二进制包发布正式同步生效后发布此邮件。</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>Project: [Announce] Apache Dubbo 3.0.9 released
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>Hello Dubbo Community,
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>I am glad to announce that Apache Dubbo 3.0.9 was released.
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>You can check detailed release notes here:
</span></span><span style=display:flex><span>https://github.com/apache/dubbo/releases/tag/dubbo-3.0.9
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>If you have any questions using this version, please send mail to here or
</span></span><span style=display:flex><span>report the issue &lt;https://github.com/apache/dubbo/issues&gt; on Github.
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>Best regards,
</span></span><span style=display:flex><span>Dubbo Team
</span></span></code></pre></div><div id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button class="btn btn-primary mb-4 feedback--yes"></button>
<button class="btn btn-primary mb-4 feedback--no"></button></div><script>const yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disabled"),no.disabled=!0,no.classList.add("feedback--button__disabled")};yes.addEventListener("click",()=>{sendFeedback(1),disableButtons(),document.querySelector(".feedback--response").classList.remove("feedback--response__hidden")}),no.addEventListener("click",()=>{sendFeedback(0),disableButtons(),document.querySelector(".feedback--response").classList.remove("feedback--response__hidden")})</script><br><div class="text-muted mt-5 pt-3 border-top">最后修改 March 1, 2023: <a href=https://github.com/apache/dubbo-website/commit/f2070b3fdd1b7b200db0f8f2a50fb09d7c398a64>Add /zh/ docs aliases (#2336) (f2070b3fdd1)</a></div></div></main><div class="d-none d-xl-block col-xl-2 td-toc d-print-none"><div class="td-page-meta ml-2 pb-1 pt-2 mb-0"><a href=https://github.com/apache/dubbo-website/edit/master/content/zh-cn/contact/committer/release-guide/common.md target=_blank><i class="fa fa-edit fa-fw"></i> 编辑此页</a>
<a href="https://github.com/apache/dubbo-website/new/master/content/zh-cn/contact/committer/release-guide/common.md?filename=change-me.md&amp;value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22+section+at+the+top+of+the+page+%28weight+controls+how+its+ordered+amongst+other+pages+in+the+same+directory%3B+lowest+number+first%29.%0A%2A+Add+a+good+commit+message+at+the+bottom+of+the+page+%28%3C80+characters%3B+use+the+extended+description+field+for+more+detail%29.%0A%2A+Create+a+new+branch+so+you+can+preview+your+new+file+and+request+a+review+via+Pull+Request.%0A" target=_blank><i class="fa fa-edit fa-fw"></i> 创建子页面</a>
<a href="https://github.com/apache/dubbo-website/issues/new?title=%e9%80%9a%e7%94%a8%20Release%20%e6%b5%81%e7%a8%8b" target=_blank><i class="fab fa-github fa-fw"></i> 登记问题</a>
<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas fa-tasks fa-fw"></i> 提交项目问题</a></div><nav id=TableOfContents><ul><li><a href=#理解-apache-发布的内容和流程>理解 Apache 发布的内容和流程</a></li><li><a href=#发布流程>发布流程</a><ul><li><a href=#1-准备分支>1. 准备分支</a></li><li><a href=#2-github-打标签并发布-pre-release-状态>2. Github 打标签并发布 Pre Release 状态</a></li><li><a href=#3-预发布二进制包可选>3. 预发布二进制包(可选)</a></li><li><a href=#4-构建-source-release-文件>4. 构建 Source Release 文件</a></li><li><a href=#5-提交-source-release-文件到-apache-svn-仓库>5. 提交 Source Release 文件到 Apache SVN 仓库</a></li><li><a href=#6-发送投票邮件>6. 发送投票邮件</a></li><li><a href=#7-pmc-检查版本信息并进行投票>7. PMC 检查版本信息,并进行投票</a></li><li><a href=#8-投票通过发布投票结果>8. 投票通过,发布投票结果</a></li><li><a href=#9-github-标记正式-release>9. Github 标记正式 Release</a></li><li><a href=#10-合并-release-分支回主干>10. 合并 Release 分支回主干</a></li><li><a href=#11-移动-source-release-到-release-仓库重要>11. 移动 Source Release 到 release 仓库(重要)</a></li><li><a href=#12-正式发布二进制包如有>12. 正式发布二进制包(如有)</a></li><li><a href=#13-更新-dubbo-website-文档>13. 更新 Dubbo Website 文档</a></li><li><a href=#14-发布正式发布结果通知>14. 发布正式发布结果通知</a></li></ul></li></ul></nav></div></div></div></div><footer class="bg-dark py-5 row d-print-none footer-margin-0"><div class="container-fluid mx-sm-5"><div class=row><div class="col-6 col-sm-4 text-xs-center order-sm-2"><ul class="list-inline mb-0"><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title="Dubbo mailing list archive" aria-label="Dubbo mailing list archive"><a class=text-white target=_blank rel="noopener noreferrer" href=https://lists.apache.org/list.html?dev@dubbo.apache.org><i class="fa fa-envelope"></i></a></li></ul></div><div class="col-6 col-sm-4 text-right text-xs-center order-sm-3"><ul class="list-inline mb-0"><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=GitHub aria-label=GitHub><a class=text-white target=_blank rel="noopener noreferrer" href=https://github.com/apache/dubbo><i class="fab fa-github"></i></a></li><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title="Subscribe to mailing list" aria-label="Subscribe to mailing list"><a class=text-white target=_blank rel="noopener noreferrer" href=mailto:dev-subscribe@dubbo.apache.org><i class="fa fa-envelope"></i></a></li></ul></div><div class="col-12 col-sm-4 text-center py-2 order-sm-2"><small class=text-white>&copy; 2024 The Apache Software Foundation. Apache and the Apache feather logo are trademarks of The Apache Software Foundation. 保留所有权利</small></div></div></div></footer><div class="row pt-2 pb-2 footer-margin-0"><div class="container-fluid mx-sm-5"><div class=text-center id=my-footer><img alt=apache_logo src=/imgs/apache_logo.png><ul><li><a href=https://www.apache.org>Foundation</a></li><li><a href=https://www.apache.org/licenses/>License</a></li><li><a href=https://dubbo.apache.org/en/overview/notices/>Security</a></li><li><a href=https://www.apache.org/events/current-event>Events</a></li><li><a href=https://www.apache.org/foundation/sponsorship.html>Sponsorship</a></li><li><a href=https://privacy.apache.org/policies/privacy-policy-public.html>Privacy</a></li><li><a href=https://www.apache.org/foundation/thanks.html>Thanks</a></li></ul></div></div></div><script src=/js/popper.min.js integrity=sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49 crossorigin=anonymous></script><script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script><script src=/js/main.min.b075178d232d3b0039b3cb6af2fc2e9d90071820167a60f4eea3a79169975ee8.js integrity="sha256-sHUXjSMtOwA5s8tq8vwunZAHGCAWemD07qOnkWmXXug=" crossorigin=anonymous></script><script async src=https://widget.kapa.ai/kapa-widget.bundle.js data-website-id=d763c4f2-f871-400b-aeca-d986c4af73c2 data-project-name="Apache Dubbo" data-project-color=#E8442E data-button-text="Ask AI" data-search-mode-enabled=true data-modal-open-on-command-k=true data-modal-disclaimer="The AI supports multiple languages, but it may not be accessible in China due to recaptcha, a proxy is required." data-project-logo=https://pbs.twimg.com/profile_images/1011849068283191302/FJbH5vbF_400x400.jpg data-modal-example-questions="What is Apache Dubbo?,How to run Apache Dubbo?" data-button-position-top data-button-position-right=20px data-button-position-bottom=200px data-button-position-left></script><script>(function(e,t,n,s){e[s]=e[s]||[];var a=t.getElementsByTagName(n)[0],i=t.createElement(n);i.async=!0,i.id="beacon-aplus",i.setAttribute("exparams","userid=&aplus&sidx=aplusSidex&ckx=aplusCkx"),i.src="//g.alicdn.com/alilog/mlog/aplus_v2.js",i.crossorigin="anonymous",a.parentNode.insertBefore(i,a)})(window,document,"script","aplus_queue"),function(e){var t=e.createElement("script");t.type="text/javascript",t.async=!0,t.src="//g.alicdn.com/aes/??tracker/3.3.4/index.js,tracker-plugin-pv/3.0.5/index.js,tracker-plugin-event/3.0.0/index.js,tracker-plugin-autolog/3.0.3/index.js,tracker-plugin-survey/3.0.3/index.js,tracker-plugin-jserror/3.0.3/index.js,tracker-plugin-resourceError/3.0.3/index.js",t.onload=function(){window.AES_CONFIG=window.AES_CONFIG||{env:"prod"},window.aes=new AES({pid:"zN245h",user_type:6}),window.AESPluginAutologConfig={exposure:"auto"},window.AEMPluginInstances=[aes.use(AESPluginPV,window.AESPluginPVConfig||{enableHistory:!0}),aes.use(AESPluginEvent,window.AESPluginEventConfig||{}),aes.use(AESPluginSurvey,window.AESPluginEventConfig||{}),aes.use(AESPluginAutolog,window.AESPluginAutologConfig||{}),aes.use(AESPluginJSError,window.AESPluginJSError||{}),aes.use(AESPluginResourceError,window.AESPluginResourceError||{})]},setTimeout(function(){e.getElementsByTagName("body")[0].appendChild(t)},800)}(document)</script></body></html>