You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@orc.apache.org by om...@apache.org on 2017/10/11 21:36:16 UTC

orc git commit: Publish how to release page.

Repository: orc
Updated Branches:
  refs/heads/asf-site 05e43c23d -> fa9fb00cc


Publish how to release page.


Project: http://git-wip-us.apache.org/repos/asf/orc/repo
Commit: http://git-wip-us.apache.org/repos/asf/orc/commit/fa9fb00c
Tree: http://git-wip-us.apache.org/repos/asf/orc/tree/fa9fb00c
Diff: http://git-wip-us.apache.org/repos/asf/orc/diff/fa9fb00c

Branch: refs/heads/asf-site
Commit: fa9fb00cc898f77b483a07a305b145b0877f6e1d
Parents: 05e43c2
Author: Owen O'Malley <om...@apache.org>
Authored: Wed Oct 11 14:35:59 2017 -0700
Committer: Owen O'Malley <om...@apache.org>
Committed: Wed Oct 11 14:35:59 2017 -0700

----------------------------------------------------------------------
 develop/index.html        |   8 +-
 develop/make-release.html | 282 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 288 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/orc/blob/fa9fb00c/develop/index.html
----------------------------------------------------------------------
diff --git a/develop/index.html b/develop/index.html
index 294b0ca..49e0e22 100644
--- a/develop/index.html
+++ b/develop/index.html
@@ -331,8 +331,12 @@ The pages that are deployed to https://orc.apache.org/</li>
 
 <h2 id="reviews">Reviews</h2>
 
-<p>All code must be +1’ed by a committer other than the author prior to its 
-commit.</p>
+<p>ORC uses Commit-Then-Review, so patches can be committed without a
+committer’s review. However, most changes should be reviewed first.</p>
+
+<h2 id="making-a-release">Making a Release</h2>
+
+<p>The process to make a release is documented <a href="/develop/make-release.html">here</a>.</p>
 
       </article>
     </div>

