incubator-odf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r1243854 - /incubator/odf/documents/ODF Toolkit Release Guide-draft.txt
Date Tue, 14 Feb 2012 10:12:05 GMT
Author: devinhan
Date: Tue Feb 14 10:12:05 2012
New Revision: 1243854

ODF Toolkit Release Guide-draft

    incubator/odf/documents/ODF Toolkit Release Guide-draft.txt

Added: incubator/odf/documents/ODF Toolkit Release Guide-draft.txt
--- incubator/odf/documents/ODF Toolkit Release Guide-draft.txt (added)
+++ incubator/odf/documents/ODF Toolkit Release Guide-draft.txt Tue Feb 14 10:12:05 2012
@@ -0,0 +1,329 @@
+ODF Toolkit Release Guide
+(I) Prerequisites
+   1. You should read the document:<a href="">A
Guide To Release Management During Incubation (DRAFT)</a>
+   2. You must have shell access to, such as <a href="">PuTTY</a>.
+   3. Release manager must have his public key appended to the KEYS file checked in to SVN
and the key published on one of the public key servers.
+      ODF Toolkit project KEYS file: <a href=""></a>.
+	  The sign tool, such as <a href="">GnuPG</a> should be installed.
More info can be found here: <a href=""></a>.
+   4. You must have <a href="">Oracle
JDK 1.5/1.6</a> or <a href="">Open JDK</a>.
+   5. <a href="">Subversion client</a> is installed.
We suggest you install version 1.7.2 or later. 
+   6. The ODF Toolkit build system requires <a href="">Maven</a>
to perform a build. We suggest you install version later than 2.2.1 or 3.0.4.
+(II) Legal Audit
+   Legal policy and interpretation changes from time to time so it is worth investing a little
time reading again the legal release material.
+   1. Check that dependencies (and in particular those dependencies that ship in the packages)
comply with Apache policy. Apache projects may distribute artifacts and documents as part
of a release which are not Apache Licensed. All such artifacts must comply with <a href="">
Apache's 3rd party licensing policy </a>. All the licenses on all the files to be included
within a package should be included in the LICENSE document. 
+   2. The NOTICE document is for additional copyright and attribution statements those licenses
may require. A typical NOTICE document at a minimum includes a copyright and attribution statement
for The Apache Software Foundation. Nothing else belongs in the NOTICE document.
+   3. It is good practice to check the provenance of any source documents which do not have
license headers. With the help of RAT, you can run Maven command: 'mvn verify -Ppedantic'
on the "trunk" to get a report about the license header.
+   4. Make sure every committer have a signed <a href="">Contributor
License Agreement (CLA)</a> on file. It's a contract between a contributor and Apache
granting Apache rights to code contributed.     
+   5. If any dependencies are cryptographic libraries then it may be necessary to fill in
some <a href="">paperwork</a> to make sure
they are compliance with US export regulations.
+(II) Release Document
+    Documents a particular release of a product rather than the product itself. For a release
manager, the first thing he should do is to consult and correct the project's release documentation.
For ODF Toolkit, we should make sure the following items are ready.
+	1. Ensure the CHANGES.txt is up to date.
+	2. The Cookbook was updated to support the new release, add new content and modify the old
+	2. Make sure all of the demo codes work well under the new release. If necessary, write
new demo to introduce the key new features in the new version.
+    3. Remember to update the online Javadoc to the newest version, but don't publish until
the vote pass.
+    4. Prepare other website update content, save them as staged, but don't publish until
the vote pass.
+(III) Release Candidate
+    A release candidate is a set of artifacts upon which a vote is held for a release. The
actual nature of the release candidate depends on the release system adopted by a the project.
For ODF Toolkit, we supply 3 type of artifacts, binary package, source package and document
package. Making release artefacts should follow the following steps:
+	1. Update version id in pom.xml.
+           {code:xml}
+              <groupId>org.apache.odftoolkit</groupId>
+              <artifactId>odftoolkit</artifactId>
+              <version>0.6-incubating-SNAPSHOT</version>
+           {code}
+	   The version should include incubating (or incubator) to ensure that the artifacts created
comply with <a href="">Incubator
release policy</a>. 
+	2. Tag current version. 
+	   Include the current revision number in the comment.
+           {code}
+              $ svn cp \
+    $TAG \
+              -m "tag r649911 as odftoolkit-0.5-incubating"
+           {code}
+       Where $TAG is the release tag, for example, odftoolkit-0.5-incubating.
+    3. Checkout the tagged version.
+           {code}
+              cd tags
+              svn checkout$TAG
+           {code}
+    4. Build artifacts.
+           {code}
+              cd $TAG
+              mvn install
+           {code}         
+    5. Package artifacts 
+	   Comment the following snippet in pom.xml to avoid duplicated package in sub-components:
+	       {code}
+              <modules>
+                 <module>taglets</module>
+                 <module>generator</module>
+                 <module>xslt-runner</module>
+                 <module>xslt-runner-task</module>
+                 <module>odfdom</module>
+                 <module>validator</module>
+                 <module>simple</module>
+              </modules>
+           {code}  
+	   Remove the comments of the following snippet in pom.xml to make sure Maven know how to
+           {code}
+              <!--<profile>
+                 <id>apache-release</id>
+                 <properties>
+                    <username>${}</username>
+                 </properties>
+                 <build>
+                    <plugins>
+				    ...
+					</plugins>
+			     </build>
+              </profile>-->
+           {code}
+       Replace "${}" with your Apache ID, such as "devinhan".
+       Use the following command to package.
+           {code}
+              mvn install -Papache-release
+           {code}  	
+	   After package you should have the following files in the "target\":
+           {code}	   
+              $TAG-bin.tar.bz2
+              $TAG-bin.tar.gz
+              $
+              $TAG-src.tar.bz2
+              $TAG-src.tar.gz
+              $
+              $TAG-doc.tar.bz2
+              $TAG-doc.tar.gz
+              $
+		      *.asc
+		      *.md5
+		      *.sha
+              vote.txt
+		   {code}
+       vote.txt is a draft of the dev vote mail. Each package has its own .asc, .md5 and
.asc files.
+	6. Upload artifacts for vote.
+	   Login using your Apache LDAP account. Copy the artifacts packages to
directory "/public_html/odftoolkit-release/$TAG" using <a href="">scp</a>.
If the directly don't exist, please create. It is best to scp into the home directory and
then copy into position from there. 
+	   Make sure all of the files are owned by the incubator group, group readable and writable,
and read only for the world. In short -rw-rw-r--. To do this from the top level:
+           {code}
+		      > find . -type f -exec chmod 664 {} \; 
+			  > find . -type d -exec chmod 775 {} \; 
+			  > chgrp -R incubator *
+           {code}		   
+       Then the artifacts can be accessed from Web browser. The link looks like:
+	       {code}
+  $USER/odftoolkit-release/$TAG
+		   {code}
+       Replace $USER with your Apache ID, such as "devinhan".
+(IV) Incubator Release Vote
+    After release candidate is uploaded, the release manager can start vote process. All
releases by podlings must be approved by the Incubator PMC. The conventional process is for
the podling to follow the usual Apache process release vote and then call for a Incubator
PMC VOTE on the general incubator list.
+	1. Vote in ODF Toolkit Development List
+	   A formal vote on candidate artifacts must be conducted by the release manager on the
ODF Toolkit development list. The vote mail can be drafted based on the vote.txt, which is
generated with artifacts. A sample looks like this:
+           {code}
+		    Subject: [VOTE] Release Apache ODF Toolkit 0.5-incubating(RC6)
+                 To:
+            Hi all,
+            Please vote on releasing the following candidate as Apache ODF Toolkit (incubating)
version 0.5. This will be the first incubator release for
+            ODF Toolkit in Apache.
+            This release candidate fixes the following issues found in RC5:
+            (1) Reomve JUnit declaration from NOTICE & LICENSE files.
+            (2) Fix the "mvn clean" failed issue.
+            The candidate for the ODF Toolkit 0.5-incubating release is available at:
+            The release candidate is a zip archive of the sources in:
+            The SHA1 checksum of the archive is 44e16d8ee39fc0426f96aa7da9cd8eefccaf78e5.
+            The MD5 checksum of the archive is c12a87f0ca441f23d945a423e1d4127c.
+            Besides source code, binary packages and javadoc packages are also listed in£º
+            All of the artifacts supply three package formats, tar.gz, tar.bz2 and zip.
+            Keys:
+            Please vote on releasing this package as Apache ODF Toolkit 0.5-incubating.
+            The vote is open for the next full week, until next Saturday, Dec 31rd 6pm, because
of the Christmas holiday, and passes if a majority of at least 3 +1 IPMC votes are cast.
+            [ ] +1 Release this package as Apache ODF Toolkit 0.5-incubating
+            [ ] -1 Do not release this package because...
+            To learn more about Apache ODF Toolkit, please access:
+           {code}		
+       All votes are welcome, but only those votes by the project's PPMC members (or IPMC
members) count towards the final tally. The voting period should be no less than 72 hours,
and at the end of the voting the release manager should post a final tally to the list. eg.
+	       {code}
+		     Subject: [RESULT][VOTE] Release Apache ODF Toolkit 0.5-incubating-rc7
+			      To:
+		     Hi All,
+		     The RC7 ballot has ended (due to New Year Holiday, we extended the vote to this Monday
) with the following results:
+		     From PPMC members:
+		     +1 daisyguo
+		     +1 devinhan
+		     +1 robweir
+		     +1 svanteschubert
+		     From Mentors:
+		     +1 yegor(IPMC)
+		     Other votes:
+		      (abstain non-binding [;<) orcmid
+		     I will send a vote mail to incubator-general mail list and collect another 2 IPMC
+1's votes.
+		     Thanks all of the voters.
+		   {code}
+       The vote passes if there are at least 3 +1's from the PPMC/IPMC members and more +1's
than -1's. This is what is meant by majority consensus. If you've gotten this far, congratulations,
you're nearly ready to upload and announce the release.
+	   If the vote is failed, the release manager should improve the artifacts based on the
comments and prepare new candidate. That means step (III) Release Candidate need to rework.
This process maybe repeat several times until the vote passes.
+	   NOTE: Please remember to delete old release candidates from Apache home space after new
candidates are uploaded.
+    2. Vote in General Incubator List
+       In the case of the incubator, the IPMC must approve all releases. That means there
is an additional bit of voting that the release manager must now oversee on general@incubator
in order to gain that approval. The release manager must inform general@incubator that the
vote has passed on the project's development list, and should indicate any IPMC votes gained
during that process. A new vote on the release candidate artifacts must now be held on general@incubator
to seek majority consensus from the IPMC. Previous IPMC votes issued on the project's development
list count towards that goal. The sample mail is:
+	       {code}
+		     Subject: [VOTE] Release Apache ODF Toolkit 0.5-incubating(RC7)
+                  To:
+                  Cc:
+              Hi all,
+              The ODF Toolkit 0.5 is ready for release.  This will be our first incubator
+              We had a preliminary vote in the PPMC, which had great results, including a
+1 from our mentor, Yegor. 
+              The PPMC vote result thread is here:
+              The vote thread is here:
+              We need two more IPMC votes to pass.
+              Please vote on releasing the following candidate RC7 as Apache ODF Toolkit
(incubating) version 0.5.
+              This release candidate fixes the pom.xml file inconsistant issue found in RC6.
Thanks Yegor!
+              The candidate for the ODF Toolkit 0.5-incubating release is available at:
+              The release candidate is a zip archive of the sources in:
+              The SHA1 checksum of the zip archive is 4e97a1a79291035d590b5578caf79478dc3f6de8.
+              The MD5 checksum of the zip archive is 8883f036ee34282077d3c175329f6257.
+              Besides source code, binary packages and javadoc packages are also listed in£º
+              All of the artifacts supply three package formats, tar.gz, tar.bz2 and zip.
+              Keys:
+              The vote is open for 72 hours, or until we get the needed number of votes (3
+                [ ] +1 Release this package as Apache ODF Toolkit 0.5-incubating
+                [ ] -1 Do not release this package because...
+              To learn more about Apache ODF Toolkit, please access
+		   {code}
+	   Once the 72-hour minimum voting period has ended on general@incubator, the release manager
should tally the votes and declare a result. If majority consensus has been achieved with
respect to IPMC votes, the release manager may proceed with the release. Otherwise, the release
manager need to rework step(III) and step(IV) based on the received comments.
+	   The vote result mail looks like:
+	       {code}
+		      Subject: [VOTE] Release Apache ODF Toolkit 0.5-incubating(RC7)
+                  To:,
+              Hi all,
+              The Apache ODF Toolkit 0.5-incubating RC7 ballot has ended. We have received
4 IPMC +1 votes (plus an additional 4 PPMC +1 votes)
+              during the release voting on dev and general. The vote passed!
+              Results:
+              From IPMC members:
+                   name                     apache id
+              +1 Yegor Kozlov(mentor)       yegor
+              +1 Nick Burch(mentor)         nick
+              +1 Chris Mattmann             mattmann
+              +1 Christian Grobmeier        grobmeier
+              From PPMC members:
+                    name                      apache id
+              +1  Ying Chung Guo              daisyguo
+              +1  Biao Han                    devinhan
+              +1  Rob Weir                    robweir
+              +1  Svante Schubert             svanteschubert
+              Other votes:
+                                          name                      apache id
+               (abstain non-binding [;<)   Dennis E. Hamilton        orcmid
+              We will work on releasing ODF Toolkit 0.5. Thank you everyone who worked in
+              release !
+		   {code}
+(V) After the vote:
+    1. Distributing Releases
+      The distribution upload location ( for all Apache projects is the
/www/ directory on Each project (including the Incubator)
owns a directory within dist. 
+	  The directory of ODF Toolkit is The
release manager should move the release artifacts from /public_html/odftoolkit-release/$TAG
to this directory.
+	2. Mirroring
+      To avoid excessive use of bandwidth and to increase download speeds, official releases
are made available through a global network of volunteer mirrors. Using these mirrors has
some notable differences from unmirrored downloads. In particular, a <a href="">script</a>
must be used to direct the download to an appropriate URL. The mdtext format sample is:
+	        {code}
+			   **Current Version (0.5-incubating)**
+ 			   * Source: 
+                 * [odftoolkit-0.5-incubating-src.tar.gz](
+	             [[sha](]
+			{code}
+      Users will download the mirrored release artifacts from machines outside Apache control.
Users need to verify that the copy downloaded is identical to the original. Mirrored copies
of checksums, KEYS and signature files (.asc and .md5 files) will be present on the mirrors
but must never be used for verification. So, all links from the podling website to signatures,
sums and KEYS need to refer to the original documents on See release signing
guide for more information.
+	3. Archiving
+      All Apache releases form an important part of the history of a project. They are therefore
archived with the aim of preserving them indefinitely for future reference. All artifacts
within will be automatically archived to
When a new artifact is uploaded, it will be sync'd to the archive. The sync'ing is scheduled
to operate several times a day. So it may be some hours before an added artifact is archived.
When an (archived) artifact is deleted from the live distribution, it will remain in the archives.

+	  Please remember that these archives are served from Apache bandwidth. Anyone who wants
to obtain a large quantity of data from the archives should contact the Infrastructure Team.
+    4. Publishing Maven Artifacts
+      ODF Toolkit chooses to distribute approved releases through the central Maven repository.
Please follow this <a href="">Guide:Publishing
Maven Artifacts</a> to finish this work. 
+	  It's clear and simple enough, so I don't want to copy it here.
+    5. Publish Document
+	  Publish all of the prepared document on the website and update the download page.
+	6. Send Announcements
+       The release manager need to send announcements to odf-user and odf-dev lists. Note,
announcements should be sent from your e-mail address. The sample looks like£º
+	         {code}
+			   Subject:[ANNOUNCEMENT] Apache ODF Toolkit(Incubating) 0.5-incubating Release
+			        To:
+			   Hi all,
+			   The Apache ODF Toolkit(Incubating) team is pleased to announce the release of 0.5-incubating.
This is our first Apache release.
+			   The Apache ODF Toolkit is a set of Java modules that allow programmatic creation, scanning
and manipulation of Open Document Format (ISO/IEC 26300 == ODF) documents. Unlike other approaches
which rely on runtime manipulation of heavy-weight editors via an automation interface, the
ODF Toolkit is lightweight and ideal for server use.
+			   A full list of changes is available in the change log[1]. People interested should
also follow the mail list[2] to track progress.
+			   The ODF Toolkit source release as well as the pre-built binary deployment packages
are listed in the downloads page[3]. Pre-built versions of all ODF Toolkit components are
available in the central Maven repository under Group ID "org.apache.odftoolkit" and Version
+			   [1]
+			   [2]
+			   [3]		      
+	         {code}
+[1] A Guide To Release Management During Incubation (DRAFT) 
+[2] Apache Release Management
+[3] POI Release Guide
+[4] POI Release Checklist
\ No newline at end of file

View raw message