[seam-commits] Seam SVN: r7995 - branches/Seam_2_0.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Mon Apr 21 11:19:32 EDT 2008


Author: jbalunas at redhat.com
Date: 2008-04-21 11:19:32 -0400 (Mon, 21 Apr 2008)
New Revision: 7995

Modified:
   branches/Seam_2_0/release-process.txt
Log:
Major updates to the release process.

Modified: branches/Seam_2_0/release-process.txt
===================================================================
--- branches/Seam_2_0/release-process.txt	2008-04-21 13:01:51 UTC (rev 7994)
+++ branches/Seam_2_0/release-process.txt	2008-04-21 15:19:32 UTC (rev 7995)
@@ -8,149 +8,236 @@
     - one place at top including date.
   - changelog.txt
     - Generate a JIRA release note report for the release in "text" format
-    - Only "issue types" that have jira's will work
+        - Only "issue types" that have jira's will work
         - Usually that is (Bug, Feature Request, Task, and Patch)
         - Check all the issue types one at a time to determine final list.
   - build/default.build.properties 
     - Change the version numbers as needed
     - Set the qualifier using a "." ex. ".CR1" or ".GA"
     - Check that build.properties has the qualifier commented out for the release
+    
+Maven repository settings
+-------------------------
+* A released version of seam should not reference any repositories other than
+  "repository.jboss.org".  See "build/readme.txt" for details.
+  - Search "$DIST/build" for "pluginRepository".  
+    - Should only find "root.pom.xml" and "docs.pom.xml"
+    - Comment out any other "<pluginRepository>" entry
+    - Comment out any "<repository>" that references a commented out entry.
+  - Verify prior to tagging
+    - run "ant cleanall testall testreport" with these changes
+    - This should build, and test without a problem.
 
-SVN Tagging and Checkout
+SVN tagging and checkout
 ------------------------
 * Note: testing can begin prior to official tagging but a complete process should be executed on the tag prior to release. 
 * Tag the release (XX as needed)
     -"svn copy https://svn.jboss.org/repos/seam/XX/XX https://svn.jboss.org/repos/seam/tags/JBoss_Seam_x_x_x_XXX -m "create JBoss_Seam_x_x_x_XXX tag""
         - ex. "svn copy https://svn.jboss.org/repos/seam/branches/Seam_2_0 https://svn.jboss.org/repos/seam/tags/JBoss_Seam_2_0_2_CR1"
-* In a clean directory checkout the required seam source ( XX as needed)
+* In a clean directory checkout the newly tagged seam source ( XX as needed)
     - "svn co https://svn.jboss.org/repos/seam/tags/JBoss_Seam_x_x_x_XXX seam"  
         - ex. "svn co https://svn.jboss.org/repos/seam/tags/JBoss_Seam_2_0_2_CR1 seam"
+* In the original branch/trunk change:
+    - Qualifier back to "-SNAPSHOT" in default.build.properties file.
+        - The version numbers should stay the same 
+        - Any new work is that versions snapshot
+    - Revert the Maven repository changes if needed
 
-Building and Checking Diff
+Building and Checking Dist
 --------------------------
-* Run "mkdir ../releaselogs"
+* Run "mkdir ../releaselogs" for release artifacts.
+
 * Initial build and test suite execution
-    - run initial build to get dependencies and other requirements
+    - run initial build to download dependencies and setup env.
         - run "ant > ../releaselogs/x.x.x.XX.initbuild.txt"
-    - edit build.properties and un-comment "validate.xml = true"
-    - run "ant cleanall testall testreport > ../releaselogs/x.x.x.XX.testallreport.txt"
+    - run "ant -Dvalidate.xml=true cleanall testall testreport > ../releaselogs/x.x.x.XX.testallreport.txt"
     - check report/junit-noframes.html
         - There should be no failures or errors.
     - run "cp -R test-output ../releaselogs"
     - run "cp -R test-report ../releaselogs"
-    - comment out "validate.xml = true" in build.properties
+    
 * Create the distribution build
     - run "ant cleanall dist > ../releaselogs/x.x.x.XX.distbuild.txt"
     - Use the dist build for all example tests
-* Diff the zip, gz, and exploded version of the build
-    - ex. 
-        - explode the zip and gz into a tmp dir
-        - cp distribution directory into the tmp dir
-        - in tmp dir run:
+    
+* Diff the zip, gz, and exploded version of the dist build
+    - example of how to do it:
+        - explode the zip and gz into "../tmp/zip" and "../tmp/gz"
+        - cp distribution directory into "../tmp/dist" 
+        - in "../tmp" run:
             - "diff -r ./gz/. ./zip/."
-            - "diff -r ./gz/. ./dir/."
+            - "diff -r ./gz/. ./dist/."
     - There should be no differences.
