You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2014/10/18 19:49:52 UTC

svn commit: r1632825 - /mina/site/trunk/content/mina-project/developper-guide.mdtext

Author: elecharny
Date: Sat Oct 18 17:49:52 2014
New Revision: 1632825

URL: http://svn.apache.org/r1632825
Log:
Updated the developer guide to reflect the release process we have to use now

Modified:
    mina/site/trunk/content/mina-project/developper-guide.mdtext

Modified: mina/site/trunk/content/mina-project/developper-guide.mdtext
URL: http://svn.apache.org/viewvc/mina/site/trunk/content/mina-project/developper-guide.mdtext?rev=1632825&r1=1632824&r2=1632825&view=diff
==============================================================================
--- mina/site/trunk/content/mina-project/developper-guide.mdtext (original)
+++ mina/site/trunk/content/mina-project/developper-guide.mdtext Sat Oct 18 17:49:52 2014
@@ -86,6 +86,10 @@ Just running `mvn -Pserial eclipse:eclip
 
 Then `mvn eclipse:eclipse` command is executed internally, and the branch name will be appended to all sub-module project files generated by Maven Eclipse plugin.
 
+<DIV class="note" markdown="1">
+Working with Eclipse LUNA allows you to import the pom.xml directly into the workspace, instead of running mvn eclipse:eclipse, which is quite convenient. Although you still need to tweak your pom if you want to work with more than one version of MINA in your workspace.
+</DIV>
+
 # Deploying Snapshots (Commiters Only)
 
 Before running Maven to deploy artifacts, *please make sure if your umask is configured correctly*.  Unless configured properly, other committers will experience annoying 'permission denied' errors.  If your default shell is `bash`, please update your umask setting in the `~/.bashrc` file (create one if it doesn't exist.) by adding the following line:
@@ -208,6 +212,12 @@ Then some other questions will be asked,
 	
 Make sure the change made by the release plugin is correct! (pom.xml, tags created)
 </DIV>
+
+Now, you have to build the project :
+
+  $ mvn clean install -Pserial
+
+It should not be a necessay step, but at the moment, we have an issue with the Javadoc plugin which requires the modules to have been built before running the release.
 	
 ### Step 3 : Processing with the real release
 When the dry run is successful, then you can do in real with the following commands:
@@ -307,15 +317,172 @@ Now, you have to close the staged projec
 
 Connect to the Nexus server (https://repository.apache.org), login, and select the MINA staging repository you just created, then click on the 'close' button. You are home...
 
+### Step 6 : Build the Site
+
+    $ cd target/checkout
+    $ mvn -Pserial site
+
+This creates the site.
+
+<DIV class="info" markdown="1">
+
+### Step 7 : Sign the packages 
+
+Now, you have to sign the binary packages which are in target/checkout/distribution/target.
+
+Use your PGP key ID (the pub key, 4096R/[XXXXXXX] where [XXXXXXX] is the key ID)
+</DIV>
+
+You can get the keys by typing :
+
+    gpg --list-keys
+
+You'll get something like :
+
+  $ gpg --list-keys
+  /Users/elecharny/.gnupg/pubring.gpg
+  -----------------------------------
+  pub   2048D/xxxxxxxx 2009-12-03
+  uid                  Emmanuel Lecharny <el...@nextury.com>
+  sub   2048g/yyyyyyyy 2009-12-03
+
+  pub   4096R/zzzzzzzz 2010-09-13
+  uid                  Emmanuel Lecharny (CODE SIGNING KEY) <el...@apache.org>
+  sub   4096R/tttttttt 2010-09-13
+  ...
+
+Take the <zzzzzzzz> part of your 4096 bit key.
+
+
+Use a shell script to sign the packages which are stored in target/checkout/distribution/target :
+
+  localhost:target elecharny$ ~/sign.sh 
+  PGP Key ID: 
+  <your PGP key>
+  PGP Key Password: 
+  <Your PGP passphrase>
+
+  -n Signing: ./apache-mina-2.0.9-bin.tar.bz2 ... 
+    - Generated './apache-mina-2.0.9-bin.tar.bz2.md5'
+    - Generated './apache-mina-2.0.9-bin.tar.bz2.sha1'
+    - Generated './apache-mina-2.0.9-bin.tar.bz2.asc'
+  -n Signing: ./apache-mina-2.0.9-bin.tar.gz ... 
+    - Generated './apache-mina-2.0.9-bin.tar.gz.md5'
+    - Generated './apache-mina-2.0.9-bin.tar.gz.sha1'
+    - Generated './apache-mina-2.0.9-bin.tar.gz.asc'
+  ...
+
+
+Here is the sign.sh script you can use :
+
+    #!/bin/sh
+
+    echo "PGP Key ID: "
+    read DEFAULT_KEY
+
+    echo "PGP Key Password: "
+    stty -echo
+    read PASSWORD
+    stty echo
+    echo ""
+
+    for FILE in $(find . -maxdepth 1 -not '(' -name "sign.sh" -or -name ".*" -or -name "*.md5" -or -name "*.sha1" -or -name "*.asc" ')' -and -type f) ; do
+        if [ -f "$FILE.asc" ]; then
+            echo "Skipping: $FILE"
+            continue
+        fi
+
+        echo -n "Signing: $FILE ... "
+
+        # MD5
+        if [ ! -f "$FILE.md5" ];
+        then
+            openssl md5 < "$FILE" | cut "-d " -f2 > "$FILE.md5"
+            echo "  - Generated '$FILE.md5'"
+        else
+            echo "  - Skipped '$FILE.md5' (file already existing)"
+        fi
+
+        # SHA1
+        if [ ! -f "$FILE.sha1" ];
+        then
+            gpg -v --default-key "$DEFAULT_KEY" --print-md SHA1 "$FILE" > "$FILE".sha1
+            echo "  - Generated '$FILE.sha1'"
+        else
+            echo "  - Skipped '$FILE.sha1' (file already existing)"
+        fi
+
+        # ASC
+        if [ ! -f "$FILE.asc" ];
+        then
+            echo "$PASSWORD" | gpg --default-key "$DEFAULT_KEY" --detach-sign --armor --no-tty --yes --passphrase-fd 0 "$FILE"
+            echo "  - Generated '$FILE.asc'"
+        else
+            echo "  - Skipped '$FILE.asc' (file already existing)"
+        fi
+    done
+
+### Step 8 : Publish Source and Binary Distribution Packages
+
+First of all, create a new directory on people.apache.org/public_html to store the pacckages :
+
+    $ ssh people.apache.org
+    $ mkdir public_html/mina-<version>
+    $ exit
+
+Then copy the packages :
+
+    $ cd distributions/target
+    $ scp apache-mina-<version>-* people.apache.org:public_html/mina/
+
+Update your index.html file on people.apach.org/public_html to make the packages visible. Here is an example of possible content :
+
+    <h2>Last MINA 2.0.9 tarballs</h2>
+      <h3>Sources</h3>
+
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-src.tar.gz">apache-mina-2.0.9-src.tar.gz</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-src.tar.gz.asc">apache-mina-2.0.9-src.tar.gz.asc</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-src.tar.gz.asc">apache-mina-2.0.9-src.tar.gz.md5</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-src.tar.gz.asc">apache-mina-2.0.9-src.tar.gz.sha1</a><br/>
+
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-src.tar.bz2">apache-mina-2.0.9-src.tar.bz2</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-src.tar.bz2.asc">apache-mina-2.0.9-src.tar.bz2.asc</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-src.tar.bz2.asc">apache-mina-2.0.9-src.tar.bz2.md5</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-src.tar.bz2.asc">apache-mina-2.0.9-src.tar.bz2.sha1</a><br/>
+
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-src.zip">apache-mina-2.0.9-src.zip</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-src.zip.asc">apache-mina-2.0.9-src.zip.asc</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-src.zip.asc">apache-mina-2.0.9-src.zip.md5</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-src.zip.asc">apache-mina-2.0.9-src.zip.sha1</a><br/>
+
+      <h3>Binaries</h3>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-bin.tar.gz">apache-mina-2.0.9-bin.tar.gz</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-bin.tar.gz.asc">apache-mina-2.0.9-bin.tar.gz.asc</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-bin.tar.gz.asc">apache-mina-2.0.9-bin.tar.gz.md5</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-bin.tar.gz.asc">apache-mina-2.0.9-bin.tar.gz.sha1</a><br/>
+
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-bin.tar.bz2">apache-mina-2.0.9-bin.tar.bz2</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-bin.tar.bz2.asc">apache-mina-2.0.9-bin.tar.bz2.asc</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-bin.tar.bz2.asc">apache-mina-2.0.9-bin.tar.bz2.md5</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-bin.tar.bz2.asc">apache-mina-2.0.9-bin.tar.bz2.sha1</a><br/>
+
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-bin.zip">apache-mina-2.0.9-bin.zip</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-bin.zip.asc">apache-mina-2.0.9-bin.zip.asc</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-bin.zip.asc">apache-mina-2.0.9-bin.zip.md5</a><br/>
+        <img src="/icons/compressed.gif" alt="[   ]"><a href="mina/apache-mina-2.0.9-bin.zip.asc">apache-mina-2.0.9-bin.zip.sha1</a><br/>
+
+### Step 9 : Test the New Version with FtpServer, Sshd and Vysper
+
+In <em>FtpServer/pom.xml</em> change the <org.apache.directory.shared.version> property, build FtpServer. It should build with no error. Do the same thing with Sshd and Vysper.
+
 It's time to launch a vote !
 
-## Voting a release
+## Step 10 : Voting a release
 
 Once the tarballs have been created, and the binaries available in Nexus, a vote can be launched. Simply send a mail on the dev@mina.apache.org mailing list describing the new release.
 
-### Step 1 : Send a [VOTE] mail on the mailing list
+Here is how you  send a [VOTE] mail on the dev mailing list :
 
-Here is a sample mail :
 
     Hi,
     
@@ -354,38 +521,34 @@ Here is a sample mail :
 
 The vote will be open for 72 hours. Once the delay is over, collect the votes, and count the binding +1/-1. If the vote is positive, then we can release.
 
-### Step 2 : Close the vote
+### Step 11 : Close the vote
 
 You can officially close the vote now. There are some more steps to fulfill :
 
 * Release the project on https://repository.apache.org
 * Copy the tarballs and heir signature in people.apache.org /www/www.apache.org/dist/mina
 
-### Step 3: Deploy Web Reports (JavaDoc and JXR)
+### Step 12: Deploy Web Reports (JavaDoc and JXR)
 
     $ svn co https://svn.apache.org/repos/asf/mina/mina/tags/<version> mina
     $ cd mina
     $ mvn -Pserial clean compile site site:deploy
 
-### Step 4: Wait 24 hours
+### Step 13: Wait 24 hours
 
 We have to wait at least 24 hours for all mirrors to retrieve the uploaded files before making any announcement.  I'd recommend you to wait for 48 hours because some mirrors might lag due to various issues.
 
-### Step 5: Update the Links in Web Site
+### Step 14: Update the Links in Web Site
 
 Update the links to new distributions in [Downloads] page.
 
-### Step 8: Update related metadata file(s)
-
-Update [any related metadata file(s)](http://svn.apache.org/viewvc/mina/metadata/).
-
-### Step 9: Wait another 24 hours
+### Step 15: Wait another 24 hours
 
 We need to wait until any changes made in the web site and metadata file(s) go live.
 
-### Step 10: Announce the New Release
+### Step 16: Announce the New Release
 
-An announcement message can be sent to [mailto:announce@apache.org], [mailto:announce@apachenews.org], [mailto:users@mina.apache.org] and [mailto:dev@mina.apache.org].  Please note that announcement messages are rejected unless your from-address ends with `@apache.org`.  Plus, you shouldn't forget to [post a news to the MINA CWiki space](http://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=MINA), and run Confluence auto-export plugin manually.
+An announcement message can be sent to [mailto:announce@apache.org], [mailto:announce@apachenews.org], [mailto:users@mina.apache.org] and [mailto:dev@mina.apache.org].  Please note that announcement messages are rejected unless your from-address ends with `@apache.org`.  Plus, you shouldn't forget to post a news to the MINA site main page.
 
 ## Creating a New Release Branch