ShrinkWrap | Release Process

Here describe the steps taken to create a release of ShrinkWrap.

 

Prerequisites
  1. Proper Maven Configuration using JBoss' Nexus instance: Maven Getting Started - Developers
  2. JBoss Employee (Some resources for uploading of artifacts and documentation are restricted behind the VPN)
  3. Ensure GraphVis (http://www.graphviz.org/) is available upon the system PATH.  For instance, the Fedora RPM-based "yum" installation will accomplish this.  (http://www.graphviz.org/Download_linux_fedora.php).  This is used in generating UML images to be embedded into the API Documentation.
  4. RW Access to the Nexus Repository Manager at https://repository.jboss.org/nexus
  5. Upload access to downloads.jboss.org.  (SFTP Public Key; Obtain from Help Desk and eng-systems-mw)
  6. Write access to Magnolia Content Management System
  7. Administrator access to JIRA project key "SHRINKWRAP"

 

Release Procedure

 

  1. Ensure no unresolved blockers are present in JIRA for the version in question
  2. Run a full build and include stress tests to ensure all's working
    [alr@localhost]$ mvn clean install -Pstress
  3. Run Maven to execute the build, run tests, tag, and upload artifacts to Nexus
    [alr@localhost]$ mvn release:clean release:prepare release:perform -s /path/to/settings-with-jboss-nexus-configured.xml
  4. Push the tags to your origin and upstream
    [alr@localhost]$ git push origin master --tags; git push upstream master
  5. Checkout the tag (replace [tagName w/ the name of the tag)
  6. [alr@localhost]$ git checkout -b [tagName] refs/tags/[tagName]
  7. Run the install again, this time including the "site" phase (to package JavaDoc in the distribution as well.  If the install is not done previously to this step, "site" will not be able to find the necessary artifacts).
  8. mvn clean site install
    
  9. Perform any manual checks you'd like upon the release
  10. Log into https://repository.jboss.org/nexus/index.html#welcome and click on "Staging Repositories".  Verify all is in order.
  11. This is the point of no return.

  12. Promote the releases in the "JBoss Release Staging Profile", following: Maven Deploying a Release

  13. Mark the version as "Released" in JIRA.
  14. Bulk update all "Resolved" issues for this version in JIRA to "Closed"
  15. Upload to the Distribution Channel
  16. [alr@localhost target]$ pwd
    /home/alr/business/jboss/git/shrinkwrap/shrinkwrap/dist/target
    [alr@localhost target]$ sftp shrinkwrap@filemgmt.jboss.org
    Connecting to filemgmt.jboss.org...
    sftp> cd downloads_htdocs/shrinkwrap
    sftp> ls -la
    drwxr-xr-x    2 shrinkwrap shrinkwrap     4096 Nov  9 01:34 .
    drwxr-xr-x   27 33       33           4096 Nov  9 00:32 ..
    sftp> mkdir 1.0.0-alpha-2
    sftp> cd 1.0.0-alpha-2
    sftp> put shrinkwrap*
    Uploading shrinkwrap-1.0.0-alpha-2-distribution.tar.bz2 to /htdocs/shrinkwrap/1.0.0-alpha-2/shrinkwrap-1.0.0-alpha-2-distribution.tar.bz2
    shrinkwrap-1.0.0-alpha-2-distribution.tar.bz2                                               100%  527KB  14.7KB/s   00:36    
    Uploading shrinkwrap-1.0.0-alpha-2-distribution.tar.gz to /htdocs/shrinkwrap/1.0.0-alpha-2/shrinkwrap-1.0.0-alpha-2-distribution.tar.gz
    shrinkwrap-1.0.0-alpha-2-distribution.tar.gz                                                100%  611KB  15.3KB/s   00:40    
    Uploading shrinkwrap-1.0.0-alpha-2-distribution.zip to /htdocs/shrinkwrap/1.0.0-alpha-2/shrinkwrap-1.0.0-alpha-2-distribution.zip
    shrinkwrap-1.0.0-alpha-2-distribution.zip                                                   100%  784KB  15.7KB/s   00:50    
    sftp> ls -l
    -rw-rw-r--    1 shrinkwrap shrinkwrap   540090 Nov 15 20:35 shrinkwrap-1.0.0-alpha-2-distribution.tar.bz2
    -rw-rw-r--    1 shrinkwrap shrinkwrap   626089 Nov 15 20:35 shrinkwrap-1.0.0-alpha-2-distribution.tar.gz
    -rw-rw-r--    1 shrinkwrap shrinkwrap   802492 Nov 15 20:36 shrinkwrap-1.0.0-alpha-2-distribution.zip
    sftp> exit
  17. Switch into the directory containing the API Docs, and upload to docs.jboss.org
  18. [alr@localhost ]$ pwd
    /home/alr/business/jboss/git/shrinkwrap/shrinkwrap/api/target/site/apidocs
    [alr@localhost apidocs]$ sftp shrinkwrap@filemgmt.jboss.org
    Connecting to filemgmt.jboss.org...
    sftp> cd docs_htdocs/shrinkwrap
    sftp> mkdir 1.0.0-alpha-7
    sftp> bye
    [alr@localhost apidocs]$ rsync -rv --protocol=28 * shrinkwrap@filemgmt.jboss.org:/docs_htdocs/shrinkwrap/1.0.0-alpha-7
    
    
  19. Update the "latest" symbolic link
    [alr@alr-laptop ~]$ sftp shrinkwrap@filemgmt.jboss.org
    Connected to filemgmt.jboss.org.
    sftp> cd docs_htdocs/shrinkwrap
    sftp> rm latest
    Removing /docs_htdocs/shrinkwrap/latest
    sftp> ln 1.0.0-alpha-11 'latest'
    sftp> bye
    
  20. Log in to Magnolia and update the API JavaDocs link, add the release to the Downloads page, and make a new Announcement.
  21. Ensure the Wiki documentation is up-to-date (ie. account for any API changes or new features)
  22. Update the Release Planning page ShrinkWrap | Release Planning

 

TODO:

Account for Release Notes included in the distribution.