blob: b4999ba2f1979aa530a693cd170687b6a6f53ebd [file] [log] [blame]
<!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 http-equiv="Cache-Control" content="max-age=7200" />
<meta name="generator" content="Hugo 0.70.0" />
<meta name="description" content="">
<meta name="buildDate" content="2021-04-06 18:15:05">
<link rel="shortcut icon" href="https://shardingsphere.apache.org/document/current/img/favicon.png" type="image/x-icon" />
<title>ShardingSphere-UI Release Guide :: ShardingSphere</title>
<link href="https://shardingsphere.apache.org/community/css/nucleus.css?1617704105" rel="stylesheet">
<link href="https://shardingsphere.apache.org/community/css/font-awesome.min.css?1617704105" rel="stylesheet">
<link href="https://shardingsphere.apache.org/community/css/hybrid.css?1617704105" rel="stylesheet">
<link href="https://shardingsphere.apache.org/community/css/featherlight.min.css?1617704105" rel="stylesheet">
<link href="https://shardingsphere.apache.org/community/css/perfect-scrollbar.min.css?1617704105" rel="stylesheet">
<link href="https://shardingsphere.apache.org/community/css/auto-complete.css?1617704105" rel="stylesheet">
<link href="https://shardingsphere.apache.org/community/css/theme.css?1617704105" rel="stylesheet">
<link href="https://shardingsphere.apache.org/community/css/hugo-theme.css?1617704105" rel="stylesheet">
<link href="https://shardingsphere.apache.org/community/css/theme-black.css?1617704105" rel="stylesheet">
<script src="https://shardingsphere.apache.org/community/js/jquery-2.x.min.js?1617704105"></script>
<style type="text/css">
:root #header + #content > #left > #rlblock_left{
display:none !important;
}
</style>
</head>
<body class="" data-url="/en/contribute/release_ui/">
<nav id="sidebar" class="">
<div id="header-wrapper">
<div id="header">
<a href="https://shardingsphere.apache.org/"><img src="https://shardingsphere.apache.org/document/current/img/logo_v2.png" /></a>
</div>
</div>
<div class="highlightable">
<ul class="topics">
<li data-nav-id="/en/contribute/" title="Get Involved" class="dd-item
parent
">
<a href="https://shardingsphere.apache.org/community/en/contribute/">
<b>1. </b>Get Involved
</a>
<ul>
<li data-nav-id="/en/contribute/subscribe/" title="Subscribe Guide" class="dd-item ">
<a href="https://shardingsphere.apache.org/community/en/contribute/subscribe/">
Subscribe Guide
</a>
</li>
<li data-nav-id="/en/contribute/contributor/" title="Contributor Guide" class="dd-item ">
<a href="https://shardingsphere.apache.org/community/en/contribute/contributor/">
Contributor Guide
</a>
</li>
<li data-nav-id="/en/contribute/committer/" title="Committer Guide" class="dd-item ">
<a href="https://shardingsphere.apache.org/community/en/contribute/committer/">
Committer Guide
</a>
</li>
<li data-nav-id="/en/contribute/code-conduct/" title="Code of Conduct" class="dd-item ">
<a href="https://shardingsphere.apache.org/community/en/contribute/code-conduct/">
Code of Conduct
</a>
</li>
<li data-nav-id="/en/contribute/issue-conduct/" title="Issue Conduct" class="dd-item ">
<a href="https://shardingsphere.apache.org/community/en/contribute/issue-conduct/">
Issue Conduct
</a>
</li>
<li data-nav-id="/en/contribute/document-contributor/" title="Documents Contributor Guide" class="dd-item ">
<a href="https://shardingsphere.apache.org/community/en/contribute/document-contributor/">
Documents Contributor Guide
</a>
</li>
<li data-nav-id="/en/contribute/release/" title="ShardingSphere Release Guide" class="dd-item ">
<a href="https://shardingsphere.apache.org/community/en/contribute/release/">
ShardingSphere Release Guide
</a>
</li>
<li data-nav-id="/en/contribute/release_ui/" title="ShardingSphere-UI Release Guide" class="dd-item active">
<a href="https://shardingsphere.apache.org/community/en/contribute/release_ui/">
ShardingSphere-UI Release Guide
</a>
</li>
<li data-nav-id="/en/contribute/release-elasticjob/" title="ElasticJob Release Guide" class="dd-item ">
<a href="https://shardingsphere.apache.org/community/en/contribute/release-elasticjob/">
ElasticJob Release Guide
</a>
</li>
<li data-nav-id="/en/contribute/release-elasticjob-ui/" title="ElasticJob-UI Release Guide" class="dd-item ">
<a href="https://shardingsphere.apache.org/community/en/contribute/release-elasticjob-ui/">
ElasticJob-UI Release Guide
</a>
</li>
<li data-nav-id="/en/contribute/2fa/" title="2FA" class="dd-item ">
<a href="https://shardingsphere.apache.org/community/en/contribute/2fa/">
2FA
</a>
</li>
<li data-nav-id="/en/contribute/icla/" title="Sign ICLA Guide" class="dd-item ">
<a href="https://shardingsphere.apache.org/community/en/contribute/icla/">
Sign ICLA Guide
</a>
</li>
<li data-nav-id="/en/contribute/vote/" title="New committer voting process" class="dd-item ">
<a href="https://shardingsphere.apache.org/community/en/contribute/vote/">
New committer voting process
</a>
</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/">
<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/">
<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/">
<b>4. </b>security
</a>
</li>
</ul>
<section id="prefooter">
<hr/>
<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/contribute/release_ui/" selected>English</option>
<option id="cn" value="/community/cn/contribute/release_ui/">简体中文</option>
</select>
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="255px" height="255px" viewBox="0 0 255 255" style="enable-background:new 0 0 255 255;" xml:space="preserve">
<g>
<g id="arrow-drop-down">
<polygon points="0,63.75 127.5,191.25 255,63.75 " />
</g>
</g>
</svg>
</div>
</a>
</li>
</ul>
</section>
<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/contribute/release_ui.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/contribute/'>Get Involved</a> > ShardingSphere-UI Release Guide
</span>
</div>
</div>
</div>
<div id="chapter">
<div id="body-inner">
<h2 id="gpg-settings">GPG Settings</h2>
<p>Please refer to <a href="https://shardingsphere.apache.org/community/en/contribute/release/">Release Guide</a>.</p>
<h2 id="apache-maven-central-repository-release">Apache Maven Central Repository Release</h2>
<p><strong>1. Set settings.xml</strong></p>
<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">&lt;settings&gt;</span>
<span style="color:#f92672">&lt;servers&gt;</span>
<span style="color:#f92672">&lt;server&gt;</span>
<span style="color:#f92672">&lt;id&gt;</span>apache.snapshots.https<span style="color:#f92672">&lt;/id&gt;</span>
<span style="color:#f92672">&lt;username&gt;</span> <span style="color:#75715e">&lt;!-- APACHE LDAP username --&gt;</span> <span style="color:#f92672">&lt;/username&gt;</span>
<span style="color:#f92672">&lt;password&gt;</span> <span style="color:#75715e">&lt;!-- APACHE LDAP encrypted password --&gt;</span> <span style="color:#f92672">&lt;/password&gt;</span>
<span style="color:#f92672">&lt;/server&gt;</span>
<span style="color:#f92672">&lt;server&gt;</span>
<span style="color:#f92672">&lt;id&gt;</span>apache.releases.https<span style="color:#f92672">&lt;/id&gt;</span>
<span style="color:#f92672">&lt;username&gt;</span> <span style="color:#75715e">&lt;!-- APACHE LDAP username --&gt;</span> <span style="color:#f92672">&lt;/username&gt;</span>
<span style="color:#f92672">&lt;password&gt;</span> <span style="color:#75715e">&lt;!-- APACHE LDAP encrypted password --&gt;</span> <span style="color:#f92672">&lt;/password&gt;</span>
<span style="color:#f92672">&lt;/server&gt;</span>
<span style="color:#f92672">&lt;/servers&gt;</span>
<span style="color:#f92672">&lt;/settings&gt;</span>
</code></pre></div><p><strong>2. Update Release Notes</strong></p>
<pre><code>https://github.com/apache/shardingsphere-ui/blob/master/RELEASE-NOTES.md
</code></pre><p><strong>3. Create Release Branch</strong></p>
<p>Suppose ShardingSphere source codes downloaded from github is under <code>~/shardingsphere-ui/</code> directory and the version to be released is <code>${RELEASE.VERSION}</code>.
Create <code>${RELEASE.VERSION}-release</code> branch, where all the following operations are performed.</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"><span style="color:#75715e">## ${name} is the properly branch, e.g. master, dev-4.x</span>
git clone --branch <span style="color:#e6db74">${</span>name<span style="color:#e6db74">}</span> https://github.com/apache/shardingsphere-ui.git ~/shardingsphere-ui
cd ~/shardingsphere-ui/
git pull
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><p><strong>4. Pre-Release Check</strong></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-ui
mvn release:prepare -Prelease -Darguments<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;-DskipTests&#34;</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-UI.</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>
<p><strong>5. Prepare for the Release</strong></p>
<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">cd ~/shardingsphere-ui
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">cd ~/shardingsphere-ui
mvn release:prepare -Prelease -Darguments<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;-DskipTests&#34;</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>After making sure there is no mistake in local files, 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 --tags
</code></pre></div><p><strong>6.Deploy the Release</strong></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-ui
mvn release:perform -Prelease -Darguments<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;-DskipTests&#34;</span> -DautoVersionSubmodules<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><h2 id="apache-svn-repository-release">Apache SVN Repository Release</h2>
<p><strong>1. Checkout ShardingSphere Release Directory</strong></p>
<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><p><strong>2. Add gpg Public Key</strong></p>
<p>Only the account in its first deployment 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> &gt;&gt; KEYS
</code></pre></div><p><strong>3. Add the Release Content to SVN Directory</strong></p>
<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 -p ~/ss_svn/dev/shardingsphere/shardingsphere-ui-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>
cd ~/ss_svn/dev/shardingsphere/shardingsphere-ui-<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">cp -f ~/shardingsphere-ui/shardingsphere-ui-distribution/shardingsphere-ui-src-distribution/target/*.zip ~/ss_svn/dev/shardingsphere/shardingsphere-ui-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>
cp -f ~/shardingsphere-ui/shardingsphere-ui-distribution/shardingsphere-ui-src-distribution/target/*.zip.asc ~/ss_svn/dev/shardingsphere/shardingsphere-ui-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>
cp -f ~/shardingsphere-ui/shardingsphere-ui-distribution/shardingsphere-ui-bin-distribution/target/*.tar.gz ~/ss_svn/dev/shardingsphere/shardingsphere-ui-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>
cp -f ~/shardingsphere-ui/shardingsphere-ui-distribution/shardingsphere-ui-bin-distribution/target/*.tar.gz.asc ~/ss_svn/dev/shardingsphere/shardingsphere-ui-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>
</code></pre></div><p><strong>4. Generate sign files</strong></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">shasum -a <span style="color:#ae81ff">512</span> apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-shardingsphere-ui-src.zip &gt; apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-shardingsphere-ui-src.zip.sha512
shasum -b -a <span style="color:#ae81ff">512</span> apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-shardingsphere-ui-bin.tar.gz &gt; apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-shardingsphere-ui-bin.tar.gz.sha512
</code></pre></div><p><strong>5. Commit to Apache SVN</strong></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 ~/ss_svn/dev/shardingsphere/
svn add shardingsphere-ui-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>
svn --username<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>APACHE LDAP 用户名<span style="color:#e6db74">}</span> commit -m <span style="color:#e6db74">&#34;release shardingsphere-ui-</span><span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>
</code></pre></div><h2 id="check-release">Check Release</h2>
<p><strong>Check sha512 hash</strong></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">shasum -c apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-shardingsphere-ui-src.zip.sha512
shasum -c apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-shardingsphere-ui-bin.tar.gz.sha512
</code></pre></div><p><strong>Check gpg Signature</strong></p>
<p>First, import releaser&rsquo;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&rsquo;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 &gt;&gt; KEYS
gpg --import KEYS
gpg --edit-key <span style="color:#e6db74">&#34;</span><span style="color:#e6db74">${</span>GPG username of releaser<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>
&gt; trust
Please decide how far you trust this user to correctly verify other users<span style="color:#e6db74">&#39; 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&#39;</span>t know or won<span style="color:#960050;background-color:#1e0010">&#39;</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>
&gt; save
</code></pre></div><p>Then, check the gpg signature.</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>-shardingsphere-ui-src.zip.asc apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-shardingsphere-ui-src.zip
gpg --verify apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-shardingsphere-ui-bin.tar.gz.asc apache-shardingsphere-<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-shardingsphere-ui-bin.tar.gz
</code></pre></div><p><strong>Check Released Files</strong></p>
<p><strong>Compare release source with github tag</strong></p>
<pre><code>curl -Lo tag-${RELEASE.VERSION}.zip https://github.com/apache/shardingsphere-ui/archive/${RELEASE.VERSION}.zip
unzip tag-${RELEASE.VERSION}.zip
unzip apache-shardingsphere-${RELEASE.VERSION}-shardingsphere-ui-src.zip
diff -r apache-shardingsphere-${RELEASE.VERSION}-shardingsphere-ui-src shardingsphere-shardingsphere-ui-${RELEASE.VERSION}
</code></pre><p><strong>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 install)</li>
<li>Check if there is any extra files or folders, empty folders for example</li>
</ul>
<p><strong>Check binary packages</strong></p>
<p>Decompress <code>apache-shardingsphere-${RELEASE.VERSION}-shardingsphere-ui-bin.tar.gz</code>
to 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 have 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 72 hours and with at least 3 <code>+1 PMC member</code> 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 <code>dev@shardingsphere.apache.org</code>.</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 UI ${RELEASE.VERSION}
</code></pre><p>Body:</p>
<pre><code>Hello ShardingSphere Community,
This is a call for vote to release Apache ShardingSphere UI version ${RELEASE.VERSION}
Release notes:
https://github.com/apache/shardingsphere-ui/blob/master/RELEASE-NOTES.md
The release candidates:
https://dist.apache.org/repos/dist/dev/shardingsphere/shardingsphere-ui-${RELEASE.VERSION}/
Git tag for the release:
https://github.com/apache/shardingsphere-ui/tree/${RELEASE.VERSION}/
Release Commit ID:
https://github.com/apache/shardingsphere-ui/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/contribute/release_ui/
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><ol start="2">
<li>Announce the vote result:</li>
</ol>
<p>Title:</p>
<pre><code>[RESULT][VOTE] Release Apache ShardingSphere UI ${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>
<p><strong>1. Move source packages, binary packages and KEYS from the <code>dev</code> directory to <code>release</code> directory</strong></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/shardingsphere-ui-<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">&#34;transfer packages for shardingsphere-ui-</span><span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>
svn delete https://dist.apache.org/repos/dist/release/shardingsphere/KEYS -m <span style="color:#e6db74">&#34;delete KEYS&#34;</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">&#34;transfer KEYS for shardingsphere-ui-</span><span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>
</code></pre></div><p><strong>2. Merge release branch to <code>master</code> and delete release branch on Github</strong></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 master
git merge origin/<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-release
git pull
git push origin master
git push --delete origin <span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-release
git branch -d <span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>-release
</code></pre></div><p><strong>3. Docker Release</strong></p>
<p>3.1 Preparation</p>
<p>Install and start docker service</p>
<p>3.2 Compile 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">git checkout <span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>
cd ~/shardingsphere-ui/shardingsphere-ui-distribution/shardingsphere-ui-bin-distribution/
mvn clean package -Prelease,docker
</code></pre></div><p>3.3 Tag the local Docker Image</p>
<p>Check the image ID through <code>docker images</code>, for example: e9ea51023687</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 tag e9ea51023687 apache/shardingsphere-ui:latest
docker tag e9ea51023687 apache/shardingsphere-ui:<span style="color:#e6db74">${</span>RELEASE.VERSION<span style="color:#e6db74">}</span>
</code></pre></div><p>3.4 Publish 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">docker push apache/shardingsphere-ui:latest
docker push apache/shardingsphere-ui:<span style="color:#e6db74">${</span>RELEASE_VERSION<span style="color:#e6db74">}</span>
</code></pre></div><p>3.5 Confirm the successful release</p>
<p>Login <a href="https://hub.docker.com/r/apache/shardingsphere-ui/">Docker Hub</a> to check whether there are published images</p>
<p><strong>4. Publish release in GitHub</strong></p>
<p>Click <code>Edit</code> in <a href="https://github.com/apache/shardingsphere-ui/releases">GitHub Releases</a>&lsquo;s <code>shardingsphere-ui-${RELEASE_VERSION}</code> version</p>
<p>Edit version number and release notes, click <code>Publish release</code></p>
<p><strong>5. Update the download page</strong></p>
<p><a href="https://shardingsphere.apache.org/document/current/en/downloads/">https://shardingsphere.apache.org/document/current/en/downloads/</a></p>
<p><a href="https://shardingsphere.apache.org/document/current/cn/downloads/">https://shardingsphere.apache.org/document/current/cn/downloads/</a></p>
<p>GPG signatures and hashes (SHA* etc) should use URL start with <code>https://downloads.apache.org/shardingsphere/</code></p>
<p>Keep one latest versions in <code>Latest releases</code>. Incubating stage versions will be archived automatically in <a href="https://archive.apache.org/dist/incubator/shardingsphere/">Archive repository</a></p>
<p><strong>6. Announce release completed by email</strong></p>
<p>Send e-mail to <code>dev@shardingsphere.apache.org</code> and <code>announce@apache.org</code> to announce the release is finished</p>
<p>Announcement e-mail template:</p>
<p>Title:</p>
<pre><code>[ANNOUNCE] Apache ShardingSphere UI ${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 UI ${RELEASE.VERSION}.
ShardingSphere is an open-source ecosystem consisted of a set of distributed database solutions, including 2 independent products, ShardingSphere-JDBC &amp; ShardingSphere-Proxy.
They both provide functions of data scale out, distributed transaction and distributed governance, applicable in a variety of situations such as Java isomorphism and heterogeneous language.
Apache ShardingSphere aiming at reasonably making full use of the computation and storage capacity of existed database in distributed system, rather than a totally new database.
As the cornerstone of enterprises, relational database still takes a huge market share.
Therefore, we prefer to focus on its increment instead of a total overturn.
Download Links: https://shardingsphere.apache.org/document/current/en/downloads/
Release Notes: https://github.com/apache/shardingsphere-ui/blob/master/RELEASE-NOTES.md
Website: https://shardingsphere.apache.org/
ShardingSphere Resources:
- Issue: https://github.com/apache/shardingsphere-ui/issues/
- Mailing list: dev@shardingsphere.apache.org
- Documents: https://shardingsphere.apache.org/document/current/
- Apache ShardingSphere Team
</code></pre>
<footer class=" footline" >
</footer>
</div>
</div>
</div>
<div id="navigation">
<a class="nav nav-prev" href="https://shardingsphere.apache.org/community/en/contribute/release/" title="ShardingSphere Release Guide"> <i class="fa fa-chevron-left"></i></a>
<a class="nav nav-next" href="https://shardingsphere.apache.org/community/en/contribute/release-elasticjob/" title="ElasticJob Release Guide" style="margin-right: 0px;"><i class="fa fa-chevron-right"></i></a>
</div>
</section>
<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?1617704105"></script>
<script src="https://shardingsphere.apache.org/community/js/perfect-scrollbar.min.js?1617704105"></script>
<script src="https://shardingsphere.apache.org/community/js/perfect-scrollbar.jquery.min.js?1617704105"></script>
<script src="https://shardingsphere.apache.org/community/js/jquery.sticky.js?1617704105"></script>
<script src="https://shardingsphere.apache.org/community/js/featherlight.min.js?1617704105"></script>
<script src="https://shardingsphere.apache.org/community/js/html5shiv-printshiv.min.js?1617704105"></script>
<script src="https://shardingsphere.apache.org/community/js/highlight.pack.js?1617704105"></script>
<script>hljs.initHighlightingOnLoad();</script>
<script src="https://shardingsphere.apache.org/community/js/modernizr.custom.71422.js?1617704105"></script>
<script src="https://shardingsphere.apache.org/community/js/learn.js?1617704105"></script>
<script src="https://shardingsphere.apache.org/community/js/hugo-learn.js?1617704105"></script>
</body>
</html>