blob: 7474de5c8793f814f46a1174ebb8d325f19cc770 [file] [log] [blame]
<!doctype html>
<!--
Minimal Mistakes Jekyll Theme 4.4.1 by Michael Rose
Copyright 2017 Michael Rose - mademistakes.com | @mmistakes
Free for personal and commercial use under the MIT license
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE.txt
-->
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<!-- begin SEO -->
<title>ServiceComb Pack Release Guide - Apache ServiceComb</title>
<meta name="description" content="ServiceComb Pack Release Guide">
<meta name="author" content="">
<meta property="og:locale" content="en">
<meta property="og:site_name" content="Apache ServiceComb">
<meta property="og:title" content="ServiceComb Pack Release Guide">
<link rel="canonical" href="https://github.com/pages/apache/incubator-servicecomb-website/release/pack-release-guide/">
<meta property="og:url" content="https://github.com/pages/apache/incubator-servicecomb-website/release/pack-release-guide/">
<meta property="og:description" content="ServiceComb Pack Release Guide">
<meta name="twitter:site" content="@ServiceComb">
<meta name="twitter:title" content="ServiceComb Pack Release Guide">
<meta name="twitter:description" content="ServiceComb Pack Release Guide">
<meta name="twitter:url" content="">
<meta name="twitter:card" content="summary">
<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "Person",
"name" : "Apache ServiceComb",
"url" : "https://github.com/pages/apache/incubator-servicecomb-website",
"sameAs" : null
}
</script>
<meta name="google-site-verification" content="HvJjNd7vvJ-yjSTHlBiIWEYxp_Hrz-PYEY5Idz9LRcA" />
<!-- end SEO -->
<link href="/feed.xml" type="application/atom+xml" rel="alternate" title="Apache ServiceComb Feed">
<!-- http://t.co/dKP3o1e -->
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js"></script>
<script src="/assets/vendor/prism/prism.js"></script>
<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML">
</script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
<script src="https://www.apachecon.com/event-images/snippet.js"></script>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
<!-- For all browsers -->
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/vendor/prism/prism.css">
<!--[if lte IE 9]>
<style>
/* old IE unsupported flexbox fixes */
.greedy-nav .site-title {
padding-right: 3em;
}
.greedy-nav button {
position: absolute;
top: 0;
right: 0;
height: 100%;
}
</style>
<![endif]-->
<meta http-equiv="cleartype" content="on">
<!-- start custom head snippets -->
<!-- insert favicons. use http://realfavicongenerator.net/ -->
<link href="https://fonts.loli.net/css?family=Roboto:400,500,700|Source+Code+Pro" rel="stylesheet">
<script src="/assets/js/custom.js"></script>
<!-- end custom head snippets -->
</head>
<body class="layout--single">
<!--[if lt IE 9]>
<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div>
<![endif]-->
<div class="masthead" onmouseleave="$('#childrenShow').css('display', 'none')">
<div class="masthead__inner-wrap">
<div class="masthead__menu">
<nav id="site-nav" class="greedy-nav">
<a class="site-title active" href="/"><img src="https://www.apache.org/img/servicecomb.png"></a>
<ul class="visible-links">
<li class="masthead__menu-item" onmouseenter="$('#childrenShow').css('display', 'none')">
<a href="/">Home</a>
</li>
<li class="masthead__menu-item" onmouseenter="$('#childrenShow').css('display', 'none')">
<a href="/developers/">Projects</a>
</li>
<li class="def-nav-li" onmouseenter="$('#childrenShow').css('display', 'block')">
<a href="/docs/users/">Documentation</a>
<ul id="childrenShow" class="def-children-show-en" onmouseleave="$('#childrenShow').css('display', 'none')">
<li><a href="/docs/getting-started/" class="">Getting started</a></li>
<li><a href="/docs/users/" class="">Docs</a></li>
<li><a href="/slides/" class="">Video</a></li>
<li><a href="/faqs/" class="">FAQ</a></li>
</ul>
</li>
<li class="masthead__menu-item" onmouseenter="$('#childrenShow').css('display', 'none')">
<a href="/year-archive/">Blogs</a>
</li>
<li class="masthead__menu-item" onmouseenter="$('#childrenShow').css('display', 'none')">
<a class="active" href="/release/">Downloads</a>
</li>
</ul>
<button><div class="navicon"></div></button>
<ul class="hidden-links hidden"></ul>
<div class="nav-lang">
<a href=/cn/release/pack-release-guide/>中文</a>
</div>
</nav>
</div>
</div>
</div>
<div id="main" role="main">
<div class="sidebar sticky">
<div class="back-to-home"><a href="/">Home</a> > ServiceComb Pack Release Guide</div>
<nav class="nav__list">
<input id="ac-toc" name="accordion-toc" type="checkbox" />
<label for="ac-toc">Toggle Menu</label>
<ul class="nav__items">
<li>
<span class="nav__sub-title">Service-Center</span>
<ul>
<li><a href="/release/service-center-release-notes/" class="">Release Notes</a></li>
<li><a href="/release/service-center-downloads/" class="">Downloads</a></li>
</ul>
</li>
<li>
<span class="nav__sub-title">Kie</span>
<ul>
<li><a href="/release/kie-release-notes/" class="">Release Notes</a></li>
<li><a href="/release/kie-downloads/" class="">Downloads</a></li>
</ul>
</li>
<li>
<span class="nav__sub-title">Java-Chassis</span>
<ul>
<li><a href="/release/java-chassis-release-notes/" class="">Release Notes</a></li>
<li><a href="/release/java-chassis-downloads/" class="">Downloads</a></li>
</ul>
</li>
<li>
<span class="nav__sub-title">Mesher</span>
<ul>
<li><a href="/release/mesher-release-notes/" class="">Release Notes</a></li>
<li><a href="/release/mesher-downloads/" class="">Downloads</a></li>
</ul>
</li>
<li>
<span class="nav__sub-title">Pack</span>
<ul>
<li><a href="/release/pack-release-notes/" class="">Release Notes</a></li>
<li><a href="/release/pack-downloads/" class="">Downloads</a></li>
</ul>
</li>
<li>
<span class="nav__sub-title">Toolkit</span>
<ul>
<li><a href="/release/toolkit-release-notes/" class="">Release Notes</a></li>
<li><a href="/release/toolkit-downloads/" class="">Downloads</a></li>
</ul>
</li>
<li>
<span class="nav__sub-title">Saga Actuator</span>
<ul>
<li><a href="/release/saga-actuator-release-notes/" class="">Release Notes</a></li>
<li><a href="/release/saga-actuator-downloads/" class="">Downloads</a></li>
</ul>
</li>
<li>
<span class="nav__sub-title">Saga</span>
<ul>
<li><a href="/release/saga-release-notes/" class="">Release Notes</a></li>
<li><a href="/release/saga-downloads/" class="">Downloads</a></li>
</ul>
</li>
</ul>
</nav>
</div>
<article class="page" itemscope itemtype="http://schema.org/CreativeWork">
<meta itemprop="headline" content="ServiceComb Pack Release Guide">
<meta itemprop="description" content="ServiceComb Pack Release Guide">
<meta itemprop="dateModified" content="August 06, 2022">
<div class="page__inner-wrap">
<header>
<h1 class="page__title" itemprop="headline">ServiceComb Pack Release Guide
</h1>
</header>
<section class="page__content" itemprop="text">
<h2 id="preparation">Preparation</h2>
<h4 id="creating-a-gpg-keypair">Creating a GPG keypair</h4>
<ol>
<li>Install GnuPG</li>
</ol>
<p>Download and Install <a href="https://www.gnupg.org/download/index.html">GnuPG</a> 2.0.20 version.</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gpg <span class="nt">--version</span>
gpg <span class="o">(</span>GnuPG/MacGPG2<span class="o">)</span> 2.2.20
libgcrypt 1.8.5
Copyright <span class="o">(</span>C<span class="o">)</span> 2020 Free Software Foundation, Inc.
</code></pre></div></div>
<ol>
<li>Configure GnuPG</li>
</ol>
<p>Refer to the <a href="https://infra.apache.org/openpgp.html#sha-defaults">Recommended</a> to configuration the <code class="language-plaintext highlighter-rouge">$HOME/.gnupg/gpg.conf</code> file</p>
<div class="language-properties highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="err">personal-digest-preferences</span> <span class="err">SHA512</span>
<span class="err">cert-digest-algo</span> <span class="err">SHA512</span>
<span class="err">default-preference-list</span> <span class="err">SHA512</span> <span class="err">SHA384</span> <span class="err">SHA256</span> <span class="err">SHA224</span> <span class="err">AES256</span> <span class="err">AES192</span> <span class="err">AES</span> <span class="err">CAST5</span> <span class="err">ZLIB</span> <span class="err">BZIP2</span> <span class="err">ZIP</span> <span class="err">Uncompressed</span>
</code></pre></div></div>
<ol>
<li>Generate a new key</li>
</ol>
<p>Generate a GPG key with an ASF account. For more details <a href="https://infra.apache.org/openpgp.html#generate-key">Generate Key with GPG</a></p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gpg <span class="nt">--full-gen-key</span>
gpg <span class="o">(</span>GnuPG/MacGPG2<span class="o">)</span> 2.2.34<span class="p">;</span> Copyright <span class="o">(</span>C<span class="o">)</span> 2022 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Please <span class="k">select </span>what kind of key you want:
<span class="o">(</span>1<span class="o">)</span> RSA and RSA <span class="o">(</span>default<span class="o">)</span>
<span class="o">(</span>2<span class="o">)</span> DSA and Elgamal
<span class="o">(</span>3<span class="o">)</span> DSA <span class="o">(</span>sign only<span class="o">)</span>
<span class="o">(</span>4<span class="o">)</span> RSA <span class="o">(</span>sign only<span class="o">)</span>
<span class="o">(</span>14<span class="o">)</span> Existing key from card
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize <span class="k">do </span>you want? <span class="o">(</span>3072<span class="o">)</span> 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
0 <span class="o">=</span> key does not expire
&lt;n&gt; <span class="o">=</span> key expires <span class="k">in </span>n days
&lt;n&gt;w <span class="o">=</span> key expires <span class="k">in </span>n weeks
&lt;n&gt;m <span class="o">=</span> key expires <span class="k">in </span>n months
&lt;n&gt;y <span class="o">=</span> key expires <span class="k">in </span>n years
Key is valid <span class="k">for</span>? <span class="o">(</span>0<span class="o">)</span>
Key does not expire at all
Is this correct? <span class="o">(</span>y/N<span class="o">)</span> y
GnuPG needs to construct a user ID to identify your key.
Real name: <span class="o">[</span>Your ASF LDAP username]
Email address: <span class="o">[</span>Your ASF email]
Comment: CODE SIGNING KEY
You selected this USER-ID:
<span class="s2">"[Your ASF LDAP username] (CODE SIGNING KEY) &lt;[Your ASF email]&gt;"</span>
Change <span class="o">(</span>N<span class="o">)</span>ame, <span class="o">(</span>C<span class="o">)</span>omment, <span class="o">(</span>E<span class="o">)</span>mail or <span class="o">(</span>O<span class="o">)</span>kay/<span class="o">(</span>Q<span class="o">)</span>uit? O
</code></pre></div></div>
<p>You need a <strong>[GPG PASSPHRASE]</strong> to protect your secret key, Please remember it.</p>
<ol>
<li>Find GPG Public Key ID</li>
</ol>
<p>You can find <strong>[GPG Public Key ID]</strong> with the following command, Please remember it.</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gpg <span class="nt">--list-keys</span>
pub rsa4096 2022-05-05 <span class="o">[</span>SC]
<span class="o">[</span>GPG Public Key ID]
uid <span class="o">[</span> unknown] <span class="o">[</span>Your ASF LDAP username] <span class="o">(</span>CODE SIGNING KEY<span class="o">)</span> &lt;<span class="o">[</span>Your ASF email]&gt;
sub rsa4096 2022-05-05 <span class="o">[</span>E]
</code></pre></div></div>
<ol>
<li>Distributing keys</li>
</ol>
<p>Upload the <strong>[GPG Public Key ID]</strong> to a public keyserver <code class="language-plaintext highlighter-rouge">pgpkeys.mit.edu</code>.</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gpg <span class="nt">--keyserver</span> pgpkeys.mit.edu <span class="nt">--send-key</span> <span class="o">[</span>GPG Public Key ID]
</code></pre></div></div>
<p>Verify the distribution with the following command (may take a while)</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gpg <span class="nt">--keyserver</span> hkp://pgpkeys.mit.edu <span class="nt">--recv-keys</span> <span class="o">[</span>GPG Public Key ID]
</code></pre></div></div>
<p>If you see the following message, it means the distribution has been successful.</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gpg: key <span class="o">[</span>GPG Public Key ID]: <span class="s2">"[Your ASF LDAP username] (CODE SIGNING KEY) &lt;[Your ASF email]&gt;"</span> not changed
gpg: Total number processed: 1
gpg: unchanged: 1
</code></pre></div></div>
<ol>
<li>Add public key fingerprint to your ASF LDAP</li>
</ol>
<p>You must also add them to your LDAP record using the Apache <a href="https://id.apache.org">self-service app</a>.</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gpg <span class="nt">--fingerprint</span> Lei Zhang
pub rsa4096 2022-05-05 <span class="o">[</span>SC]
<span class="o">[</span>public key fingerprint]
uid <span class="o">[</span> unknown] <span class="o">[</span>Your ASF LDAP username] <span class="o">(</span>CODE SIGNING KEY<span class="o">)</span> &lt;<span class="o">[</span>Your ASF email]&gt;
sub rsa4096 2022-05-05 <span class="o">[</span>E]
</code></pre></div></div>
<ol>
<li>Back up public &amp; private key</li>
</ol>
<p>export public key</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gpg <span class="nt">-a</span> <span class="nt">-o</span> public-file.key <span class="nt">--export</span> <span class="o">[</span>GPG Public Key ID]
</code></pre></div></div>
<p>export private key(need GPG PASSPHRASE)</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gpg <span class="nt">-a</span> <span class="nt">-o</span> private-file.key <span class="nt">--export-secret-keys</span> <span class="o">[</span>GPG Public Key ID]
</code></pre></div></div>
<ol>
<li>Add public key to ASF SVN KEYS</li>
</ol>
<ul>
<li>https://dist.apache.org/repos/dist/dev/servicecomb/KEYS</li>
<li>https://dist.apache.org/repos/dist/release/servicecomb/KEYS</li>
</ul>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>svn co <span class="nt">--depth</span><span class="o">=</span>empty https://dist.apache.org/repos/dist/dev/servicecomb
svn up KEYS
<span class="nb">cat </span>public-file.key <span class="o">&gt;&gt;</span> KEYS
svn commit <span class="nt">-m</span> <span class="s1">'add [Your ASF email] gpg public key'</span>
svn co <span class="nt">--depth</span><span class="o">=</span>empty https://dist.apache.org/repos/dist/release/servicecomb
svn up KEYS
<span class="nb">cat </span>public-file.key <span class="o">&gt;&gt;</span> KEYS
svn commit <span class="nt">-m</span> <span class="s1">'add [Your ASF email] gpg public key'</span>
</code></pre></div></div>
<h4 id="apache-maven-configuration">Apache Maven Configuration</h4>
<p>We need to configure the server address, account and password of the Apache Maven repository with <a href="https://maven.apache.org/guides/mini/guide-encryption.html">Password Encryption</a>.</p>
<ol>
<li>Create a Maven master password</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>mvn <span class="nt">--encrypt-master-password</span> <span class="o">[</span>Maven master password]
</code></pre></div></div>
<p>Add [Encrypted Maven master password] to <code class="language-plaintext highlighter-rouge">~/.m2/settings-security.xml</code></p>
<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;settingsSecurity&gt;</span>
<span class="nt">&lt;master&gt;</span>[Encrypted Maven master password]<span class="nt">&lt;/master&gt;</span>
<span class="nt">&lt;/settingsSecurity&gt;</span>
</code></pre></div></div>
<ol>
<li>Encrypt your ASF LDAP password</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>mvn <span class="nt">--encrypt-password</span> <span class="o">[</span>Your ASF LDAP password]
</code></pre></div></div>
<ol>
<li>Encrypt [GPG PASSPHRASE]</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>mvn <span class="nt">--encrypt-password</span> <span class="o">[</span>GPG PASSPHRASE]
</code></pre></div></div>
<ol>
<li>Add ASF server configuration in <code class="language-plaintext highlighter-rouge">~/.m2/settings.xml</code></li>
</ol>
<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;settings&gt;</span>
<span class="nt">&lt;servers&gt;</span>
<span class="nt">&lt;server&gt;</span>
<span class="nt">&lt;id&gt;</span>apache.snapshots.https<span class="nt">&lt;/id&gt;</span>
<span class="nt">&lt;username&gt;</span>[Your ASF LDAP username]<span class="nt">&lt;/username&gt;</span>
<span class="nt">&lt;password&gt;</span>[Encrypted ASF LDAP password]<span class="nt">&lt;/password&gt;</span>
<span class="nt">&lt;/server&gt;</span>
<span class="nt">&lt;server&gt;</span>
<span class="nt">&lt;id&gt;</span>apache.releases.https<span class="nt">&lt;/id&gt;</span>
<span class="nt">&lt;username&gt;</span>[Your ASF LDAP username]<span class="nt">&lt;/username&gt;</span>
<span class="nt">&lt;password&gt;</span>[Encrypted ASF LDAP password]<span class="nt">&lt;/password&gt;</span>
<span class="nt">&lt;/server&gt;</span>
<span class="nt">&lt;server&gt;</span>
<span class="nt">&lt;id&gt;</span>gpg.passphrase<span class="nt">&lt;/id&gt;</span>
<span class="nt">&lt;passphrase&gt;</span>[Encrypted GPG PASSPHRASE]<span class="nt">&lt;/passphrase&gt;</span>
<span class="nt">&lt;/server&gt;</span>
<span class="nt">&lt;/servers&gt;</span>
<span class="nt">&lt;/settings&gt;</span>
</code></pre></div></div>
<h2 id="release-servicecomb-pack">Release ServiceComb Pack</h2>
<p>This document is based on the <code class="language-plaintext highlighter-rouge">0.7.0</code> official release process.
Please announce the upcoming release via <code class="language-plaintext highlighter-rouge">dev@servicecomb.apache.org</code> one week before the official release to confirm that the code is ready.</p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Hello All,
Since from last ServiceComb pack [Previous version] release, we have made significant changes, so now is the time to release the new version [Release version].
I will cut a new release tomorrow morning from the branch https://github.com/apache/servicecomb-pack/tree/[Branch name].
@PMC/@Committers please let me know if there is any important patch we need to merge before this release.
Regards
[YOUR NAME]
</code></pre></div></div>
<p><strong>NOTE:</strong> The <strong>PMC Approval</strong> part of the release process usually takes three days to release without any PMC voting -1 officially, so plan for your release.</p>
<h4 id="upload-to-staging-repositories">Upload to Staging Repositories</h4>
<ol>
<li>Clone code from GitHub</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">mkdir</span> ~/Work/apache-release-workspace
<span class="nb">cd</span> ~/Work/apache-release-workspace
git clone https://github.com/apache/servicecomb-pack.git
</code></pre></div></div>
<ol>
<li>Build &amp; Deploy, <strong>Note:</strong> Use <code class="language-plaintext highlighter-rouge">-Drevision=0.7.0</code> to specify the version</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> ~/Work/apache-release-workspace/servicecomb-pack
mvn deploy <span class="nt">-DskipTests</span> <span class="nt">-Prelease</span> <span class="nt">-Drevision</span><span class="o">=</span>0.7.0
</code></pre></div></div>
<ol>
<li>Visit <code class="language-plaintext highlighter-rouge">https://repository.apache.org/</code>, Select the artifact in Staging Repositories and click Close to complete the temporary release.</li>
</ol>
<h4 id="verify-artifacts">Verify artifacts</h4>
<p>Before launching the vote, we need to verify the Artifacts just deployed in Staging Repositories. We need to configure some parameters to allow the acceptance test to download those Artifacts from Staging Repositories. For more details, please refer to <a href="https://maven.apache.org/guides/development/guide-testing-releases.html">Guide to Testing Staged Releases</a></p>
<ol>
<li>Delete Artifacts in the local repository</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">rm</span> <span class="nt">-rf</span> ~/.m2/repository/org/apache/servicecomb/pack
</code></pre></div></div>
<ol>
<li>Configuring the Staging Repositories in <code class="language-plaintext highlighter-rouge">~/.m2/settings.xml</code></li>
</ol>
<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;profiles&gt;</span>
<span class="nt">&lt;profile&gt;</span>
<span class="nt">&lt;id&gt;</span>staged-releases<span class="nt">&lt;/id&gt;</span>
<span class="nt">&lt;repositories&gt;</span>
<span class="nt">&lt;repository&gt;</span>
<span class="nt">&lt;id&gt;</span>staged-releases<span class="nt">&lt;/id&gt;</span>
<span class="nt">&lt;url&gt;</span>https://repository.apache.org/content/groups/staging/<span class="nt">&lt;/url&gt;</span>
<span class="nt">&lt;/repository&gt;</span>
<span class="nt">&lt;/repositories&gt;</span>
<span class="nt">&lt;pluginRepositories&gt;</span>
<span class="nt">&lt;pluginRepository&gt;</span>
<span class="nt">&lt;id&gt;</span>staged-releases<span class="nt">&lt;/id&gt;</span>
<span class="nt">&lt;url&gt;</span>https://repository.apache.org/content/groups/staging/<span class="nt">&lt;/url&gt;</span>
<span class="nt">&lt;/pluginRepository&gt;</span>
<span class="nt">&lt;/pluginRepositories&gt;</span>
<span class="nt">&lt;/profile&gt;</span>
<span class="nt">&lt;/profiles&gt;</span>
</code></pre></div></div>
<ol>
<li>Run acceptance tests, <strong>Note:</strong> Use <code class="language-plaintext highlighter-rouge">-Drevision=0.7.0</code> to specify the version</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> ~/Work/apache-release-workspace/servicecomb-pack
mvn clean verify <span class="nt">-f</span> demo <span class="nt">-Pdemo</span> <span class="nt">-Pdocker</span> <span class="nt">-Drevision</span><span class="o">=</span>0.7.0 <span class="nt">-Pstaged-releases</span> <span class="nt">-U</span>
mvn clean verify <span class="nt">-f</span> acceptance-tests <span class="nt">-Pdemo</span> <span class="nt">-Pdocker</span> <span class="nt">-Drevision</span><span class="o">=</span>0.7.0 <span class="nt">-Pstaged-releases</span>
</code></pre></div></div>
<ol>
<li>Find if there is a SNAPSHOT version in the local artifact.</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>find ~/.m2/repository/org/apache/servicecomb/pack <span class="nt">-name</span> <span class="s2">"*-0.7.0.pom"</span> | xargs <span class="nb">grep</span> <span class="s2">"SNAPSHOT"</span>
</code></pre></div></div>
<ol>
<li>If everything goes well, we will create the branch <code class="language-plaintext highlighter-rouge">0.7.x</code>, tag <code class="language-plaintext highlighter-rouge">0.7.0</code>, and update the trunk version to <code class="language-plaintext highlighter-rouge">0.8.0-SNAPSHOT</code></li>
</ol>
<p>Create and push branch <code class="language-plaintext highlighter-rouge">0.7.x</code></p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> ~/Work/apache-release-workspace/servicecomb-pack
git checkout master
git checkout <span class="nt">-b</span> 0.7.x
mvn versions:set-property <span class="nt">-Dproperty</span><span class="o">=</span>revision <span class="nt">-DnewVersion</span><span class="o">=</span>0.7.0
git add pom.xml
git commit <span class="nt">-m</span> <span class="s1">'Cut 0.7.0 Release'</span>
git push origin 0.7.x
</code></pre></div></div>
<p>Create and push tag <code class="language-plaintext highlighter-rouge">0.7.0</code> base branch 0.7.x</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> ~/Work/apache-release-workspace/servicecomb-pack
git tag <span class="nt">-a</span> 0.7.0 <span class="nt">-m</span> <span class="s2">"ServiceComb Pack 0.7.0 Release"</span>
git push origin 0.7.0
</code></pre></div></div>
<p>Switch trunk and Update the trunk version to <code class="language-plaintext highlighter-rouge">0.8.0-SNAPSHOT</code></p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> ~/Work/apache-release-workspace/servicecomb-pack
git checkout master
mvn versions:set-property <span class="nt">-Dproperty</span><span class="o">=</span>revision <span class="nt">-DnewVersion</span><span class="o">=</span>0.8.0-SNAPSHOT
git add pom.xml
git commit <span class="nt">-m</span> <span class="s1">'Update Release Number to 0.8.0-SNAPSHOT'</span>
git push origin master
</code></pre></div></div>
<h4 id="sign-the-release--upload-to-asf-svn">Sign the Release &amp; Upload to ASF SVN</h4>
<ol>
<li>Checkout Apache dev Release SVN</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">mkdir</span> ~/Work/apache-release-workspace/dist
<span class="nb">cd</span> ~/Work/apache-release-workspace/dist
svn co https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-pack <span class="nt">--username</span><span class="o">=[</span>你的 ASF LDAP 用户名] <span class="nt">--password</span><span class="o">=[</span>你的 ASF LDAP 密码]
</code></pre></div></div>
<ol>
<li>Create a new directory Apache dev Release SVN with release package name and release candidate number.</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">mkdir</span> <span class="nt">-p</span> ~/Work/apache-release-workspace/dist/servicecomb-pack/0.7.0/rc1
</code></pre></div></div>
<ol>
<li>Copy the release to the directory created in last step.</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> ~/Work/apache-release-workspace/dist/servicecomb-pack/0.7.0/rc1
<span class="nb">cp</span> ~/Work/apache-release-workspace/servicecomb-pack/distribution/target/apache-servicecomb-pack-distribution-0.7.0-bin.zip <span class="nb">.</span>
<span class="nb">cp</span> ~/Work/apache-release-workspace/servicecomb-pack/distribution/target/apache-servicecomb-pack-distribution-0.7.0-bin.zip.asc <span class="nb">.</span>
<span class="nb">cp</span> ~/Work/apache-release-workspace/servicecomb-pack/distribution/target/apache-servicecomb-pack-distribution-0.7.0-src.zip <span class="nb">.</span>
<span class="nb">cp</span> ~/Work/apache-release-workspace/servicecomb-pack/distribution/target/apache-servicecomb-pack-distribution-0.7.0-src.zip.asc <span class="nb">.</span>
</code></pre></div></div>
<ol>
<li>Generate sha 512 checksum</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> ~/Work/apache-release-workspace/dist/servicecomb-pack/0.7.0/rc1
shasum <span class="nt">-a</span> 512 apache-servicecomb-pack-distribution-0.7.0-bin.zip <span class="o">&gt;&gt;</span> apache-servicecomb-pack-distribution-0.7.0-bin.zip.sha512
shasum <span class="nt">-a</span> 512 apache-servicecomb-pack-distribution-0.7.0-src.zip <span class="o">&gt;&gt;</span> apache-servicecomb-pack-distribution-0.7.0-src.zip.sha512
</code></pre></div></div>
<ol>
<li>Upload the release to the SVN</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> ~/Work/apache-release-workspace/dist/servicecomb-pack
svn add 0.7.0
svn commit <span class="nt">-m</span> <span class="s1">'prepare for 0.7.0 RC1'</span> <span class="nt">--username</span><span class="o">=[</span>Your ASF LDAP username] <span class="nt">--password</span><span class="o">=[</span>Your ASF LDAP password]
</code></pre></div></div>
<ol>
<li>Download all the releases from SVN and verify the signature and checksum.</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">mkdir</span> ~/Work/apache-release-workspace/verify
<span class="nb">cd</span> ~/Work/apache-release-workspace/verify
curl <span class="nt">-O</span> https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-pack/0.7.0/rc1/apache-servicecomb-pack-distribution-0.7.0-bin.zip
curl <span class="nt">-O</span> https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-pack/0.7.0/rc1/apache-servicecomb-pack-distribution-0.7.0-bin.zip.asc
curl <span class="nt">-O</span> https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-pack/0.7.0/rc1/apache-servicecomb-pack-distribution-0.7.0-bin.zip.sha512
curl <span class="nt">-O</span> https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-pack/0.7.0/rc1/apache-servicecomb-pack-distribution-0.7.0-src.zip
curl <span class="nt">-O</span> https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-pack/0.7.0/rc1/apache-servicecomb-pack-distribution-0.7.0-src.zip.asc
curl <span class="nt">-O</span> https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-pack/0.7.0/rc1/apache-servicecomb-pack-distribution-0.7.0-src.zip.sha512
</code></pre></div></div>
<p>Verify checksum</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> ~/Work/apache-release-workspace/verify
shasum <span class="nt">-c</span> apache-servicecomb-pack-distribution-0.7.0-bin.zip.sha512
shasum <span class="nt">-c</span> apache-servicecomb-pack-distribution-0.7.0-src.zip.sha512
</code></pre></div></div>
<p>Import KEYS</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl https://dist.apache.org/repos/dist/dev/servicecomb/KEYS <span class="o">&gt;&gt;</span> KEYS
<span class="nv">$ </span>gpg <span class="nt">--import</span> KEYS
</code></pre></div></div>
<p>Verify the PGP signature</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> ~/Work/apache-release-workspace/verify
gpg <span class="nt">--verify</span> apache-servicecomb-pack-distribution-0.7.0-bin.zip.asc apache-servicecomb-pack-distribution-0.7.0-bin.zip
gpg <span class="nt">--verify</span> apache-servicecomb-pack-distribution-0.7.0-src.zip.asc apache-servicecomb-pack-distribution-0.7.0-src.zip
</code></pre></div></div>
<h4 id="creating-release-notes">Creating release notes</h4>
<p><a href="https://confluence.atlassian.com/adminjiraserver/creating-release-notes-938847219.html">Creating release notes on JIRA</a></p>
<h4 id="pmc-approval">PMC Approval</h4>
<p>Send voting email <code class="language-plaintext highlighter-rouge">[VOTE] Release Apache ServiceComb Pack version 0.7.0</code> to <code class="language-plaintext highlighter-rouge">dev@servicecomb.apache.org</code>.</p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Hi all,
This is a call for Vote to release Apache ServiceComb Pack version 0.7.0
Release Candidate:
https://dist.apache.org/repos/dist/dev/servicecomb/servicecomb-pack/0.7.0/rc1/
Staging Repository:
https://repository.apache.org/content/repositories/orgapacheservicecomb-1490
Release Tag:
https://github.com/apache/servicecomb-pack/releases/tag/0.7.0
Release CommitID:
fae7326c0bac2b07e06ba83cf2cc284648ab1713
Release Notes:
https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12321626<span class="err">&amp;</span>version=12348307
Keys to verify the Release Candidate:
https://dist.apache.org/repos/dist/dev/servicecomb/KEYS
Voting will start now (Thursday, 12th May 2022) and will remain open for
at-least 72 hours, Request all PMC members to give their vote.
[ ] +1 Release this package as 0.7.0
[ ] +0 No Opinion
[ ] -1 Do not release this package because...
On behalf of the ServiceComb Team
Regards
[YOUR NAME]
</code></pre></div></div>
<p>Wait for 72 hours. You need to send the vote closed notice to <code class="language-plaintext highlighter-rouge">dev@servicecomb.apache.org</code>.</p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Hi All,
Thanks all for voting on this release, the vote has been closed now, and we will announce the results shortly.
Regards
[YOUR NAME]
</code></pre></div></div>
<p>Unless you get 3 +1 binding vote with no -1 vote. If you get even one -1 binding vote then fix the issue and start again from <strong>Release ServiceComb Pack</strong>.
Publish the result of the vote in <code class="language-plaintext highlighter-rouge">dev@servicecomb.apache.org</code></p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Hello All,
We are glad to announce that ServiceComb community has approved the Apache ServiceComb Pack 0.7.0 release with the following results:
+1 binding: 3 ([PMC],[PMC],[PMC],...)
We will be publishing the release binaries soon.
On behalf of ServiceComb Team
Thanks all for your participation in this vote.
Regards
[YOUR NAME]
</code></pre></div></div>
<h4 id="announcements">Announcements</h4>
<ol>
<li>
<p>Visit <code class="language-plaintext highlighter-rouge">https://repository.apache.org/</code> Select the staging repository and click the release button to finish the release. It will be automatically synchronized to <a href="https://mvnrepository.com/repos/central">Maven Central Repository</a> after a while.</p>
</li>
<li>
<p>Upload files from Apache dev Release SVN to Apache dist Release SVN</p>
</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">mkdir</span> <span class="nt">-p</span> ~/Work/apache-release-workspace/release
<span class="nb">cd</span> ~/Work/apache-release-workspace/release
svn co https://dist.apache.org/repos/dist/release/servicecomb/servicecomb-pack
<span class="nb">mkdir</span> <span class="nt">-p</span> ~/Work/apache-release-workspace/release/servicecomb-pack/0.7.0
<span class="nb">cp</span> ~/Work/apache-release-workspace/dist/servicecomb-pack/0.7.0/rc1/<span class="k">*</span> ~/Work/apache-release-workspace/release/servicecomb-pack/0.7.0
<span class="nb">cd</span> ~/Work/apache-release-workspace/release/servicecomb-pack
svn add 0.7.0
svn commit <span class="nt">-m</span> <span class="s1">'Upload ServiceComb Pack 0.7.0 Release'</span>
</code></pre></div></div>
<ol>
<li>Delete Pack Release Candidate 0.7.0</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> ~/Work/apache-release-workspace/dist/servicecomb-pack
<span class="nb">rm</span> <span class="nt">-rf</span> 0.7.0
svn delete 0.7.0
svn commit <span class="nt">-m</span> <span class="s1">'Remove ServiceComb Pack 0.7.0 RC'</span>
</code></pre></div></div>
<ol>
<li>Delete Pack Release 0.6.0</li>
</ol>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd</span> ~/Work/apache-release-workspace/release/servicecomb-pack
<span class="nb">rm</span> <span class="nt">-rf</span> 0.6.0
svn delete 0.6.0
svn commit <span class="nt">-m</span> <span class="s1">'Remove ServiceComb Pack 0.6.0 Release'</span>
</code></pre></div></div>
<ol>
<li>
<p>Wait <a href="https://mvnrepository.com/repos/central">Maven Central Repository</a> sync completed</p>
</li>
<li>
<p>Create a Release of 0.7.0 Tag on GitHub</p>
</li>
</ol>
<p>Visit <code class="language-plaintext highlighter-rouge">https://github.com/apache/servicecomb-pack/releases/tag/0.7.0</code>, click the <code class="language-plaintext highlighter-rouge">Create release from tag</code> button, and the content reference <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12321626&amp;version=12348307">JIRA Release Notes</a></p>
<ol>
<li>Update <a href="https://github.com/apache/servicecomb-website">ServiceComb Website</a></li>
</ol>
<ul>
<li>https://github.com/apache/servicecomb-website/blob/master/_release/cn/pack_downloads.md</li>
<li>https://github.com/apache/servicecomb-website/blob/master/_release/cn/pack_releaseNotes.md</li>
<li>https://github.com/apache/servicecomb-website/blob/master/_release/cn/release.md</li>
<li>https://github.com/apache/servicecomb-website/blob/master/_release/pack_downloads.md</li>
<li>https://github.com/apache/servicecomb-website/blob/master/_release/pack_releaseNotes.md</li>
<li>https://github.com/apache/servicecomb-website/blob/master/_release/release.md</li>
<li>https://github.com/apache/servicecomb-website/blob/master/_pages/cn/home.md</li>
<li>https://github.com/apache/servicecomb-website/blob/master/_pages/home.md</li>
</ul>
<ol>
<li>Send the announcement mails <code class="language-plaintext highlighter-rouge">[ANNOUNCE] Apache ServiceComb Pack version 0.7.0 Released</code> to dev@servicecomb.apache.org, announce@apache.org</li>
</ol>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Hello All,
Apache ServiceComb Team is glad to announce the release of Apache
ServiceComb Pack 0.7.0
Apache ServiceComb Pack(https://github.com/apache/servicecomb-pack) is an
eventually data consistency solution for micro-service applications.
ServiceComb Pack currently has TCC and Saga distributed transaction
coordination protocol. ServiceComb Pack is composed of Alpha which plays
as a coordinator for the management of transactions and Omega which plays
as an agent and is an integral part of micro-services intercepting the
outgoing/incoming requests and reports transaction events to Alpha.
Download Links: https://servicecomb.apache.org/release/pack-downloads/
Release Notes: https://servicecomb.apache.org/release/pack-release-notes/
Know more about ServiceComb: https://servicecomb.apache.org/
ServiceComb Useful Links :
- JIRA: https://issues.apache.org/jira/browse/SCB
- Mailing lists: dev@servicecomb.apache.org
- Gitter: https://gitter.im/ServiceCombUsers/Saga
On behalf of ServiceComb Team
Regards
[YOUR NAME]
</code></pre></div></div>
</section>
<footer class="page__meta">
</footer>
</div>
</article>
</div>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<div align="center" style="margin: 0 0;">
<ins class="adsbygoogle"
style="display:block; border-bottom: initial;"
data-ad-client="ca-pub-7328585512091257"
data-ad-slot="3049671934"
data-ad-format="auto"></ins>
</div>
<div class="page__footer">
<footer>
<!-- start custom footer snippets -->
<!-- end custom footer snippets -->
<div class="container">
<div class="row justify-content-md-center">
<div class="col">
<ul>
<p class="header">Events</p>
<a class="acevent" data-format="square" data-mode="dark" data-event="random"></a>
</ul>
</div>
<div class="col">
<ul>
<p class="header">Resources</p>
<li><a href="/docs/getting-started/">Getting started</a></li>
<li><a href="/docs/users/">User Guide</a></li>
<li><a href="/slides/">Slides</a></li>
<li><a href="/users/faq/">Common Questions</a></li>
</ul>
</div>
<div class="col">
<ul>
<p class="header">ASF</p>
<li><a href="http://www.apache.org">Foundation</a></li>
<li><a href="http://www.apache.org/licenses/">License</a></li>
<li><a href="http://www.apache.org/events/current-event">Events</a></li>
<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
</ul>
</div>
<div class="col">
<ul>
<p class="header">Contribute</p>
<li><a href="http://issues.apache.org/jira/browse/SCB">Report a Doc Issue</a></li>
<li><a href="https://github.com/apache/servicecomb-website/edit/master/_release/pack_releaseGuide.md">Edit This Page on Github</a></li>
<li><a href="/developers/submit-codes/">Code Submit Guide</a></li>
<li><a href="/security">Security</a></li>
</ul>
</div>
<div class="col">
<ul class="social-icons">
<p class="header">Community</p>
<li>
<a href="mailto:dev-subscribe@servicecomb.incubator.apache.org" rel="nofollow"><span class="mail">Mailing List</span></a>
</li>
<li>
<a href="https://github.com/apache?q=ServiceComb" target="_blank"><span class="github">Github</span></a>
</li>
<li>
<a href="https://twitter.com/ServiceComb" target="_blank"><span class="twitter">Twitter</span></a>
</li>
<li>
<a href="/feed.xml" target="_blank"><span class="rss">Feed</span></a>
</li>
</ul>
</div>
</div>
</div>
<div class="page__footer-bottom">
<div>&copy; 2024 Apache ServiceComb. Powered by <a href="http://jekyllrb.com" rel="nofollow">Jekyll</a> &amp; <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
<div>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div>
</div>
</footer>
</div>
<script src="/assets/js/main.min.js"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-101622733-1', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>