[seam-commits] Seam SVN: r7997 - trunk.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Mon Apr 21 14:27:16 EDT 2008


Author: jbalunas at redhat.com
Date: 2008-04-21 14:27:16 -0400 (Mon, 21 Apr 2008)
New Revision: 7997

Modified:
   trunk/release-process.txt
Log:
major update to the seam release process

Modified: trunk/release-process.txt
===================================================================
--- trunk/release-process.txt	2008-04-21 17:34:45 UTC (rev 7996)
+++ trunk/release-process.txt	2008-04-21 18:27:16 UTC (rev 7997)
@@ -1,44 +1,244 @@
 Seam Release Process
 ====================
 
-
 Updating version numbers
 ------------------------
-* Update the version number embedded in:
-  - readme.txt
-  - changelog.txt (insert JIRA release notes)
-  - build/default.build.properties (you're probably building locally with 
-    -SNAPSHOT as the qualifer in build.properties, comment it out when building
-    for a release)
+* Update the version information:
+  - readme.txt 
+    - 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
+        - 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.
 
-Tests
------
-* "ant cleanall testall testreport" with validate.xml = true in build.properties, check report/junit-noframes.html
-* Sanity check the following example applications on JBoss 4.2.2
-  - booking
-  - dvdstore
-  - jpa
-  - hibernate
-  - seamspace
+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 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 Dist
+--------------------------
+* Run "mkdir ../releaselogs" for release artifacts.
+
+* Initial build and test suite execution
+    - run initial build to download dependencies and setup env.
+        - run "ant > ../releaselogs/x.x.x.XX.initbuild.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"
+    
+* 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 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/. ./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
+
+* check that the following source directories exist in the dist "ls -1 src"
+    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
+    seambay
+    seamdiscs
+    seampay
+    seamspace
+    spring
+    todo
+    ui
+    wiki
+
+* 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>        
+ 
+* 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
+* 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
+  - seampay
+  - seamspace
   - spring
-  - seamdiscs
-* Sanity check the following example applications on Tomcat
-  - booking
-  - dvdstore
-  - jpa
-  - hibernate
-* Sanity check the folowing example applications on GlassFish
+  - takeaway
+  - todo (tutorial)
+  - ui
+    wiket
+  - wiki 
+* 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
   
-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,
@@ -59,106 +259,147 @@
   CONSTRAINT `owner` FOREIGN KEY (`ownerUsername`) REFERENCES `person` (`username`)
 ) ENGINE=InnoDB 
 
-* run "seam setup create-project generate-entities explode"
-  - test the app, at least the list and edit pages for Person
-* 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
+* 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"
+    - 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"
+    - 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 
+* 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
 
-
-
-Tag SVN
--------
-* "svn copy trunk tags/JBoss_Seam_x_x_x_XX"
-* "svn commit tags/JBoss_Seam_x_x_x_XX"
-
-Build + Upload
+Final Build + Upload
 --------------
-* run "ant cleanall dist"
-* check that the following files/directories exist in the dist "ls -1"
+* 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
 
-bootstrap
-build
-build.properties
-build.xml
-changelog.txt
-doc
-examples
-lgpl.txt
-lib
-mail
-pom.xml
-readme.txt
-seam
-seam-gen
-seam-text.g
-seam.bat
-seam2migration.txt
-src
-ui
+* 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.
 
-* check that the following source directories exist in the dist "ls -1 src"
+* 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
 
-debug
-gen
-ioc
-mail
-main
-pdf
-remoting
-test
+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
 
-* 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
-numberguess
-portal
-quartz
-readme.txt
-registration
-remoting
-seam-examples.html
-seambay
-seamdiscs
-seampay
-seamspace
-spring
-todo
-ui
-wiki
-
-* upload .zip and .tar.gz to upload.sf.net
-* do the sf.net file release stuff
-* Do the release proceedure 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
-
 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