Author: elserj
Date: Thu Feb 13 00:04:50 2014
New Revision: 1567814

URL: http://svn.apache.org/r1567814
Log:
ACCUMULO-1468 Initial outline for release guidelines/steps.

Added:
    accumulo/site/trunk/content/releasing.mdtext
Modified:
    accumulo/site/trunk/templates/sidenav.mdtext

Added: accumulo/site/trunk/content/releasing.mdtext
URL: 
http://svn.apache.org/viewvc/accumulo/site/trunk/content/releasing.mdtext?rev=1567814&view=auto
==============================================================================
--- 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
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           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 machine.
+
+## Create the candidate
+
+You should use the provided script assemble/build.sh to create the release 
candidate. This script is
+desirable as it activates all necessary maven profiles in addition to 
verifying that certain preconditions
+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 build.sh 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 
build.sh 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 release.properties 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 
+credentials.
+
+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](mailto:d...@accumulo.apache.org) 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 repository
+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]: https://www.apache.org/dev/release-signing
+  [2]: https://repository.apache.org/index.html
+  [3]: 
http://mail-archives.apache.org/mod_mbox/accumulo-dev/201305.mbox/raw/%3CCAL5zq9bH8y0FyjXmmfXhWPj8axosn9dZ7%2Bu-R1DK4Y-WM1YoWg%40mail.gmail.com%3E/
+  [4]: https://www.apache.org/dev/publishing-maven-artifacts.html
+  [5]: http://www.apache.org/dev/release-publishing.html
+  [6]: http://accumulo.apache.org/governance/releasing.html

Modified: accumulo/site/trunk/templates/sidenav.mdtext
URL: 
http://svn.apache.org/viewvc/accumulo/site/trunk/templates/sidenav.mdtext?rev=1567814&r1=1567813&r2=1567814&view=diff
==============================================================================
--- 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](https://issues.apache.org/jira/browse/accumulo)
  - [Builds](https://builds.apache.org/view/A-D/view/Accumulo/)
 
@@ -23,6 +24,7 @@
  - [Screenshots](/screenshots.html)
  - [Papers & Other Links](/papers.html)
  - [Glossary](/glossary.html)
+
 # ASF links
   - [Apache Software Foundation](http://www.apache.org)
   - [Sponsorship](http://www.apache.org/foundation/sponsorship.html)


Reply via email to