| <!doctype html> |
| <html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-release/release" data-has-hydrated="false"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="generator" content="Docusaurus v3.6.1"> |
| <title data-rh="true">Create a release | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/release/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-community-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-community-current"><meta data-rh="true" property="og:title" content="Create a release | Apache OpenDAL™"><meta data-rh="true" name="description" content="This document mainly introduces how the release manager"><meta data-rh="true" property="og:description" content="This document mainly introduces how the release manager"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://opendal.apache.org/community/release/"><link data-rh="true" rel="alternate" href="https://opendal.apache.org/community/release/" hreflang="en"><link data-rh="true" rel="alternate" href="https://opendal.apache.org/community/release/" hreflang="x-default"><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache OpenDAL™ RSS Feed"> |
| <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.9369d349.css"> |
| <script src="/assets/js/runtime~main.1757baa1.js" defer="defer"></script> |
| <script src="/assets/js/main.7e524140.js" defer="defer"></script> |
| </head> |
| <body class="navigation-with-keyboard"> |
| <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)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_mbPH" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="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"></path></svg></button><a class="navbar__brand" target="_self" href="/"><div class="navbar__logo"><img src="/img/logo.svg" alt="Apache OpenDAL" class="themedComponent_uAN0 themedComponent--light_SXb1" height="32"><img src="/img/logo_dark.svg" alt="Apache OpenDAL" class="themedComponent_uAN0 themedComponent--dark_SjJw" height="32"></div></a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/">Docs</a><a class="navbar__item navbar__link" href="/blog/">Blog</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/community/">Community</a><a class="navbar__item navbar__link" href="/download/">Download</a><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><li><a href="https://www.apache.org/licenses/" target="_blank" rel="noopener noreferrer" class="dropdown__link">License</a></li><li><a href="https://www.apache.org/events/current-event.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Events</a></li><li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Privacy</a></li><li><a href="https://www.apache.org/security/" target="_blank" rel="noopener noreferrer" class="dropdown__link">Security</a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Sponsorship</a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Thanks</a></li><li><a href="https://www.apache.org/foundation/policies/conduct.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Code of Conduct</a></li></ul></div><a href="https://github.com/apache/opendal" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><a href="https://discord.gg/XQy8yGR2dg" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-discord-link" aria-label="Discord"></a><div class="navbarSearchContainer_cX17"><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="main-wrapper mainWrapper_NfWm"><div class="docsWrapper_EXDp"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_FqST" type="button"></button><div class="docRoot_FdVe"><aside class="theme-doc-sidebar-container docSidebarContainer_MTQP"><div class="sidebarViewport_zfgy"><div class="sidebar_qrCB"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_Mn2C"><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="/community/">Community</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/maturity/">Maturity</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/community/security/">Security</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/community/category/events/">Events</a><button aria-label="Expand sidebar category 'Events'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" href="/community/category/release/">Release</a><button aria-label="Collapse sidebar category 'Release'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/community/release/">Create a release</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/community/release/verify/">Verify a release candidate</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" tabindex="0" href="/community/category/reference/">Reference</a><button aria-label="Expand sidebar category 'Reference'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/community/category/committers/">Committers</a><button aria-label="Collapse sidebar category 'Committers'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/community/committers/onboarding/">Onboarding</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/community/committers/request_for_adding_secrets/">Request for adding secrets</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/community/category/pmc-members/">PMC Members</a><button aria-label="Collapse sidebar category 'PMC Members'" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/community/pmc_members/onboarding/">Onboarding</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/community/pmc_members/nominate-committer/">Nominate Committer</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/community/pmc_members/nominate-pmc-member/">Nominate PMC Member</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/community/pmc_members/board-reporting/">Board reporting</a></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_Ztw0"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_fzqc"><div class="docItemContainer_mgxp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_jTIh" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_crCa"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/community/category/release/"><span itemprop="name">Release</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Create a release</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible__3CD theme-doc-toc-mobile tocMobile_l2EP"><button type="button" class="clean-btn tocCollapsibleButton_Vl9O">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Create a release</h1></header><p>This document mainly introduces how the release manager |
| releases a new version of Apache OpenDAL™ in accordance with the Apache requirements.</p> |
| <h2 class="anchor anchorWithStickyNavbar_hDRy" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction"></a></h2> |
| <p><code>Source Release</code> is the key point which Apache values, and is also necessary for an ASF release.</p> |
| <p>Please remember that publishing software has legal consequences.</p> |
| <p>This guide complements the foundation-wide policies and guides:</p> |
| <ul> |
| <li><a href="https://www.apache.org/legal/release-policy.html" target="_blank" rel="noopener noreferrer">Release Policy</a></li> |
| <li><a href="https://infra.apache.org/release-distribution" target="_blank" rel="noopener noreferrer">Release Distribution Policy</a></li> |
| <li><a href="https://infra.apache.org/release-publishing.html" target="_blank" rel="noopener noreferrer">Release Creation Process</a></li> |
| </ul> |
| <h2 class="anchor anchorWithStickyNavbar_hDRy" id="some-terminology-of-release">Some Terminology of release<a href="#some-terminology-of-release" class="hash-link" aria-label="Direct link to Some Terminology of release" title="Direct link to Some Terminology of release"></a></h2> |
| <p>In the context of our release, we use several terms to describe different stages of the release process.</p> |
| <p>Here's an explanation of these terms:</p> |
| <ul> |
| <li><code>opendal_version</code>: the version of OpenDAL to be released, like <code>0.46.0</code>.</li> |
| <li><code>release_version</code>: the version of release candidate, like <code>0.46.0-rc.1</code>.</li> |
| <li><code>rc_version</code>: the minor version for voting round, like <code>rc.1</code>.</li> |
| <li><code>maven_artifact_number</code>: the number for Maven staging artifacts, like <code>1010</code>. The number can be found by searching "opendal" on <a href="https://repository.apache.org/#stagingRepositories" target="_blank" rel="noopener noreferrer">https://repository.apache.org/#stagingRepositories</a>. And the Maven staging artifacts will be created automatically when we push a git tag to GitHub for now.</li> |
| </ul> |
| <h2 class="anchor anchorWithStickyNavbar_hDRy" id="preparation">Preparation<a href="#preparation" class="hash-link" aria-label="Direct link to Preparation" title="Direct link to Preparation"></a></h2> |
| <div class="theme-admonition theme-admonition-caution admonition_oBR_ alert alert--warning"><div class="admonitionHeading_BquS"><span class="admonitionIcon_bL4W"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>caution</div><div class="admonitionContent_TttM"><p>This section is the requirements for individuals who are new to the role of release manager.</p></div></div> |
| <p>Refer to <a href="/community/release/reference/setup_gpg/">Setup GPG Key</a> to make sure the GPG key has been set up.</p> |
| <h2 class="anchor anchorWithStickyNavbar_hDRy" id="start-discussion-about-the-next-release">Start discussion about the next release<a href="#start-discussion-about-the-next-release" class="hash-link" aria-label="Direct link to Start discussion about the next release" title="Direct link to Start discussion about the next release"></a></h2> |
| <p>Start a discussion at <a href="https://github.com/apache/opendal/discussions/categories/general" target="_blank" rel="noopener noreferrer">OpenDAL Discussion General</a>:</p> |
| <p>Title:</p> |
| <div class="codeBlockContainer_HoUO theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_fLNQ"><pre tabindex="0" class="prism-code language-text codeBlock_OwT2 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_CaTV"><span class="token-line" style="color:#393A34"><span class="token plain">[DISCUSS] Release Apache OpenDAL ${release_version}</span><br></span></code></pre><div class="buttonGroup_ry9d"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_hlAx" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_e2oV"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Kvv3"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <p>Content:</p> |
| <div class="codeBlockContainer_HoUO theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_fLNQ"><pre tabindex="0" class="prism-code language-text codeBlock_OwT2 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_CaTV"><span class="token-line" style="color:#393A34"><span class="token plain">Hello, Apache OpenDAL Community,</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">This is a call for a discussion to release Apache OpenDAL version ${opendal_version}.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">The change lists about this release:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">https://github.com/apache/opendal/compare/v${opendal_last_version}...main</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span 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 the repo and start the release process after the discussion.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Thanks</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">${name}</span><br></span></code></pre><div class="buttonGroup_ry9d"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_hlAx" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_e2oV"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Kvv3"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <h2 class="anchor anchorWithStickyNavbar_hDRy" id="start-a-tracking-issue-about-the-next-release">Start a tracking issue about the next release<a href="#start-a-tracking-issue-about-the-next-release" class="hash-link" aria-label="Direct link to Start a tracking issue about the next release" title="Direct link to Start a tracking issue about the next release"></a></h2> |
| <p>Start a <a href="https://github.com/apache/opendal/issues/new?template=3-new-release.md" target="_blank" rel="noopener noreferrer">tracking issue on GitHub</a> for the upcoming release to track all tasks that need to be completed.</p> |
| <h2 class="anchor anchorWithStickyNavbar_hDRy" id="release-list">Release List<a href="#release-list" class="hash-link" aria-label="Direct link to Release List" title="Direct link to Release List"></a></h2> |
| <p>Update the version list in the <code>dev/src/release/package.rs</code> file.</p> |
| <p>For example:</p> |
| <ul> |
| <li>If there is any breaking change, please bump the <code>minor</code> version instead of the <code>patch</code> version.</li> |
| <li>If this package is not ready for release, please skip.</li> |
| </ul> |
| <h2 class="anchor anchorWithStickyNavbar_hDRy" id="github-side">GitHub Side<a href="#github-side" class="hash-link" aria-label="Direct link to GitHub Side" title="Direct link to GitHub Side"></a></h2> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" id="bump-version-in-project">Bump version in project<a href="#bump-version-in-project" class="hash-link" aria-label="Direct link to Bump version in project" title="Direct link to Bump version in project"></a></h3> |
| <p>Run <code>just update-version</code> to bump the version in the project.</p> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" id="update-docs">Update docs<a href="#update-docs" class="hash-link" aria-label="Direct link to Update docs" title="Direct link to Update docs"></a></h3> |
| <ul> |
| <li>Update <code>CHANGELOG.md</code>, refer to <a href="/community/release/reference/generate_release_note/">Generate Release Note</a> for more information.</li> |
| <li>Update <code>core/src/docs/upgrade.md</code> if there are breaking changes in <code>core</code></li> |
| <li>Make sure every released bindings' <code>upgrade.md</code> has been updated. |
| <ul> |
| <li>java: <code>bindings/java/upgrade.md</code></li> |
| <li>node.js: <code>bindings/nodejs/upgrade.md</code></li> |
| <li>python: <code>bindings/python/upgrade.md</code></li> |
| </ul> |
| </li> |
| </ul> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" id="generate-dependencies-list">Generate dependencies list<a href="#generate-dependencies-list" class="hash-link" aria-label="Direct link to Generate dependencies list" title="Direct link to Generate dependencies list"></a></h3> |
| <p>Download and setup <code>cargo-deny</code>. You can refer to <a href="https://embarkstudios.github.io/cargo-deny/cli/index.html" target="_blank" rel="noopener noreferrer">cargo-deny</a>.</p> |
| <p>Running <code>python3 ./scripts/dependencies.py generate</code> to update the dependency list of every package.</p> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" id="push-release-candidate-tag">Push release candidate tag<a href="#push-release-candidate-tag" class="hash-link" aria-label="Direct link to Push release candidate tag" title="Direct link to Push release candidate tag"></a></h3> |
| <p>After bump version PR gets merged, we can create a GitHub release for the release candidate:</p> |
| <ul> |
| <li>Create a tag at <code>main</code> branch on the <code>Bump Version</code> / <code>Patch up version</code> commit: <code>git tag -s "v0.46.0-rc.1"</code>, please correctly check out the corresponding commit instead of directly tagging on the main branch.</li> |
| <li>Push tags to GitHub: <code>git push --tags</code>.</li> |
| </ul> |
| <div class="theme-admonition theme-admonition-note admonition_oBR_ alert alert--secondary"><div class="admonitionHeading_BquS"><span class="admonitionIcon_bL4W"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_TttM"><p>Pushing a Git tag to GitHub repo will trigger a GitHub Actions workflow that creates a staging Maven release on <a href="https://repository.apache.org" target="_blank" rel="noopener noreferrer">https://repository.apache.org</a> which can be verified on voting.</p></div></div> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" id="check-the-github-action-status">Check the GitHub action status<a href="#check-the-github-action-status" class="hash-link" aria-label="Direct link to Check the GitHub action status" title="Direct link to Check the GitHub action status"></a></h3> |
| <p>After pushing the tag, we need to check the GitHub action status to make sure the release candidate is created successfully.</p> |
| <ul> |
| <li>Python: <a href="https://github.com/apache/opendal/actions/workflows/bindings_python.yml" target="_blank" rel="noopener noreferrer">Bindings Python CI</a></li> |
| <li>Java: <a href="https://github.com/apache/opendal/actions/workflows/bindings_java.yml" target="_blank" rel="noopener noreferrer">Bindings Java CI</a> and <a href="https://github.com/apache/opendal/actions/workflows/release_java.yml" target="_blank" rel="noopener noreferrer">Bindings Java Release</a></li> |
| <li>Node.js: <a href="https://github.com/apache/opendal/actions/workflows/bindings_nodejs.yml" target="_blank" rel="noopener noreferrer">Bindings Node.js CI</a></li> |
| </ul> |
| <p>In the most cases, it would be great to rerun the failed workflow directly when you find some failures. But if a new code patch is needed to fix the failure, you should create a new release candidate tag, increase the rc number and push it to GitHub.</p> |
| <h2 class="anchor anchorWithStickyNavbar_hDRy" id="asf-side">ASF Side<a href="#asf-side" class="hash-link" aria-label="Direct link to ASF Side" title="Direct link to ASF Side"></a></h2> |
| <p>If any step in the ASF Release process fails and requires code changes, |
| we will abandon that version and prepare for the next one. |
| Our release page will only display ASF releases instead of GitHub Releases.</p> |
| <p>Additionally, we should also drop the staging Maven artifacts on <a href="https://repository.apache.org" target="_blank" rel="noopener noreferrer">https://repository.apache.org</a>.</p> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" id="create-an-asf-release">Create an ASF Release<a href="#create-an-asf-release" class="hash-link" aria-label="Direct link to Create an ASF Release" title="Direct link to Create an ASF Release"></a></h3> |
| <p>After GitHub Release has been created, we can start to create ASF Release.</p> |
| <ul> |
| <li>Checkout to released tag. (e.g. <code>git checkout v0.46.0-rc.1</code>, tag is created in the previous step)</li> |
| <li>Use the release script to create a new release: <code>just release</code> |
| <ul> |
| <li>This script will generate the release candidate artifacts under <code>dist</code>, including: |
| <ul> |
| <li><code>apache-opendal-{package}-{version}-src.tar.gz</code></li> |
| <li><code>apache-opendal-{package}-{version}-src.tar.gz.asc</code></li> |
| <li><code>apache-opendal-{package}-{version}-src.tar.gz.sha512</code></li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li>Push the newly created branch to GitHub</li> |
| </ul> |
| <p>This script will create a new release under <code>dist</code>.</p> |
| <p>For example:</p> |
| <div class="language-shell codeBlockContainer_HoUO theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_fLNQ"><pre tabindex="0" class="prism-code language-shell codeBlock_OwT2 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_CaTV"><span class="token-line" style="color:#393A34"><span class="token plain">dist</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── apache-opendal-bindings-c-0.44.2-src.tar.gz</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── apache-opendal-bindings-c-0.44.2-src.tar.gz.asc</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── apache-opendal-bindings-c-0.44.2-src.tar.gz.sha512</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">...</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── apache-opendal-core-0.45.0-src.tar.gz</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── apache-opendal-core-0.45.0-src.tar.gz.asc</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── apache-opendal-core-0.45.0-src.tar.gz.sha512</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── apache-opendal-integrations-dav-server-0.0.0-src.tar.gz</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── apache-opendal-integrations-dav-server-0.0.0-src.tar.gz.asc</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── apache-opendal-integrations-dav-server-0.0.0-src.tar.gz.sha512</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── apache-opendal-integrations-object_store-0.42.0-src.tar.gz</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">├── apache-opendal-integrations-object_store-0.42.0-src.tar.gz.asc</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">└── apache-opendal-integrations-object_store-0.42.0-src.tar.gz.sha512</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">1 directory, 60 files</span><br></span></code></pre><div class="buttonGroup_ry9d"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_hlAx" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_e2oV"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Kvv3"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" id="upload-artifacts-to-the-svn-dist-repo">Upload artifacts to the SVN dist repo<a href="#upload-artifacts-to-the-svn-dist-repo" class="hash-link" aria-label="Direct link to Upload artifacts to the SVN dist repo" title="Direct link to Upload artifacts to the SVN dist repo"></a></h3> |
| <div class="theme-admonition theme-admonition-info admonition_oBR_ alert alert--info"><div class="admonitionHeading_BquS"><span class="admonitionIcon_bL4W"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_TttM"><p>SVN is required for this step.</p></div></div> |
| <p>The svn repository of the dev branch is: <a href="https://dist.apache.org/repos/dist/dev/opendal" target="_blank" rel="noopener noreferrer">https://dist.apache.org/repos/dist/dev/opendal</a></p> |
| <p>First, checkout OpenDAL to local directory:</p> |
| <div class="language-shell codeBlockContainer_HoUO theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_fLNQ"><pre tabindex="0" class="prism-code language-shell codeBlock_OwT2 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_CaTV"><span class="token-line" style="color:#393A34"><span class="token plain"># 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><br></span><span class="token-line" style="color:#393A34"><span class="token plain">svn co https://dist.apache.org/repos/dist/dev/opendal opendal-dist-dev</span><br></span></code></pre><div class="buttonGroup_ry9d"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_hlAx" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_e2oV"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Kvv3"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <p>Then, upload the artifacts:</p> |
| <blockquote> |
| <p>The <code>${release_version}</code> here should be like <code>0.46.0-rc.1</code></p> |
| </blockquote> |
| <div class="language-shell codeBlockContainer_HoUO theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_fLNQ"><pre tabindex="0" class="prism-code language-shell codeBlock_OwT2 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_CaTV"><span class="token-line" style="color:#393A34"><span class="token plain">cd opendal-dist-dev</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># create a directory named by version</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">mkdir ${release_version}</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># copy source code and signature package to the versioned directory</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">cp ${repo_dir}/dist/* ${release_version}/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># check svn status</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">svn status</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># add to svn</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">svn add ${release_version}</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># check svn status</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">svn status</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># commit to SVN remote server</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">svn commit -m "Prepare for ${release_version}"</span><br></span></code></pre><div class="buttonGroup_ry9d"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_hlAx" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_e2oV"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Kvv3"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <p>Visit <a href="https://dist.apache.org/repos/dist/dev/opendal/" target="_blank" rel="noopener noreferrer">https://dist.apache.org/repos/dist/dev/opendal/</a> to make sure the artifacts are uploaded correctly.</p> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" id="close-the-nexus-staging-repo">Close the Nexus staging repo<a href="#close-the-nexus-staging-repo" class="hash-link" aria-label="Direct link to Close the Nexus staging repo" title="Direct link to Close the Nexus staging repo"></a></h3> |
| <p>To verify the Maven staging artifacts in the next step, close the Nexus staging repo as below.</p> |
| <ol> |
| <li>Open <a href="https://repository.apache.org/#stagingRepositories" target="_blank" rel="noopener noreferrer">https://repository.apache.org/#stagingRepositories</a> with your Apache ID login.</li> |
| <li>Find the artifact <code>orgapacheopendal-${maven_artifact_number}</code>, click the "Close" button.</li> |
| </ol> |
| <p>The <code>close</code> operation means that the artifacts are ready for voting.</p> |
| <div class="theme-admonition theme-admonition-caution admonition_oBR_ alert alert--warning"><div class="admonitionHeading_BquS"><span class="admonitionIcon_bL4W"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>caution</div><div class="admonitionContent_TttM"><p>If the vote failed, click "Drop" to drop the staging Maven artifacts.</p></div></div> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" id="rescue">Rescue<a href="#rescue" class="hash-link" aria-label="Direct link to Rescue" title="Direct link to Rescue"></a></h3> |
| <p>If you accidentally published wrong or unexpected artifacts, like wrong signature files, wrong sha256 files, |
| please cancel the release for the current <code>release_version</code>, |
| <em>increase th RC counting</em> and re-initiate a release with the new <code>release_version</code>. |
| And remember to delete the wrong artifacts from the SVN dist repo. |
| Additionally, you should also drop the staging Maven artifacts on <a href="https://repository.apache.org" target="_blank" rel="noopener noreferrer">https://repository.apache.org</a>.</p> |
| <h2 class="anchor anchorWithStickyNavbar_hDRy" id="voting">Voting<a href="#voting" class="hash-link" aria-label="Direct link to Voting" title="Direct link to Voting"></a></h2> |
| <p>OpenDAL requires votes from both the OpenDAL Community.</p> |
| <p>Start a VOTE at <a href="https://github.com/apache/opendal/discussions/categories/general" target="_blank" rel="noopener noreferrer">OpenDAL Discussion General</a>:</p> |
| <p>Title:</p> |
| <div class="codeBlockContainer_HoUO theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_fLNQ"><pre tabindex="0" class="prism-code language-text codeBlock_OwT2 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_CaTV"><span class="token-line" style="color:#393A34"><span class="token plain">[VOTE] Release Apache OpenDAL ${release_version} - Vote Round 1</span><br></span></code></pre><div class="buttonGroup_ry9d"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_hlAx" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_e2oV"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Kvv3"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <p>Content:</p> |
| <div class="codeBlockContainer_HoUO theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_fLNQ"><pre tabindex="0" class="prism-code language-text codeBlock_OwT2 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_CaTV"><span class="token-line" style="color:#393A34"><span class="token plain">Hello, Apache OpenDAL Community,</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">This is a call for a vote to release Apache OpenDAL version ${opendal_version}.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">The tag to be voted on is ${opendal_version}.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">The release candidate:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">https://dist.apache.org/repos/dist/dev/opendal/${release_version}/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Keys to verify the release candidate:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">https://downloads.apache.org/opendal/KEYS</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Git tag for the release:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">https://github.com/apache/opendal/releases/tag/v${release_version}</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Maven staging repo:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">https://repository.apache.org/content/repositories/orgapacheopendal-${maven_artifact_number}/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Pypi testing repo:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">https://test.pypi.org/project/opendal/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Website staged:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">https://opendal-v${release_version | replace('.', '-')}.staged.apache.org/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Please download, verify, and test.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">The VOTE will be open for at least 72 hours and until the necessary</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">number of votes are reached.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- [ ] +1 approve</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- [ ] +0 no opinion</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- [ ] -1 disapprove with the reason</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">To learn more about apache opendal, please see https://opendal.apache.org/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Checklist for reference:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- [ ] Download links are valid.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- [ ] Checksums and signatures.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- [ ] LICENSE/NOTICE files exist</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- [ ] No unexpected binary files</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- [ ] All source files have ASF headers</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- [ ] Can compile from source</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Use our verify.py to assist in the verify process:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> svn co https://dist.apache.org/repos/dist/dev/opendal/${release_version}/ opendal-dev</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> cd opendal-dev</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> curl -sSL https://github.com/apache/opendal/raw/v${release_version}/scripts/verify.py -o verify.py</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> python verify.py</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Thanks</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">${name}</span><br></span></code></pre><div class="buttonGroup_ry9d"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_hlAx" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_e2oV"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Kvv3"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <p>Example: <a href="https://github.com/apache/opendal/discussions/5211" target="_blank" rel="noopener noreferrer">https://github.com/apache/opendal/discussions/5211</a></p> |
| <p>The vote should be open for <strong>at least 72 hours</strong> except the following cases:</p> |
| <ol> |
| <li>Security issues</li> |
| <li>The wild user affected bug fixes</li> |
| <li>Any other emergency cases</li> |
| </ol> |
| <p>The Release manager should claim the emergency cases in the vote email if he wants to vote it rapidly.</p> |
| <blockquote> |
| <p>Tips: The 72 hours is the minimum time for voting, so we can ensure that community members from various time zones can participate in the verification process.</p> |
| </blockquote> |
| <p>After at least 3 <code>+1</code> binding vote (<a href="https://people.apache.org/phonebook.html?project=opendal" target="_blank" rel="noopener noreferrer">from OpenDAL PMC member</a>) and more +1 bindings than -1 bindings, claim the vote result:</p> |
| <p>Title:</p> |
| <div class="codeBlockContainer_HoUO theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_fLNQ"><pre tabindex="0" class="prism-code language-text codeBlock_OwT2 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_CaTV"><span class="token-line" style="color:#393A34"><span class="token plain">[RESULT][VOTE] Release Apache OpenDAL ${release_version} - Vote Round 1</span><br></span></code></pre><div class="buttonGroup_ry9d"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_hlAx" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_e2oV"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Kvv3"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <p>Content:</p> |
| <div class="codeBlockContainer_HoUO theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_fLNQ"><pre tabindex="0" class="prism-code language-text codeBlock_OwT2 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_CaTV"><span class="token-line" style="color:#393A34"><span class="token plain">Hello, Apache OpenDAL Community,</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">The vote to release Apache OpenDAL ${release_version} has passed.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">The vote PASSED with 3 +1 binding and 1 +1 non-binding votes, no +0 or -1 votes:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Binding votes:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- xxx</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- yyy</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- zzz</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Non-Binding votes:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- aaa</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Vote thread: ${vote_thread_url}</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Thanks</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">${name}</span><br></span></code></pre><div class="buttonGroup_ry9d"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_hlAx" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_e2oV"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Kvv3"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <p>It's better to use the real name or the public name which is displayed on the voters' profile page, |
| or Apache ID of the voter, to show who voted in the vote result email, |
| and avoid using nicknames, it will make the vote result hard for others to track the voter. |
| We should make sure the binding votes are from the people who have the right to vote the binding one.</p> |
| <p>Example: <a href="https://lists.apache.org/thread/xk5myl10mztcfotn59oo59s4ckvojds6" target="_blank" rel="noopener noreferrer">https://lists.apache.org/thread/xk5myl10mztcfotn59oo59s4ckvojds6</a></p> |
| <h2 class="anchor anchorWithStickyNavbar_hDRy" 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"></a></h2> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" id="push-the-release-git-tag">Push the release git tag<a href="#push-the-release-git-tag" class="hash-link" aria-label="Direct link to Push the release git tag" title="Direct link to Push the release git tag"></a></h3> |
| <div class="language-shell codeBlockContainer_HoUO theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_fLNQ"><pre tabindex="0" class="prism-code language-shell codeBlock_OwT2 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_CaTV"><span class="token-line" style="color:#393A34"><span class="token plain"># Checkout the tags that passed VOTE</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">git checkout ${release_version}</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># Tag with the opendal version</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">git tag -s ${opendal_version}</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># Push tags to GitHub to trigger releases</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">git push origin ${opendal_version}</span><br></span></code></pre><div class="buttonGroup_ry9d"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_hlAx" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_e2oV"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Kvv3"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" id="publish-artifacts-to-svn-release-branch">Publish artifacts to SVN RELEASE branch<a href="#publish-artifacts-to-svn-release-branch" class="hash-link" aria-label="Direct link to Publish artifacts to SVN RELEASE branch" title="Direct link to Publish artifacts to SVN RELEASE branch"></a></h3> |
| <div class="language-shell codeBlockContainer_HoUO theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_fLNQ"><pre tabindex="0" class="prism-code language-shell codeBlock_OwT2 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_CaTV"><span class="token-line" style="color:#393A34"><span class="token plain">svn mv https://dist.apache.org/repos/dist/dev/opendal/${release_version} https://dist.apache.org/repos/dist/release/opendal/${opendal_version} -m "Release ${opendal_version}"</span><br></span></code></pre><div class="buttonGroup_ry9d"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_hlAx" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_e2oV"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Kvv3"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" 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"></a></h3> |
| <ol> |
| <li>Open <a href="https://repository.apache.org/#stagingRepositories" target="_blank" rel="noopener noreferrer">https://repository.apache.org/#stagingRepositories</a>.</li> |
| <li>Find the artifact <code>orgapacheopendal-${maven_artifact_number}</code>, click the "Release" button.</li> |
| </ol> |
| <p>It will take some time to sync the Maven artifacts to the Maven Central.</p> |
| <div class="theme-admonition theme-admonition-caution admonition_oBR_ alert alert--warning"><div class="admonitionHeading_BquS"><span class="admonitionIcon_bL4W"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>caution</div><div class="admonitionContent_TttM"><p>If the vote failed, click "Drop" to drop the staging Maven artifacts.</p></div></div> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" id="check-the-language-binding-artifacts">Check the language binding artifacts<a href="#check-the-language-binding-artifacts" class="hash-link" aria-label="Direct link to Check the language binding artifacts" title="Direct link to Check the language binding artifacts"></a></h3> |
| <p>We need to check the language binding artifacts in the language package repo to make sure they are released successfully.</p> |
| <ul> |
| <li>Python: <a href="https://pypi.org/project/opendal/" target="_blank" rel="noopener noreferrer">https://pypi.org/project/opendal/</a></li> |
| <li>Java: <a href="https://repository.apache.org/#nexus-search;quick~opendal" target="_blank" rel="noopener noreferrer">https://repository.apache.org/#nexus-search;quick~opendal</a></li> |
| <li>Node.js: <a href="https://www.npmjs.com/package/opendal" target="_blank" rel="noopener noreferrer">https://www.npmjs.com/package/opendal</a></li> |
| </ul> |
| <p>For Java binding, if we cannot find the latest version of artifacts in the repo, |
| we need to check the <code>orgapacheopendal-${maven_artifact_number}</code> artifact status in staging repo.</p> |
| <p>For non-Java bindings, if we cannot find the latest version of artifacts in the repo, |
| we need to check the GitHub action status.</p> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" id="create-a-github-release">Create a GitHub Release<a href="#create-a-github-release" class="hash-link" aria-label="Direct link to Create a GitHub Release" title="Direct link to Create a GitHub Release"></a></h3> |
| <ul> |
| <li>Click <a href="https://github.com/apache/opendal/releases/new" target="_blank" rel="noopener noreferrer">here</a> to create a new release.</li> |
| <li>Pick the git tag of this release version from the dropdown menu.</li> |
| <li>Make sure the branch target is <code>main</code>.</li> |
| <li>Generate the release note by clicking the <code>Generate release notes</code> button.</li> |
| <li>Add the release note from every component's <code>upgrade.md</code> if there are breaking changes before the content generated by GitHub. Check them carefully.</li> |
| <li>Publish the release.</li> |
| </ul> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" 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"></a></h3> |
| <p>Start an announcement to <a href="https://github.com/apache/opendal/discussions/categories/announcements" target="_blank" rel="noopener noreferrer">OpenDAL Discussion Announcements</a> and send the same content to <code>announce@apache.org</code>.</p> |
| <blockquote> |
| <p>Tips: Please follow the <a href="https://infra.apache.org/committer-email.html" target="_blank" rel="noopener noreferrer">Committer Email</a> guide to make sure you have already set up the email SMTP. Otherwise, your email cannot be sent to the announcement mailing list.</p> |
| </blockquote> |
| <p>Instead of adding breaking changes, let's include the new features as "notable changes" in the announcement.</p> |
| <p>Title:</p> |
| <div class="codeBlockContainer_HoUO theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_fLNQ"><pre tabindex="0" class="prism-code language-text codeBlock_OwT2 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_CaTV"><span class="token-line" style="color:#393A34"><span class="token plain">[ANNOUNCE] Release Apache OpenDAL ${opendal_version}</span><br></span></code></pre><div class="buttonGroup_ry9d"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_hlAx" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_e2oV"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Kvv3"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <p>Content:</p> |
| <div class="codeBlockContainer_HoUO theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_fLNQ"><pre tabindex="0" class="prism-code language-text codeBlock_OwT2 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_CaTV"><span class="token-line" style="color:#393A34"><span class="token plain">Hi all,</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">The Apache OpenDAL community is pleased to announce</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">that Apache OpenDAL ${opendal_version} has been released!</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">OpenDAL is a data access layer that allows users to easily and efficiently</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">retrieve data from various storage services in a unified way.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">The notable changes since ${opendal_version} include:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">1. xxxxx</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">2. yyyyyy</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">3. zzzzzz</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Please refer to the change log for the complete list of changes:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">https://github.com/apache/opendal/releases/tag/v${opendal_version}</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Apache OpenDAL website: https://opendal.apache.org/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Download Links: https://opendal.apache.org/download</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">OpenDAL Resources:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- Issue: https://github.com/apache/opendal/issues</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- Mailing list: dev@opendal.apache.org</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Thanks</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">On behalf of Apache OpenDAL community</span><br></span></code></pre><div class="buttonGroup_ry9d"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_hlAx" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_e2oV"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Kvv3"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> |
| <p>Example: <a href="https://lists.apache.org/thread/oy77n55brvk72tnlb2bjzfs9nz3cfd0s" target="_blank" rel="noopener noreferrer">https://lists.apache.org/thread/oy77n55brvk72tnlb2bjzfs9nz3cfd0s</a></p> |
| <h2 class="anchor anchorWithStickyNavbar_hDRy" id="post-release">Post release<a href="#post-release" class="hash-link" aria-label="Direct link to Post release" title="Direct link to Post release"></a></h2> |
| <p>After the official release out, you may perform a few post-actions.</p> |
| <h3 class="anchor anchorWithStickyNavbar_hDRy" id="remove-the-old-releases">Remove the old releases<a href="#remove-the-old-releases" class="hash-link" aria-label="Direct link to Remove the old releases" title="Direct link to Remove the old releases"></a></h3> |
| <p>Remove the old releases if any. You only need the latest release there, and older releases are available through the Apache archive.</p> |
| <p>To clean up old releases, run:</p> |
| <div class="language-shell codeBlockContainer_HoUO theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_fLNQ"><pre tabindex="0" class="prism-code language-shell codeBlock_OwT2 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_CaTV"><span class="token-line" style="color:#393A34"><span class="token plain"># 1. Get the list of releases</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">svn ls https://dist.apache.org/repos/dist/release/opendal</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 2. Delete each release (except for the last one)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">svn del -m "Archiving OpenDAL release X.Y.Z" https://dist.apache.org/repos/dist/release/opendal/X.Y.Z</span><br></span></code></pre><div class="buttonGroup_ry9d"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_hlAx" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_e2oV"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_Kvv3"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/opendal/tree/main/website/community/release/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_vgs4" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_l9Jf"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/community/category/release/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Release</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/community/release/verify/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Verify a release candidate</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_f6Mq 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><li><a href="#some-terminology-of-release" class="table-of-contents__link toc-highlight">Some Terminology of release</a></li><li><a href="#preparation" class="table-of-contents__link toc-highlight">Preparation</a></li><li><a href="#start-discussion-about-the-next-release" class="table-of-contents__link toc-highlight">Start discussion about the next release</a></li><li><a href="#start-a-tracking-issue-about-the-next-release" class="table-of-contents__link toc-highlight">Start a tracking issue about the next release</a></li><li><a href="#release-list" class="table-of-contents__link toc-highlight">Release List</a></li><li><a href="#github-side" class="table-of-contents__link toc-highlight">GitHub Side</a><ul><li><a href="#bump-version-in-project" class="table-of-contents__link toc-highlight">Bump version in project</a></li><li><a href="#update-docs" class="table-of-contents__link toc-highlight">Update docs</a></li><li><a href="#generate-dependencies-list" class="table-of-contents__link toc-highlight">Generate dependencies list</a></li><li><a href="#push-release-candidate-tag" class="table-of-contents__link toc-highlight">Push release candidate tag</a></li><li><a href="#check-the-github-action-status" class="table-of-contents__link toc-highlight">Check the GitHub action status</a></li></ul></li><li><a href="#asf-side" class="table-of-contents__link toc-highlight">ASF Side</a><ul><li><a href="#create-an-asf-release" class="table-of-contents__link toc-highlight">Create an ASF Release</a></li><li><a href="#upload-artifacts-to-the-svn-dist-repo" class="table-of-contents__link toc-highlight">Upload artifacts to the SVN dist repo</a></li><li><a href="#close-the-nexus-staging-repo" class="table-of-contents__link toc-highlight">Close the Nexus staging repo</a></li><li><a href="#rescue" class="table-of-contents__link toc-highlight">Rescue</a></li></ul></li><li><a href="#voting" class="table-of-contents__link toc-highlight">Voting</a></li><li><a href="#official-release" class="table-of-contents__link toc-highlight">Official Release</a><ul><li><a href="#push-the-release-git-tag" class="table-of-contents__link toc-highlight">Push the release git tag</a></li><li><a href="#publish-artifacts-to-svn-release-branch" class="table-of-contents__link toc-highlight">Publish artifacts to SVN RELEASE branch</a></li><li><a href="#release-maven-artifacts" class="table-of-contents__link toc-highlight">Release Maven artifacts</a></li><li><a href="#check-the-language-binding-artifacts" class="table-of-contents__link toc-highlight">Check the language binding artifacts</a></li><li><a href="#create-a-github-release" class="table-of-contents__link toc-highlight">Create a GitHub Release</a></li><li><a href="#send-the-announcement" class="table-of-contents__link toc-highlight">Send the announcement</a></li></ul></li><li><a href="#post-release" class="table-of-contents__link toc-highlight">Post release</a><ul><li><a href="#remove-the-old-releases" class="table-of-contents__link toc-highlight">Remove the old releases</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="footer"><div class="container container-fluid"><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://www.apache.org/" rel="noopener noreferrer" class="footerLogoLink_iEtV"><img src="/./img/asf_logo_wide.svg" alt="Apache Software Foundation" class="footer__logo themedComponent_uAN0 themedComponent--light_SXb1" width="300"><img src="/./img/asf_logo_wide.svg" alt="Apache Software Foundation" class="footer__logo themedComponent_uAN0 themedComponent--dark_SjJw" width="300"></a></div><div class="footer__copyright">Copyright © 2022-2025, The Apache Software Foundation<br>Apache OpenDAL, OpenDAL, Apache, the Apache feather and the Apache OpenDAL project logo are either registered trademarks or trademarks of the Apache Software Foundation.</div></div></div></footer></div> |
| </body> |
| </html> |