http://git-wip-us.apache.org/repos/asf/orc/blob/fa9fb00c/develop/make-release.html
----------------------------------------------------------------------
diff --git a/develop/make-release.html b/develop/make-release.html
new file mode 100644
index 0000000..7436f47
--- /dev/null
+++ b/develop/make-release.html
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML>
+<html lang="en-US">
+<head>
+  <meta charset="UTF-8">
+  <title>Making a Release</title>
+  <meta name="viewport" content="width=device-width,initial-scale=1">
+  <meta name="generator" content="Jekyll v2.4.0">
+  <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
+  <link rel="stylesheet" href="/css/screen.css">
+  <link rel="icon" type="image/x-icon" href="/favicon.ico">
+  <!--[if lt IE 9]>
+  <script src="/js/html5shiv.min.js"></script>
+  <script src="/js/respond.min.js"></script>
+  <![endif]-->
+</head>
+
+
+<body class="wrap">
+  <header role="banner">
+  <nav class="mobile-nav show-on-mobiles">
+    <ul>
+  <li class="">
+    <a href="/">Home</a>
+  </li>
+  <li class="">
+    <a href="/docs/"><span class="show-on-mobiles">Docs</span>
+                     <span class="hide-on-mobiles">Documentation</span></a>
+  </li>
+  <li class="">
+    <a href="/talks/">Talks</a>
+  </li>
+  <li class="">
+    <a href="/news/">News</a>
+  </li>
+  <li class="">
+    <a href="/help/">Help</a>
+  </li>
+  <li class="current">
+    <a href="/develop/">Develop</a>
+  </li>
+</ul>
+
+  </nav>
+  <div class="grid">
+    <div class="unit one-third center-on-mobiles">
+      <h1>
+        <a href="/">
+          <span class="sr-only">Apache ORC</span>
+          <img src="/img/logo.png" width="249" height="101" alt="ORC Logo">
+        </a>
+      </h1>
+    </div>
+    <nav class="main-nav unit two-thirds hide-on-mobiles">
+      <ul>
+  <li class="">
+    <a href="/">Home</a>
+  </li>
+  <li class="">
+    <a href="/docs/"><span class="show-on-mobiles">Docs</span>
+                     <span class="hide-on-mobiles">Documentation</span></a>
+  </li>
+  <li class="">
+    <a href="/talks/">Talks</a>
+  </li>
+  <li class="">
+    <a href="/news/">News</a>
+  </li>
+  <li class="">
+    <a href="/help/">Help</a>
+  </li>
+  <li class="current">
+    <a href="/develop/">Develop</a>
+  </li>
+</ul>
+
+    </nav>
+  </div>
+</header>
+
+
+  <section class="standalone">
+  <div class="grid">
+
+    <div class="unit whole">
+      <article>
+        <h1>Making a Release</h1>
+        <h2 id="preparing-for-release">Preparing for release</h2>
+
+<p>Set version so that it isn’t a SNAPSHOT.</p>
+
+<pre><code>% git checkout branch-X.Y
+% edit CMakeLists.txt
+% (mkdir build; cd build; cmake ..)
+</code></pre>
+
+<p>Commit the changes back to Apache along with a tag for the release candidate.</p>
+
+<pre><code>% git commit -s -S -c 'Preparing for release X.Y.Z'
+% git push apache branch-X.Y
+% git tag release-X.Y.Zrc0
+% git push apache release-X.Y.Zrc0
+</code></pre>
+
+<p>Generate the source tarball and checksums for the release.</p>
+
+<pre><code>% wget https://github.com/apache/orc/archive/release-X.Y.Zrc0.tar.gz
+% tar xzf release-X.Y.Zrc0.tar.gz
+% mv orc-release-X.Y.Zrc0 orc-X.Y.Z
+% tar czf orc-X.Y.Zrc0.tar.gz orc-X.Y.Z
+% shasum -a 256 orc-X.Y.Zrc0.tar.gz &gt; orc-X.Y.Zrc0.tar.gz.sha256
+% gpg --detach-sig --armor orc-X.Y.Zrc0.tar.gz
+</code></pre>
+
+<p>Copy the artifacts into your personal Apache website.</p>
+
+<pre><code>% sftp &lt;apacheid&gt;@home.apache.org
+sftp&gt; cd public_html
+sftp&gt; mkdir orc-X.Y.Zrc0
+sftp&gt; cd orc-X.Y.Zrc0
+sftp&gt; put orc-X.Y.Zrc0*
+sftp&gt; quit
+</code></pre>
+
+<p>Send email with the vote:</p>
+
+<pre><code>To: dev@orc.apache.org
+Subject: [VOTE] Should we release ORC X.Y.Zrc0?
+
+All,
+
+Should we release the following artifacts as ORC X.Y.Z?
+
+tar: http://home.apache.org/~omalley/orc-X.Y.Zrc0/
+tag: https://github.com/apache/orc/releases/tag/release-X.Y.Zrc0
+jiras: https://issues.apache.org/jira/browse/ORC/fixforversion/&lt;fixid&gt;
+
+Thanks!
+</code></pre>
+
+<h2 id="to-promote-a-release-candidate-rc-to-a-real-release">To promote a release candidate (RC) to a real release.</h2>
+
+<p>Update the final tag and remove the rc tag.</p>
+
+<pre><code>% git tag rel/release-X.Y.Z -s
+% git push apache rel/release-X.Y.Z
+% git push apache :release-X.Y.Zrc0
+</code></pre>
+
+<p>Publish the artifacts to Maven central staging.</p>
+
+<pre><code>% cd java
+% mvn -Papache-release clean deploy
+</code></pre>
+
+<p>Publish from the staging area:</p>
+
+<ul>
+  <li>login to <a href="https://repository.apache.org/index.html#stagingRepositories">Maven staging</a></li>
+  <li>find your staging repository (search for org.apache.org)</li>
+  <li>close it</li>
+  <li>release it</li>
+</ul>
+
+<p>Publish the artifacts to Apache’s dist area.</p>
+
+<pre><code>In a svn clone of https://dist.apache.org/repos/dist/release/orc
+% mkdir orc-X.Y.Z
+% cd orc-X.Y.Z
+copy release artifacts with a rename from orc-X.Y.Zrc0* to orc-X.Y.Z*
+% svn add .
+% svn commit
+</code></pre>
+
+<p>We keep the latest patch release for each of the last two branches, so remove
+extra releases from the Apache dist area.</p>
+
+<p>Update the release branch with the version for the next release.</p>
+
+<pre><code>edit CMakeLists.txt to change version to X.Y.(Z+1)-SNAPSHOT
+% cd build
+% cmake ..
+% git commit -a -s -S -C 'Preparing branch for post X.Y.Z development'
+% git push apache branch-X.Y
+</code></pre>
+
+<p>Update the site with the new release.</p>
+
+<ul>
+  <li>Check out the master branch (git co apache/master)</li>
+  <li>Change directory in to site.</li>
+  <li>edit site/_data/releases.yml to add new release
+    <ul>
+      <li>update the state for the releases to match the changes in the Apache dist
+        <ul>
+          <li>latest = new release (only one of these!)</li>
+          <li>stable = other release still in dist</li>
+          <li>archived = removed from dist</li>
+        </ul>
+      </li>
+    </ul>
+  </li>
+  <li>create a new file _posts/YYYY-MM-DD-ORC-X.Y.Z.md for the news section</li>
+  <li>Run “bundle exec jekyll serve”</li>
+  <li>Check the website on http:/0.0.0.0:4000/</li>
+  <li>If it looks good, use git add to add the new files and commit to master with a message of “update site for X.Y.Z”.</li>
+  <li>Change directory into target.</li>
+  <li>Add the new files that you just generated.
+    <ul>
+      <li>This assumes you’ve set up site/target to be a separate git workspace that tracks the asf-site branch.</li>
+    </ul>
+  </li>
+  <li>Commit to asf-site to publish the updated site.</li>
+</ul>
+
+<p>Update ORC’s jira to reflect the released version.</p>
+
+<ul>
+  <li>Select the resolved issues and bulk transition them to closed.
+    <ul>
+      <li>query: project = ORC AND fixVersion = X.Y.Z and status = Resolved ORDER BY created desc</li>
+    </ul>
+  </li>
+  <li>Mark the version as released and set the date.</li>
+</ul>
+
+<p>It usually take up to 24 hours for the apache dist mirrors and maven central to update with the new release.</p>
+
+      </article>
+    </div>
+
+    <div class="clear"></div>
+
+  </div>
+</section>
+
+
+  <footer role="contentinfo">
+  <p>The contents of this website are &copy;&nbsp;2017
+     <a href="https://www.apache.org/">Apache Software Foundation</a>
+     under the terms of the <a
+      href="https://www.apache.org/licenses/LICENSE-2.0.html">
+      Apache&nbsp;License&nbsp;v2</a>. Apache ORC and its logo are trademarks
+      of the Apache Software Foundation.</p>
+</footer>
+
+  <script>
+  var anchorForId = function (id) {
+    var anchor = document.createElement("a");
+    anchor.className = "header-link";
+    anchor.href      = "#" + id;
+    anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>";
+    anchor.title = "Permalink";
+    return anchor;
+  };
+
+  var linkifyAnchors = function (level, containingElement) {
+    var headers = containingElement.getElementsByTagName("h" + level);
+    for (var h = 0; h < headers.length; h++) {
+      var header = headers[h];
+
+      if (typeof header.id !== "undefined" && header.id !== "") {
+        header.appendChild(anchorForId(header.id));
+      }
+    }
+  };
+
+  document.onreadystatechange = function () {
+    if (this.readyState === "complete") {
+      var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0];
+      if (!contentBlock) {
+        return;
+      }
+      for (var level = 1; level <= 6; level++) {
+        linkifyAnchors(level, contentBlock);
+      }
+    }
+  };
+</script>
+
+
+</body>
+</html>