+    - Delete "../tmp" if you wish
+    
 * check that the following files/directories exist in the dist "ls -1"
-bootstrap
-build
-build.properties
-build.xml
-changelog.txt
-doc
-examples
-lgpl.txt
-lib
-mail
-readme.txt
-seam
-seam-gen
-seam-text.g
-seam.bat
-seam2migration.txt
-src
-ui
+    bootstrap
+    build
+    build.properties
+    build.xml
+    changelog.txt
+    doc
+    examples
+    lgpl.txt
+    lib
+    mail
+    readme.txt
+    seam
+    seam-gen
+    seam-text.g
+    seam.bat
+    seam2migration.txt
+    src
+    ui
 
 * check that the following source directories exist in the dist "ls -1 src"
-debug
-gen
-ioc
-jbas5
-mail
-main
-pdf
-remoting
-test
+    debug
+    gen
+    ioc
+    jbas5
+    mail
+    main
+    pdf
+    remoting
+    test
 
 * check that the following examples exist in the dist "ls -1 examples"
-blog
-booking
-build.xml
-contactlist
-drools
-dvdstore
-groovybooking
-hibernate
-icefaces
-itext
-jee5
-jpa
-mail
-messages
-nestedbooking
-numberguess
-quartz
-readme.txt
-registration
-remoting
-seam-examples.html
-seambay
-seamdiscs
-seampay
-seamspace
-spring
-todo
-ui
-wiki
+    blog
+    booking
+    build.xml
+    contactlist
+    drools
+    dvdstore
+    groovybooking
+    hibernate
+    icefaces
+    itext
+    jee5
+    jpa
+    mail
+    messages
+    nestedbooking
+    numberguess
+    quartz
+    readme.txt
+    registration
+    remoting
+    seambay
+    seamdiscs
+    seampay
+    seamspace
+    spring
+    todo
+    ui
+    wiki
 
-* [future] jar, archive, dependency report
-* [future] directory structure report
+* Archive reports
+    - run these in the dist directory
+        find . -name *.jar > ../releaselogs/jarlist.txt
+        find . -name *.sar > ../releaselogs/sarlist.txt
+        find . -name *.war > ../releaselogs/warlist.txt
+        find . -name *.ear > ../releaselogs/earlist.txt
+        find . -name *.zip > ../releaselogs/ziplist.txt
+        find . -name *.gz > ../releaselogs/gzlist.txt
+        find . -name *seam*.jar > ../releaselogs/seamjarlist.txt
+    - Manually review the lists for problems
+        - seam jars all in one place
+        - <TODO: list expected items or provide listing in svn>        
  
-Tests
------
-* edit the $dist/build.properties and set the jboss.home and tomcat.home
+* In the dist run "ant dependencyReport"
+    - run "cp ./dependency-report.txt ../releaselogs"
+    - Review for snapshot dependencies
+        - there should be none.
+    - Compare with real jar versions from META-INF/MANIFEST.MF
+        - <TODO: A tool is needed to do this effectivly.>
+
+* Built source verification
+    - Create a copy of the $DIST directory
+    - In the original run "ant"
+    - diff the original and the built versions
+        - only difference should be build related 
+        - <TODO: list expected differences>
+    - Extract seam jars from orig, and the newly built into different dirs
+        - diff the directories
+        - Should be no differences except version of ant and/or jdk versions
+ 
+Example verification
+--------------------
+* The list of examples below is extensive, and testing may not touch each.
+    - This should be based on risk analysis, and release note review.
+    - For a major/minor GA build they should all be tested.
+    - Any examples that are not tested should be noted. 
+* Verify the the following are accurate and up to date:
+    - "$DIST/readme.txt" 
+    - "$DIST/examples/readme.txt"    
+* For these examples verify the following:
+    - readme.txt is accurate
+    - ant deploy 
+    - ant tomcat.deploy - for supported examples
+    - ant test
+    - ant clean
+    - ant undeploy
+* Examples with "(tutorial)" are discussed in the reference guide tutorial.
+    - document should be validated as well
+    - including tomcat deployments
+* Edit the $dist/build.properties and set the jboss.home and tomcat.home
     - JBoss AS 4.2.2.GA and Tomcat 6.X
-* Test the steps in the readme.txt
-    - this deploys the booking example on JBoss 4.2.2
-    - Sanity check the application
-* Sanity check the following example applications on JBoss 4.2.2
-  - dvdstore
-  - jpa
-  - hibernate
-  - seamspace
+* JBoss 4.2.2 examples
+  - blog (tutorial)
+  - booking (tutorial)
   - contactlist
+  - drools
+  - dvdstore (tutorial)
+  - groovybooking
+  - hibernate (tutorial)
+  - icefaces
   - itext
+  - jpa 
   - mail
