accumulo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From els...@apache.org
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

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:dev@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)



Mime
View raw message