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 2016/06/02 15:19:11 UTC

svn commit: r1746588 - in /velocity/site/cms/trunk/content: left.nav release-process.mdtext

Author: cbrisson
Date: Thu Jun  2 15:19:11 2016
New Revision: 1746588

URL: http://svn.apache.org/viewvc?rev=1746588&view=rev
Log:
[site] resurrect Nathan's release process page (has it been online one day?)

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

Modified: velocity/site/cms/trunk/content/left.nav
URL: http://svn.apache.org/viewvc/velocity/site/cms/trunk/content/left.nav?rev=1746588&r1=1746587&r2=1746588&view=diff
==============================================================================
--- velocity/site/cms/trunk/content/left.nav (original)
+++ velocity/site/cms/trunk/content/left.nav Thu Jun  2 15:19:11 2016
@@ -16,9 +16,10 @@
 * [How it works](/how-it-works.html)
 * [Board Reports](https://whimsy.apache.org/board/minutes/Velocity.html)
 ## Developer Resources
-* [Coding Standards](http://wiki.apache.org/velocity/CodeStandards)
+* [Coding standards](http://wiki.apache.org/velocity/CodeStandards)
 * [Project guidelines](/how-it-works.html#Project%20Guidelines)
 * [Site building](/site-building.html)
+* [Release process](/release-process.html)
 ## Archive
 * [Anakia 1.0](/anakia/1.0)
 * [Texen 1.0](/texen/1.0)

Added: velocity/site/cms/trunk/content/release-process.mdtext
URL: http://svn.apache.org/viewvc/velocity/site/cms/trunk/content/release-process.mdtext?rev=1746588&view=auto
==============================================================================
--- velocity/site/cms/trunk/content/release-process.mdtext (added)
+++ velocity/site/cms/trunk/content/release-process.mdtext Thu Jun  2 15:19:11 2016
@@ -0,0 +1,290 @@
+Title: Apache Velocity Release Process
+
+## Velocity Release Process
+
+Here you will find the steps to create releases for Velocity Engine or Velocity Tools.
+
+Instructions make explicit references to the *engine* subproject, but you can easily adapt them for the *tools* subproject.
+
+### Prerequisites
+
+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/)
+* [GnuPG](http://www.gnupg.org/)
+* [OpenSSH](http://www.openssh.com/}OpenSSH)
+
+### One-time operations
+
+These operations need to be performed only one time.
+
+* Create and publish your GPG key
+
+    To create a GPG key, follow the [guidelines](http://www.apache.org/dev/openpgp.html}guidelines). Insert in the file you find on people.apache.org at the directory:
+    
+        /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`
+    
+    Your `settings.xml` must be modified to allow deployment.
+    
+    This is the minimal configuration, obviously if you already have a `settings.xml` file, you must edit it:
+    
+        <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
+			http://maven.apache.org/xsd/settings-1.0.0.xsd">
+		  <servers>
+            <server>
+              <id>apache-site</id>
+              <username>YOUR_APACHE_USERNAME</username>
+              <filePermissions>664</filePermissions>
+              <directoryPermissions>775</directoryPermissions>
+            </server>
+            <server>
+              <id>apache.snapshots.https</id>
+              <username>YOUR_APACHE_USERNAME</username>
+              <password>YOUR_APACHE_PASSWORD</password>
+            </server>
+            <server>
+              <id>apache.releases.https</id>
+              <username>YOUR_APACHE_USERNAME</username>
+              <password>YOUR_APACHE_PASSWORD</password>
+            </server>
+          </servers>
+		  <profiles>
+            <profile>
+              <id>release</id>
+              <properties>
+                <gpg.passphrase>YOUR_SECRET_PHRASE</gpg.passphrase>
+              </properties>
+              </profile>
+            </profile>
+          </profiles>
+        </settings>
+    
+
+### Repeatable operations
+
+These steps must be performed **for each** release.
+
+* Prepare the release tag
+    
+    To prepare the release Subversion tag, check out the branch/trunk from where
+    you are preparing the release and type:
+    
+
+        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. It is reccomended to use the tag: `velocity-engine-parent-X.X.X` (the default).
+    
+* Perform the Release
+    
+    To perform the release, i.e. creating and deploying Maven artifacts, use:
+    
+        mvn release:perform
+    
+* Close the staging repository
+    
+    Login to {{{https://repository.apache.org using} Nexus repository}} your Apache LDAP credentials.
+	
+    Click on "Staging". Then click on "velocity" in the list of repositories.
+	
+    In the panel below you should see an open repository that is linked to your username and ip.
+	
+    Right click on this repository and select "Close".
+	
+    This will close the repository from future deployments and make it available for others to view.
+	
+    If you are staging multiple releases together, skip this step until you have staged everything.
+	
+    Enter the name and version of the artifact being released in the "Description" field and then click "Close".
+	
+    This will make it easier to identify it later.
+
+* Verify the staged artifacts
+    
+    If you click on your repository, a tree view will appear below.
+	
+    You can then browse the contents to ensure the artifacts are as you expect them.
+	
+    Pay particular attention to the existence of *.asc (signature) files.
+	
+    If the you don't like the content of the repository, right click your repository and choose "Drop".
+	
+    You can then rollback your release and repeat the process.
+
+    Note the repository URL, you will need this in your vote email.
+
+* Digest and upload assemblies
+
+    * Go into the release assembly target directory:
+        
+            cd target/checkout/assembly/target/assembly/out
+			
+        
+    * Create MD5 and SHA1 files for each files (including ASC files). You can do it with this simple shell script:
+        
+            #!/bin/sh
+            
+            for fileitem in *
+            do
+              openssl md5 < $fileitem > $fileitem.md5
+              openssl sha1 < $fileitem > $fileitem.sha1
+            done
+        
+    * Upload everything to the build site:
+        
+            scp * user@people.apache.org:/www/people.apache.org/builds/velocity-engine-parent/${version}
+    
+    
+* 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 release notes and **write down the link** that it uses.
+        
+* Send announcement for the test build
+    
+        In **developers mailing list** send an announcement for the test build:
+        
+        Subject: [ANNOUNCE] Velocity Engine ${version} test build available
+        
+        The test build of Velocity Engine ${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.
+        
+        Release notes:
+        
+        * ${jira.release.notes}
+        
+        Distribution:
+        
+         * http://people.apache.org/builds/velocity-engine-parent/${version}/
+        
+        Maven 2 staging repository:
+        
+         * https://repository.apache.org/content/repositories/velocity-[YOUR REPOSITORY ID]/
+        
+        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
+        
+        The Velocity Engine ${version} test build has been available since ${testBuildDate}.
+        
+        Release notes:
+        
+        * ${jira.release.notes}
+        
+        Distribution:
+        
+         * http://people.apache.org/builds/velocity-engine-parent/${version}/
+        
+        Maven 2 staging repository:
+        
+         * https://repository.apache.org/content/repositories/velocity-[YOUR REPOSITORY ID]/
+        
+        If you have had a chance to review the test build, please respond with a vote on its quality:
+        
+         [ ] Leave at test build
+         [ ] Alpha
+         [ ] 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
+    
+    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
+    
+    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.
+    
+    Login to {{{https://repository.apache.org}Nexus repository}} again.
+	
+	Click on "Staging" and then on the repository with id "velocity-staging".
+	
+	Find your closed staging repository, right click on it and choose "Promote".
+	
+	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.
+    
+    * Move assemblies
+        
+        Move assemblies to the Apache distribution mirrors:
+        
+            ssh user@people.apache.org
+            
+            cd /www/people.apache.org/builds/velocity/${version}
+            mkdir /www/www.apache.org/dist/velocity/v${version}/
+            cp * /www/www.apache.org/dist/velocity/v${version}/
+        
+    * 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:
+        
+            https://svn.apache.org/repos/asf/velocity/site/site/xdoc/download.xml
+            https://svn.apache.org/repos/asf/velocity/site/site/news.xml
+        
+        Build and publish the site:
+        
+            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.
+
+
+**You have finished!**