| <!doctype html><html lang=en-US dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-0.12 docs-doc-page docs-doc-id-community/how_to_release" data-has-hydrated=false><head><meta charset=UTF-8><meta name=generator content="Docusaurus v3.10.1"><title data-rh=true>How to release | Apache Fory™</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"/><meta data-rh=true property=og:url content=https://fory.apache.org/docs/0.12/community/how_to_release /><meta data-rh=true property=og:locale content=en_US /><meta data-rh=true property=og:locale:alternate content=zh_CN /><meta data-rh=true name=docusaurus_locale content=en-US /><meta data-rh=true name=docsearch:language content=en-US /><meta data-rh=true http-equiv=Content-Security-Policy content="frame-src 'self' https://ghbtns.com/;"/><meta data-rh=true property=og:image content=https://fory.apache.org/img/logo.png /><meta data-rh=true property=og:image:width content=1500 /><meta data-rh=true property=og:image:height content=1500 /><meta data-rh=true name=twitter:card content=summary_large_image /><meta data-rh=true name=twitter:image content=https://fory.apache.org/img/logo.png /><meta data-rh=true name=docusaurus_version content=0.12 /><meta data-rh=true name=docusaurus_tag content=docs-default-0.12 /><meta data-rh=true name=docsearch:version content=0.12 /><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-0.12 /><meta data-rh=true property=og:title content="How to release | Apache Fory™"/><meta data-rh=true name=description content="This document mainly introduces how the release manager releases a new version of Apache Fory™."/><meta data-rh=true property=og:description content="This document mainly introduces how the release manager releases a new version of Apache Fory™."/><link data-rh=true rel=icon href=/img/favicon.ico /><link data-rh=true rel=canonical href=https://fory.apache.org/docs/0.12/community/how_to_release /><link data-rh=true rel=alternate href=https://fory.apache.org/docs/0.12/community/how_to_release hreflang=en-US /><link data-rh=true rel=alternate href=https://fory.apache.org/zh-CN/docs/0.12/community/how_to_release hreflang=zh-CN /><link data-rh=true rel=alternate href=https://fory.apache.org/docs/0.12/community/how_to_release hreflang=x-default /><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://fory.apache.org/docs/0.12/community/how_to_release","name":"How to release","position":1}]}</script><link rel=alternate type=application/rss+xml href=/blog/rss.xml title="Apache Fory™ RSS Feed"><link rel=alternate type=application/atom+xml href=/blog/atom.xml title="Apache Fory™ Atom Feed"><script type=text/javascript>"fury.apache.org"===window.location.host&&(window.location.href="https://fory.apache.org"),function(){for(var o=window.location.pathname,a=["guide","introduction","start"],n=0;n<a.length;n++){var t=a[n],i=RegExp("^((?:/[a-z]{2}-[A-Z]{2})?/docs(?:/(?:next|[0-9]+.[0-9]+))?)/docs/"+t+"(/.*)?$"),c=o.match(i);if(c){var r=c[1]+"/"+t+(c[2]||"");window.location.replace(r+window.location.search+window.location.hash);return}}}()</script><link rel=stylesheet href=/assets/css/styles.3a1edaa1.css /><script src=/assets/js/runtime~main.605b11b1.js defer></script><script src=/assets/js/main.283fea4b.js defer></script></head><body><svg style="display: none;"><defs> |
| <symbol id=theme-svg-external-link viewBox="0 0 24 24"><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"/></symbol> |
| </defs></svg> |
| <script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</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=Main class="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" 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"/></svg></button><a class=navbar__brand href=/><div class=navbar__logo><img src=/img/fory-logo-light.png alt="Apache Fory™ Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"/><img src=/img/fory-logo-dark.png alt="Apache Fory™ Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"/></div><b class="navbar__title text--truncate"></b></a><a class="navbar__item navbar__link" href=/docs/0.12/introduction/overview>Docs</a><a class="navbar__item navbar__link" href=/docs/0.12/specification/xlang_serialization_spec>Specification</a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/docs/0.12/community/>Community</a><a class="navbar__item navbar__link" href=/user>Users</a><a class="navbar__item navbar__link" href=/download>Download</a><a class="navbar__item navbar__link" href=/blog>Blog</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link>ASF</a><ul class=dropdown__menu><li><a href=https://www.apache.org/ target=_blank rel="noopener noreferrer" class=dropdown__link>Foundation</a><li><a href=https://www.apache.org/licenses/ target=_blank rel="noopener noreferrer" class=dropdown__link>License</a><li><a href=https://www.apache.org/events/current-event.html target=_blank rel="noopener noreferrer" class=dropdown__link>Events</a><li><a href=https://privacy.apache.org/policies/privacy-policy-public.html target=_blank rel="noopener noreferrer" class=dropdown__link>Privacy</a><li><a href=https://www.apache.org/security/ target=_blank rel="noopener noreferrer" class=dropdown__link>Security</a><li><a href=https://www.apache.org/foundation/sponsorship.html target=_blank rel="noopener noreferrer" class=dropdown__link>Sponsorship</a><li><a href=https://www.apache.org/foundation/thanks.html target=_blank rel="noopener noreferrer" class=dropdown__link>Thanks</a><li><a href=https://www.apache.org/foundation/policies/conduct.html target=_blank rel="noopener noreferrer" class=dropdown__link>Code of Conduct</a></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a class=navbar__link aria-haspopup=true aria-expanded=false role=button href=/docs/0.12/community/how_to_release>0.12</a><ul class=dropdown__menu><li><a class=dropdown__link href=/docs/next/community/how_to_release>dev</a><li><a class=dropdown__link href=/docs/community/how_to_release>1.3.0</a><li><a class=dropdown__link href=/docs/1.2.0/community/how_to_release>1.2.0</a><li><a class=dropdown__link href=/docs/1.1.0/community/how_to_release>1.1.0</a><li><a class=dropdown__link href=/docs/1.0.0/community/how_to_release>1.0.0</a><li><a class=dropdown__link href=/docs/0.17/community/how_to_release>0.17</a><li><a class=dropdown__link href=/docs/0.16/community/how_to_release>0.16</a><li><a class=dropdown__link href=/docs/0.15/community/how_to_release>0.15</a><li><a class=dropdown__link href=/docs/0.14/community/how_to_release>0.14</a><li><a class=dropdown__link href=/docs/0.13/community/how_to_release>0.13</a><li><a aria-current=page class="dropdown__link dropdown__link--active" href=/docs/0.12/community/how_to_release>0.12</a><li><a class=dropdown__link href=/docs/0.11/community/how_to_release>0.11</a><li><a class=dropdown__link href=/docs/0.10/community/how_to_release>0.10</a></ul></div><a href=https://github.com/apache/fory target=_blank rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><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"/></svg>English</a><ul class=dropdown__menu><li><a href=/docs/0.12/community/how_to_release target=_self rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang=en-US>English</a><li><a href=/zh-CN/docs/0.12/community/how_to_release target=_self rel="noopener noreferrer" class=dropdown__link lang=zh-CN>简体中文</a></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP 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"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP 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"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1><div class=navbar__search><span aria-label="expand searchbar" role=button class=search-icon tabindex=0></span><input id=search_input_react type=search placeholder=Loading... aria-label=Search class="navbar__search-input search-bar" disabled/></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class=sidebarViewport_aRkj><div class=sidebar_njMd><nav aria-label="Docs sidebar" 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=/docs/0.12/community/><span title=Community class=linkLabel_WmDU>Community</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/docs/0.12/community/how_to_join_community><span title="How to join Apache Fory™" class=linkLabel_WmDU>How to join Apache Fory™</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/docs/0.12/community/nominate_committer><span title="Nominate Committer" class=linkLabel_WmDU>Nominate Committer</span></a><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=/docs/0.12/community/how_to_release><span title="How to release" class=linkLabel_WmDU>How to release</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/docs/0.12/community/how_to_verify><span title="How to verify" class=linkLabel_WmDU>How to verify</span></a></ul></nav></div></div></aside><main class=docMainContainer_TBSr><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_VOVn"><div class="theme-doc-version-banner alert alert--warning margin-bottom--md" role=alert><div>This is documentation for <!-- -->Apache Fory™<!-- --> <b>0.12</b>, which is no longer actively maintained.</div><div class=margin-top--md>For up-to-date documentation, see the <b><a href=/docs/community/how_to_release>latest version</a></b> (<!-- -->1.3.0<!-- -->).</div></div><div class=docItemContainer_Djhp><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label=Breadcrumbs><ul class=breadcrumbs><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/><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 /></svg></a><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>How to release</span></ul></nav><span class="theme-doc-version-badge badge badge--secondary">Version: 0.12</span><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>How to release</h1></header><p>This document mainly introduces how the release manager releases a new version of Apache Fory™.</p> |
| <h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=introduction>Introduction<a href=#introduction class=hash-link aria-label="Direct link to Introduction" title="Direct link to Introduction" translate=no></a></h2> |
| <p>Source Release is the most important part which Apache values.</p> |
| <p>Please pay more attention to license and signing issues. |
| Publishing software is a serious thing and has legal consequences.</p> |
| <h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=first-time-as-a-release-manager>First-time as a release manager<a href=#first-time-as-a-release-manager class=hash-link aria-label="Direct link to First-time as a release manager" title="Direct link to First-time as a release manager" translate=no></a></h2> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=environmental-requirements>Environmental requirements<a href=#environmental-requirements class=hash-link aria-label="Direct link to Environmental requirements" title="Direct link to Environmental requirements" translate=no></a></h3> |
| <p>This release process is operated in the Ubuntu OS, and the following tools are required:</p> |
| <ul> |
| <li class="">JDK 1.8</li> |
| <li class="">Apache Maven 3.x</li> |
| <li class="">Python 3.8</li> |
| <li class="">GnuPG 2.x</li> |
| <li class="">Git</li> |
| <li class="">SVN (apache uses svn to host project releases)</li> |
| <li class="">Pay attention to setting environment variables: if you configure gpg keys under a different directory, |
| please <code>export GNUPGHOME=$(xxx)</code></li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=prepare-gpg-key>Prepare GPG Key<a href=#prepare-gpg-key class=hash-link aria-label="Direct link to Prepare GPG Key" title="Direct link to Prepare GPG Key" translate=no></a></h3> |
| <p>If you are the first to become a release manager, you need to prepare a gpg key.</p> |
| <p>Following is a quick setup, you can refer to <a href=https://infra.apache.org/openpgp.html target=_blank rel="noopener noreferrer" class="">Apache openpgp doc</a> for further |
| details.</p> |
| <h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=install-gpg>Install GPG<a href=#install-gpg class=hash-link aria-label="Direct link to Install GPG" title="Direct link to Install GPG" translate=no></a></h4> |
| <div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token function" style=color:#d73a49>sudo</span><span class="token plain"> </span><span class="token function" style=color:#d73a49>apt</span><span class="token plain"> </span><span class="token function" style=color:#d73a49>install</span><span class="token plain"> gnupg2</span><br/></div></code></pre></div></div> |
| <h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=generate-gpg-key>Generate GPG Key<a href=#generate-gpg-key class=hash-link aria-label="Direct link to Generate GPG Key" title="Direct link to Generate GPG Key" translate=no></a></h4> |
| <p>Please use your apache name and email for generate key</p> |
| <div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">$ gpg --full-gen-key</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">gpg </span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">GnuPG</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>2.2</span><span class="token plain">.20</span><span class="token punctuation" style=color:#393A34>;</span><span class="token plain"> Copyright </span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">C</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>2020</span><span class="token plain"> Free Software Foundation, Inc.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">This is </span><span class="token function" style=color:#d73a49>free</span><span class="token plain"> software: you are </span><span class="token function" style=color:#d73a49>free</span><span class="token plain"> to change and redistribute it.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">There is NO WARRANTY, to the extent permitted by law.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Please </span><span class="token keyword" style=color:#00009f>select</span><span class="token plain"> what kind of key you want:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>(</span><span class="token number" style=color:#36acaa>1</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> RSA and RSA </span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">default</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>(</span><span class="token number" style=color:#36acaa>2</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> DSA and Elgamal</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>(</span><span class="token number" style=color:#36acaa>3</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> DSA </span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">sign only</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>(</span><span class="token number" style=color:#36acaa>4</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> RSA </span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">sign only</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>(</span><span class="token number" style=color:#36acaa>14</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> Existing key from card</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Your selection? </span><span class="token number" style=color:#36acaa>1</span><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic># input 1</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">RSA keys may be between </span><span class="token number" style=color:#36acaa>1024</span><span class="token plain"> and </span><span class="token number" style=color:#36acaa>4096</span><span class="token plain"> bits long.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">What keysize </span><span class="token keyword" style=color:#00009f>do</span><span class="token plain"> you want? </span><span class="token punctuation" style=color:#393A34>(</span><span class="token number" style=color:#36acaa>2048</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>4096</span><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic># input 4096</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Requested keysize is </span><span class="token number" style=color:#36acaa>4096</span><span class="token plain"> bits</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Please specify how long the key should be valid.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token number" style=color:#36acaa>0</span><span class="token plain"> </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> key does not expire</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token operator" style=color:#393A34><</span><span class="token plain">n</span><span class="token operator" style=color:#393A34>></span><span class="token plain"> </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> key expires </span><span class="token keyword" style=color:#00009f>in</span><span class="token plain"> n days</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token operator" style=color:#393A34><</span><span class="token plain">n</span><span class="token operator" style=color:#393A34>></span><span class="token plain">w </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> key expires </span><span class="token keyword" style=color:#00009f>in</span><span class="token plain"> n weeks</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token operator" style=color:#393A34><</span><span class="token plain">n</span><span class="token operator" style=color:#393A34>></span><span class="token plain">m </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> key expires </span><span class="token keyword" style=color:#00009f>in</span><span class="token plain"> n months</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token operator" style=color:#393A34><</span><span class="token plain">n</span><span class="token operator" style=color:#393A34>></span><span class="token plain">y </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> key expires </span><span class="token keyword" style=color:#00009f>in</span><span class="token plain"> n years</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Key is valid for? </span><span class="token punctuation" style=color:#393A34>(</span><span class="token number" style=color:#36acaa>0</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>0</span><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic># input 0</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Key does not expire at all</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Is this correct? </span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">y/N</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> y </span><span class="token comment" style=color:#999988;font-style:italic># input y</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">GnuPG needs to construct a user ID to identify your key.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Real name: Chaokun Yang </span><span class="token comment" style=color:#999988;font-style:italic># input your name</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Email address: chaokunyang@apache.org </span><span class="token comment" style=color:#999988;font-style:italic># input your email</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Comment: CODE SIGNING KEY </span><span class="token comment" style=color:#999988;font-style:italic># input some annotations, optional</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">You selected this </span><span class="token environment constant" style=color:#36acaa>USER</span><span class="token plain">-ID:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token string" style=color:#e3116c>"Chaokun <chaokunyang@apache.org>"</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Change </span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">N</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain">ame, </span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">C</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain">omment, </span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">E</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain">mail or </span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">O</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain">kay/</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">Q</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain">uit? O </span><span class="token comment" style=color:#999988;font-style:italic># input O</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">We need to generate a lot of random bytes. It is a good idea to perform</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">some other action </span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">type on the keyboard, move the mouse, utilize the</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">disks</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> during the prime generation</span><span class="token punctuation" style=color:#393A34>;</span><span class="token plain"> this gives the random number</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">generator a better chance to gain enough entropy.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">We need to generate a lot of random bytes. It is a good idea to perform</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">some other action </span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">type on the keyboard, move the mouse, utilize the</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">disks</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> during the prime generation</span><span class="token punctuation" style=color:#393A34>;</span><span class="token plain"> this gives the random number</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">generator a better chance to gain enough entropy.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Input the security key</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">┌──────────────────────────────────────────────────────┐</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">│ Please enter this passphrase │</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">│ │</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">│ Passphrase: _______________________________ │</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">│ │</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">│ </span><span class="token operator" style=color:#393A34><</span><span class="token plain">OK</span><span class="token operator" style=color:#393A34>></span><span class="token plain"> </span><span class="token operator" style=color:#393A34><</span><span class="token plain">Cancel</span><span class="token operator" style=color:#393A34>></span><span class="token plain"> │</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">└──────────────────────────────────────────────────────┘</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># key generation will be done after your inputting the key with the following output</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">gpg: key E49B00F626B marked as ultimately trusted</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">gpg: revocation certificate stored as </span><span class="token string" style=color:#e3116c>'/Users/chaokunyang/.gnupg/openpgp-revocs.d/1E2CDAE4C08AD7D694D1CB139D7BE8E45E580BA4.rev'</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">public and secret key created and signed.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">pub rsa4096 </span><span class="token number" style=color:#36acaa>2022</span><span class="token plain">-07-12 </span><span class="token punctuation" style=color:#393A34>[</span><span class="token plain">SC</span><span class="token punctuation" style=color:#393A34>]</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> 1E2CDAE4C08AD7D694D1CB139D7BE8E45E580BA4</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">uid </span><span class="token punctuation" style=color:#393A34>[</span><span class="token plain">ultimate</span><span class="token punctuation" style=color:#393A34>]</span><span class="token plain"> Chaokun </span><span class="token operator" style=color:#393A34><</span><span class="token plain">chaokunyang@apache.org</span><span class="token operator" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">sub rsa4096 </span><span class="token number" style=color:#36acaa>2022</span><span class="token plain">-07-12 </span><span class="token punctuation" style=color:#393A34>[</span><span class="token plain">E</span><span class="token punctuation" style=color:#393A34>]</span><br/></div></code></pre></div></div> |
| <h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=upload-your-public-key-to-public-gpg-keyserver>Upload your public key to public GPG keyserver<a href=#upload-your-public-key-to-public-gpg-keyserver class=hash-link aria-label="Direct link to Upload your public key to public GPG keyserver" title="Direct link to Upload your public key to public GPG keyserver" translate=no></a></h4> |
| <p>Firstly, list your key:</p> |
| <div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">gpg --list-keys</span><br/></div></code></pre></div></div> |
| <p>The output is like:</p> |
| <div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">--------------------------------------------------</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">pub rsa4096 </span><span class="token number" style=color:#36acaa>2024</span><span class="token plain">-03-27 </span><span class="token punctuation" style=color:#393A34>[</span><span class="token plain">SC</span><span class="token punctuation" style=color:#393A34>]</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> 1E2CDAE4C08AD7D694D1CB139D7BE8E45E580BA4</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">uid </span><span class="token punctuation" style=color:#393A34>[</span><span class="token plain">ultimate</span><span class="token punctuation" style=color:#393A34>]</span><span class="token plain"> chaokunyang </span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">CODE SIGNING KEY</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> </span><span class="token operator" style=color:#393A34><</span><span class="token plain">chaokunyang@apache.org</span><span class="token operator" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">sub rsa4096 </span><span class="token number" style=color:#36acaa>2024</span><span class="token plain">-03-27 </span><span class="token punctuation" style=color:#393A34>[</span><span class="token plain">E</span><span class="token punctuation" style=color:#393A34>]</span><br/></div></code></pre></div></div> |
| <p>Then, send your key id to key server:</p> |
| <div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">gpg </span><span class="token parameter variable" style=color:#36acaa>--keyserver</span><span class="token plain"> keys.openpgp.org --send-key </span><span class="token operator" style=color:#393A34><</span><span class="token plain">key-id</span><span class="token operator" style=color:#393A34>></span><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic># e.g., 1E2CDAE4C08AD7D694D1CB139D7BE8E45E580BA4</span><br/></div></code></pre></div></div> |
| <p>Among them, <code>keys.openpgp.org</code> is a randomly selected keyserver, you can use keyserver.ubuntu.com or any other |
| full-featured keyserver.</p> |
| <h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=check-whether-the-key-is-created-successfully>Check whether the key is created successfully<a href=#check-whether-the-key-is-created-successfully class=hash-link aria-label="Direct link to Check whether the key is created successfully" title="Direct link to Check whether the key is created successfully" translate=no></a></h4> |
| <p>Uploading takes about one minute; after that, you can check by email at the corresponding keyserver.</p> |
| <p>Uploading keys to the keyserver is mainly for joining |
| a <a href=https://infra.apache.org/release-signing.html#web-of-trust target=_blank rel="noopener noreferrer" class="">Web of Trust</a>.</p> |
| <h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=add-your-gpg-public-key-to-the-project-keys-file>Add your GPG public key to the project KEYS file<a href=#add-your-gpg-public-key-to-the-project-keys-file class=hash-link aria-label="Direct link to Add your GPG public key to the project KEYS file" title="Direct link to Add your GPG public key to the project KEYS file" translate=no></a></h4> |
| <p>The svn repository of the release branch is: <a href=https://dist.apache.org/repos/dist/release/fory target=_blank rel="noopener noreferrer" class="">https://dist.apache.org/repos/dist/release/fory</a></p> |
| <p>Please add the public key to KEYS in the release branch:</p> |
| <div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">svn co https://dist.apache.org/repos/dist/release/fory fory-dist</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># As this step will copy all the versions, it will take some time. If the network is broken, please use svn cleanup to delete the lock before re-execute it.</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token builtin class-name">cd</span><span class="token plain"> fory-dist</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">gpg --list-sigs YOUR_NAME@apache.org </span><span class="token operator" style=color:#393A34>&&</span><span class="token plain"> gpg </span><span class="token parameter variable" style=color:#36acaa>--export</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>--armor</span><span class="token plain"> YOUR_NAME@apache.org</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> </span><span class="token operator" style=color:#393A34>>></span><span class="token plain"> KEYS </span><span class="token comment" style=color:#999988;font-style:italic># Append your key to the KEYS file</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">svn </span><span class="token function" style=color:#d73a49>add</span><span class="token plain"> </span><span class="token builtin class-name">.</span><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic># It is not needed if the KEYS document exists before.</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">svn ci </span><span class="token parameter variable" style=color:#36acaa>-m</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"add gpg key for YOUR_NAME"</span><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic># Later on, if you are asked to enter a username and password, just use your apache username and password.</span><br/></div></code></pre></div></div> |
| <h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=upload-the-gpg-public-key-to-your-github-account>Upload the GPG public key to your GitHub account<a href=#upload-the-gpg-public-key-to-your-github-account class=hash-link aria-label="Direct link to Upload the GPG public key to your GitHub account" title="Direct link to Upload the GPG public key to your GitHub account" translate=no></a></h4> |
| <ul> |
| <li class="">Enter <a href=https://github.com/settings/keys target=_blank rel="noopener noreferrer" class="">https://github.com/settings/keys</a> to add your GPG key.</li> |
| <li class="">Please remember to bind the email address used in the GPG key to your GitHub |
| account (<a href=https://github.com/settings/emails target=_blank rel="noopener noreferrer" class="">https://github.com/settings/emails</a>) if you find "unverified" after adding it.</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=further-reading>Further reading<a href=#further-reading class=hash-link aria-label="Direct link to Further reading" title="Direct link to Further reading" translate=no></a></h3> |
| <p>It's recommended but not mandatory to read following documents before making a release to know more details about apache |
| release:</p> |
| <ul> |
| <li class="">Release policy: <a href=https://www.apache.org/legal/release-policy.html target=_blank rel="noopener noreferrer" class="">https://www.apache.org/legal/release-policy.html</a></li> |
| <li class="">TLP release: <a href=https://infra.apache.org/release-distribution target=_blank rel="noopener noreferrer" class="">https://infra.apache.org/release-distribution</a></li> |
| <li class="">Release sign: <a href=https://infra.apache.org/release-signing.html target=_blank rel="noopener noreferrer" class="">https://infra.apache.org/release-signing.html</a></li> |
| <li class="">Release publish: <a href=https://infra.apache.org/release-publishing.html target=_blank rel="noopener noreferrer" class="">https://infra.apache.org/release-publishing.html</a></li> |
| <li class="">Release download pages: <a href=https://infra.apache.org/release-download-pages.html target=_blank rel="noopener noreferrer" class="">https://infra.apache.org/release-download-pages.html</a></li> |
| <li class="">Publishing maven artifacts: <a href=https://infra.apache.org/publishing-maven-artifacts.html target=_blank rel="noopener noreferrer" class="">https://infra.apache.org/publishing-maven-artifacts.html</a></li> |
| </ul> |
| <h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=start-discussion-about-the-release>Start discussion about the release<a href=#start-discussion-about-the-release class=hash-link aria-label="Direct link to Start discussion about the release" title="Direct link to Start discussion about the release" translate=no></a></h2> |
| <p>Start a discussion about the next release via sending email to: <a href=mailto:dev@fory.apache.org target=_blank rel="noopener noreferrer" class="">dev@fory.apache.org</a>:</p> |
| <p>Title:</p> |
| <div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">[DISCUSS] Release Apache Fory ${release_version}</span><br/></div></code></pre></div></div> |
| <p>Content:</p> |
| <div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">Hello, Apache Fory Community,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">This is a call for a discussion to release Apache Fory version ${release_version}.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">The change lists about this release:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">https://github.com/apache/fory/compare/v0.12.0...v0.12.1-rc1</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Please leave your comments here about this release plan. We will bump the version in repo and start the release process after the discussion.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Thanks,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">${name}</span><br/></div></code></pre></div></div> |
| <h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=preparing-for-release>Preparing for release<a href=#preparing-for-release class=hash-link aria-label="Direct link to Preparing for release" title="Direct link to Preparing for release" translate=no></a></h2> |
| <p>If the discussion goes positive, you will need to prepare the release artifiacts.</p> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=github-branch-and-tag>Github branch and tag<a href=#github-branch-and-tag class=hash-link aria-label="Direct link to Github branch and tag" title="Direct link to Github branch and tag" translate=no></a></h3> |
| <ul> |
| <li class="">Create a new branch named <code>releases-0.12.0</code></li> |
| <li class="">Bump version to <code>$version</code> by executing command <code>python ci/release.py bump_version -l all -version $version</code></li> |
| <li class="">Make a git commit and push the branch to <code>git@github.com:apache/fory.git</code></li> |
| <li class="">Create a new tag by <code>git tag v0.12.0-rc1</code>, then push it to <code>git@github.com:apache/fory.git</code></li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=build-and-upload-artifacts-to-svn-distdev-repo>Build and upload artifacts to SVN dist/dev repo<a href=#build-and-upload-artifacts-to-svn-distdev-repo class=hash-link aria-label="Direct link to Build and upload artifacts to SVN dist/dev repo" title="Direct link to Build and upload artifacts to SVN dist/dev repo" translate=no></a></h3> |
| <p>First you need to build source release artifacts by <code>python ci/release.py build -v $version</code>.</p> |
| <p>Then you need to upload it to svn dist repo. The dist repo of the dev branch |
| is: <a href=https://dist.apache.org/repos/dist/dev/fory target=_blank rel="noopener noreferrer" class="">https://dist.apache.org/repos/dist/dev/fory</a></p> |
| <div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token comment" style=color:#999988;font-style:italic># As this step will copy all the versions, it will take some time. If the network is broken, please use svn cleanup to delete the lock before re-execute it.</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">svn co https://dist.apache.org/repos/dist/dev/fory fory-dist-dev</span><br/></div></code></pre></div></div> |
| <p>Then, upload the artifacts:</p> |
| <div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token builtin class-name">cd</span><span class="token plain"> fory-dist-dev</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># create a directory named by version</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>mkdir</span><span class="token plain"> </span><span class="token variable" style=color:#36acaa>${release_version}</span><span class="token plain">-</span><span class="token variable" style=color:#36acaa>${rc_version}</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># copy source code and signature package to the versioned directory</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token function" style=color:#d73a49>cp</span><span class="token plain"> </span><span class="token variable" style=color:#36acaa>${repo_dir}</span><span class="token plain">/dist/* </span><span class="token variable" style=color:#36acaa>${release_version}</span><span class="token plain">-</span><span class="token variable" style=color:#36acaa>${rc_version}</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># check svn status</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">svn status</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># add to svn</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">svn </span><span class="token function" style=color:#d73a49>add</span><span class="token plain"> </span><span class="token variable" style=color:#36acaa>${release_version}</span><span class="token plain">-</span><span class="token variable" style=color:#36acaa>${rc_version}</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># check svn status</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">svn status</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># commit to SVN remote server</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">svn commit </span><span class="token parameter variable" style=color:#36acaa>-m</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"Prepare for fory </span><span class="token string variable" style=color:#36acaa>${release_version}</span><span class="token string" style=color:#e3116c>-</span><span class="token string variable" style=color:#36acaa>${rc_version}</span><span class="token string" style=color:#e3116c>"</span><br/></div></code></pre></div></div> |
| <p>Visit <a href=https://dist.apache.org/repos/dist/dev/fory/ target=_blank rel="noopener noreferrer" class="">https://dist.apache.org/repos/dist/dev/fory/</a> to check the artifacts are uploaded correctly.</p> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=what-to-do-if-something-goes-wrong>What to do if something goes wrong<a href=#what-to-do-if-something-goes-wrong class=hash-link aria-label="Direct link to What to do if something goes wrong" title="Direct link to What to do if something goes wrong" translate=no></a></h3> |
| <p>If some files are unexpected, you need to remove by <code>svn delete</code> and repeat the above upload process.</p> |
| <h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=voting>Voting<a href=#voting class=hash-link aria-label="Direct link to Voting" title="Direct link to Voting" translate=no></a></h2> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=check-version>check version<a href=#check-version class=hash-link aria-label="Direct link to check version" title="Direct link to check version" translate=no></a></h3> |
| <p>Fory requires votes from the Fory Community.</p> |
| <ul> |
| <li class="">release_version: the version for fory, like 0.12.0.</li> |
| <li class="">release_candidate_version: the version for voting, like 0.12.0-rc1.</li> |
| <li class="">maven_artifact_number: the number for Maven staging artifacts, like 1001. Specifically, the maven_artifact_number can |
| be found by searching "fory" on <a href=https://repository.apache.org/#stagingRepositories target=_blank rel="noopener noreferrer" class="">https://repository.apache.org/#stagingRepositories</a>.</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=build-the-source-code-of-fory-and-release-it-to-nexus>Build the source code of fory and release it to nexus<a href=#build-the-source-code-of-fory-and-release-it-to-nexus class=hash-link aria-label="Direct link to Build the source code of fory and release it to nexus" title="Direct link to Build the source code of fory and release it to nexus" translate=no></a></h3> |
| <h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=configure-apache-account-passwords>Configure Apache Account Passwords<a href=#configure-apache-account-passwords class=hash-link aria-label="Direct link to Configure Apache Account Passwords" title="Direct link to Configure Apache Account Passwords" translate=no></a></h4> |
| <p>Before publishing Fory to Nexus, you need to securely configure your Apache account credentials. This step is critical |
| as passwords must be encrypted.</p> |
| <p>First, open your Maven global settings file <code>settings.xml</code>, typically located at <code>~/.m2/settings.xml</code>. Add or modify the |
| following section:</p> |
| <div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token tag punctuation" style=color:#393A34><</span><span class="token tag" style=color:#00009f>servers</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token tag punctuation" style=color:#393A34><</span><span class="token tag" style=color:#00009f>server</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token tag punctuation" style=color:#393A34><</span><span class="token tag" style=color:#00009f>id</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain">apache.snapshots.https</span><span class="token tag punctuation" style=color:#393A34></</span><span class="token tag" style=color:#00009f>id</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token tag punctuation" style=color:#393A34><</span><span class="token tag" style=color:#00009f>username</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain">your-apache-username</span><span class="token tag punctuation" style=color:#393A34></</span><span class="token tag" style=color:#00009f>username</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token tag punctuation" style=color:#393A34><</span><span class="token tag" style=color:#00009f>password</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain">{your-encrypted-password}</span><span class="token tag punctuation" style=color:#393A34></</span><span class="token tag" style=color:#00009f>password</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token tag punctuation" style=color:#393A34></</span><span class="token tag" style=color:#00009f>server</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token tag punctuation" style=color:#393A34><</span><span class="token tag" style=color:#00009f>server</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token tag punctuation" style=color:#393A34><</span><span class="token tag" style=color:#00009f>id</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain">apache.releases.https</span><span class="token tag punctuation" style=color:#393A34></</span><span class="token tag" style=color:#00009f>id</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token tag punctuation" style=color:#393A34><</span><span class="token tag" style=color:#00009f>username</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain">your-apache-username</span><span class="token tag punctuation" style=color:#393A34></</span><span class="token tag" style=color:#00009f>username</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token tag punctuation" style=color:#393A34><</span><span class="token tag" style=color:#00009f>password</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain">{your-encrypted-password}</span><span class="token tag punctuation" style=color:#393A34></</span><span class="token tag" style=color:#00009f>password</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token tag punctuation" style=color:#393A34></</span><span class="token tag" style=color:#00009f>server</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token tag punctuation" style=color:#393A34></</span><span class="token tag" style=color:#00009f>servers</span><span class="token tag punctuation" style=color:#393A34>></span><br/></div></code></pre></div></div> |
| <p><strong>Important Notes:</strong></p> |
| <ul> |
| <li class="">Replace <code>your-apache-username</code> with your Apache LDAP username</li> |
| <li class="">Passwords must be encrypted using Maven's password encryption tool</li> |
| <li class="">Encrypted passwords should be enclosed in curly braces <code>{}</code></li> |
| </ul> |
| <p>Refer to the official documentation for detailed encryption |
| instructions: <a href=https://infra.apache.org/publishing-maven-artifacts.html target=_blank rel="noopener noreferrer" class="">Publishing Maven Artifacts</a></p> |
| <p>Steps to encrypt your password:</p> |
| <ol> |
| <li class=""> |
| <p>Generate a master password (if you haven't already):</p> |
| </li> |
| <li class=""> |
| <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">mvn --encrypt-master-password your-master-password</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div></code></pre></div></div> |
| <p>Save the output to <code>~/.m2/settings-security.xml</code>:</p> |
| </li> |
| <li class=""> |
| <div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token tag punctuation" style=color:#393A34><</span><span class="token tag" style=color:#00009f>settingsSecurity</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token tag punctuation" style=color:#393A34><</span><span class="token tag" style=color:#00009f>master</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain">{your-encrypted-master-password}</span><span class="token tag punctuation" style=color:#393A34></</span><span class="token tag" style=color:#00009f>master</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token tag punctuation" style=color:#393A34></</span><span class="token tag" style=color:#00009f>settingsSecurity</span><span class="token tag punctuation" style=color:#393A34>></span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div></code></pre></div></div> |
| </li> |
| <li class=""> |
| <p>Encrypt your Apache account password:</p> |
| <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">mvn --encrypt-password your-apache-password</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div></code></pre></div></div> |
| <p>Place the encrypted output into the <code>password</code> field in <code>settings.xml</code></p> |
| </li> |
| </ol> |
| <h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=build-and-publish-java-module>Build and Publish Java Module<a href=#build-and-publish-java-module class=hash-link aria-label="Direct link to Build and Publish Java Module" title="Direct link to Build and Publish Java Module" translate=no></a></h4> |
| <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Navigate to the Java module directory</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token builtin class-name">cd</span><span class="token plain"> </span><span class="token function" style=color:#d73a49>java</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Execute Maven build and deploy to Nexus</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># -T10: Use 10 threads for parallel build, improving speed</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># clean: Clean the project</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># deploy: Deploy to remote repository</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># -Papache-release: Activate apache-release profile</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># -DskipTests: Skip tests</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># -Dgpg.skip=false: Enable GPG signing (required for release verification)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">mvn </span><span class="token parameter variable" style=color:#36acaa>-T10</span><span class="token plain"> clean deploy -Papache-release </span><span class="token parameter variable" style=color:#36acaa>-DskipTests</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-Dgpg.skip</span><span class="token operator" style=color:#393A34>=</span><span class="token plain">false</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div></code></pre></div></div> |
| <h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=build-and-publish-kotlin-module>Build and Publish Kotlin Module<a href=#build-and-publish-kotlin-module class=hash-link aria-label="Direct link to Build and Publish Kotlin Module" title="Direct link to Build and Publish Kotlin Module" translate=no></a></h4> |
| <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Return to project root and navigate to Kotlin module</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token builtin class-name">cd</span><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>..</span><span class="token plain">/kotlin</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Execute the same Maven command as Java module</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Configuration parameters are identical to Java module</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">mvn </span><span class="token parameter variable" style=color:#36acaa>-T10</span><span class="token plain"> clean deploy -Papache-release </span><span class="token parameter variable" style=color:#36acaa>-DskipTests</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-Dgpg.skip</span><span class="token operator" style=color:#393A34>=</span><span class="token plain">false</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div></code></pre></div></div> |
| <h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=build-and-publish-scala-module>Build and Publish Scala Module<a href=#build-and-publish-scala-module class=hash-link aria-label="Direct link to Build and Publish Scala Module" title="Direct link to Build and Publish Scala Module" translate=no></a></h4> |
| <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Return to project root and navigate to Scala module</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token builtin class-name">cd</span><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>..</span><span class="token plain">/scala</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Build and sign JARs for all Scala versions</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># +publishSigned: Execute publishSigned for all configured Scala versions</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token builtin class-name">echo</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"Starting to build Scala JARs..."</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">sbt +publishSigned</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Prepare for upload to Sonatype (Nexus)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># sonatypePrepare: Prepare for Maven Central Repository release</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token builtin class-name">echo</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"Starting upload preparation..."</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">sbt sonatypePrepare</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Upload packaged JARs to Sonatype</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># sonatypeBundleUpload: Upload prepared bundles</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token builtin class-name">echo</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"Starting JAR upload..."</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">sbt sonatypeBundleUpload</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token builtin class-name">echo</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"Scala JAR deployment succeeded!"</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div></code></pre></div></div> |
| <h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=lock-the-release-in-nexus>Lock the Release in Nexus<a href=#lock-the-release-in-nexus class=hash-link aria-label="Direct link to Lock the Release in Nexus" title="Direct link to Lock the Release in Nexus" translate=no></a></h4> |
| <p>After completing the publication of all modules, perform the following steps in Nexus:</p> |
| <ol> |
| <li class="">Log in to the Apache Nexus repository management interface</li> |
| <li class="">Navigate to the "Snapshots" or "Releases" repository (depending on your release type)</li> |
| <li class="">Locate the latest Fory project version</li> |
| <li class="">Execute the "Close" operation to validate all uploaded artifacts</li> |
| <li class="">After successful validation, execute the "Release" operation to finalize the deployment</li> |
| </ol> |
| <p>These steps ensure all published artifacts are verified and correctly deployed to the public repository.</p> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=build-a-pre-release>build a Pre-release<a href=#build-a-pre-release class=hash-link aria-label="Direct link to build a Pre-release" title="Direct link to build a Pre-release" translate=no></a></h3> |
| <p>You need to build a Pre-release before voting, such as: |
| <a href=https://github.com/apache/fory/releases/tag/v0.12.0-rc1 target=_blank rel="noopener noreferrer" class="">https://github.com/apache/fory/releases/tag/v0.12.0-rc1</a></p> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=fory-community-vote>Fory Community Vote<a href=#fory-community-vote class=hash-link aria-label="Direct link to Fory Community Vote" title="Direct link to Fory Community Vote" translate=no></a></h3> |
| <p>you need send a email to Fory Community: <a href=mailto:dev@fory.apache.org target=_blank rel="noopener noreferrer" class="">dev@fory.apache.org</a>:</p> |
| <p>Title:</p> |
| <div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">[VOTE] Release Apache Fory v${release_version}-${rc_version}</span><br/></div></code></pre></div></div> |
| <p>Content:</p> |
| <div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">Hello, Apache Fory Community:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">This is a call for vote to release Apache Fory</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">version release-${release_version}-${rc_version}.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Apache Fory - A blazingly fast multi-language serialization</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">framework powered by JIT and zero-copy.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">The discussion thread:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">https://lists.apache.org/thread/xxr3od301g6v3ndj14zqc05byp9qvclh</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">The change lists about this release:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">https://github.com/apache/fory/compare/v0.12.0...v0.12.1-rc1</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">The release candidates:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">https://dist.apache.org/repos/dist/dev/fory/0.5.0-rc3/</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">The maven staging for this release:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">https://repository.apache.org/content/repositories/orgapachefory-1003</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Git tag for the release:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">https://github.com/apache/fory/releases/tag/v0.12.0-rc1</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Git commit for the release:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">https://github.com/apache/fory/commit/fae06330edd049bb960536e978a45b97bca66faf</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">The artifacts signed with PGP key [5E580BA4], corresponding to</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">[chaokunyang@apache.org], that can be found in keys file:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">https://downloads.apache.org/fory/KEYS</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">The vote will be open for at least 72 hours until the necessary number of votes are reached.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Please vote accordingly:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">[ ] +1 approve</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">[ ] +0 no opinion</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">[ ] -1 disapprove with the reason</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">To learn more about Fory, please see https://fory.apache.org/</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">*Valid check is a requirement for a vote. *Checklist for reference:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">[ ] Download Fory is valid.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">[ ] Checksums and PGP signatures are valid.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">[ ] Source code distributions have correct names matching the current release.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">[ ] LICENSE and NOTICE files are correct.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">[ ] All files have license headers if necessary.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">[ ] No compiled archives bundled in source archive.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">[ ] Can compile from source.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">How to Build and Test, please refer to: https://github.com/apache/fory/blob/main/docs/guide/DEVELOPMENT.md</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Thanks,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">${name}</span><br/></div></code></pre></div></div> |
| <p>After at least 3 +1 binding vote (from Fory Podling PMC member and committers) and no veto, |
| first, reply to the above voting thread to notify that the voting has ended.</p> |
| <div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">Hi all,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">The vote for Release Apache Fory v${release_version}-${rc_version} is closed now.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Thanks to everyone for helping checking and voting for the release.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">I will close the vote later in another thread.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Best,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">${name}</span><br/></div></code></pre></div></div> |
| <p>Immediately afterward, launch a new voting thread to claim the voting results.</p> |
| <p>Title:</p> |
| <div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">[RESULT][VOTE] Release Apache Fory v${release_version}-${rc_version}</span><br/></div></code></pre></div></div> |
| <p>Content:</p> |
| <div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">Hello, Apache Fory Community,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">The vote to release Apache Fory v${release_version}-${rc_version} has passed.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">The vote PASSED with 3 binding +1 and 0 -1 vote:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Binding votes:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">- xxx</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">- yyy</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">- zzz</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Vote thread: ${vote_thread_url}</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Thanks,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">${name}</span><br/></div></code></pre></div></div> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=what-if-vote-fail>What if vote fail<a href=#what-if-vote-fail class=hash-link aria-label="Direct link to What if vote fail" title="Direct link to What if vote fail" translate=no></a></h3> |
| <p>If the vote failed, click "Drop" to drop the staging Maven artifacts.</p> |
| <p>Address the raised issues, then bump <code>rc_version</code> and file a new vote again.</p> |
| <h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=official-release>Official Release<a href=#official-release class=hash-link aria-label="Direct link to Official Release" title="Direct link to Official Release" translate=no></a></h2> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=publish-artifacts-to-svn-release-directory>Publish artifacts to SVN Release Directory<a href=#publish-artifacts-to-svn-release-directory class=hash-link aria-label="Direct link to Publish artifacts to SVN Release Directory" title="Direct link to Publish artifacts to SVN Release Directory" translate=no></a></h3> |
| <ul> |
| <li class="">release_version: the release version for fory, like 0.5.0</li> |
| <li class="">release_candidate_version: the version for voting, like 0.5.0-rc1</li> |
| </ul> |
| <div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">svn </span><span class="token function" style=color:#d73a49>mv</span><span class="token plain"> https://dist.apache.org/repos/dist/dev/fory/</span><span class="token variable" style=color:#36acaa>${release_version}</span><span class="token plain">-</span><span class="token variable" style=color:#36acaa>${rc_version}</span><span class="token plain"> https://dist.apache.org/repos/dist/release/fory/</span><span class="token variable" style=color:#36acaa>${release_version}</span><span class="token plain"> </span><span class="token parameter variable" style=color:#36acaa>-m</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"Release fory </span><span class="token string variable" style=color:#36acaa>${release_version}</span><span class="token string" style=color:#e3116c>"</span><br/></div></code></pre></div></div> |
| <p>In the repository at <a href=https://dist.apache.org/repos/dist/dev/fory/ target=_blank rel="noopener noreferrer" class="">https://dist.apache.org/repos/dist/dev/fory/</a>, if any |
| outdated release_candidate_version are left behind when releasing the release_version, |
| please clear them to keep the dev repository tidy.</p> |
| <p>When <code>https://archive.apache.org/dist/fory/0.12.0/${release_version}</code> is |
| accessible (confirming that the release_version has been successfully released |
| and archived), we may clean up the previous release version in the release repository, |
| leaving only the current version.</p> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=update-foryfory-site-content>Update Fory&Fory-Site content<a href=#update-foryfory-site-content class=hash-link aria-label="Direct link to Update Fory&Fory-Site content" title="Direct link to Update Fory&Fory-Site content" translate=no></a></h3> |
| <p>Submit a PR to <a href=https://github.com/apache/fory-site target=_blank rel="noopener noreferrer" class="">https://github.com/apache/fory-site</a> to update Fory-site. |
| Reference implementation: <a href=https://github.com/apache/fory-site/pull/283 target=_blank rel="noopener noreferrer" class="">#283</a> |
| and <a href=https://github.com/apache/fory-site/pull/285 target=_blank rel="noopener noreferrer" class="">#285</a>.</p> |
| <h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=update-fory-site>Update Fory-Site<a href=#update-fory-site class=hash-link aria-label="Direct link to Update Fory-Site" title="Direct link to Update Fory-Site" translate=no></a></h4> |
| <p>In general, the following two key areas need to be modified:</p> |
| <ol> |
| <li class="">Write a new announcement, for example: |
| Add a new markdown file under the blog folder:</li> |
| </ol> |
| <div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">The Apache Fory team is pleased to announce the [?] release. This is a major release that includes [? PR](https://github.com/apache/fory/compare/v[?]...v[?]) from ? distinct contributors. See the [Install](https://fory.apache.org/docs/start/install) Page to learn how to get the libraries for your platform.</span><br/></div></code></pre></div></div> |
| <ol start=2> |
| <li class="">Replace versions by upgrading old versions to new ones. |
| For example, in <a href=https://fory.apache.org/docs/start/install/#java target=_blank rel="noopener noreferrer" class="">install</a> section, it is necessary to update the documentation for both the development branch and the latest release branch::</li> |
| </ol> |
| <div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"><dependency></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> <groupId>org.apache.fory</groupId></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> <artifactId>fory-core</artifactId></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> <version>0.11.2</version></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></dependency></span><br/></div></code></pre></div></div> |
| <h4 class="anchor anchorTargetStickyNavbar_Vzrq" id=update-fory>Update Fory<a href=#update-fory class=hash-link aria-label="Direct link to Update Fory" title="Direct link to Update Fory" translate=no></a></h4> |
| <p>Submit a PR to <a href=https://github.com/apache/fury target=_blank rel="noopener noreferrer" class="">https://github.com/apache/fury</a> to update <a href=https://github.com/apache/fury/blob/main/README.md target=_blank rel="noopener noreferrer" class="">README</a>, |
| like <a href=https://github.com/apache/fury/pull/2207 target=_blank rel="noopener noreferrer" class="">#2207</a>.</p> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=github-officially-released>Github officially released<a href=#github-officially-released class=hash-link aria-label="Direct link to Github officially released" title="Direct link to Github officially released" translate=no></a></h3> |
| <p>You need to officially release this version in the Fory project |
| Reference implementation: <a href=https://github.com/apache/fory/releases/tag/v0.12.0 target=_blank rel="noopener noreferrer" class="">https://github.com/apache/fory/releases/tag/v0.12.0</a></p> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=release-maven-artifacts>Release Maven artifacts<a href=#release-maven-artifacts class=hash-link aria-label="Direct link to Release Maven artifacts" title="Direct link to Release Maven artifacts" translate=no></a></h3> |
| <ul> |
| <li class="">maven_artifact_number: the number for Maven staging artifacts, like 1001.</li> |
| <li class="">Open <a href=https://repository.apache.org/#stagingRepositories target=_blank rel="noopener noreferrer" class="">https://repository.apache.org/#stagingRepositories</a>.</li> |
| <li class="">Find the artifact <code>orgapachefory-${maven_artifact_number}</code>, click "Release".</li> |
| </ul> |
| <h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=send-the-announcement>Send the announcement<a href=#send-the-announcement class=hash-link aria-label="Direct link to Send the announcement" title="Direct link to Send the announcement" translate=no></a></h3> |
| <p>Send the release announcement to <a href=mailto:dev@fory.apache.org target=_blank rel="noopener noreferrer" class="">dev@fory.apache.org</a> and CC <a href=mailto:announce@apache.org target=_blank rel="noopener noreferrer" class="">announce@apache.org</a>.</p> |
| <p>Title:</p> |
| <div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">[ANNOUNCE] Release Apache Fory ${release_version}</span><br/></div></code></pre></div></div> |
| <p>Content:</p> |
| <div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">Hi all,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">The Apache Fory community is pleased to announce</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">that Apache Fory {release_version} has been released!</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Apache Fory - A blazingly fast multi-language serialization</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">framework powered by JIT and zero-copy.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">The release notes are available here:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">https://github.com/apache/fory/releases/tag/v${release_version}</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">For the complete list of changes:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">https://github.com/apache/fory/compare/v0.12.0...v${release_version}</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Apache Fory™ website: https://fory.apache.org/</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Download Links: https://fory.apache.org/download</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Fory Resources:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">- Fory github repo: https://github.com/apache/fory</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">- Issue: https://github.com/apache/fory/issues</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">- Mailing list: dev@fory.apache.org</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">We are looking to grow our community and welcome new contributors. If</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">you are interested in contributing to Fory, please contact us on the</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">mailing list or on GitHub. We will be happy to help you get started.</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">------------------</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">Best Regards,</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">${your_name}</span><br/></div></code></pre></div></div> |
| <p>Remember to use plain text instead of rich text format, or you may be rejected when CC <a href=mailto:announce@apache.org target=_blank rel="noopener noreferrer" class="">announce@apache.org</a></p> |
| <p>After completing the above steps, the Fory release process comes to an end.</div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href=https://github.com/apache/fory-site/tree/main/docs/community/how_to_release.md target=_blank rel="noopener noreferrer" 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"/></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href=/docs/0.12/community/nominate_committer><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>Nominate Committer</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/docs/0.12/community/how_to_verify><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>How to verify</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=#introduction class="table-of-contents__link toc-highlight">Introduction</a><li><a href=#first-time-as-a-release-manager class="table-of-contents__link toc-highlight">First-time as a release manager</a><ul><li><a href=#environmental-requirements class="table-of-contents__link toc-highlight">Environmental requirements</a><li><a href=#prepare-gpg-key class="table-of-contents__link toc-highlight">Prepare GPG Key</a><li><a href=#further-reading class="table-of-contents__link toc-highlight">Further reading</a></ul><li><a href=#start-discussion-about-the-release class="table-of-contents__link toc-highlight">Start discussion about the release</a><li><a href=#preparing-for-release class="table-of-contents__link toc-highlight">Preparing for release</a><ul><li><a href=#github-branch-and-tag class="table-of-contents__link toc-highlight">Github branch and tag</a><li><a href=#build-and-upload-artifacts-to-svn-distdev-repo class="table-of-contents__link toc-highlight">Build and upload artifacts to SVN dist/dev repo</a><li><a href=#what-to-do-if-something-goes-wrong class="table-of-contents__link toc-highlight">What to do if something goes wrong</a></ul><li><a href=#voting class="table-of-contents__link toc-highlight">Voting</a><ul><li><a href=#check-version class="table-of-contents__link toc-highlight">check version</a><li><a href=#build-the-source-code-of-fory-and-release-it-to-nexus class="table-of-contents__link toc-highlight">Build the source code of fory and release it to nexus</a><li><a href=#build-a-pre-release class="table-of-contents__link toc-highlight">build a Pre-release</a><li><a href=#fory-community-vote class="table-of-contents__link toc-highlight">Fory Community Vote</a><li><a href=#what-if-vote-fail class="table-of-contents__link toc-highlight">What if vote fail</a></ul><li><a href=#official-release class="table-of-contents__link toc-highlight">Official Release</a><ul><li><a href=#publish-artifacts-to-svn-release-directory class="table-of-contents__link toc-highlight">Publish artifacts to SVN Release Directory</a><li><a href=#update-foryfory-site-content class="table-of-contents__link toc-highlight">Update Fory&Fory-Site content</a><li><a href=#github-officially-released class="table-of-contents__link toc-highlight">Github officially released</a><li><a href=#release-maven-artifacts class="table-of-contents__link toc-highlight">Release Maven artifacts</a><li><a href=#send-the-announcement class="table-of-contents__link toc-highlight">Send the announcement</a></ul></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Community</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://lists.apache.org/list.html?dev@fory.apache.org target=_blank rel="noopener noreferrer" class=footer__link-item>Mailing list<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://join.slack.com/t/fory-project/shared_invite/zt-1u8soj4qc-ieYEu7ciHOqA2mo47llS8A target=_blank rel="noopener noreferrer" class=footer__link-item>Slack<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://twitter.com/ApacheFory target=_blank rel="noopener noreferrer" class=footer__link-item>Twitter<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Docs</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/docs/start/install>Install</a><li class=footer__item><a class=footer__link-item href=/docs/start/usage>Usage</a><li class=footer__item><a class=footer__link-item href=/docs/introduction/benchmark>Benchmark</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Repositories</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/apache/fory target=_blank rel="noopener noreferrer" class=footer__link-item>Apache Fory™<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://github.com/apache/fory-site target=_blank rel="noopener noreferrer" class=footer__link-item>Website<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=margin-bottom--sm><a href=https://apache.org/ rel="noopener noreferrer" class=footerLogoLink_BH7S><img src=/img/asf_logo.svg alt="ASF Logo" class="footer__logo themedComponent_mlkZ themedComponent--light_NVdE" width=200 /><img src=/img/asf_logo.svg alt="ASF Logo" class="footer__logo themedComponent_mlkZ themedComponent--dark_xIcU" width=200 /></a></div><div class=footer__copyright><div> |
| <p> |
| Copyright © 2026 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br/> |
| Apache Fory, Fory, Apache, the Apache Logo and the Apache Fory logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries. |
| </p> |
| </div></div></div></div></footer></div></body> |