+  - messages (tutorial)
+  - nestedbooking
+  - numberguess (tutorial)
+  - quartz
+  - registration (tutorial)
+  - remoting/chatroom
+  - remoting/gwt
+  - remoting/helloworld
+  - remoting/poker
+  - remoting/progressbar
+  - seambay
   - seamdiscs
-  - remoting/chatroom
-  - blog
-* Sanity check the following example applications on Tomcat
-  - booking
-  - dvdstore
+  - seampay
+  - seamspace
   - spring
-  - jpa
-  - hibernate
-* Sanity check the folowing example applications on GlassFish
+  - takeaway
+  - todo (tutorial)
+  - ui
+  - wiki (not ready for testing until 2.1.X)
+* Tomcat 6 examples 
+  - Note: use JBoss embedded unless specified differently
+  - blog (tutorial)
+  - booking (tutorial)
+  - dvdstore (tutorial)
+  - hibernate  (tutorial)
+  - hibernate  (tutorial) without embedded
+  - jpa 
+  - jpa without embedded
+  - messages (tutorial)
+  - numberguess (tutorial)
+  - registration (tutorial)
+  - seambay
+  - seampay
+  - todo (tutorial)
+* GlassFish v2.1 examples
   - jee5
   - jpa
   - hibernate
-* Validate /examples/seam-examples.html
-  - ant deploypresentation
-  - check for errors and spot check apps - they were already test above.
   
-Test seam-gen & JBDS
--------------
+JBDS and seam-gen verification
+------------------------------
+These tests use a stable version of MySQL and the latest release of JBDS.
+
 * export the following tables to MySQL:
-
 CREATE TABLE `Person` (
   `username` varchar(10) NOT NULL,
   `name` varchar(100) NOT NULL,
@@ -171,41 +258,147 @@
   CONSTRAINT `owner` FOREIGN KEY (`ownerUsername`) REFERENCES `person` (`username`)
 ) ENGINE=InnoDB 
 
+* seam-gen review seam-gen chapter of the reference guide
+  - accurate and up to date
 * seam-gen EAR 
   - run "seam setup create-project generate-entities explode"
-    - test the app, at least the list and edit pages for Person
+    - during setup choose an EAR project
+    - test the basic functionality of the app (CRUD on each table)
   - run "seam new-action new-form restart"
     - test both generated pages
     - run the unit tests in eclipse using the TestNG plugin 
+* seam-gen IceFaces EAR test 
+  - run "seam setup create-project generate-entities explode"
+    - during setup choose an EAR project
+    - during setup choose to use IceFaces instead of RichFaces
+    - test the basic functionality of the app (CRUD on each table)
 * seam-gen WAR 
   - run "seam setup create-project generate-entities explode"
-    - test the app, at least the list and edit pages for Person
+    - during setup choose a WAR project
+    - test the basic functionality of the app (CRUD on each table)
   - run "seam new-action new-form restart"
     - test both generated pages
     - run the unit tests in eclipse using the TestNG plugin 
-* Create a new war project in JBDS
+* JBDS - import the EAR seam-gen generated project into JBDS.
+  - Enable Seam support in project properties
+  - Check that EL code completion works for Seam components 
+  - Check that Hibernate Console work on the project
+     - expand the Configuration node
+     - Open HQL editor and query "from SomeEntity" and execute the query
+* JBDS new WAR project
   - Reverse engineer entities from MySQL
-  - Test generated pages (check hot deployment of Seam components, html)
+  - Create "new Seam Action" and "new Seam Form"
+  - Test generated pages (check hot deployment of Seam components, html)   
   - Test running unit tests from Eclipse
-* Create a new ear project in JBDS
+* JBDS new EAR project 
   - Reverse engineer entities from MySQL
-  - Test generated pages (check hot deployment of Seam components, html)
-  - Test running unit tests from Eclipse
+  - Create "new Seam Action" and "new Seam Form"
+  - Test generated pages (check hot deployment of Seam components, html)  
+  - Test running unit tests from JBDS
+* JBDS - test a subset of the examples with testNG plugin.
+    - See "/readme.txt" and "/examples/readme.txt" for details. 
+    
+Portal Bridge Verification
+--------------------------
+* Use the latest released version of the PortalBridge and JBoss Portal.
+  - http://labs.jboss.com/portletbridge
+  - http://www.jboss.org/jbossportal/
+* Deploy and verify the bridge booking example to JBoss portal.
+* Deploy a second version of the booking example as a separate portlet
+    - <TODO: there may be a new chatroom seam portlet for this testing>
+* Build the seam identity extension with the booking example
+    - <TODO add reference link to the instructions>
+    - Go to the booking demo seamBookingPortlet/pom.xml
+       - go to the bottom and uncomment the identity module.
+    - Build the booking demo and login via the portal admin link. 
+       - this should automatically logs you into the seam booking demo
+  
+Document review
+---------------
+* Review the API javadocs in both IE and FF.
+    - Specifically for version differences
+    - This is not a full review
+* Review the Reference Guide documentation in both IE and FF.
+    - Review for format and code styles
+    - Review for version numbers, and dependencies
+    - Review any extensive changes based on release notes and the team. 
+    - This is not a full review
 
 Final Build + Upload
 --------------
