| <!DOCTYPE html> |
| <html lang="en" class="js csstransforms3d"> |
| <head> |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> |
| <meta name="generator" content="Hugo 0.70.0" /> |
| <meta name="description" content=""> |
| <meta name="buildDate" content="2023-06-09 17:25:25"> |
| |
| |
| <link rel="shortcut icon" href="https://shardingsphere.apache.org/document/current/img/favicon.png" type="image/x-icon" /> |
| |
| <title>ShardingSphere Release Guide :: ShardingSphere</title> |
| |
| |
| <link href="https://shardingsphere.apache.org/community/css/nucleus.css?1686302725" rel="stylesheet"> |
| <link href="https://shardingsphere.apache.org/community/css/font-awesome.min.css?1686302725" rel="stylesheet"> |
| <link href="https://shardingsphere.apache.org/community/css/hybrid.css?1686302725" rel="stylesheet"> |
| <link href="https://shardingsphere.apache.org/community/css/featherlight.min.css?1686302725" rel="stylesheet"> |
| <link href="https://shardingsphere.apache.org/community/css/perfect-scrollbar.min.css?1686302725" rel="stylesheet"> |
| <link href="https://shardingsphere.apache.org/community/css/auto-complete.css?1686302725" rel="stylesheet"> |
| <link href="https://shardingsphere.apache.org/community/css/theme.css?1686302725" rel="stylesheet"> |
| <link href="https://shardingsphere.apache.org/community/css/hugo-theme.css?1686302725" rel="stylesheet"> |
| |
| <link href="https://shardingsphere.apache.org/community/css/theme-white.css?1686302725" rel="stylesheet"> |
| |
| |
| <script src="https://shardingsphere.apache.org/community/js/jquery-2.x.min.js?1686302725"></script> |
| |
| <script> |
| var _hmt = _hmt || []; |
| (function() { |
| var hm = document.createElement("script"); |
| hm.src = "https://hm.baidu.com/hm.js?d5a1dc8dcf63a64ee55b80de01c7fb1a"; |
| var s = document.getElementsByTagName("script")[0]; |
| s.parentNode.insertBefore(hm, s); |
| })(); |
| </script> |
| |
| <script async src="https://www.googletagmanager.com/gtag/js?id=G-HPVGEN405S"></script> |
| <script> |
| window.dataLayer = window.dataLayer || []; |
| function gtag(){window.dataLayer.push(arguments);} |
| gtag('js', new Date()); |
| |
| gtag('config', 'G-HPVGEN405S'); |
| </script> |
| |
| <style type="text/css"> |
| :root #header + #content > #left > #rlblock_left{ |
| display:none !important; |
| } |
| |
| |
| |
| </style> |
| |
| |
| </head> |
| <body class="" data-url="/en/involved/release/shardingsphere/"> |
| <div class="change-theme"> |
| <div class="wrap"> |
| |
| <span data-item="retro"> |
| <svg t="1649761460834" class="icon" viewBox="0 0 1243 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2052" width="16" height="16"><path d="M755.093336 61.436797a511.973304 511.973304 0 1 0 207.495466 693.650688l-99.615377-53.757197a398.827204 398.827204 0 1 1-161.637286-540.351253l53.757197-99.615378z" fill="#ffffff" p-id="2053"></path><path d="M1204.971593 188.84501L534.652259 736.217612l-285.242269-364.086159 86.304071-67.653615 216.199012 275.953611 583.649567-476.574007 69.335813 84.987568z" fill="#ffffff" p-id="2054"></path></svg> |
| Retro |
| </span> |
| <span data-item="eyehelp"> |
| <svg t="1649761460834" class="icon" viewBox="0 0 1243 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2052" width="16" height="16"><path d="M755.093336 61.436797a511.973304 511.973304 0 1 0 207.495466 693.650688l-99.615377-53.757197a398.827204 398.827204 0 1 1-161.637286-540.351253l53.757197-99.615378z" fill="#ffffff" p-id="2053"></path><path d="M1204.971593 188.84501L534.652259 736.217612l-285.242269-364.086159 86.304071-67.653615 216.199012 275.953611 583.649567-476.574007 69.335813 84.987568z" fill="#ffffff" p-id="2054"></path></svg> |
| Eye care |
| </span> |
| <span data-item="haitian"> |
| <svg t="1649761460834" class="icon" viewBox="0 0 1243 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2052" width="16" height="16"><path d="M755.093336 61.436797a511.973304 511.973304 0 1 0 207.495466 693.650688l-99.615377-53.757197a398.827204 398.827204 0 1 1-161.637286-540.351253l53.757197-99.615378z" fill="#ffffff" p-id="2053"></path><path d="M1204.971593 188.84501L534.652259 736.217612l-285.242269-364.086159 86.304071-67.653615 216.199012 275.953611 583.649567-476.574007 69.335813 84.987568z" fill="#ffffff" p-id="2054"></path></svg> |
| Haitian |
| </span> |
| <span data-item="deep"> |
| <svg t="1649761460834" class="icon" viewBox="0 0 1243 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2052" width="16" height="16"><path d="M755.093336 61.436797a511.973304 511.973304 0 1 0 207.495466 693.650688l-99.615377-53.757197a398.827204 398.827204 0 1 1-161.637286-540.351253l53.757197-99.615378z" fill="#ffffff" p-id="2053"></path><path d="M1204.971593 188.84501L534.652259 736.217612l-285.242269-364.086159 86.304071-67.653615 216.199012 275.953611 583.649567-476.574007 69.335813 84.987568z" fill="#ffffff" p-id="2054"></path></svg> |
| Deep |
| </span> |
| <span data-item="dark"> |
| <svg t="1649761460834" class="icon" viewBox="0 0 1243 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2052" width="16" height="16"><path d="M755.093336 61.436797a511.973304 511.973304 0 1 0 207.495466 693.650688l-99.615377-53.757197a398.827204 398.827204 0 1 1-161.637286-540.351253l53.757197-99.615378z" fill="#ffffff" p-id="2053"></path><path d="M1204.971593 188.84501L534.652259 736.217612l-285.242269-364.086159 86.304071-67.653615 216.199012 275.953611 583.649567-476.574007 69.335813 84.987568z" fill="#ffffff" p-id="2054"></path></svg> |
| Dark |
| </span> |
| <span class="active"> |
| <svg t="1649761460834" class="icon" viewBox="0 0 1243 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2052" width="16" height="16"><path d="M755.093336 61.436797a511.973304 511.973304 0 1 0 207.495466 693.650688l-99.615377-53.757197a398.827204 398.827204 0 1 1-161.637286-540.351253l53.757197-99.615378z" fill="#ffffff" p-id="2053"></path><path d="M1204.971593 188.84501L534.652259 736.217612l-285.242269-364.086159 86.304071-67.653615 216.199012 275.953611 583.649567-476.574007 69.335813 84.987568z" fill="#ffffff" p-id="2054"></path></svg> |
| Default |
| </span> |
| |
| </div> |
| </div> |
| |
| |
| |
| <header> |
| <div class="wrap"> |
| <a href="https://shardingsphere.apache.org/"><img src="https://shardingsphere.apache.org/document/current/img/logo_v3.png" /></a> |
| |
| |
| |
| |
| |
| <section id="prefooter"> |
| |
| <ul> |
| |
| <li> |
| <a class="padding"> |
| <i class="fa fa-fw fa-language"></i> |
| <div class="select-style"> |
| <select id="select-language" onchange="location = this.value;"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <option id="en" value="/community/en/involved/release/shardingsphere/" selected>English</option> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <option id="cn" value="/community/cn/involved/release/shardingsphere/">简体中文</option> |
| |
| |
| |
| |
| </select> |
| <svg t="1645437162166" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2449" width="32" height="32"><path d="M483.072 714.496l30.165333 30.208 415.957334-415.829333a42.837333 42.837333 0 0 0 0-60.288 42.538667 42.538667 0 0 0-60.330667-0.042667l-355.541333 355.413333-355.242667-355.413333a42.496 42.496 0 0 0-60.288 0 42.837333 42.837333 0 0 0-0.085333 60.330667l383.701333 383.872 1.706667 1.749333z" fill="#3D3D3D" p-id="2450"></path></svg> |
| </div> |
| </a> |
| </li> |
| |
| |
| |
| </ul> |
| </section> |
| |
| </div> |
| </header> |
| <div class="wrap"> |
| <nav id="sidebar" class=""> |
| |
| |
| |
| <div id="header-wrapper"> |
| |
| |
| <div class="searchbox"> |
| <label for="search-by"><i class="fa fa-search"></i></label> |
| <input data-search-input id="search-by" type="text" placeholder="Search..."> |
| <span data-search-clear=""><i class="fa fa-close"></i></span> |
| </div> |
| |
| <script type="text/javascript" src="https://shardingsphere.apache.org/community/js/lunr.min.js?1686302725"></script> |
| <script type="text/javascript" src="https://shardingsphere.apache.org/community/js/auto-complete.js?1686302725"></script> |
| <script type="text/javascript"> |
| |
| var baseurl = "\/en"; |
| |
| </script> |
| <script type="text/javascript" src="https://shardingsphere.apache.org/community/js/search.js?1686302725"></script> |
| |
| |
| </div> |
| |
| <div class="highlightable"> |
| <div class="leftMenu"> |
| <ul class="topics"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/" title="Get Involved" class="dd-item |
| parent |
| |
| |
| "> |
| |
| <a href="https://shardingsphere.apache.org/community/en/involved/"> |
| <i class="collapse" style="display:inline; font-family:'courier';"> |
| |
| <svg class="icon icon-down" |
| style="display: inline-block;" |
| viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777"> |
| <path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path> |
| </svg> |
| <svg class="icon icon-right" |
| style="display: none;" |
| viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777"> |
| <path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path> |
| </svg> |
| |
| </i> |
| <b>1. </b>Get Involved |
| |
| </a> |
| |
| |
| <ul> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/subscribe/" title="Subscribe Guide" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/subscribe/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| Subscribe Guide |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/contribute/" title="Contribute Guide" class="dd-item |
| |
| |
| |
| "> |
| |
| <a href="https://shardingsphere.apache.org/community/en/involved/contribute/"> |
| <i class="collapse" style="display:inline; font-family:'courier';"> |
| |
| <svg class="icon icon-down" |
| style="display: none;" |
| viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777"> |
| <path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path> |
| </svg> |
| <svg class="icon icon-right" |
| style="display: inline-block;" |
| viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777"> |
| <path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path> |
| </svg> |
| |
| </i> |
| Contribute Guide |
| |
| </a> |
| |
| |
| <ul> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/contribute/contributor/" title="Contributor Guide" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/contribute/contributor/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| Contributor Guide |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/contribute/dev-env/" title="How to Set Up Your DEV Environment" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/contribute/dev-env/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| How to Set Up Your DEV Environment |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/contribute/document/" title="Documents Contribute Guide" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/contribute/document/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| Documents Contribute Guide |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/conduct/" title="Contribution Conduct" class="dd-item |
| |
| |
| |
| "> |
| |
| <a href="https://shardingsphere.apache.org/community/en/involved/conduct/"> |
| <i class="collapse" style="display:inline; font-family:'courier';"> |
| |
| <svg class="icon icon-down" |
| style="display: none;" |
| viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777"> |
| <path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path> |
| </svg> |
| <svg class="icon icon-right" |
| style="display: inline-block;" |
| viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777"> |
| <path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path> |
| </svg> |
| |
| </i> |
| Contribution Conduct |
| |
| </a> |
| |
| |
| <ul> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/conduct/issue/" title="Issue of Conduct" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/conduct/issue/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| Issue of Conduct |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/conduct/code/" title="Code of Conduct" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/conduct/code/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| Code of Conduct |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/conduct/document/" title="Document of Conduct" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/conduct/document/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| Document of Conduct |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/committer/" title="Committer Guide" class="dd-item |
| |
| |
| |
| "> |
| |
| <a href="https://shardingsphere.apache.org/community/en/involved/committer/"> |
| <i class="collapse" style="display:inline; font-family:'courier';"> |
| |
| <svg class="icon icon-down" |
| style="display: none;" |
| viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777"> |
| <path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path> |
| </svg> |
| <svg class="icon icon-right" |
| style="display: inline-block;" |
| viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777"> |
| <path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path> |
| </svg> |
| |
| </i> |
| Committer Guide |
| |
| </a> |
| |
| |
| <ul> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/committer/responsibilities/" title="Responsibilities & Routine" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/committer/responsibilities/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| Responsibilities & Routine |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/committer/vote/" title="New committer voting process" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/committer/vote/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| New committer voting process |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/committer/icla/" title="Sign ICLA Guide" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/committer/icla/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| Sign ICLA Guide |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/committer/2fa/" title="2FA" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/committer/2fa/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| 2FA |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/release/" title="Release Guide" class="dd-item |
| parent |
| |
| |
| "> |
| |
| <a href="https://shardingsphere.apache.org/community/en/involved/release/"> |
| <i class="collapse" style="display:inline; font-family:'courier';"> |
| |
| <svg class="icon icon-down" |
| style="display: inline-block;" |
| viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777"> |
| <path d="M500.8 604.778667L267.306667 371.392l-45.226667 45.269333 278.741333 278.613334 278.485334-278.613334-45.248-45.248z" p-id="5376" ></path> |
| </svg> |
| <svg class="icon icon-right" |
| style="display: none;" |
| viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#777"> |
| <path d="M593.450667 512.128L360.064 278.613333l45.290667-45.226666 278.613333 278.762666L405.333333 790.613333l-45.226666-45.269333z" p-id="5605" ></path> |
| </svg> |
| |
| </i> |
| Release Guide |
| |
| </a> |
| |
| |
| <ul> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/release/shardingsphere/" title="ShardingSphere Release Guide" class="dd-item active"> |
| <a href="https://shardingsphere.apache.org/community/en/involved/release/shardingsphere/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| ShardingSphere Release Guide |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/release/shardingsphere-on-cloud/" title="ShardingSphere on Cloud Release Guide" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/release/shardingsphere-on-cloud/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| ShardingSphere on Cloud Release Guide |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/release/elasticjob/" title="ElasticJob Release Guide" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/release/elasticjob/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| ElasticJob Release Guide |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/involved/release/elasticjob-ui/" title="ElasticJob UI Release Guide" class="dd-item "> |
| <a href="https://shardingsphere.apache.org/community/en/involved/release/elasticjob-ui/"> |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| ElasticJob UI Release Guide |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| </ul> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/powered-by/" title="Powered By ShardingSphere" class="dd-item |
| |
| |
| |
| "> |
| |
| <a href="https://shardingsphere.apache.org/community/en/powered-by/"> |
| <i class="collapse" style="display:inline; font-family:'courier';"> |
| |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| |
| </i> |
| <b>2. </b>Powered By ShardingSphere |
| |
| </a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/team/" title="Team" class="dd-item |
| |
| |
| |
| "> |
| |
| <a href="https://shardingsphere.apache.org/community/en/team/"> |
| <i class="collapse" style="display:inline; font-family:'courier';"> |
| |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| |
| </i> |
| <b>3. </b>Team |
| |
| </a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li data-nav-id="/en/security/" title="Security" class="dd-item |
| |
| |
| |
| "> |
| |
| <a href="https://shardingsphere.apache.org/community/en/security/"> |
| <i class="collapse" style="display:inline; font-family:'courier';"> |
| |
| <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5375" width="20" height="20"></svg> |
| |
| </i> |
| <b>4. </b>Security |
| |
| </a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| </ul> |
| |
| |
| |
| </div> |
| |
| |
| |
| |
| |
| <a class="padding" href="https://shardingsphere.apache.org/pdf/shardingsphere_docs_en.pdf"> |
| Download PDF |
| |
| </a> |
| |
| <section id="footer"> |
| <p></p> |
| |
| </section> |
| </div> |
| </nav> |
| |
| |
| |
| |
| |
| <section id="body"> |
| <div id="overlay"></div> |
| <div class="padding highlightable"> |
| |
| <div> |
| <div id="top-bar"> |
| |
| |
| |
| |
| <div id="top-github-link"> |
| <a class="github-link" title='Edit this page' href="https://github.com/apache/shardingsphere/tree/master/docs/community/content/involved/release/shardingsphere.en.md" target="blank"> |
| <i class="fa fa-code-fork"></i> |
| <span id="top-github-link-text">Edit this page</span> |
| </a> |
| </div> |
| |
| |
| |
| <div id="breadcrumbs" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"> |
| <span id="sidebar-toggle-span"> |
| <a href="#" id="sidebar-toggle" data-sidebar-toggle=""> |
| <i class="fa fa-bars"></i> |
| </a> |
| </span> |
| |
| <span class="links"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href='https://shardingsphere.apache.org/community/en/'>ShardingSphere</a> > <a href='https://shardingsphere.apache.org/community/en/involved/'>Get Involved</a> > <a href='https://shardingsphere.apache.org/community/en/involved/release/'>Release Guide</a> > ShardingSphere Release Guide |
| |
| |
| |
| |
| |
| |
| |
| |
| </span> |
| </div> |
| |
| </div> |
| </div> |
| |
| |
| |
| <div id="chapter"> |
| |
| <div id="body-inner"> |
| |
| |
| |
| |
| |
| <nav id="TableOfContents"> |
| <ul> |
| <li><a href="#prepare-before-release">Prepare Before Release</a> |
| <ul> |
| <li><a href="#1-check-and-update-license-and-notice">1. Check and Update LICENSE and NOTICE</a></li> |
| <li><a href="#2-confirm-release-notes">2. Confirm Release Notes</a></li> |
| <li><a href="#3-create-milestone-for-next-development">3. Create Milestone for Next Development</a></li> |
| <li><a href="#4-confirm-issue-list">4. Confirm Issue List</a></li> |
| <li><a href="#5-confirm-pull-request-list">5. Confirm Pull Request List</a></li> |
| <li><a href="#6-call-for-a-discussion">6. Call for a Discussion</a></li> |
| </ul> |
| </li> |
| <li><a href="#gpg-settings">GPG Settings</a> |
| <ul> |
| <li><a href="#1-install-gpg">1. Install GPG</a></li> |
| <li><a href="#2-create-key">2. Create Key</a></li> |
| <li><a href="#3-check-generated-key">3. Check Generated Key</a></li> |
| <li><a href="#4-upload-the-public-key-to-key-server">4. Upload the Public Key to Key Server</a></li> |
| </ul> |
| </li> |
| <li><a href="#prepare-branch-for-release">Prepare Branch for Release</a> |
| <ul> |
| <li><a href="#1-close-milestone">1. Close milestone</a></li> |
| <li><a href="#2-confirm-the-release-commit-and-create-release-branch">2. Confirm the Release Commit and Create Release Branch</a></li> |
| <li><a href="#3-update-release-notes-and-example-version">3. Update Release Notes And Example Version</a></li> |
| <li><a href="#4-update-the-download-page">4. Update the download page</a></li> |
| <li><a href="#5-update-readme-files">5. Update README files</a></li> |
| </ul> |
| </li> |
| <li><a href="#apache-maven-central-repository-release">Apache Maven Central Repository Release</a> |
| <ul> |
| <li><a href="#1-set-settings-securityxml-and-settingsxml">1. Set settings-security.xml and settings.xml</a></li> |
| <li><a href="#2-pre-release-check">2. Pre-Release Check</a></li> |
| <li><a href="#3-prepare-for-the-release">3. Prepare for the Release</a></li> |
| <li><a href="#4-deploy-the-release">4. Deploy the Release</a></li> |
| </ul> |
| </li> |
| <li><a href="#apache-svn-repository-release">Apache SVN Repository Release</a> |
| <ul> |
| <li><a href="#1-checkout-shardingsphere-release-directory">1. Checkout ShardingSphere Release Directory</a></li> |
| <li><a href="#2-add-gpg-public-key-and-commit">2. Add gpg Public Key and commit</a></li> |
| <li><a href="#3-add-the-release-content-to-svn-directory">3. Add the Release Content to SVN Directory</a></li> |
| <li><a href="#4-commit-to-apache-svn">4. Commit to Apache SVN</a></li> |
| </ul> |
| </li> |
| <li><a href="#check-release">Check Release</a> |
| <ul> |
| <li><a href="#1-check-sha512-hash">1. Check sha512 hash</a></li> |
| <li><a href="#2-check-gpg-signature">2. Check gpg Signature</a></li> |
| <li><a href="#3-check-released-files">3. Check Released Files</a></li> |
| </ul> |
| </li> |
| <li><a href="#call-for-a-vote">Call for a Vote</a></li> |
| <li><a href="#finish-the-release">Finish the Release</a> |
| <ul> |
| <li><a href="#1-move-source-packages-binary-packages-and-keys-from-the-dev-directory-to-release-directory">1. Move source packages, binary packages and KEYS from the <code>dev</code> directory to <code>release</code> directory</a></li> |
| <li><a href="#2-find-shardingsphere-in-staging-repositoryhttpsrepositoryapacheorgstagingrepositories--and-click-release">2. Find ShardingSphere in <a href="https://repository.apache.org/#stagingRepositories">staging repository</a> and click <code>Release</code></a></li> |
| <li><a href="#3-docker-release">3. Docker Release</a></li> |
| <li><a href="#4-publish-release-on-github">4. Publish release on GitHub</a></li> |
| <li><a href="#5-remove-previous-release-from-release-area">5. Remove previous release from Release Area</a></li> |
| <li><a href="#6-add-entrance-of-documents-of-the-new-release-into-home-page">6. Add entrance of documents of the new release into home page</a></li> |
| <li><a href="#7-update-example-version">7. Update Example Version</a></li> |
| <li><a href="#8-merge-release-branch-to-master-and-delete-release-branch-on-github">8. Merge release branch to <code>master</code> and delete release branch on GitHub</a></li> |
| <li><a href="#9-announce-release-completed-by-email">9. Announce release completed by email</a></li> |
| </ul> |
| </li> |
| <li><a href="#appendix-how-to-abort-release-procedure">Appendix: How to abort release procedure</a> |
| <ul> |
| <li><a href="#vote-down-the-release-and-describe-the-reason">Vote down the release and describe the reason</a></li> |
| <li><a href="#remove-release-candidates-from-dev-area">Remove release candidates from dev area</a></li> |
| <li><a href="#drop-maven-staging-repository">Drop Maven Staging Repository</a></li> |
| <li><a href="#reset-release-branch-and-delete-tag">Reset release branch and delete tag</a></li> |
| </ul> |
| </li> |
| </ul> |
| </nav> |
| |
| <h2 id="prepare-before-release">Prepare Before Release</h2> |
| <p>The preparation work is carried out <strong>7 days before cutting release</strong>, so that contributors can control the development progress according to the release plan.</p> |
| <h3 id="1-check-and-update-license-and-notice">1. Check and Update LICENSE and NOTICE</h3> |
| <p>Check and update dependency version in LICENSE.</p> |
| <p>Check and update year in NOTICE.</p> |
| <h3 id="2-confirm-release-notes">2. Confirm Release Notes</h3> |
| <p>The release note should be provided in English / Chinese, confirm whether English and Chinese description are clear, |
| and shall be classified according to the following labels:</p> |
| <ol> |
| <li>New Feature</li> |
| <li>API Change</li> |
| <li>Enhancement</li> |
| <li>Bug Fix</li> |
| </ol> |
| <h3 id="3-create-milestone-for-next-development">3. Create Milestone for Next Development</h3> |
| <ol> |
| <li>Create a <a href="https://github.com/apache/shardingsphere/milestones">Github Milestone</a>;</li> |
| <li>Set milestone title to next development version;</li> |
| <li><strong>Set the <code>due date</code> as the next version release cutting date</strong> 。</li> |
| </ol> |
| <h3 id="4-confirm-issue-list">4. Confirm Issue List</h3> |
| <p>Open <a href="https://github.com/apache/shardingsphere/issues">GitHub issues</a>, filter the issue whose milestone is <code>${RELEASE.VERSION}</code> and status is open:</p> |
| <ol> |
| <li>Close the completed issue;</li> |
| <li>For outstanding issues, communicate with the developer in charge. If this release is not affected, modify milestone to the next version;</li> |
| <li>Confirm that there is no issue in open status under milestone of release version.</li> |
| </ol> |
| <h3 id="5-confirm-pull-request-list">5. Confirm Pull Request List</h3> |
| <p>Open <a href="https://github.com/apache/shardingsphere/pulls">GitHub pull requests</a>, filter pull requests whose milestone is <code>${RELEASE.VERSION}</code> and status is open:</p> |
| <ol> |
| <li>Review the open pull request and merge;</li> |
| <li>For pull requests that cannot merge and do not affect this release, modify milestone to the next version;</li> |
| <li>Confirm that there is no open pull request under milestone of release version.</li> |
| </ol> |
| <h3 id="6-call-for-a-discussion">6. Call for a Discussion</h3> |
| <ol> |
| <li>Create a <a href="https://github.com/apache/shardingsphere/discussions">GitHub Discussion</a> contains all the release notes and <strong>release cutting date</strong> ;</li> |
| <li>Send email to <a href="mailto:dev@shardingsphere.apache.org">dev@shardingsphere.apache.org</a> with the GitHub Discussion and <strong>release cutting date</strong> in the message body;</li> |
| <li>Follow the mailing list and confirm that the community developers have no questions about the release note.</li> |
| </ol> |
| <h2 id="gpg-settings">GPG Settings</h2> |
| <h3 id="1-install-gpg">1. Install GPG</h3> |
| <p>Download installation package on <a href="https://www.gnupg.org/download/index.html">official GnuPG website</a>. |
| The command of GnuPG 1.x version can differ a little from that of 2.x version. |
| The following instructions take <code>GnuPG-2.1.23</code> version for example. |
| After the installation, execute the following command to check the version number.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">gpg --version |
| </code></pre></div><h3 id="2-create-key">2. Create Key</h3> |
| <p>After the installation, execute the following command to create key.</p> |
| <p>This command indicates <code>GnuPG-2.x</code> can be used:</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">gpg --full-gen-key |
| </code></pre></div><p>This command indicates <code>GnuPG-1.x</code> can be used:</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">gpg --gen-key |
| </code></pre></div><p>Finish the key creation according to instructions:</p> |
| <blockquote> |
| <p>To be noticed: Please use personal Apache email address for key creation.</p> |
| </blockquote> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">gpg <span style="color:#f92672">(</span>GnuPG<span style="color:#f92672">)</span> 2.0.12; Copyright <span style="color:#f92672">(</span>C<span style="color:#f92672">)</span> <span style="color:#ae81ff">2009</span> Free Software Foundation, Inc. |
| This is free software: you are free to change and redistribute it. |
| There is NO WARRANTY, to the extent permitted by law. |
| |
| Please <span style="color:#66d9ef">select</span> what kind of key you want: |
| <span style="color:#f92672">(</span>1<span style="color:#f92672">)</span> RSA and RSA <span style="color:#f92672">(</span>default<span style="color:#f92672">)</span> |
| <span style="color:#f92672">(</span>2<span style="color:#f92672">)</span> DSA and Elgamal |
| <span style="color:#f92672">(</span>3<span style="color:#f92672">)</span> DSA <span style="color:#f92672">(</span>sign only<span style="color:#f92672">)</span> |
| <span style="color:#f92672">(</span>4<span style="color:#f92672">)</span> RSA <span style="color:#f92672">(</span>sign only<span style="color:#f92672">)</span> |
| Your selection? <span style="color:#ae81ff">1</span> |
| RSA keys may be between <span style="color:#ae81ff">1024</span> and <span style="color:#ae81ff">4096</span> bits long. |
| What keysize <span style="color:#66d9ef">do</span> you want? <span style="color:#f92672">(</span>2048<span style="color:#f92672">)</span> <span style="color:#ae81ff">4096</span> |
| Requested keysize is <span style="color:#ae81ff">4096</span> bits |
| Please specify how long the key should be valid. |
| 0 <span style="color:#f92672">=</span> key does not expire |
| <n> <span style="color:#f92672">=</span> key expires in n days |
| <n>w <span style="color:#f92672">=</span> key expires in n weeks |
| <n>m <span style="color:#f92672">=</span> key expires in n months |
| <n>y <span style="color:#f92672">=</span> key expires in n years |
| Key is valid <span style="color:#66d9ef">for</span>? <span style="color:#f92672">(</span>0<span style="color:#f92672">)</span> |
| Key does not expire at all |
| Is this correct? <span style="color:#f92672">(</span>y/N<span style="color:#f92672">)</span> y |
| |
| GnuPG needs to construct a user ID to identify your key. |
| |
| Real name: <span style="color:#e6db74">${</span>Input username<span style="color:#e6db74">}</span> |
| Email address: <span style="color:#e6db74">${</span>Input email<span style="color:#e6db74">}</span> |
| Comment: <span style="color:#e6db74">${</span>Input comment<span style="color:#e6db74">}</span> |
| You selected this USER-ID: |
| <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>Inputed username<span style="color:#e6db74">}</span><span style="color:#e6db74"> (</span><span style="color:#e6db74">${</span>Inputed comment<span style="color:#e6db74">}</span><span style="color:#e6db74">) <</span><span style="color:#e6db74">${</span>Inputed email<span style="color:#e6db74">}</span><span style="color:#e6db74">>"</span> |
| |
| Change <span style="color:#f92672">(</span>N<span style="color:#f92672">)</span>ame, <span style="color:#f92672">(</span>C<span style="color:#f92672">)</span>omment, <span style="color:#f92672">(</span>E<span style="color:#f92672">)</span>mail or <span style="color:#f92672">(</span>O<span style="color:#f92672">)</span>kay/<span style="color:#f92672">(</span>Q<span style="color:#f92672">)</span>uit? O |
| You need a Passphrase to protect your secret key. <span style="color:#75715e"># Input passwords</span> |
| </code></pre></div><h3 id="3-check-generated-key">3. Check Generated Key</h3> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">gpg --list-keys |
| </code></pre></div><p>Execution Result:</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">pub 4096R/700E6065 2019-03-20 |
| uid <span style="color:#e6db74">${</span>Username<span style="color:#e6db74">}</span> <span style="color:#f92672">(</span><span style="color:#e6db74">${</span>Comment<span style="color:#e6db74">}</span><span style="color:#f92672">)</span> <<span style="color:#f92672">{</span>Email<span style="color:#f92672">}</span>> |
| sub 4096R/0B7EF5B2 2019-03-20 |
| </code></pre></div><p>Among them, 700E6065 is public key ID.</p> |
| <p>Or run <code>gpg --list-sigs</code> to query it.</p> |
| <h3 id="4-upload-the-public-key-to-key-server">4. Upload the Public Key to Key Server</h3> |
| <p>The command is as follows:</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">gpg --keyserver hkp://keyserver.ubuntu.com --send-key 700E6065 |
| </code></pre></div><p><code>keyserver.ubuntu.com</code> is randomly chosen from public key server. |
| Each server will automatically synchronize with one another, so it would be okay to choose any one.</p> |
| <h2 id="prepare-branch-for-release">Prepare Branch for Release</h2> |
| <h3 id="1-close-milestone">1. Close milestone</h3> |
| <p>Open <a href="https://github.com/apache/shardingsphere/milestones">GitHub milestone</a></p> |
| <ol> |
| <li>Confirm that the milestone completion status of <code>${RELEASE.VERSION}</code> is 100%;</li> |
| <li>Click <code>close</code> to close milestone.</li> |
| </ol> |
| <h3 id="2-confirm-the-release-commit-and-create-release-branch">2. Confirm the Release Commit and Create Release Branch</h3> |
| <p>Suppose ShardingSphere source codes downloaded from GitHub is under <code>~/open_source/shardingsphere/</code>, clone a new one into <code>~/shardingsphere/</code> directory from local.</p> |
| <p>Suppose the version to be released is <code>${RELEASE.VERSION}</code>, create <code>${RELEASE.VERSION}-release</code> branch, where all the following operations will be performed.</p> |
| <p>Reference command:</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">cd ~ |
| git clone ~/open_source/shardingsphere |
| cd ~/shardingsphere/ |
| git remote remove origin |
| git remote add origin https://github.com/apache/shardingsphere |
| git fetch |
| git checkout -b master --track origin/master |
| git checkout -b <span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-release |
| git push origin <span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-release |
| </code></pre></div><h3 id="3-update-release-notes-and-example-version">3. Update Release Notes And Example Version</h3> |
| <p>Update the following file in release branch, and submit a PR to release branch:</p> |
| <pre><code>https://github.com/apache/shardingsphere/blob/${RELEASE.VERSION}-release/RELEASE-NOTES.md |
| </code></pre><p>Update the POM of the module <code>examples</code>, changing the version from ${DEVELOPMENT.VERSION} to ${RELEASE.VERSION}, and submit a PR to release branch.</p> |
| <h3 id="4-update-the-download-page">4. Update the download page</h3> |
| <p>Update the following pages:</p> |
| <ul> |
| <li><a href="https://shardingsphere.apache.org/document/current/en/downloads/">https://shardingsphere.apache.org/document/current/en/downloads/</a></li> |
| <li><a href="https://shardingsphere.apache.org/document/current/cn/downloads/">https://shardingsphere.apache.org/document/current/cn/downloads/</a></li> |
| </ul> |
| <p>GPG signatures and hashes (SHA* etc) should be prefixed with <code>https://downloads.apache.org/shardingsphere/</code></p> |
| <h3 id="5-update-readme-files">5. Update README files</h3> |
| <p>Update <code>${RELEASE.VERSION}</code> and <code>${NEXT.RELEASE.VERSION}</code> in README.md and README_ZH.md.</p> |
| <h2 id="apache-maven-central-repository-release">Apache Maven Central Repository Release</h2> |
| <h3 id="1-set-settings-securityxml-and-settingsxml">1. Set settings-security.xml and settings.xml</h3> |
| <p>Add the following template to <code>~/.m2/settings.xml</code>, all the passwords need to be filled in after encryption. |
| For encryption settings, please see <a href="http://maven.apache.org/guides/mini/guide-encryption.html">here</a>.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-xml" data-lang="xml"><span style="color:#f92672"><settings></span> |
| <span style="color:#f92672"><servers></span> |
| <span style="color:#f92672"><server></span> |
| <span style="color:#f92672"><id></span>apache.snapshots.https<span style="color:#f92672"></id></span> |
| <span style="color:#f92672"><username></span> <span style="color:#75715e"><!-- APACHE LDAP username --></span> <span style="color:#f92672"></username></span> |
| <span style="color:#f92672"><password></span> <span style="color:#75715e"><!-- APACHE LDAP encrypted password --></span> <span style="color:#f92672"></password></span> |
| <span style="color:#f92672"></server></span> |
| <span style="color:#f92672"><server></span> |
| <span style="color:#f92672"><id></span>apache.releases.https<span style="color:#f92672"></id></span> |
| <span style="color:#f92672"><username></span> <span style="color:#75715e"><!-- APACHE LDAP username --></span> <span style="color:#f92672"></username></span> |
| <span style="color:#f92672"><password></span> <span style="color:#75715e"><!-- APACHE LDAP encrypted password --></span> <span style="color:#f92672"></password></span> |
| <span style="color:#f92672"></server></span> |
| <span style="color:#f92672"></servers></span> |
| <span style="color:#f92672"></settings></span> |
| </code></pre></div><h3 id="2-pre-release-check">2. Pre-Release Check</h3> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">export GPG_TTY<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>tty<span style="color:#66d9ef">)</span> |
| </code></pre></div><div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">mvn release:prepare -Prelease -Darguments<span style="color:#f92672">=</span><span style="color:#e6db74">"-DskipTests -Dspotless.apply.skip=true"</span> -DautoVersionSubmodules<span style="color:#f92672">=</span>true -DdryRun<span style="color:#f92672">=</span>true -Dusername<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>Github username<span style="color:#e6db74">}</span> |
| </code></pre></div><p>-Prelease: choose release profile, which will pack all the source codes, jar files and executable binary packages of ShardingSphere-Proxy.</p> |
| <p>-DautoVersionSubmodules=true: it can make the version number is inputted only once and not for each sub-module.</p> |
| <p>-DdryRun=true: rehearsal, which means not to generate or submit new version number and new tag.</p> |
| <h3 id="3-prepare-for-the-release">3. Prepare for the Release</h3> |
| <p>First, clean local pre-release check information.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">mvn release:clean |
| </code></pre></div><p>Then, prepare to execute the release.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">mvn release:prepare -Prelease -Darguments<span style="color:#f92672">=</span><span style="color:#e6db74">"-DskipTests -Dspotless.apply.skip=true"</span> -DautoVersionSubmodules<span style="color:#f92672">=</span>true -DpushChanges<span style="color:#f92672">=</span>false -Dusername<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>Github username<span style="color:#e6db74">}</span> |
| </code></pre></div><p>It is basically the same as the previous rehearsal command, but deleting -DdryRun=true parameter.</p> |
| <p>-DpushChanges=false: do not submit the edited version number and tag to Github automatically.</p> |
| <p><strong>Refer to <a href="#check-release">Check Release</a>, after making sure there is no mistake in local files</strong>, submit them to GitHub.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">git push origin <span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-release |
| git push origin <span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span> |
| </code></pre></div><h3 id="4-deploy-the-release">4. Deploy the Release</h3> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">mvn release:perform -Prelease -Darguments<span style="color:#f92672">=</span><span style="color:#e6db74">"-DskipTests -Dspotless.apply.skip=true"</span> -DautoVersionSubmodules<span style="color:#f92672">=</span>true -DlocalCheckout<span style="color:#f92672">=</span>true -Dusername<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>Github username<span style="color:#e6db74">}</span> |
| </code></pre></div><p>-DlocalCheckout=true: checkout code from local repository instead of remote repository.</p> |
| <p>After that command is executed, the version to be released will be uploaded to Apache staging repository automatically.</p> |
| <p>Visit <a href="https://repository.apache.org/#stagingRepositories">staging repository</a> and use Apache LDAP account to log in; then you can see the uploaded version, the content of <code>Repository</code> column is the ${STAGING.REPOSITORY}.</p> |
| <p>Click <code>Close</code> to tell Nexus that the construction is finished, because only in this way, this version can be usable. |
| If there is any problem in gpg signature, <code>Close</code> will fail, but you can see the failure information through <code>Activity</code>.</p> |
| <h2 id="apache-svn-repository-release">Apache SVN Repository Release</h2> |
| <h3 id="1-checkout-shardingsphere-release-directory">1. Checkout ShardingSphere Release Directory</h3> |
| <p>If there is no local work directory, create one at first.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">mkdir -p ~/ss_svn/dev/ |
| cd ~/ss_svn/dev/ |
| </code></pre></div><p>After the creation, checkout ShardingSphere release directory from Apache SVN.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">svn --username<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>APACHE LDAP username<span style="color:#e6db74">}</span> co https://dist.apache.org/repos/dist/dev/shardingsphere |
| cd ~/ss_svn/dev/shardingsphere |
| </code></pre></div><h3 id="2-add-gpg-public-key-and-commit">2. Add gpg Public Key and commit</h3> |
| <p>Only the account in its <strong>first deployment</strong> needs to add that. |
| It is alright for <code>KEYS</code> to only include the public key of the deployed account.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">gpg -a --export <span style="color:#e6db74">${</span>GPG username<span style="color:#e6db74">}</span> >> KEYS |
| svn --username<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>APACHE LDAP username<span style="color:#e6db74">}</span> commit -m <span style="color:#e6db74">'Add gpg key for ${APACHE LDAP username}'</span> |
| </code></pre></div><p>You could run <code>gpg --show-keys KEYS</code> to check whether your public key is added or not.</p> |
| <h3 id="3-add-the-release-content-to-svn-directory">3. Add the Release Content to SVN Directory</h3> |
| <p>Create folder by version number.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">mkdir <span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span> |
| </code></pre></div><p>Add source code packages, binary packages and executable binary packages of ShardingSphere-Proxy to SVN working directory.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">cd <span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span> |
| cp -f ~/shardingsphere/distribution/src/target/*.zip* . |
| cp -f ~/shardingsphere/distribution/jdbc/target/*.tar.gz* . |
| cp -f ~/shardingsphere/distribution/proxy/target/*.tar.gz* . |
| cp -f ~/shardingsphere/distribution/agent/target/*.tar.gz* . |
| </code></pre></div><h3 id="4-commit-to-apache-svn">4. Commit to Apache SVN</h3> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">svn add * --parents |
| svn --username<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>APACHE LDAP username<span style="color:#e6db74">}</span> commit -m <span style="color:#e6db74">"release </span><span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> |
| </code></pre></div><h2 id="check-release">Check Release</h2> |
| <h3 id="1-check-sha512-hash">1. Check sha512 hash</h3> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">shasum -c *.sha512 |
| </code></pre></div><h3 id="2-check-gpg-signature">2. Check gpg Signature</h3> |
| <p>First, import releaser’s public key. Import KEYS from SVN repository to local. (The releaser does not need to import again; the checking assistant needs to import it, with the user name filled as the releaser’s. )</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">curl https://dist.apache.org/repos/dist/dev/shardingsphere/KEYS >> KEYS |
| gpg --import KEYS |
| gpg --edit-key <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>GPG username of releaser<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> |
| > trust |
| |
| Please decide how far you trust this user to correctly verify other users<span style="color:#e6db74">' keys |
| </span><span style="color:#e6db74">(by looking at passports, checking fingerprints from different sources, etc.) |
| </span><span style="color:#e6db74"> |
| </span><span style="color:#e6db74"> 1 = I don'</span>t know or won<span style="color:#960050;background-color:#1e0010">'</span>t say |
| 2 <span style="color:#f92672">=</span> I <span style="color:#66d9ef">do</span> NOT trust |
| 3 <span style="color:#f92672">=</span> I trust marginally |
| 4 <span style="color:#f92672">=</span> I trust fully |
| 5 <span style="color:#f92672">=</span> I trust ultimately |
| m <span style="color:#f92672">=</span> back to the main menu |
| |
| Your decision? <span style="color:#ae81ff">5</span> |
| |
| > save |
| </code></pre></div><p>Then, check the gpg signature.</p> |
| <p>Checking can be performed by the following command under Bash:</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#66d9ef">for</span> each in <span style="color:#66d9ef">$(</span>ls *.asc<span style="color:#66d9ef">)</span>; <span style="color:#66d9ef">do</span> gpg --verify $each <span style="color:#e6db74">${</span>each%.asc<span style="color:#e6db74">}</span>; <span style="color:#66d9ef">done</span> |
| </code></pre></div><p>Or checking each file manually:</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">gpg --verify apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-src.zip.asc apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-src.zip |
| gpg --verify apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-shardingsphere-jdbc-bin.tar.gz.asc apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-shardingsphere-jdbc-bin.tar.gz |
| gpg --verify apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-shardingsphere-proxy-bin.tar.gz.asc apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-shardingsphere-proxy-bin.tar.gz |
| gpg --verify apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-shardingsphere-agent-bin.tar.gz.asc apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-shardingsphere-agent-bin.tar.gz |
| </code></pre></div><h3 id="3-check-released-files">3. Check Released Files</h3> |
| <p><strong>3.1 Compare release source with github tag</strong></p> |
| <pre><code>curl -Lo tag-${RELEASE.VERSION}.zip https://github.com/apache/shardingsphere/archive/${RELEASE.VERSION}.zip |
| unzip tag-${RELEASE.VERSION}.zip |
| unzip apache-shardingsphere-${RELEASE.VERSION}-src.zip |
| diff -r apache-shardingsphere-${RELEASE.VERSION}-src-release shardingsphere-${RELEASE.VERSION} |
| </code></pre><p><strong>3.2 Check source package</strong></p> |
| <ul> |
| <li>Check whether source tarball is oversized for including nonessential files</li> |
| <li><code>LICENSE</code> and <code>NOTICE</code> files exist</li> |
| <li>Correct year in <code>NOTICE</code> file</li> |
| <li>There is only text files but no binary files</li> |
| <li>All source files have ASF headers</li> |
| <li>Codes can be compiled and pass the unit tests (./mvnw -T 1C install)</li> |
| <li>Check if there is any extra files or folders, empty folders for example</li> |
| </ul> |
| <p><strong>3.3 Check binary packages</strong></p> |
| <p>Decompress</p> |
| <ul> |
| <li><code>apache-shardingsphere-${RELEASE.VERSION}-shardingsphere-jdbc-bin.tar.gz</code></li> |
| <li><code>apache-shardingsphere-${RELEASE.VERSION}-shardingsphere-proxy-bin.tar.gz</code></li> |
| <li><code>apache-shardingsphere-${RELEASE.VERSION}-shardingsphere-agent-bin.tar.gz</code></li> |
| </ul> |
| <p>And check the following items:</p> |
| <ul> |
| <li><code>LICENSE</code> and <code>NOTICE</code> files exist</li> |
| <li>Correct year in <code>NOTICE</code> file</li> |
| <li>All text files have ASF headers</li> |
| <li>Check the third party dependency license: |
| <ul> |
| <li>The software has a compatible license</li> |
| <li>All software licenses mentioned in <code>LICENSE</code></li> |
| <li>All the third party dependency licenses are under <code>licenses</code> folder</li> |
| <li>If it depends on Apache license and has a <code>NOTICE</code> file, that <code>NOTICE</code> file need to be added to <code>NOTICE</code> file of the release</li> |
| </ul> |
| </li> |
| </ul> |
| <h2 id="call-for-a-vote">Call for a Vote</h2> |
| <p><strong>Vote procedure</strong></p> |
| <ol> |
| <li> |
| <p>ShardingSphere community vote: send the vote e-mail to <code>dev@shardingsphere.apache.org</code>. |
| PMC needs to check the rightness of the version according to the document before they vote. |
| After at least <strong>72 hours</strong> and with at least <strong>3 <code>+1 PMC member</code></strong> votes, it can come to the next stage of the vote.</p> |
| </li> |
| <li> |
| <p>Announce the vote result: send the result vote e-mail to <a href="mailto:dev@shardingsphere.apache.org">dev@shardingsphere.apache.org</a>.</p> |
| </li> |
| </ol> |
| <p><strong>Vote Templates</strong></p> |
| <ol> |
| <li>ShardingSphere Community Vote Template</li> |
| </ol> |
| <p>Title:</p> |
| <pre><code>[VOTE] Release Apache ShardingSphere ${RELEASE.VERSION} |
| |
| </code></pre><p>Body:</p> |
| <pre><code>Hello ShardingSphere Community, |
| |
| This is a call for vote to release Apache ShardingSphere version ${RELEASE.VERSION} |
| |
| Release notes: |
| https://github.com/apache/shardingsphere/blob/${RELEASE.VERSION}-release/RELEASE-NOTES.md |
| |
| The release candidates: |
| https://dist.apache.org/repos/dist/dev/shardingsphere/${RELEASE.VERSION}/ |
| |
| Maven 2 staging repository: |
| https://repository.apache.org/content/repositories/${STAGING.REPOSITORY}/org/apache/shardingsphere/ |
| |
| Git tag for the release: |
| https://github.com/apache/shardingsphere/tree/${RELEASE.VERSION} |
| |
| Release Commit ID: |
| https://github.com/apache/shardingsphere/commit/xxxxxxxxxxxxxxxxxxxxxxx |
| |
| Keys to verify the Release Candidate: |
| https://dist.apache.org/repos/dist/dev/shardingsphere/KEYS |
| |
| Look at here for how to verify this release candidate: |
| https://shardingsphere.apache.org/community/en/involved/release/shardingsphere/ |
| |
| GPG user ID: |
| ${YOUR.GPG.USER.ID} |
| |
| The vote will be open for at least 72 hours or until necessary number of votes are reached. |
| |
| Please vote accordingly: |
| |
| [ ] +1 approve |
| |
| [ ] +0 no opinion |
| |
| [ ] -1 disapprove with the reason |
| |
| PMC vote is +1 binding, all others is +1 non-binding. |
| |
| Checklist for reference: |
| |
| [ ] Download links are valid. |
| |
| [ ] Checksums and PGP signatures are valid. |
| |
| [ ] Source code distributions have correct names matching the current release. |
| |
| [ ] LICENSE and NOTICE files are correct for each ShardingSphere repo. |
| |
| [ ] All files have license headers if necessary. |
| |
| [ ] No compiled archives bundled in source archive. |
| </code></pre><blockquote> |
| <p>To be noticed: <code>Release Commit ID</code> uses the commit id corresponding to <code>prepare release ${RELEASE.VERSION}</code> log on release branch.</p> |
| </blockquote> |
| <ol start="2"> |
| <li>Announce the vote result:</li> |
| </ol> |
| <p>Title:</p> |
| <pre><code>[RESULT][VOTE] Release Apache ShardingSphere ${RELEASE.VERSION} |
| </code></pre><p>Body:</p> |
| <pre><code>We’ve received 3 +1 binding votes and one +1 non-binding vote: |
| |
| +1 binding, xxx |
| +1 binding, xxx |
| +1 binding, xxx |
| |
| +1 non-binding, xxx |
| |
| Thank you everyone for taking the time to review the release and help us. |
| I will process to publish the release and send ANNOUNCE. |
| |
| </code></pre><h2 id="finish-the-release">Finish the Release</h2> |
| <h3 id="1-move-source-packages-binary-packages-and-keys-from-the-dev-directory-to-release-directory">1. Move source packages, binary packages and KEYS from the <code>dev</code> directory to <code>release</code> directory</h3> |
| <p>It needs PMC help to do it.</p> |
| <p>Move release candidates to release area:</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">svn mv https://dist.apache.org/repos/dist/dev/shardingsphere/<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span> https://dist.apache.org/repos/dist/release/shardingsphere/ -m <span style="color:#e6db74">"transfer packages for </span><span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> |
| </code></pre></div><p>If KEYS has changed, update the KEYS file in the release area:</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">svn delete https://dist.apache.org/repos/dist/release/shardingsphere/KEYS -m <span style="color:#e6db74">"delete KEYS"</span> |
| svn cp https://dist.apache.org/repos/dist/dev/shardingsphere/KEYS https://dist.apache.org/repos/dist/release/shardingsphere/ -m <span style="color:#e6db74">"transfer KEYS for </span><span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> |
| </code></pre></div><h3 id="2-find-shardingsphere-in-staging-repositoryhttpsrepositoryapacheorgstagingrepositories--and-click-release">2. Find ShardingSphere in <a href="https://repository.apache.org/#stagingRepositories">staging repository</a> and click <code>Release</code></h3> |
| <h3 id="3-docker-release">3. Docker Release</h3> |
| <p>3.1 Preparation</p> |
| <p>Install and start docker service</p> |
| <p>(You may skip this step if you are using Docker Desktop) Configure QEMU:</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">docker run --privileged --rm tonistiigi/binfmt --install all |
| </code></pre></div><p>Refer to: <a href="https://docs.docker.com/buildx/working-with-buildx/#build-multi-platform-images">Docker Buildx: Build multi-platform images</a></p> |
| <p>3.2 Login Docker Registry</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">docker login |
| </code></pre></div><p>3.3 Build and push ShardingSphere-Proxy Docker image</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">cd ~/shardingsphere |
| git checkout <span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span> |
| ./mvnw -pl distribution/proxy -B -Prelease,docker.buildx.push clean package |
| </code></pre></div><p>3.4 Confirm the successful release</p> |
| <p>Go to <a href="https://hub.docker.com/r/apache/shardingsphere-proxy/">Docker Hub</a> and check whether there is a published image. And make sure that the image supports both <code>linux/amd64</code> and <code>linux/arm64</code>.</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">docker logout |
| </code></pre></div><h3 id="4-publish-release-on-github">4. Publish release on GitHub</h3> |
| <p>Click <code>Draft a new release</code> in <a href="https://github.com/apache/shardingsphere/releases">GitHub Releases</a>.</p> |
| <p>Edit release version and release notes, select <code>Set as the latest release</code>, click <code>Publish release</code>.</p> |
| <h3 id="5-remove-previous-release-from-release-area">5. Remove previous release from Release Area</h3> |
| <p>Keep the latest version in <a href="https://dist.apache.org/repos/dist/release/shardingsphere/"><strong>Release Area</strong></a> only.</p> |
| <p>Incubating stage versions will be archived automatically in <a href="https://archive.apache.org/dist/incubator/shardingsphere/">Archive repository</a></p> |
| <p>Remove the previous release from the <a href="https://dist.apache.org/repos/dist/release/shardingsphere/"><strong>Release Area</strong></a> after confirming the previous release exists in <a href="https://archive.apache.org/dist/shardingsphere/">Archive repository</a>,</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">svn del -m <span style="color:#e6db74">"Archiving release </span><span style="color:#e6db74">${</span>PREVIOUS.RELEASE.VERSION<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> https://dist.apache.org/repos/dist/release/shardingsphere/<span style="color:#e6db74">${</span>PREVIOUS.RELEASE.VERSION<span style="color:#e6db74">}</span> |
| </code></pre></div><p>Previous releases will be archived automatically in <a href="https://archive.apache.org/dist/shardingsphere/">Archive repository</a>.</p> |
| <p>Incubating stage versions will be archived automatically in <a href="https://archive.apache.org/dist/incubator/shardingsphere/">Incubator Archive repository</a></p> |
| <p>Refer to <a href="https://infra.apache.org/release-download-pages.html">Release Download Pages for Projects</a>.</p> |
| <h3 id="6-add-entrance-of-documents-of-the-new-release-into-home-page">6. Add entrance of documents of the new release into home page</h3> |
| <p>Refer to commit: <a href="https://github.com/apache/shardingsphere-doc/commit/9fdf438d1170129d2690b5dee316403984579430">https://github.com/apache/shardingsphere-doc/commit/9fdf438d1170129d2690b5dee316403984579430</a></p> |
| <h3 id="7-update-example-version">7. Update Example Version</h3> |
| <p>Update the POM of the module examples, changing the version from ${RELEASE.VERSION} to ${NEXT.DEVELOPMENT.VERSION}, and commit changes to release branch.</p> |
| <h3 id="8-merge-release-branch-to-master-and-delete-release-branch-on-github">8. Merge release branch to <code>master</code> and delete release branch on GitHub</h3> |
| <p>After confirmed that download links of new release in download pages are available, create a Pull Request on GitHub to merge <code>${RELEASE.VERSION}-release</code> into <code>master. If code conflicted, you may merge </code>master<code>into</code>${RELEASE.VERSION}-release` before merging Pull Request.</p> |
| <h3 id="9-announce-release-completed-by-email">9. Announce release completed by email</h3> |
| <p>Send e-mail to <code>dev@shardingsphere.apache.org</code> and <code>announce@apache.org</code> with <strong>plain text mode</strong> to announce the release is completed.</p> |
| <p>Announcement e-mail template:</p> |
| <p>Title:</p> |
| <pre><code>[ANNOUNCE] Apache ShardingSphere ${RELEASE.VERSION} available |
| </code></pre><p>Body:</p> |
| <pre><code>Hi all, |
| |
| Apache ShardingSphere Team is glad to announce the new release of Apache ShardingSphere ${RELEASE.VERSION}. |
| |
| Apache ShardingSphere is an open source ecosystem that allows you to transform any database into a distributed database system. |
| The project includes a JDBC and a Proxy, and its core adopts a micro-kernel and pluggable architecture. |
| Thanks to its plugin-oriented architecture, features can be flexibly expanded at will. |
| |
| The project is committed to providing a multi-source heterogeneous, enhanced database platform and further building an ecosystem around the upper layer of the platform. |
| Database Plus, the design philosophy of Apache ShardingSphere, aims at building the standard and ecosystem on the upper layer of the heterogeneous database. |
| It focuses on how to make full and reasonable use of the computing and storage capabilities of existing databases rather than creating a brand new database. |
| It attaches greater importance to the collaboration between multiple databases instead of the database itself. |
| |
| Download Links: https://shardingsphere.apache.org/document/current/en/downloads/ |
| |
| Release Notes: https://github.com/apache/shardingsphere/blob/master/RELEASE-NOTES.md |
| |
| Website: https://shardingsphere.apache.org/ |
| |
| ShardingSphere Resources: |
| - Issue: https://github.com/apache/shardingsphere/issues/ |
| - Mailing list: dev@shardingsphere.apache.org |
| - Documents: https://shardingsphere.apache.org/document/current/ |
| |
| |
| |
| - Apache ShardingSphere Team |
| |
| </code></pre><h2 id="appendix-how-to-abort-release-procedure">Appendix: How to abort release procedure</h2> |
| <p>You may refer to the following steps to abort current release procedure if you found any problem which blocks the release procedure.</p> |
| <h3 id="vote-down-the-release-and-describe-the-reason">Vote down the release and describe the reason</h3> |
| <p>Reply -1 to voting e-mail and describe the reason.</p> |
| <h3 id="remove-release-candidates-from-dev-area">Remove release candidates from dev area</h3> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">svn del https://dist.apache.org/repos/dist/dev/shardingsphere/<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span> -m <span style="color:#e6db74">"Drop </span><span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span><span style="color:#e6db74"> release candidates"</span> |
| </code></pre></div><h3 id="drop-maven-staging-repository">Drop Maven Staging Repository</h3> |
| <p>Check the Staging Repository in <a href="https://repository.apache.org/#stagingRepositories">https://repository.apache.org/#stagingRepositories</a> and <strong>Drop</strong> it。</p> |
| <h3 id="reset-release-branch-and-delete-tag">Reset release branch and delete tag</h3> |
| <p>Reset branch <code>${RELEASE.VERSION}-release</code> to the commit before the commits made by <code>maven-release-plugin</code>:</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">git checkout <span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-release |
| git reset --hard <span style="color:#e6db74">${</span>COMMIT_ID_BEFORE_RELEASE<span style="color:#e6db74">}</span> |
| git push origin --force |
| </code></pre></div><p>Delete tag:</p> |
| <div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">git tag -d <span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span> |
| git push origin -d <span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span> |
| </code></pre></div> |
| |
| <footer class=" footline" > |
| |
| </footer> |
| |
| |
| |
| </div> |
| |
| </div> |
| |
| |
| </div> |
| |
| <div id="navigation" > |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <a class="nav nav-prev" href="https://shardingsphere.apache.org/community/en/involved/release/" title="Release Guide"> <i class="fa fa-long-arrow-left fa-lg"></i> Previous</a> |
| |
| |
| |
| |
| <a class="nav nav-next" href="https://shardingsphere.apache.org/community/en/involved/release/shardingsphere-on-cloud/" title="ShardingSphere on Cloud Release Guide" style="margin-right: 0px;">Next<i class="fa fa-long-arrow-right fa-lg"></i></a> |
| |
| |
| </div> |
| |
| </section> |
| </div> |
| <div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"> |
| <div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div> |
| </div> |
| |
| <script src="https://shardingsphere.apache.org/community/js/clipboard.min.js?1686302725"></script> |
| <script src="https://shardingsphere.apache.org/community/js/perfect-scrollbar.min.js?1686302725"></script> |
| <script src="https://shardingsphere.apache.org/community/js/perfect-scrollbar.jquery.min.js?1686302725"></script> |
| <script src="https://shardingsphere.apache.org/community/js/jquery.sticky.js?1686302725"></script> |
| <script src="https://shardingsphere.apache.org/community/js/featherlight.min.js?1686302725"></script> |
| <script src="https://shardingsphere.apache.org/community/js/html5shiv-printshiv.min.js?1686302725"></script> |
| <script src="https://shardingsphere.apache.org/community/js/highlight.pack.js?1686302725"></script> |
| <script>hljs.initHighlightingOnLoad();</script> |
| <script src="https://shardingsphere.apache.org/community/js/modernizr.custom.71422.js?1686302725"></script> |
| <script src="https://shardingsphere.apache.org/community/js/learn.js?1686302725"></script> |
| <script src="https://shardingsphere.apache.org/community/js/hugo-learn.js?1686302725"></script> |
| <script> |
| try{ |
| |
| function log(fileName, category, locale){ |
| window._hmt.push(['_trackEvent', 'document', 'download', locale ? 'PDF_'+locale : fileName]); |
| |
| gtag('event', 'Downloads', { |
| 'event_category' : locale ? 'PDF' : category, |
| 'event_label' : locale ? locale+'.pdf' : fileName |
| }); |
| } |
| |
| $('.padding[href*=shardingsphere]').on('click', function(){ |
| var locale = /cn/.test(location.pathname) ?'cn':'en'; |
| log('','', locale) |
| }) |
| |
| function getFileName(str){ |
| var strs = str.split('/'); |
| return strs[strs.length - 1] |
| } |
| |
| $('a[href$="src.zip"]').on('click', function(){ |
| log(getFileName($(this).attr('href')), "SRC") |
| }) |
| |
| $('a[href$="zip.asc"]').on('click', function(){ |
| log(getFileName($(this).attr('href')), "ASC") |
| }) |
| |
| $('a[href$="zip.sha512"]').on('click', function(){ |
| log(getFileName($(this).attr('href')), "SHA512") |
| }) |
| |
| $('a[href$="tar.gz.asc"]').on('click', function(){ |
| log(getFileName($(this).attr('href')), "ASC") |
| }) |
| |
| $('a[href$="tar.gz.sha512"]').on('click', function(){ |
| log(getFileName($(this).attr('href')), "SHA512") |
| }) |
| |
| $('a[href$="tar.gz"]').on('click', function(){ |
| log(getFileName($(this).attr('href')), "TAR") |
| }) |
| |
| }catch(ex){} |
| </script> |
| |
| |
| </body> |
| </html> |
| |