blob: 6924ba79457c6e887167e826c541628f9f6117ff [file] [log] [blame]
<!doctype html>
<html lang="zh-CN" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-community docs-doc-id-how-to-release">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.3.1">
<title data-rh="true">如何发布版本 | Apache InLong</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://inlong.apache.org/zh-CN/community/how-to-release"><meta data-rh="true" name="docusaurus_locale" content="zh-CN"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-community-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-community-current"><meta data-rh="true" property="og:title" content="如何发布版本 | Apache InLong"><meta data-rh="true" name="description" content="本文主要介绍如何按照 Apache 的流程发布 Apache InLong 版本,相关说明和工具将遵守 ASF 的版本发布指南及 ASF 的发布政策,具体详情请参考以下链接:"><meta data-rh="true" property="og:description" content="本文主要介绍如何按照 Apache 的流程发布 Apache InLong 版本,相关说明和工具将遵守 ASF 的版本发布指南及 ASF 的发布政策,具体详情请参考以下链接:"><link data-rh="true" rel="icon" href="/zh-CN/img/logo.svg"><link data-rh="true" rel="canonical" href="https://inlong.apache.org/zh-CN/community/how-to-release"><link data-rh="true" rel="alternate" href="https://inlong.apache.org/community/how-to-release" hreflang="en"><link data-rh="true" rel="alternate" href="https://inlong.apache.org/zh-CN/community/how-to-release" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://inlong.apache.org/community/how-to-release" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://YUW9QEL53E-dsn.algolia.net" crossorigin="anonymous"><link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache InLong RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache InLong Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Apache InLong" href="/zh-CN/opensearch.xml">
<script src="https://www.apachecon.com/event-images/snippet.js" async></script><link rel="stylesheet" href="/zh-CN/assets/css/styles.09deabdb.css">
<link rel="preload" href="/zh-CN/assets/js/runtime~main.933f32cb.js" as="script">
<link rel="preload" href="/zh-CN/assets/js/main.32851df5.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,e("light"))}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="主导航" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh-CN/"><div class="navbar__logo"><img src="/zh-CN/img/logo.svg" alt="Apache" class="themedImage_ToTc themedImage--light_HNdA"><img src="/zh-CN/img/logo.svg" alt="Apache" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">Apache InLong</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a class="navbar__link" aria-haspopup="true" aria-expanded="false" role="button" href="/zh-CN/docs/introduction">文档</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/zh-CN/docs/next/introduction">Next</a></li><li><a class="dropdown__link" href="/zh-CN/docs/introduction">1.11.0</a></li><li><a class="dropdown__link" href="/zh-CN/docs/1.10.0/introduction">1.10.0</a></li><li><a class="dropdown__link" href="/zh-CN/docs/1.9.0/introduction">1.9.0</a></li><li><a class="dropdown__link" href="/zh-CN/docs/1.8.0/introduction">1.8.0</a></li><li><a class="dropdown__link" href="/zh-CN/versions/">All versions</a></li></ul></div><a class="navbar__item navbar__link" href="/zh-CN/downloads">下载</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/zh-CN/community/how-to-contribute">社区</a><a class="navbar__item navbar__link" href="/zh-CN/blog">博客</a><a class="navbar__item navbar__link" href="/zh-CN/team">团队</a><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Apache</a><ul class="dropdown__menu"><li><a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer" class="dropdown__link">Apache Software Foundation</a></li><li><a href="https://www.apache.org/licenses/" target="_blank" rel="noopener noreferrer" class="dropdown__link">证书</a></li><li><a href="https://www.apache.org/events/current-event" target="_blank" rel="noopener noreferrer" class="dropdown__link">事件</a></li><li><a href="https://www.apache.org/security/" target="_blank" rel="noopener noreferrer" class="dropdown__link">安全</a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">赞助</a></li><li><a href="https://www.apache.org/foundation/policies/privacy.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Privacy</a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">致谢</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>简体中文</a><ul class="dropdown__menu"><li><a href="/community/how-to-release" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English</a></li><li><a href="/zh-CN/community/how-to-release" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh-CN">简体中文</a></li></ul></div><a href="https://github.com/apache/inlong" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为浅色模式)" aria-label="切换浅色/暗黑模式(当前为浅色模式)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="搜索"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">搜索</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh-CN/community/how-to-contribute">如何参与贡献</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh-CN/community/how-to-commit">如何提交代码</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh-CN/community/how-to-subscribe">如何订阅邮件列表</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh-CN/community/how-to-become-a-committer">如何成为 Committer</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh-CN/community/how-to-vote-a-committer-pmc">如何投票 Committer 或 PMC 成员</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/zh-CN/community/how-to-release">如何发布版本</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh-CN/community/how-to-verify">如何验证发布版本</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh-CN/community/how-to-report-issues">如何报告问题</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/zh-CN/community/how-to-maintain-3rd-party-dependencies">如何维护项目里的第三方依赖</a></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh-CN/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">如何发布版本</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>如何发布版本</h1></header><p>本文主要介绍如何按照 Apache 的流程发布 Apache InLong 版本,相关说明和工具将遵守 ASF 的版本发布指南及 ASF 的发布政策,具体详情请参考以下链接:</p><ul><li><a href="https://infra.apache.org/release-publishing.html" target="_blank" rel="noopener noreferrer">ASF 版本创建过程</a></li><li><a href="https://www.apache.org/legal/release-policy.html" target="_blank" rel="noopener noreferrer">ASF 发布政策</a></li></ul><div class="theme-admonition theme-admonition-caution alert alert--warning admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>警告</div><div class="admonitionContent_S0QG"><p>对于二进制发布包,需要检查新版本里是否包含了 x类 的第三方依赖包,包括直接引用和间接引用部分,如果包含了,需要去掉后再发布版本</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="添加-gpg-key">添加 GPG Key<a href="#添加-gpg-key" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><div class="theme-admonition theme-admonition-note alert alert--secondary admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>备注</div><div class="admonitionContent_S0QG"><p>本章节主要参考 <a href="https://infra.apache.org/openpgp.html" target="_blank" rel="noopener noreferrer">Cryptography with OpenPGP</a><strong> 仅对第一次发版本的 Release Manager 需要。</strong></p></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="安装-gpg">安装 GPG<a href="#安装-gpg" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p>详细的安装文档可以参考<a href="https://www.gnupg.org/download/index.html" target="_blank" rel="noopener noreferrer">官网</a>, Mac OS 环境配置如下</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ brew </span><span class="token function" style="color:rgb(80, 250, 123)">install</span><span class="token plain"> gpg</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 检查版本,应该为2.x</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ gpg --version </span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="生成-gpg-key">生成 GPG Key<a href="#生成-gpg-key" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><div class="theme-admonition theme-admonition-caution alert alert--warning admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>警告</div><div class="admonitionContent_S0QG"><ul><li>输入名字时最好与 Apache 中登记的 Full name 保持一致</li><li>使用的邮箱必须是 Apache 邮箱,建议先 gpg -k 查看所有 Key ID, 如果列表中第一个不是 apache 邮箱的 Key ID ,需要在后续步骤中指定 Key ID 来进行加密解密操作,参数为 -u</li><li>名字最好使用拼音或者英文,否则会出现乱码</li></ul></div></div><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ gpg --full-gen-key</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">gpg </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">GnuPG</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token number">2.2</span><span class="token plain">.20</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> Copyright </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">C</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token number">2020</span><span class="token plain"> Free Software Foundation, Inc.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This is </span><span class="token function" style="color:rgb(80, 250, 123)">free</span><span class="token plain"> software: you are </span><span class="token function" style="color:rgb(80, 250, 123)">free</span><span class="token plain"> to change and redistribute it.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">There is NO WARRANTY, to the extent permitted by law.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Please </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">select</span><span class="token plain"> what kind of key you want:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> RSA and RSA </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">default</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> DSA and Elgamal</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> DSA </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">sign only</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">4</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> RSA </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">sign only</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">14</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> Existing key from card</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Your selection? </span><span class="token number">1</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># 这里输入1</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">RSA keys may be between </span><span class="token number">1024</span><span class="token plain"> and </span><span class="token number">4096</span><span class="token plain"> bits long.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">What keysize </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">do</span><span class="token plain"> you want? </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">2048</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token number">4096</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># 这里输入4096</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Requested keysize is </span><span class="token number">4096</span><span class="token plain"> bits </span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Please specify how long the key should be valid.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> key does not expire</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">n</span><span class="token operator">&gt;</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> key expires </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> n days</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">n</span><span class="token operator">&gt;</span><span class="token plain">w </span><span class="token operator">=</span><span class="token plain"> key expires </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> n weeks</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">n</span><span class="token operator">&gt;</span><span class="token plain">m </span><span class="token operator">=</span><span class="token plain"> key expires </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> n months</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">n</span><span class="token operator">&gt;</span><span class="token plain">y </span><span class="token operator">=</span><span class="token plain"> key expires </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> n years</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Key is valid for? </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># 这里输入0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Key does not expire at all</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Is this correct? </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">y/N</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> y </span><span class="token comment" style="color:rgb(98, 114, 164)"># 这里输入y</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">GnuPG needs to construct a user ID to identify your key.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Real name: Guangxu Cheng </span><span class="token comment" style="color:rgb(98, 114, 164)"># 这里输入你的名字</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Email address: gxcheng@apache.org </span><span class="token comment" style="color:rgb(98, 114, 164)"># 这里输入你的邮箱</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Comment: </span><span class="token comment" style="color:rgb(98, 114, 164)"># 这里输入一些注释,可以为空</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">You selected this </span><span class="token environment constant" style="color:rgb(189, 147, 249)">USER</span><span class="token plain">-ID:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;Guangxu Cheng &lt;gxcheng@apache.org&gt;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Change </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">N</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">ame, </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">C</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">omment, </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">E</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">mail or </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">O</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">kay/</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">Q</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">uit? O </span><span class="token comment" style="color:rgb(98, 114, 164)">#这里输入O</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">We need to generate a lot of random bytes. It is a good idea to perform</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">some other action </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">type on the keyboard, move the mouse, utilize the</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">disks</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> during the prime generation</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> this gives the random number</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">generator a better chance to gain enough entropy.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">We need to generate a lot of random bytes. It is a good idea to perform</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">some other action </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">type on the keyboard, move the mouse, utilize the</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">disks</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> during the prime generation</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> this gives the random number</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">generator a better chance to gain enough entropy.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 此时会弹出对话框,要求你为这个gpg输入密钥。</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">┌──────────────────────────────────────────────────────┐</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ Please enter this passphrase │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ Passphrase: _______________________________ │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ │</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">&lt;</span><span class="token plain">OK</span><span class="token operator">&gt;</span><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token plain">Cancel</span><span class="token operator">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">└──────────────────────────────────────────────────────┘</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">#输入秘钥完毕后就创建好了。并会输出以下信息</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">gpg: key 2DD587E7B10F3B1F marked as ultimately trusted</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">gpg: revocation certificate stored as </span><span class="token string" style="color:rgb(255, 121, 198)">&#x27;/Users/cheng/.gnupg/openpgp-revocs.d/41936314E25F402D5F7D73152DD587E7B10F3B1F.rev&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">public and secret key created and signed.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">pub rsa4096 </span><span class="token number">2020</span><span class="token plain">-05-19 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">SC</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> 41936314E25F402D5F7D73152DD587E7B10F3B1F</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">uid Guangxu Cheng </span><span class="token operator">&lt;</span><span class="token plain">gxcheng@apache.org</span><span class="token operator">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">sub rsa4096 </span><span class="token number">2020</span><span class="token plain">-05-19 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">E</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="上传生成的-gpg-key-到公共服务器">上传生成的 GPG Key 到公共服务器<a href="#上传生成的-gpg-key-到公共服务器" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ gpg --list-keys </span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">-------------------------------</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">pub rsa4096 </span><span class="token number">2020</span><span class="token plain">-05-18 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">SC</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> 5931F8CFD04B37A325E4465D8C0D31C4149B3A87</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">uid </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">ultimate</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> Guangxu Cheng </span><span class="token operator">&lt;</span><span class="token plain">gxcheng@apache.org</span><span class="token operator">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">sub rsa4096 </span><span class="token number">2020</span><span class="token plain">-05-18 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">E</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 通过 key id 发送 public key 到 keyserver</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ gpg --keyserver pgpkeys.mit.edu --send-key </span><span class="token operator">&lt;</span><span class="token plain">key id</span><span class="token operator">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 其中,keyserver 列表为:https://sks-keyservers.net/status/,为相互之间是自动同步的,选任意一个都可以。</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="查看-gpg-key-是否创建成功">查看 GPG Key 是否创建成功<a href="#查看-gpg-key-是否创建成功" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p>可通过 <a href="https://pgpkeys.mit.edu/" target="_blank" rel="noopener noreferrer">https://pgpkeys.mit.edu/</a> 地址,可使用邮箱查询是否上传成功(大概需要一分钟)。</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="上传-gpg-公钥到-svn-仓库">上传 GPG 公钥到 SVN 仓库<a href="#上传-gpg-公钥到-svn-仓库" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><div class="theme-admonition theme-admonition-note alert alert--secondary admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>备注</div><div class="admonitionContent_S0QG"><p>dev 分支的 svn 仓库:<a href="https://dist.apache.org/repos/dist/dev/inlong" target="_blank" rel="noopener noreferrer">https://dist.apache.org/repos/dist/dev/inlong</a></p><p>release 分支的 SVN 仓库:<a href="https://dist.apache.org/repos/dist/release/inlong" target="_blank" rel="noopener noreferrer">https://dist.apache.org/repos/dist/release/inlong</a></p><p>请确认 <code>dev</code><code>release</code> 分支中增加的 <code>key</code> 相同</p></div></div><ul><li>在 dev 分支中添加公钥到 KEYS,用于发布 RC 版本</li></ul><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)"># 这个步骤比较慢,会把所有版本都拷贝下来,如果网断了,用 svn cleanup 删掉锁,重新执行一下,会断点续传</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ svn co https://dist.apache.org/repos/dist/dev/inlong /tmp/inlong-dist-dev</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">cd</span><span class="token plain"> inlong-dist-dev</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 追加你生成的 KEY 到文件 KEYS 中, 追加后最好检查一下是否正确</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">gpg --list-sigs </span><span class="token operator">&lt;</span><span class="token plain">key id</span><span class="token operator">&gt;</span><span class="token plain"> </span><span class="token operator">&amp;&amp;</span><span class="token plain"> gpg --armor --export </span><span class="token operator">&lt;</span><span class="token plain">key id</span><span class="token operator">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">&gt;&gt;</span><span class="token plain"> KEYS </span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 接下来会要求输入用户名和密码,就用你的 apache 的用户名和密码</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ svn ci -m </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;add gpg key for YOUR_NAME&quot;</span><span class="token plain"> </span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><ul><li>在 release 分支中添加公钥到 KEYS,用于发布正式版本</li></ul><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ svn co https://dist.apache.org/repos/dist/release/inlong /tmp/inlong-dist-release</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">cd</span><span class="token plain"> inlong-dist-release</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">gpg --list-sigs </span><span class="token operator">&lt;</span><span class="token plain">key id</span><span class="token operator">&gt;</span><span class="token plain"> </span><span class="token operator">&amp;&amp;</span><span class="token plain"> gpg --armor --export </span><span class="token operator">&lt;</span><span class="token plain">key id</span><span class="token operator">&gt;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">&gt;&gt;</span><span class="token plain"> KEYS </span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ svn ci -m </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;add gpg key for YOUR_NAME&quot;</span><span class="token plain"> </span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="上传-gpg-公钥到-github-账户">上传 GPG 公钥到 Github 账户<a href="#上传-gpg-公钥到-github-账户" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p>进入 <a href="https://github.com/settings/keys" target="_blank" rel="noopener noreferrer">https://github.com/settings/keys</a> ,添加 GPG KEYS。如果添加后你发现这个密钥后面写了&quot;未经过验证&quot; (unverified),需要将 GPG key 中邮箱绑定到你的 <a href="https://github.com/settings/emails" target="_blank" rel="noopener noreferrer">GitHub 账户</a></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="maven-设置">Maven 设置<a href="#maven-设置" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><p>在 maven 的配置文件 <code>settings.xml</code> 中,用正确的值替换下面的 <code>&lt;servers&gt;/&lt;profiles&gt;</code> 项:</p><div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">servers</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- Apache Repo Settings --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">server</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">id</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">apache.snapshots.https</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">id</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">username</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">{你的 Apache 用户 ID}</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">username</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">password</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">{你的 Apache 用户密码}</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">password</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">server</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">server</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">id</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">apache.releases.https</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">id</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">username</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">{你的 Apache 用户 ID}</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">username</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">password</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">{你的 Apache 用户密码}</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">password</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">server</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">servers</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">profiles</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">profile</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">id</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">apache-release</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">id</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">properties</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">gpg.keyname</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">{你的 GPG Key ID}</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">gpg.keyname</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">gpg.useagent</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">true</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">gpg.useagent</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;</span><span class="token tag" style="color:rgb(255, 121, 198)">gpg.passphrase</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain">{你的 GPG Key 密码}</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">gpg.passphrase</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">properties</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">profile</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&lt;/</span><span class="token tag" style="color:rgb(255, 121, 198)">profiles</span><span class="token tag punctuation" style="color:rgb(248, 248, 242)">&gt;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="编译打包">编译打包<a href="#编译打包" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><p>以下 <code>release_version</code> 为即将发布的版本号,比如 1.6.0;<code>rc_version</code> 为 Releae Candidate,比如 RC0,RC1...;<code>KEY_ID</code> 是你创建的 GPG Key ID.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="准备分支">准备分支<a href="#准备分支" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><ul><li><p>修改 POM 版本号和 CHANGES.md,从<strong>版本主分支</strong>创建待<strong>发布分支</strong>。比如从 <code>branch-1.6</code> 创建 <code>release-1.6.0</code>
<img loading="lazy" src="/zh-CN/assets/images/branch-1532ab6c4eef59264af6b49c358aface.png" width="781" height="408" class="img_ev3q"></p></li><li><p>检查 release 分支代码是否正常,包括编译成功、单元测试全部成功、RAT 检查、Docker 镜像等</p></li></ul><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)"># 切换放到 release 分支</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token function" style="color:rgb(80, 250, 123)">git</span><span class="token plain"> checkout release-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># build 检查</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ mvn clean package -Dmaven.javadoc.skip</span><span class="token operator">=</span><span class="token plain">true</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># RAT 检查</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ mvn apache-rat:check</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># Docker 镜像</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ mvn clean package -DskipTests -Pdocker</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="theme-admonition theme-admonition-caution alert alert--warning admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>警告</div><div class="admonitionContent_S0QG"><p>要确保代码已经检查无误,再进行下一步,包括编译成功、单元测试全部成功,RAT 检查成功等</p></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="创建-tag">创建 tag<a href="#创建-tag" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p>创建一个带签名的 tag:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token assign-left variable" style="color:rgb(189, 147, 249);font-style:italic">git_tag</span><span class="token operator">=</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain">-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${rc_version}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">export</span><span class="token plain"> </span><span class="token assign-left variable" style="color:rgb(189, 147, 249);font-style:italic">GPG_TTY</span><span class="token operator">=</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">`</span><span class="token variable function" style="color:rgb(80, 250, 123);font-style:italic">tty</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">`</span><span class="token plain"> </span><span class="token operator">&amp;&amp;</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">git</span><span class="token plain"> config user.signingkey </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${KEY_ID}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token function" style="color:rgb(80, 250, 123)">git</span><span class="token plain"> tag -s </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$git_tag</span><span class="token plain"> -m </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;Tagging the </span><span class="token string variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token string" style="color:rgb(255, 121, 198)"> first Releae Candidate (Candidates start at zero)&quot;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="打包源码">打包源码<a href="#打包源码" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token function" style="color:rgb(80, 250, 123)">mkdir</span><span class="token plain"> /tmp/apache-inlong-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain">-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${rc_version}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token function" style="color:rgb(80, 250, 123)">git</span><span class="token plain"> archive --format</span><span class="token operator">=</span><span class="token plain">tar.gz --output</span><span class="token operator">=</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;/tmp/apache-inlong-</span><span class="token string variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token string" style="color:rgb(255, 121, 198)">-</span><span class="token string variable" style="color:rgb(189, 147, 249);font-style:italic">${rc_version}</span><span class="token string" style="color:rgb(255, 121, 198)">/apache-inlong-</span><span class="token string variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token string" style="color:rgb(255, 121, 198)">-src.tar.gz&quot;</span><span class="token plain"> --prefix</span><span class="token operator">=</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;apache-inlong-</span><span class="token string variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token string" style="color:rgb(255, 121, 198)">/&quot;</span><span class="token plain"> </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$git_tag</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="上传-tag-到-git-仓库">上传 tag 到 git 仓库<a href="#上传-tag-到-git-仓库" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)"># 在创建 tag 的源码目录执行</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token function" style="color:rgb(80, 250, 123)">git</span><span class="token plain"> push origin release-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token function" style="color:rgb(80, 250, 123)">git</span><span class="token plain"> push origin </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain">-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${rc_version}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="打包二进制包">打包二进制包<a href="#打包二进制包" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)"># 进入源码包目录</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">cd</span><span class="token plain"> /tmp/apache-inlong-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain">-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${rc_version}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 解压源码包</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token function" style="color:rgb(80, 250, 123)">tar</span><span class="token plain"> xzvf apache-inlong-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain">-src.tar.gz</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">cd</span><span class="token plain"> apache-inlong-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 编译</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ mvn compile clean </span><span class="token function" style="color:rgb(80, 250, 123)">install</span><span class="token plain"> package -DskipTests</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 拷贝二进制包拷到源码包目录下,方便下一步对包进行签名</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token function" style="color:rgb(80, 250, 123)">cp</span><span class="token plain"> ./inlong-distribution/target/apache-inlong-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain">-bin.tar.gz /tmp/apache-inlong-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain">-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${rc_version}</span><span class="token plain">/</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="对源码包二进制包进行签名sha512">对源码包/二进制包进行签名/sha512<a href="#对源码包二进制包进行签名sha512" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)"># 进入源码包目录</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">cd</span><span class="token plain"> /tmp/apache-inlong-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain">-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${rc_version}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 计算 SHA512</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> </span><span class="token for-or-select variable" style="color:rgb(189, 147, 249);font-style:italic">i</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> *.tar.gz</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">do</span><span class="token plain"> </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> gpg -u </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${KEY_ID}</span><span class="token plain"> --print-md SHA512 </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$i</span><span class="token plain"> </span><span class="token operator">&gt;</span><span class="token plain"> </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$i</span><span class="token plain">.sha512 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">done</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 计算签名</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> </span><span class="token for-or-select variable" style="color:rgb(189, 147, 249);font-style:italic">i</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> *.tar.gz</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">do</span><span class="token plain"> </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> gpg -u </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${KEY_ID}</span><span class="token plain"> --armor --output </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$i</span><span class="token plain">.asc --detach-sig </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$i</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">done</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="检查生成的签名sha512是否正确">检查生成的签名/sha512是否正确<a href="#检查生成的签名sha512是否正确" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p>具体可以参考:<a href="/zh-CN/community/how-to-verify">验证候选版本</a>,比如验证签名是否正确如下:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> </span><span class="token for-or-select variable" style="color:rgb(189, 147, 249);font-style:italic">i</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> *.tar.gz</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">do</span><span class="token plain"> </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">echo</span><span class="token plain"> </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> gpg -u </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${KEY_ID}</span><span class="token plain"> --verify </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$i</span><span class="token plain">.asc </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">$i</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">;</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">done</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="准备-apache-发布">准备 Apache 发布<a href="#准备-apache-发布" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="发布-jar-包到-apache-nexus-仓库">发布 jar 包到 Apache Nexus 仓库<a href="#发布-jar-包到-apache-nexus-仓库" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)"># 进入源码包目录</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">cd</span><span class="token plain"> /tmp/apache-inlong-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain">-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${rc_version}</span><span class="token plain">/apache-inlong-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 开始上传,确保 settings.xml 为上面步骤已更新的文件</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ mvn -DskipTests deploy -Papache-release -Dmaven.javadoc.skip</span><span class="token operator">=</span><span class="token plain">true</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="上传编译好的文件到-dist">上传编译好的文件到 dist<a href="#上传编译好的文件到-dist" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><ul><li>将 dist 仓库 checkout 到本地目录</li></ul><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)"># 这个步骤可能会比较慢,会把所有版本都考下来,如果网断了,用 svn cleanup 删掉锁,重新执行一下,会断点续传</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ svn co https://dist.apache.org/repos/dist/dev/inlong /tmp/inlong-dist-dev</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><ul><li>添加源码和二进制文件并提交到 SVN 仓库</li></ul><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">cd</span><span class="token plain"> /tmp/inlong-dist-dev</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 创建版本目录</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token function" style="color:rgb(80, 250, 123)">mkdir</span><span class="token plain"> </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain">-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${rc_version}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 将源码包和签名包拷贝到此处</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token function" style="color:rgb(80, 250, 123)">cp</span><span class="token plain"> /tmp/apache-inlong-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain">-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${rc_version}</span><span class="token plain">/*tar.gz* </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain">-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${rc_version}</span><span class="token plain">/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 检查 svn 状态</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ svn status</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 添加到 svn 版本</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ svn </span><span class="token function" style="color:rgb(80, 250, 123)">add</span><span class="token plain"> </span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain">-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${rc_version}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 检查 svn 状态</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ svn status</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># 提交至 svn 远程服务器</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ svn commit -m </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;prepare for </span><span class="token string variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token string" style="color:rgb(255, 121, 198)"> </span><span class="token string variable" style="color:rgb(189, 147, 249);font-style:italic">${rc_version}</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="关闭-apache-staging-仓库">关闭 Apache Staging 仓库<a href="#关闭-apache-staging-仓库" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><ul><li>使用 Apache 账号登录 <a href="http://repository.apache.org" target="_blank" rel="noopener noreferrer">http://repository.apache.org</a></li><li>点击左侧的 Staging repositories</li><li>搜索 InLong 关键字,选择你最近上传的仓库</li><li>点击上方的 Close 按钮,这个过程会进行一系列检查</li><li>检查通过以后, 在下方的 Summary 标签页上出现一个连接,请保存好这个链接,需要放在接下来的投票邮件当中,链接类似 <code>https://repository.apache.org/content/repositories/orgapacheinlong-{staging-id}</code></li></ul><div class="theme-admonition theme-admonition-caution alert alert--warning admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>警告</div><div class="admonitionContent_S0QG"><ul><li>如果 Close 操作失败,请检查失败原因并处理</li><li>如果出现 <code>Signature Validation</code> 错误事件,可能是 <code>keyserver</code> 之间没有同步 <code>key</code>,可以重新上传 <code>key</code><code>keyserver.ubuntu.com</code><code>keys.openpgp.org</code></li></ul></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="apache-inlong-社区投票">Apache InLong 社区投票<a href="#apache-inlong-社区投票" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="发起投票">发起投票<a href="#发起投票" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p>发送邮件到 <code>dev@inlong.apache.org</code>,投票模板为:</p><div class="language-html codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-html codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">标题:[VOTE] Release Apache InLong ${release_version} ${rc_version}</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">内容:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Hello Apache InLong PMC and Community,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> This is a call for a vote to release Apache InLong version ${release_version}-${rc_version}.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> The tag to be voted on is ${release_version}-${rc_version}:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> https://github.com/apache/inlong/tree/${release_version}-${rc_version}</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> The release tarball, signature, and checksums can be found at:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> https://dist.apache.org/repos/dist/dev/inlong/${release_version}-${rc_version}/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Maven artifacts are available in a staging repository at:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> https://repository.apache.org/content/repositories/orgapacheinlong-{staging-id}</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Artifacts were signed with the {YOUR_GPG_KEY_ID} key, which can be found in:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> https://downloads.apache.org/inlong/KEYS</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> ${release_version} includes ~ ${issue_count} bug fixes and improvements done since the last versions, which can be found at:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> https://github.com/apache/inlong/blob/${release_version}-${rc_version}/CHANGES.md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Please download, verify, and test.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> The VOTE will remain open for at least 72 hours.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> [ ] +1 Release this package as Apache InLong ${release_version}</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> [ ] +0</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> [ ] -1 Do not release this package because...</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> To learn more about apache InLong, please see</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> http://inlong.apache.org/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> Checklist for reference:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> [ ] Download links are valid.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> [ ] Checksums and signatures.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> [ ] LICENSE/NOTICE files exist</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> [ ] No unexpected binary files</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> [ ] All source files have ASF headers</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> [ ] Can compile from source</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> [ ] All Tests Passed</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> More detailed checklist, please refer to the following:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> https://inlong.apache.org/community/how-to-verify</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Thanks,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Your InLong Release Manager</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="统计投票结果">统计投票结果<a href="#统计投票结果" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p>发送邮件到 <code>dev@inlong.apache.org</code>,投票模板为:</p><div class="language-html codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-html codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">标题:[RESULT][VOTE] Release Apache InLong ${release_version} ${rc_version}</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">内容:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Hello Apache InLong PMC and Community,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> The vote closes now as 72hr have passed. The vote passed with</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> xx (+1 binding) votes from the PMC,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> xx (+1 non-binding) vote from the rest of the developer community,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> and no further 0 or -1 votes.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> The voting thread: {vote_mail_address}</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> The release is accepted and will be published.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Thank you for your support.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Your InLong Release Manager</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="正式发布">正式发布<a href="#正式发布" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="将源码和二进制包从-svn-的-dev-目录移动到-release-目录">将源码和二进制包从 svn 的 dev 目录移动到 release 目录<a href="#将源码和二进制包从-svn-的-dev-目录移动到-release-目录" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ svn </span><span class="token function" style="color:rgb(80, 250, 123)">mv</span><span class="token plain"> https://dist.apache.org/repos/dist/dev/inlong/</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain">-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${rc_version}</span><span class="token plain"> https://dist.apache.org/repos/dist/release/inlong/</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain"> -m </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;Release </span><span class="token string variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>然后确认 <a href="https://dist.apache.org/repos/dist/dev/inlong/" target="_blank" rel="noopener noreferrer">dev</a> 下的 <code>${release_version}-${rc_version}</code> 目录是否已被删除。</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="在-apache-staging-仓库发布版本">在 Apache Staging 仓库发布版本<a href="#在-apache-staging-仓库发布版本" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><ul><li>使用 Apache 账号登录 <a href="http://repository.apache.org" target="_blank" rel="noopener noreferrer">http://repository.apache.org</a></li><li>点击左侧的 Staging repositories,</li><li>搜索 InLong 关键字,选择你最近上传的仓库,投票邮件中指定的仓库</li><li>点击上方的 <code>Release</code> 按钮,这个过程会进行一系列检查</li></ul><div class="theme-admonition theme-admonition-caution alert alert--warning admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>警告</div><div class="admonitionContent_S0QG"><p>等仓库同步到其他数据源,一般需要24小时</p></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="更新官网文档和下载链接">更新官网文档和下载链接<a href="#更新官网文档和下载链接" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><ul><li><p>更新<a href="https://inlong.apache.org/download/" target="_blank" rel="noopener noreferrer">下载页面</a>的资源链接</p></li><li><p>创建 ${release-version} 对应版本的文档</p></li></ul><h3 class="anchor anchorWithStickyNavbar_LWe7" id="发-announce-邮件主送-devinlongapacheorg抄送-announceapacheorg">发 ANNOUNCE 邮件,主送 <code>dev@inlong.apache.org</code>,抄送 <code>announce@apache.org</code><a href="#发-announce-邮件主送-devinlongapacheorg抄送-announceapacheorg" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><ul><li><p>请确保 Apache Staging 仓库已发布成功</p></li><li><p>登陆 <a href="https://downloads.apache.org/inlong/$%7Brelease-version%7D/" target="_blank" rel="noopener noreferrer">https://downloads.apache.org/inlong/${release-version}/</a> 查看是否有安装包</p></li><li><p>宣布 release 邮件,模板为:</p></li></ul><div class="language-html codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-html codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">标题: [ANNOUNCE] Release Apache InLong ${release_version}</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">内容:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Hi all,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">The Apache InLong community is pleased to announce</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">that Apache InLong ${release_version} has been released!</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Apache InLong is a one-stop integration framework for massive data that provides automatic, secure,</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">distributed, and efficient data publishing and subscription capabilities.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This platform helps you easily build stream-based data applications.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">This release contains a number of new features, bug fixes and</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">improvements compared to the last version released before.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">The notable changes since ${release_version} include:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">1. Feature-1</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">2. Feature-2</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">3. Feature-3</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">...</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Please refer to the change log for the complete list of changes:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">https://github.com/apache/inlong/blob/release-${release_version}/CHANGES.md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Apache InLong website: https://inlong.apache.org/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Download Links: https://inlong.apache.org/download</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">InLong Resources:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">- Issue: https://github.com/apache/inlong/issues</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">- Mailing list: dev@inlong.apache.org</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Thanks</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">On behalf of the Apache InLong community</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="github-官网新增-release-包">GitHub 官网新增 release 包<a href="#github-官网新增-release-包" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><ul><li>进入 <a href="https://github.com/apache/inlong" target="_blank" rel="noopener noreferrer">https://github.com/apache/inlong</a> ,点击右侧 Releases 下 + 号, 然后点击 Draft a new release</li><li>release title 为 ${release_version},上传 <a href="https://downloads.apache.org/inlong/$%7Brelease-version%7D" target="_blank" rel="noopener noreferrer">https://downloads.apache.org/inlong/${release-version}</a> 下的所有文件到上传栏中再发布</li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="发布后">发布后<a href="#发布后" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="清理本地临时文件">清理本地临时文件<a href="#清理本地临时文件" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p>若以上步骤操作成功,说明版本发布顺利,可以清理本地临时文件,进行社区投票。</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token function" style="color:rgb(80, 250, 123)">rm</span><span class="token plain"> -rf /tmp/apache-inlong-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${release_version}</span><span class="token plain">-</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${rc_version}</span><span class="token plain">/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ </span><span class="token function" style="color:rgb(80, 250, 123)">rm</span><span class="token plain"> -rf /tmp/inlong-dist-dev/</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="归档上一个版本的发布包">归档上一个版本的发布包<a href="#归档上一个版本的发布包" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p>删除 <a href="https://dist.apache.org/repos/dist/release/inlong/" target="_blank" rel="noopener noreferrer">release</a> 目录下上一个版本的发布包,这些包会被自动保存在<a href="https://archive.apache.org/dist/inlong/" target="_blank" rel="noopener noreferrer">这里</a></p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)"># last_release_version 为上一个版本号,可以访问 https://dist.apache.org/repos/dist/release/inlong/ 查看,比如 1.3.0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$ svn delete https://dist.apache.org/repos/dist/release/inlong/</span><span class="token variable" style="color:rgb(189, 147, 249);font-style:italic">${last_release_version}</span><span class="token plain"> -m </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;Delete </span><span class="token string variable" style="color:rgb(189, 147, 249);font-style:italic">${last_release_version}</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/inlong-website/edit/master/i18n/zh-CN/how-to-release.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh-CN/community/how-to-vote-a-committer-pmc"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">如何投票 Committer 或 PMC 成员</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh-CN/community/how-to-verify"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">如何验证发布版本</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#添加-gpg-key" class="table-of-contents__link toc-highlight">添加 GPG Key</a><ul><li><a href="#安装-gpg" class="table-of-contents__link toc-highlight">安装 GPG</a></li><li><a href="#生成-gpg-key" class="table-of-contents__link toc-highlight">生成 GPG Key</a></li><li><a href="#上传生成的-gpg-key-到公共服务器" class="table-of-contents__link toc-highlight">上传生成的 GPG Key 到公共服务器</a></li><li><a href="#查看-gpg-key-是否创建成功" class="table-of-contents__link toc-highlight">查看 GPG Key 是否创建成功</a></li><li><a href="#上传-gpg-公钥到-svn-仓库" class="table-of-contents__link toc-highlight">上传 GPG 公钥到 SVN 仓库</a></li><li><a href="#上传-gpg-公钥到-github-账户" class="table-of-contents__link toc-highlight">上传 GPG 公钥到 Github 账户</a></li></ul></li><li><a href="#maven-设置" class="table-of-contents__link toc-highlight">Maven 设置</a></li><li><a href="#编译打包" class="table-of-contents__link toc-highlight">编译打包</a><ul><li><a href="#准备分支" class="table-of-contents__link toc-highlight">准备分支</a></li><li><a href="#创建-tag" class="table-of-contents__link toc-highlight">创建 tag</a></li><li><a href="#打包源码" class="table-of-contents__link toc-highlight">打包源码</a></li><li><a href="#上传-tag-到-git-仓库" class="table-of-contents__link toc-highlight">上传 tag 到 git 仓库</a></li><li><a href="#打包二进制包" class="table-of-contents__link toc-highlight">打包二进制包</a></li><li><a href="#对源码包二进制包进行签名sha512" class="table-of-contents__link toc-highlight">对源码包/二进制包进行签名/sha512</a></li><li><a href="#检查生成的签名sha512是否正确" class="table-of-contents__link toc-highlight">检查生成的签名/sha512是否正确</a></li></ul></li><li><a href="#准备-apache-发布" class="table-of-contents__link toc-highlight">准备 Apache 发布</a><ul><li><a href="#发布-jar-包到-apache-nexus-仓库" class="table-of-contents__link toc-highlight">发布 jar 包到 Apache Nexus 仓库</a></li><li><a href="#上传编译好的文件到-dist" class="table-of-contents__link toc-highlight">上传编译好的文件到 dist</a></li><li><a href="#关闭-apache-staging-仓库" class="table-of-contents__link toc-highlight">关闭 Apache Staging 仓库</a></li></ul></li><li><a href="#apache-inlong-社区投票" class="table-of-contents__link toc-highlight">Apache InLong 社区投票</a><ul><li><a href="#发起投票" class="table-of-contents__link toc-highlight">发起投票</a></li><li><a href="#统计投票结果" class="table-of-contents__link toc-highlight">统计投票结果</a></li></ul></li><li><a href="#正式发布" class="table-of-contents__link toc-highlight">正式发布</a><ul><li><a href="#将源码和二进制包从-svn-的-dev-目录移动到-release-目录" class="table-of-contents__link toc-highlight">将源码和二进制包从 svn 的 dev 目录移动到 release 目录</a></li><li><a href="#在-apache-staging-仓库发布版本" class="table-of-contents__link toc-highlight">在 Apache Staging 仓库发布版本</a></li><li><a href="#更新官网文档和下载链接" class="table-of-contents__link toc-highlight">更新官网文档和下载链接</a></li><li><a href="#发-announce-邮件主送-devinlongapacheorg抄送-announceapacheorg" class="table-of-contents__link toc-highlight">发 ANNOUNCE 邮件,主送 <code>dev@inlong.apache.org</code>,抄送 <code>announce@apache.org</code></a></li><li><a href="#github-官网新增-release-包" class="table-of-contents__link toc-highlight">GitHub 官网新增 release 包</a></li></ul></li><li><a href="#发布后" class="table-of-contents__link toc-highlight">发布后</a><ul><li><a href="#清理本地临时文件" class="table-of-contents__link toc-highlight">清理本地临时文件</a></li><li><a href="#归档上一个版本的发布包" class="table-of-contents__link toc-highlight">归档上一个版本的发布包</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">事件</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.apachecon.com/" target="_blank" rel="noopener noreferrer" class="footer__link-item">ApacheCon<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a class="acevent" data-format="square" data-mode="dark" data-event="random"></a></li></ul></div><div class="col footer__col"><div class="footer__title">社区</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/ApacheInlong" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://inlong.apache.org/img/apache-inlong-wechat.jpg" target="_blank" rel="noopener noreferrer" class="footer__link-item">WeChat<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="mailto:dev@inlong.apache.org" target="_blank" rel="noopener noreferrer" class="footer__link-item">Email</a></li></ul></div><div class="col footer__col"><div class="footer__title">更多</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh-CN/blog">Blog</a></li><li class="footer__item"><a href="https://github.com/apache/inlong" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/zh-CN/img/asf_logo.svg" alt="Apache InLong" class="themedImage_ToTc themedImage--light_HNdA footer__logo"><img src="/zh-CN/img/asf_logo.svg" alt="Apache InLong" class="themedImage_ToTc themedImage--dark_i4oU footer__logo"></div><div class="footer__copyright"><div style="font-family: Avenir-Medium;font-size: 14px;color: #999;">
<div>Copyright © 2020-2024 The Apache Software Foundation. Licensed under the Apache License, Version 2.0.</div>
<div style="margin-top: 20px; padding-top: 20px; border-top: 1px solid #666;line-height: 20px;">The Apache Software Foundation Apache InLong, InLong, Apache, the Apache feather, and the Apache InLong project logo are either registered trademarks or trademarks of the Apache Software Foundation.</div>
</div></div></div></div></footer></div>
<script src="/zh-CN/assets/js/runtime~main.933f32cb.js"></script>
<script src="/zh-CN/assets/js/main.32851df5.js"></script>
</body>
</html>