Here describe the steps taken to create a release of ShrinkWrap.
Prerequisites
- Proper Maven Configuration using JBoss' Nexus instance: Maven Getting Started - Developers
- JBoss Employee (Some resources for uploading of artifacts and documentation are restricted behind the VPN)
- 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.
- RW Access to the Nexus Repository Manager at https://repository.jboss.org/nexus
- Upload access to downloads.jboss.org. (SFTP Public Key; Obtain from Help Desk and eng-systems-mw)
- Write access to Magnolia Content Management System
- Administrator access to JIRA project key "SHRINKWRAP"
Release Procedure
- Ensure no unresolved blockers are present in JIRA for the version in question
- Run a full build and include stress tests to ensure all's working
[alr@localhost]$ mvn clean install -Pstress
- 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
- Push the tags to your origin and upstream
[alr@localhost]$ git push origin master --tags; git push upstream master
- Checkout the tag (replace [tagName w/ the name of the tag)
[alr@localhost]$ git checkout -b [tagName] refs/tags/[tagName]
- 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).
mvn clean site install
- Perform any manual checks you'd like upon the release
- Log into https://repository.jboss.org/nexus/index.html#welcome and click on "Staging Repositories". Verify all is in order.
This is the point of no return.
Promote the releases in the "JBoss Release Staging Profile", following: Maven Deploying a Release
- Mark the version as "Released" in JIRA.
- Bulk update all "Resolved" issues for this version in JIRA to "Closed"
- Upload to the Distribution Channel
[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
- Switch into the directory containing the API Docs, and upload to docs.jboss.org
[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
- 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
- Log in to Magnolia and update the API JavaDocs link, add the release to the Downloads page, and make a new Announcement.
- Ensure the Wiki documentation is up-to-date (ie. account for any API changes or new features)
- Update the Release Planning page ShrinkWrap | Release Planning
TODO:
Account for Release Notes included in the distribution.
Comments