summaryrefslogtreecommitdiffstats
path: root/site/trunk/site-publish/das-release-process.html
diff options
context:
space:
mode:
Diffstat (limited to 'site/trunk/site-publish/das-release-process.html')
-rw-r--r--site/trunk/site-publish/das-release-process.html246
1 files changed, 246 insertions, 0 deletions
diff --git a/site/trunk/site-publish/das-release-process.html b/site/trunk/site-publish/das-release-process.html
new file mode 100644
index 0000000000..bc4c39e62d
--- /dev/null
+++ b/site/trunk/site-publish/das-release-process.html
@@ -0,0 +1,246 @@
+
+<!--
+
+ 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.
+-->
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+ <HEAD>
+ <!-- generateKeywords macro -->
+ <META name="description" content="Apache Tuscany">
+ <META name="keywords" content="apache, apache tuscany, tuscany, service, services, fabric, soa, service oriented architecture, sca, service component architecture, das, sdo, csa, ruby, opensource">
+ <!-- generateKeywords macro end -->
+
+ <LINK type="text/css" rel="stylesheet" href="http://tuscany.apache.org/stylesheets/default.css">
+ <LINK rel="SHORTCUT ICON" href="https://cwiki.apache.org/confluence/display/TUSCANY/$images/favicon.ico">
+ <TITLE>Apache Tuscany : DAS Release Process</TITLE>
+ <META http-equiv="Content-Type" content="text/html;charset=UTF-8"></HEAD>
+
+ <BODY onload="init()">
+ <!-- topNav macro -->
+ <TABLE valign="top" border="0" cellspacing="0" cellpadding="0" width="100%" background="http://tuscany.apache.org/images/TuscanyLogoNEW_Text_120px_bg.jpg">
+ <TR>
+ <TD valing="top" align="left">
+ <A href="https://cwiki.apache.org/confluence/pages/viewpage.action?spaceKey=TUSCANY&title=$siteroot"><IMG src="http://tuscany.apache.org/images/TuscanyLogoNEW_Text_120px_bg.jpg" height="91" width="25" border="0"></A>
+ </TD>
+ <TD>
+ <A href="http://tuscany.apache.org/"><IMG src="http://tuscany.apache.org/images/TuscanyLogo.jpg" border="0"></A>
+ </TD>
+
+ <TD width="100%">
+ &nbsp;
+ </TD>
+
+ <!-- Adds the edit page link to the top banner-->
+ <TD valign="bottom">
+ <DIV style="padding: 2px 10px; margin: 0px;">
+ <A href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=51237">
+ <IMG src="http://tuscany.apache.org/images/notep_16.gif" height="16" width="16" border="0" align="absmiddle" title="Edit Page"></A>
+ </DIV>
+ </TD>
+
+ </TR>
+ </TABLE>
+ <!-- topNav macro end -->
+
+ <!-- breadCrumbs macro -->
+ <TABLE border="0" cellpadding="2" cellspacing="0" width="100%">
+ <TR class="topBar">
+ <TD align="left" valign="middle" class="topBarDiv" nowrap="true" width="100%">
+ &nbsp;<A href="home.html" title="Apache Tuscany">Apache Tuscany</A>&nbsp;&gt;&nbsp;<A href="home.html" title="Home">Home</A>&nbsp;&gt;&nbsp;<A href="das-overview.html" title="DAS Overview">DAS Overview</A>&nbsp;&gt;&nbsp;<A href="das-java.html" title="DAS Java">DAS Java</A>&nbsp;&gt;&nbsp;<A href="das-java-documentation-menu.html" title="DAS Java Documentation Menu">DAS Java Documentation Menu</A>&nbsp;&gt;&nbsp;<A href="" title="DAS Release Process">DAS Release Process</A>
+ </TD>
+
+ <TD align="right" valign="middle" class="topBarDiv" align="left" nowrap="true">
+ <A href="http://mail-archives.apache.org/mod_mbox/tuscany-user">User List</A> | <A href="http://mail-archives.apache.org/mod_mbox/tuscany-dev">Dev List</A> | <A href="http://issues.apache.org/jira/browse/Tuscany">Issue Tracker</A>&nbsp;&nbsp;
+ </TD>
+ </TR>
+ </TABLE>
+ <!-- breadCrumbs macro end -->
+
+
+ <TABLE border="0" cellpadding="0" width="100%" bgcolor="#FFFFFF">
+ <TR>
+ <TD align="left" valign="top">
+
+ <!-- pageContent macro -->
+ <DIV id="PageContent">
+
+ <DIV class="pagecontent">
+ <DIV class="wiki-content">
+ <H2><A name="DASReleaseProcess-StartingaReleaseforDASSubproject"></A>Starting a Release for DAS Subproject</H2>
+<P><B>This is work in progress. At this point, thoughts are put together to review with the community. Please help to complete this</B></P>
+
+<H2><A name="DASReleaseProcess-What%27saRelease"></A>What's a Release</H2>
+
+<P>The <A href="http://www.apache.org/dev/release.html#what" class="external-link" rel="nofollow">ASF release definition</A> basically says that any artifact that is made available for people outside of the Apache Tuscany project is considered a release. The Release process usually consist of preparing the contents of the release on the project dev-list, voting release candidate(s) and, because Tuscany is still under Incubation, asking the iPMC to approve the release after it has already been approved on the project development community.</P>
+
+<H2><A name="DASReleaseProcess-Prerequisites"></A>Prerequisites</H2>
+
+<P>DAS releases are dependent on SDO release. Make sure we have a SDO release to base this release on.</P>
+
+<H2><A name="DASReleaseProcess-Startingthereleaseprocess"></A>Starting the release process</H2>
+<OL>
+ <LI>Identify a release manager on devlist.</LI>
+ <LI>The release manager initiates the discussion on the dev list or gathers previous dicussion threads related to the release content and starts a release thread discussion. Get consensus on the content from the community early.</LI>
+ <LI>Nail the must-have functions from the community that is required to be delivered in this release.</LI>
+ <LI>Target (or reTarget) all of the Jira defects and new function that is required for the release. Move non-critical items to the next milestone.</LI>
+</OL>
+
+
+<H3><A name="DASReleaseProcess-Duringtherelease"></A>During the release</H3>
+<OL>
+ <LI>Keep Jiras under control during the milestone. Make sure new opened ones are targeted for the appropriate release, and the backlog is decreasing.</LI>
+ <LI>Make sure the new function Jira are marked appropriately (since they will be used in the ReadMe file creation).</LI>
+ <LI>Look for Jira's that have patches attached to them and get the code integrated early in the cycle. Don't wait until the last minute.</LI>
+ <LI>Make sure that you begin to obtain clean versions for all SNAPSHOTs in the build. This can sometimes be a lengthy process as dependent packages are sometimes not available.</LI>
+ <LI>Lay out a plan for the distributed execution of the test suites (unit tests, integration tests, scenarios)</LI>
+ <LI>Ensure that all of the licenses are valid and replacements/remediation should be done.</LI>
+ <LI>Make sure that you remind the community that all modules should have the appropriate header file with the appropriate <A href="http://www.apache.org/legal/src-headers.html#headers" class="external-link" rel="nofollow">copyright statement</A>.</LI>
+ <LI>Prepare for signing/authenticating distro files
+ <OL>
+ <LI>identify/install s/w for public key infrastructure stuff and MD5 message digest generation</LI>
+ <LI>Create a PGP key for signing files</LI>
+ <LI>Lodge your PGP key with a keyserver</LI>
+ <LI>Put your public key in the svn KEYS file</LI>
+ </OL>
+ </LI>
+ <LI>Get set up for easy file transfer to people.apache.org
+ <OL>
+ <LI>Identify/Install clients for ssh, secure copying and secure ftping</LI>
+ <LI>Establish authentication with people.apache.org by key</LI>
+ </OL>
+ </LI>
+ <LI>Ensure that there is inter-module understanding of how we plan to sequence releasing modules and requesting IPMC votes</LI>
+ <LI>make the trunk reference the newly released parent pom and buildtools</LI>
+ <LI>optionally make a branch</LI>
+ <LI>stabilize code in branch (or trunk if development activity can be halted in trunk)
+ <OL>
+ <LI>check LICENSE and NOTICE files in project roots and in jar manifests
+ <OL>
+ <LI>run the rat tool against the source and check for exceptions</LI>
+ <LI>once exceptions have been fixed, store the rat log and make a note of rat log exceptions which are there because they have to be</LI>
+ <LI>repeat this as necessary during the release process if new files are included</LI>
+ </OL>
+ </LI>
+ <LI>update readme with the important New Function and a pointer to defect fixes for this release. Put the delivery date of the release at the top of the readme.</LI>
+ </OL>
+ </LI>
+</OL>
+
+
+<OL>
+ <LI>
+ <OL>
+ <LI>Ensure the DAS Tuscany project's root level svn Status file is up to date, and then copy/update it into the root folders of any source distribution that will be made,</LI>
+ </OL>
+ </LI>
+</OL>
+
+
+<H2><A name="DASReleaseProcess-Exitingthereleasecycle"></A>Exiting the release cycle</H2>
+
+<OL>
+ <LI>Create a release candidate
+ <OL>
+ <LI>Create local copies of source hierarchies, , one per source distribution, using svn export &lt;uri&gt; &lt;local-dir&gt;</LI>
+ <LI>Make archives of your clean exports in order to be able to distribute source</LI>
+ <LI>Follow the instructions in BUILDING.txt in the root folders of the source distributions to produce the binary distribution</LI>
+ <LI>Test binary distro on a clean machine before publishing it as an RC.</LI>
+ <LI>When ready, put in place distro signing capabilities
+ <OL>
+ <LI>Sign and create md5 checksums for each of the source and binary distribution archives</LI>
+ <LI>transfer the archives to a logical place under your public_html people.apache.org space</LI>
+ <LI>create a suitable readme for the root level of your release candidate folder, and ensure the readme names the release candidate version</LI>
+ </OL>
+ </LI>
+ </OL>
+ </LI>
+</OL>
+
+
+<OL>
+ <LI>Declare a candidate build and ask for feedback on devlist and user list. Work out any issues that are voiced.</LI>
+ <LI>Get some to verify that all of the samples pass without issues. Integration tests and unit tests should run and known problems need to be identifed.</LI>
+ <LI>Initiate a vote on tuscany-dev mailing list for the release candidate to make the build a public release.</LI>
+ <LI>After 3 days, post the result to the devlist</LI>
+ <LI>Once the community approved the candidate, create a tag from the branch (or trunk if no branch)
+ <OL>
+ <LI>Note that a release must have a referenceable tag<BR>
+ <IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/lightbulb_on.gif" height="16" width="16" align="absmiddle" alt="" border="0"> svn will complain when you try to do an svn commit into a tag, which is a warning only, and during this phase of the release process, updates to a tag are justifiable</LI>
+ </OL>
+ </LI>
+ <LI>Get approval from IPMC to make this a public release. Send a note to general@apache.org which summarizes the result of vote on devlist and include a pointer to the release in your note. 3 (+1) IPMC votes are required to make this a public release and of course no (-1).</LI>
+ <LI>Once you have IPMC approval, post the release to people.apache.org.</LI>
+ <LI>Update the version elements of the poms to define the version of the parent pom and buildtools that should be used</LI>
+ <LI>Update the tags version names of the distributable artifacts to non SNAPSHOT titles that match the release name</LI>
+ <LI>Update the tags version names of the dependencies to non SNAPSHOT versions, if not already done earlier in the release candidate process</LI>
+ <LI>Ideally update the tags version names of maven plugins to non SNAPSHOT versions if not already done earlier in the release candidate process (note that if the plugin behaviour changes after release, your tag or source distribution may not build in the same way as it did when you released if you rely on SNAPSHOT plugin versions)</LI>
+ <LI>Rebuild and upload a new release to /www/people.apache.org/dist/incubator/tuscany/java</LI>
+ <LI>update 'Download' link on the wiki and make it a goal to update or add documentation.</LI>
+ <LI>Announce the release by sending to anounce@apache.org (note that you must use an apache.org email address to do this), copying tuscany-dev, tuscany-user and general@incubator</LI>
+ <LI>Don't forget that all this could not have been done without everyone's help. Post a congratulation note to the dev list and thank the entire team for their efforts to make this happen <IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/smile.gif" height="20" width="20" align="absmiddle" alt="" border="0"> And thank you for the extra ordinary effort to make this happen <IMG class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/smile.gif" height="20" width="20" align="absmiddle" alt="" border="0"></LI>
+</OL>
+
+
+
+<H2><A name="DASReleaseProcess-GoodReferences"></A>Good References</H2>
+
+<UL>
+ <LI>Apache Release: <A href="http://www.apache.org/dev/release.html" class="external-link" rel="nofollow">http://www.apache.org/dev/release.html</A></LI>
+ <LI>Apache Release Management: <A href="http://incubator.apache.org/guides/releasemanagement.html" class="external-link" rel="nofollow">http://incubator.apache.org/guides/releasemanagement.html</A></LI>
+ <LI>Apache release publishing guide: <A href="http://www.apache.org/dev/release-publishing.html" class="external-link" rel="nofollow">http://www.apache.org/dev/release-publishing.html</A></LI>
+ <LI>ARAT: <A href="http://code.google.com/p/arat/" class="external-link" rel="nofollow">http://code.google.com/p/arat/</A></LI>
+ <LI>Apache Voting: <A href="http://www.apache.org/foundation/voting.html" class="external-link" rel="nofollow">http://www.apache.org/foundation/voting.html</A></LI>
+ <LI>Signing Releases: <A href="http://www.apache.org/dev/release-signing.html" class="external-link" rel="nofollow">http://www.apache.org/dev/release-signing.html</A></LI>
+</UL>
+
+
+<H2><A name="DASReleaseProcess-Examples"></A>Examples</H2>
+<P><A href="http://wiki.apache.org/ws/FrontPage/Axis2C/releases/steps" class="external-link" rel="nofollow">http://wiki.apache.org/ws/FrontPage/Axis2C/releases/steps</A></P>
+<UL>
+ <LI>Release process from Apache Cayenne: <A href="http://cwiki.apache.org/CAY/release-guide.html" class="external-link" rel="nofollow">http://cwiki.apache.org/CAY/release-guide.html</A></LI>
+ <LI>Release process from Apache Geronimo: <A href="http://cwiki.apache.org/GMOxPMGT/release-manager-checklist.html" class="external-link" rel="nofollow">http://cwiki.apache.org/GMOxPMGT/release-manager-checklist.html</A></LI>
+</UL>
+
+ </DIV>
+ </DIV>
+ </DIV>
+ <!-- pageContent macro end -->
+
+ </TD>
+ </TR>
+ </TABLE>
+
+ <!-- footer macro -->
+ <SCRIPT src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+ </SCRIPT>
+ <SCRIPT type="text/javascript">
+ _uacct = "UA-1174707-5";
+ urchinTracker();
+ </SCRIPT>
+
+ <A href="http://www.statcounter.com/" target="_blank"><IMG src="http://c26.statcounter.com/counter.php?sc_project=2619156&java=0&security=94bd7e7d&invisible=0" alt="website stats" border="0"></A>
+
+ <DIV class="footer">
+ Copyright � 2003-2012, The Apache Software Foundation&nbsp;&nbsp;</BR>
+ Apache Tuscany and the Apache Tuscany project logo are trademarks of The Apache Software Foundation.
+ </DIV>
+ <!-- footer macro end -->
+
+ </BODY>
+</HTML>