You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by cb...@apache.org on 2018/10/13 13:55:04 UTC

svn commit: r1843755 - /velocity/site/cms/trunk/content/release-process.mdtext

Author: cbrisson
Date: Sat Oct 13 13:55:04 2018
New Revision: 1843755

URL: http://svn.apache.org/viewvc?rev=1843755&view=rev
Log:
[site] Update release process page

Modified:
    velocity/site/cms/trunk/content/release-process.mdtext

Modified: velocity/site/cms/trunk/content/release-process.mdtext
URL: http://svn.apache.org/viewvc/velocity/site/cms/trunk/content/release-process.mdtext?rev=1843755&r1=1843754&r2=1843755&view=diff
==============================================================================
--- velocity/site/cms/trunk/content/release-process.mdtext (original)
+++ velocity/site/cms/trunk/content/release-process.mdtext Sat Oct 13 13:55:04 2018
@@ -10,8 +10,8 @@ Instructions make explicit references to
 
 To create a release you have to install:
 
-* [Java Development Kit 6](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
-* [Maven 2](http://maven.apache.org/)
+* [Java Development Kit 8](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
+* [Maven 3](http://maven.apache.org/)
 * [GnuPG](http://www.gnupg.org/)
 * [OpenSSH](http://www.openssh.com/}OpenSSH)
 
@@ -26,23 +26,6 @@ These operations need to be performed on
         /www/www.apache.org/dist/velocity/
 
 	Publish your GPG key in a PGP key server, such as [MIT Keyserver](http://pgp.mit.edu/).
-	
-* Create and upload yout SSH key
-    
-* Generate your SSH key (in this case we will use RSA encryption):
-    
-        ssh-keygen -t rsa
-    
-    
-* Copy your public key to the server:
-    
-        scp ~/.ssh/id_rsa.pub user@people.apache.org:.ssh/authorized_keys
-    
-* Try to login:
-    
-        ssh user@people.apache.org
-    
-    If it does not ask you a password, everything is ok.
 
 * Modify `settings.xml`
     
@@ -50,6 +33,7 @@ These operations need to be performed on
     
     This is the minimal configuration, obviously if you already have a `settings.xml` file, you must edit it:
     
+         :::xml
         <settings xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 			xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
@@ -74,8 +58,9 @@ These operations need to be performed on
           </servers>
 		  <profiles>
             <profile>
-              <id>release</id>
+              <id>apache-release</id>
               <properties>
+                <gpg.keyname>YOUR_KEY_NAME</gpg.keyname>
                 <gpg.passphrase>YOUR_SECRET_PHRASE</gpg.passphrase>
               </properties>
               </profile>
@@ -92,25 +77,53 @@ These steps must be performed **for each
 
     If it's not the first release candidate you're trying to release, you should archive the previous release candidate. For instance:
     
+        :::shell
         svn mv ci -m "[engine] archive engine 2.0 RC4" https://_your_apache_id_@svn.apache.org/repos/asf/velocity/engine/tags/2.0 https://_your_apache_id_@svn.apache.org/repos/asf/velocity/engine/tags/2.0-RC4
     
     And don't forget to also drop the staged artifact.
+    
+    Of course, you will also have to revert the automated commits from the previous `mvn release:*` commands.
+
+* Complete and update the changelog source file `src/changes/changes.xml` (note: we may get rid of this changelog in the future since it is quite painful to maintain and seems highly redundant with the JIRA release notes).
 
 * Prepare the release tag
     
     To prepare the release Subversion tag, check out the branch/trunk from where
     you are preparing the release and type:
     
+        :::shell
         mvn release:prepare -Dusername=YOUR_SVN_USER -Dpassword=YOUR_SVN_PASSWORD
     
     The plugin interactively will ask you the version to release, the Subversion tag to use and the next snapshot version. Rather than `velocity-engine-parent-X.X` (the default), we tend to use X.X for the tag name.
     
-* Perform the Release
+* Perform the release
     
     To perform the release, i.e. creating and deploying Maven artifacts, use:
     
+        :::shell
         mvn release:perform
+
+* Stage the release
+
+    Commit all poms (renamed from `<module>/pom.xml` to `module-<version>.pom`), binary, sources, javadoc jars in the proper subdirectory of the [release staging area](https://dist.apache.org/repos/dist/dev/velocity) svn repository, along with their signature files (*.asc), which have been generated under the `target/checkout` folder.
+
+* Provide sha-256 checksums
+
+    Create sha-256 checksums for each pom/jar/asc file on the 
+    
+        :::shell
+        for file in *.jar *.asc *.pom; do sha256sum < $file > $file.sha256; done
     
+    and add those files to the release staging area svn repository.
+
+* Release the JIRA version
+    
+    * In JIRA go to the version that you want to release and release it.
+        
+    * Create a new version, if it has not been done before.
+        
+    * Create the JIRA release notes and **copy the content** inside your pretty release notes HTML file, which is to be hosted under svn on the same release staging area.
+
 * Close the staging repository
     
     Login to [Nexus repository](https://repository.apache.org) using your Apache LDAP credentials.
@@ -142,60 +155,77 @@ These steps must be performed **for each
     You can then rollback your release and repeat the process.
 
     Note the repository URL, you will need this in your vote email.    
+
+* Prepare the site
+
+    Copy the `/devel/` section to its `<version>` section (but do not yet refence it from the menu)
     
-* Release the JIRA version
+    Generate the corresponding javadoc with
     
-    * In JIRA go to the version that you want to release and release it.
-        
-    * Create a new version, if it has not been done before.
-        
-    * Create the release notes and **write down the link** that it uses.
-        
+        :::shell
+        mvn javadoc:aggregate
+    
+    and commit the result in [VERSION]/apidocs
+    
+    Push those changes to production (see the [Site Building](http://velocity.apache.org/site-building.html) page).
+
 * Send announcement for the test build
+
+    In **developers mailing list** send an announcement for the test build:
     
-        In **developers mailing list** send an announcement for the test build:
+    (note: in all the following, ${module} refers to the module -Engine or Tools- being released, ${version} to the version)
         
-        Subject: [ANNOUNCE] Velocity Engine ${version} test build available
+        Subject: [ANNOUNCE] Velocity ${module} ${version} test build available
         
-        The test build of Velocity Engine ${version} is available.        
+        The test build of Velocity ${module} ${version} is available.        
         
-        No determination as to the quality ('alpha,' 'beta,' or 'GA') of Velocity Engine ${version} has been made, and at this time it is simply a "test build". We welcome any comments you may have, and will take all feedback into account if a quality vote is called for this build.
+        No determination as to the quality ('alpha,' 'beta,' or 'GA') of Velocity ${module} ${version} has been made, and at this time it is simply a "test build". We welcome any comments you may have, and will take all feedback into account if a quality vote is called for this build.
         
         Release notes:
         
-        * ${jira.release.notes}
+        * https://dist.apache.org/repos/dist/dev/velocity/.../release-notes.html
         
         Distribution:
         
-         * http://people.apache.org/builds/velocity-engine-parent/${version}/
+         *  https://dist.apache.org/repos/dist/dev/velocity/.../
         
         Maven 2 staging repository:
         
          * https://repository.apache.org/content/repositories/velocity-[YOUR REPOSITORY ID]/
         
+        Documentation:
+        
+        * https://velocity.apache.org/${module}/${version}
+        Sources:
+        
+         * https://svn.apache.org/repos/asf/velocity/${module}/tags/${version}
+        
         A vote regarding the quality of this test build will be initiated within the next couple of days.
-    
-    
+
 * Call for a vote
     
     A few days after the test build announcement, call for a vote in **developers mailing list**.
 
-        Subject: [VOTE] ${version} Release Quality
+        Subject: [VOTE] Velocity ${module} ${version} Release Quality
         
-        The Velocity Engine ${version} test build has been available since ${testBuildDate}.
+        The Velocity ${module} ${version} test build has been available since ${testBuildDate}.
         
         Release notes:
         
-        * ${jira.release.notes}
+        * https://dist.apache.org/repos/dist/dev/velocity/.../release-notes.html
         
         Distribution:
         
-         * http://people.apache.org/builds/velocity-engine-parent/${version}/
+         *  https://dist.apache.org/repos/dist/dev/velocity/.../
         
         Maven 2 staging repository:
         
          * https://repository.apache.org/content/repositories/velocity-[YOUR REPOSITORY ID]/
         
+        Sources:
+        
+         * https://svn.apache.org/repos/asf/velocity/${module}/tags/${version}
+        
         If you have had a chance to review the test build, please respond with a vote on its quality:
         
          [ ] Leave at test build
@@ -203,14 +233,13 @@ These steps must be performed **for each
          [ ] Beta
          [ ] General Availability (GA)
         
-        
         Everyone who has tested the build is invited to vote. Votes by PMC members are considered binding. A vote passes if there are at least three binding +1s and more +1s than -1s.
+
+### Post-vote operations
     
-* Post-vote operations
-    
-    After a vote is finished, and it has been decided that is **at least of alpha quality**, there is the need of a post-vote process.
+After a vote is finished, and it has been decided that is **at least of alpha quality**, there is the need of a post-vote process.
     
-    * Promote staged artifacts
+* Promote staged artifacts
     
     Once the release is deemed fit for public consumption it can be transfered to a production repository where it will be available to all users.
     
@@ -223,43 +252,73 @@ These steps must be performed **for each
 	Select the "Releases" repository and click "Promote".
 	
 	Next click on "Repositories", select the "Releases" repository and validate that your artifacts exist as you expect them.
+
+* Publish the release
+
+    Copy the staged release to the Apache Releases svn repository at https://dist.apache.org/repos/dist/release/velocity/{module}/...
     
-    * Update the site
+    You may subsequently receive an automated email from the Apache Reporter Service asking you to log on to https://reporter.apache.org/addrelease.html?velocity to add the release metadata to its database. Please do so.
+
+* Update the site
         
-        Wait 24 hours to let the mirror sync to the release and then update the site. In particular you have to update the index and the download pages:
+    Wait 24 hours to let the mirror sync to the release and then update the site.
+    
+    Update the download page, the left menu, the news section, and the engine or tools index:
+    
+        velocity/site/cms/trunk/content/download.mdtext
+        velocity/site/cms/trunk/content/left.nav
+        velocity/site/cms/trunk/content/news.xml
+        velocity/site/cms/trunk/content/${module}/index.mdtext
         
-            https://svn.apache.org/repos/asf/velocity/site/site/xdoc/download.xml
-            https://svn.apache.org/repos/asf/velocity/site/site/news.xml
+    Push the changes into production.
+    
+    Check the resulting site for broken links
+    
+        :::shell
+        wget --spider -r -nd -nv -H -l 2 -w 2 -o links.log https://velocity.apache.org/
+
+* Update the DOAP RDF project metadata located under `svn.apache.org/repos/asf/velocity/site/site\.
+
+* Send announcement
+        
+    Finally, send an an announcement to the **users** and **developers mailing list** (in text-only format), by adapting the following canevas:
+        
+        Subject: [ANNOUNCE] Velocity ${module} ${version} ${quality} released
         
-        Build and publish the site:
+        The Apache Velocity team is pleased to announce the release of Velocity ${module} ${version} ${quality}.
+
+        [insert here a short description of the ${module}, aka:]
+
+            Velocity is a Java-based template engine. It permits anyone to use a simple yet powerful template language to reference objects defined in Java code.
+
+        [or]
+
+            Velocity Tools is a library of template tools and helpers to ease the use of the Apache Velocity template engine in standalone applications and in webapps.
         
-            mvn site
-            mvn site:deploy
-        
-    * Send announcement
-        
-        Finally, send an an announcement to the **users** and **developers mailing list**:
-        
-            Subject: [ANNOUNCE] Velocity Engine ${version} ${quality} released
-            
-            The Apache Velocity team is pleased to announce the release of Velocity Engine ${version} ${quality}.
-            
-            Velocity Engine ${version} is available in a binary and a source distribution.
-            
-            http://velocity.apache.org/download.html
-            
-            It is also available in the central Maven repository under Group ID "org.apache.velocity".
-            
-            The 2.0.x series of the Apache Velocity Engine framework has a minimum
-            requirement of the following specification versions:
-            
-            * Java Standard Edition (Java SE) 1.6
-            
-            The release notes are available online at:
-            
-            * ${jira.release.notes}
-            
-            Please feel free to test the distribution and post your comments to the user list, or, if appropriate, file a ticket with JIRA.
+        [insert here a short description of the main changes]
+
+        For a complete list of changes, please visit the Velocity ${module} ${version} releases notes [1].
+        
+        For notes on upgrading from Velocity ${module} ${previous-version}, see Velocity ${module} Upgrading section [2].
+
+        Velocity ${module} ${version} is available in a binary and a source distribution [3].
+        
+        http://velocity.apache.org/download.html#${module}
+        
+        It is also available in the central Maven repository under Group ID "org.apache.velocity[.tools]".        
+        
+        Please feel free to test the distribution and post your comments to the user list [4], or, if appropriate, file a ticket with JIRA [5].
+        
+        Regards,
+       
+          the Apache Velocity community.
+
+        [1]: http://www.apache.org/dist/velocity/${module}/${version}/release-notes.html
+        [2]: http://velocity.apache.org/${module}/${version}/upgrading.html
+        [3]: http://velocity.apache.org/download.cgi#${module}
+        [4]: http://velocity.apache.org/contact.html#mailing-lists
+        [5]: https://issues.apache.org/jira/projects/VELTOOLS
 
+    And send the same announcement in a separate email to the **announce@apache.org** moderated list using your `@apache.org` (see [how to configure your SMTP client](https://reference.apache.org/committer/email)).
 
 **You have finished!**