accumulo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r1567814 - in /accumulo/site/trunk: content/releasing.mdtext templates/sidenav.mdtext
Date Thu, 13 Feb 2014 00:04:51 GMT
Author: elserj
Date: Thu Feb 13 00:04:50 2014
New Revision: 1567814

ACCUMULO-1468 Initial outline for release guidelines/steps.


Added: accumulo/site/trunk/content/releasing.mdtext
--- accumulo/site/trunk/content/releasing.mdtext (added)
+++ accumulo/site/trunk/content/releasing.mdtext Thu Feb 13 00:04:50 2014
@@ -0,0 +1,99 @@
+Title: Making a Release
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+This is a guide for the creation of a release of Apache Accumulo. 
+## Setup
+There are number of things that are required before attempting to build a release.
+1. Use gpg-agent, be sure to increase the gpg-agent cache timeout (via .gnupg/gpg-agent.conf)
to ensure that the agent doesn't require re-authentication mid-build as it will cause things
to fail. If you do not have a GPG key, reference the very thorough [ASF release signing documentation][1]
+2. Make sure the system you're using is able to creation RPMs and DEBs.
+3. Ensure that you're using the correct major release of Java (check javadoc too).
+4. Ensure that you're building Apache Accumulo with a username that has the same name as
your Apache ID (this is due to
+   the maven-release-plugin and staging the release candidate).
+5. Update the CHANGES file so that it's in sync with Jira (manual process).
+6. Ensure that you have a texlive distribution installed so you are able to build the documentation.
+7. Have a clean workspace before starting.
+Given all of this, it's recommended that you only attempt making a release from a GNU/Linux
+## Create the candidate
+You should use the provided script assemble/ to create the release candidate. This
script is
+desirable as it activates all necessary maven profiles in addition to verifying that certain
+are met, like RPM signing availablilty and the ability to sign files using GPG. The --test
option can 
+be used as a dry-run to creating a release candidate. The --create-release-candidate option
should be 
+provided to create the actual release candidate.
+When invoking with the --create-release-candidate option, the majority of the work
will be performed
+by the maven-release-plugin, invoking release:clean, release:prepare, and release:perform.
These will
+guide you through choosing the correct versions. The default options provided should be what
you choose.
+It is highly recommended that an 'RC' suffix is *not* appended to the release version the
the plugin prompts
+you for as that will result in that version string being placed into the poms which then
would require 
+voting to occur on artifacts that cannot be directly promoted. After the script
finishes (this will 
+likely take at least 15 minutes, even on recent hardware), your current branch will be on
the "next" version 
+that you provided to the release plugin.
+Likely, this process will actually fail because the maven-release-plugin is not configured
to push to the 
+remote repository automatically, and thus, will fail; however, this is (semi-)expected. At
this point, you
+should have a local git-tag for the release that you're creating. At this point, you should
create a branch
+from the tag that was made by the release plugin which includes the _-rcN_ suffix. This way,
the branch name 
+will correctly identify which release-candidate this is, while the contents of that tag will
have the correct 
+versions in the pom.xml files. This also ensure that the _release:perform_ goal of the release
plugin will
+work as intended.
+One unwanted side-effect of this approach is that after creating this branch, but *before
invoking _release:perform_*,
+you must edit the to add the _-rcN_ suffix to the value of scm.tag. Otherwise,
the release
+plugin will complain that it cannot find the branch for the release. A successful invocation
of _mvn release:perform_,
+a staging repository will be made for you on the [ASF Nexus server][2] which you can log
into with your ASF 
+After you log into Nexus, click on _Staging Repositories_ in the _Build Promotion_ toolbar
on the left side of
+the screen. Assuming your build went according to plan, you should have a new staging repository
made for
+you. At this point, you should inspect the artifacts that were staged to ensure that they
are as you expect
+them to be. When you're ready to present those artifacts for voting, you need to close that
repository which
+will make it publicly available for other members to inspect.
+## Vote
+At this point, you should have a closed repository that's ready to vote on. Send a message
to the [the dev
+list]( and get the ball rolling. If the vote ultimately fails,
you delete
+the staged repository, clean up the branch you created (or wait until the release ultimately
passes if you
+choose), and fix what needs fixing.
+If the vote passes, huzzah, you're almost done. All you need to do is to promote that stage
+using Nexus which you can do with the click of a button. These will trigger a process to
get the release
+out to all of the mirrors.
+## References
+Some good references that explain a few things:
+- [Christopher talks about making releases][3]
+- [Publishing Maven Artifacts][4]
+- [Publishing Releases][5]
+- [Accumulo Release Guide][6]
+  [1]:
+  [2]:
+  [3]:
+  [4]:
+  [5]:
+  [6]:

Modified: accumulo/site/trunk/templates/sidenav.mdtext
--- accumulo/site/trunk/templates/sidenav.mdtext (original)
+++ accumulo/site/trunk/templates/sidenav.mdtext Thu Feb 13 00:04:50 2014
@@ -13,6 +13,7 @@
  - [Source & Guide](/source.html)
  - [Git WIP](/git.html)
  - [Contrib Projects](/contrib.html)
+ - [Making Releases](/releasing.html)
  - [Issues](
  - [Builds](
@@ -23,6 +24,7 @@
  - [Screenshots](/screenshots.html)
  - [Papers & Other Links](/papers.html)
  - [Glossary](/glossary.html)
 # ASF links
   - [Apache Software Foundation](
   - [Sponsorship](

View raw message