-* run "ant cleanall dist"
+* When ready for the release
+    - checkout a clean version of the tag
+    - run "ant cleanall dist > ../releaselogs/x.x.x.XX.finaldistbuild.txt"
+    - diff this to the one used for testing
 
-* upload .zip and .tar.gz to upload.sf.net
-* do the sf.net file release stuff
-* Do the release procedure for maven as described in build/readme.txt
-* upload the doc directory of the dist to docs.jboss.org
-  - remember to update the latest/ dir
-* update the documentation and download pages on jboss.org
-* update the DTDs and XSDs on jboss.com/products/seam
-* announce the release on the news page on jboss.org
+* Follow instructions for sourceforge upload
+    - Create md5 files for the ".zip" and ".tar.gz" files
+        - <QUESTION: do we want to create md5 files for the archives>
+    - upload the .zip and .tar.gz and md5 files to SF FTP "upload.sf.net/incoming" folder
+    
+* Login to sourceforge.org and go to jboss.org project
+    - Under admin tab click on "file releases"
+    - Add a release to the "JBoss Seam" project
+    - Set "Status" to "hidden"
+    - Paste this release changelog snippet in the "changelog"
+    - Paste this release readme.txt in the "release notes" 
+    - Add the 4 files uploaded to the release
+    - Keep everything hidden for now.
 
+* Upload the "$DIST/doc" directory to "docs.jboss.com/seam/<NEW VERSION>" 
+    - Note: this can take a long time.
+    
+* Maven release procedure.(see build/readme.txt for details)
+    - Checkout/update JBoss repository 
+        - checkout "svn co https://svn.jboss.org/repos/repository.jboss.org/maven2"
+            - Note this can take a very long time
+        - update (if already local) "svn update ." in the "maven2" directory.
+    - Adding this to an eclipse project with svn plugin can make it much easier.
+    - Set the "offline.repository.jboss.org" property in "build/build.properties"
+        - to the directory you checked out to.
+    - Run "ant releaseSeam" in the build directory
+    - Review and Commit the release changes to repository.jboss.org
+
+Final Coordination and Announcement
+-----------------------------------
+* For a GA release and if its newest version of Seam
+    - Update "http://docs.jboss.com/seam/latest" with the docs from this version.
+        - Not for cr,alpha,beta releases
+    - This can take a long time
+* Update the DTDs and XSDs on jboss.com/products/seam
+    - Easiest way to use a script that checks for changes
+        - <TODO add script to svn>
+    - Update any changes to the site
+* Login to sourceforge.org and modify the Seam release entry
+    - Change the date to today
+    - Change "Status" to active
+* Update the documentation and download pages on seamframework.org
+    - documentation points to "docs.jboss.com"
+    - downloads point to sourceforge download page
+* Update Jira so that version shows as "released" 
+* Announce the release
+    - Blog on in.relation.to
+    - seamframework.org news, and forums
+    - jboss.org news
+
 Update Demos
 ------------
-This step is not needed for every point release:
-* upload the booking and dvdstore examples to demo.jboss.com
+* This step is not needed for every point release:
+* Upload the booking and dvdstore examples to demo.jboss.com
+* <TODO more information on what is needed>
+
+Notes
+-----
+* To reapply a tag:
+ - First delete the original
+    - svn delete https://svn.jboss.org/repos/seam/tags/JBoss_Seam_x_x_x_XXX -m "removing old tag prior to applying updated tag"
+    - ex. svn delete https://svn.jboss.org/repos/seam/tags/JBoss_Seam_2_0_2_CR1 -m "removing old tag prior to applying updated tag"
+ - Recopy back to tag
+    -"svn copy https://svn.jboss.org/repos/seam/XX/XX https://svn.jboss.org/repos/seam/tags/JBoss_Seam_x_x_x_XXX -m "create JBoss_Seam_x_x_x_XXX tag""
+    - ex. svn copy https://svn.jboss.org/repos/seam/branches/Seam_2_0 https://svn.jboss.org/repos/seam/tags/JBoss_Seam_2_0_2_CR1 -m "Updated tag for 2.0.2.CR1"
+
+[FUTURE]
+--------
+* Store release related scripts (especially when more automated) in svn.
+* Store release logs, and reports in svn.
+* Find a jar/archive reporting tool for detailed dependency, version, location reports.




More information about the seam-commits mailing list