You are not logged in. Click here to log in.

Application Lifecycle Management

Search In Project

Search inClear

Tags:  not added yet

Building and Releasing OMS Modules and Distributions.

Source Checkout

There are two main source trees required to checkout, one for building and one for deploying OMS. Both are related; the OMS deployment tree required the build tree to be checked out.

OMS URL
Source Tree https://colab.sc.egov.usda.gov/svn/oms/???
Deployment Tree https://colab.sc.egov.usda.gov/svn/oms/???

It is recommended to check out the build and deployment tree as nb5 and nb-server so you end up having this kind of layout on your box:

  +- ...
     +- nb5
     |  +- analysistool   
     |  +- libs     
     |  +- modelbuilder
     |  +- omsbuild 
     |  +- test
     |  +- fortransupport 
     |  +- mmstools 
     |  +- modelcore  
     |  +- omslibs  
     |  +- thornthwaite
     |
     +- nb5-server
        +- omsserver
        +- webdoc

You can set the root location of the nb5 source tree by editing the file build.properties in the omsserver folder. Note that the location of the checkout.dir folder has to be relative to the omsserver folder.

checkout.dir=../../nb5

Build/Release

Change into nb5-server/omsserver and use the build.xml file.
$ cd nb5-server/omsserver
$ ant -projecthelp
Buildfile: build.xml

   Build the omsserver website, distribution,
   release the dist or single modules.
    

Main targets:

 all              clean and build site
 clean            Cleans up the temporary dir.
 release-all      deploys a list of modules and dist:
   ant -Ddist.version=2.0dev -Ddist.modules='analysistool modelbuilder' release-all
 release-clean    Cleans up the release dir.
 release-dist     deploys the distribution: ant -Ddist.version=2.0dev release-dist
 release-modules  deploys a list of modules:
   ant -Ddist.version=2.0dev -Dmilestone.id=16234
   -Ddist.modules='analysistool,modelbuilder' release-modules
 release-webdoc   Release the whole web doc.
 site             make the whole site, all modules, static webdoc, and distro
Default target: all


For releasing individual modules the follwing Build arguments have to be used:

Modules

Module to release Build argument to be used
org.omscentral.modules.analysistool analysistool
org.omscentral.modules.etcetera omslibs/etcetera
org.omscentral.modules.mmsio omslibs/mmsio
org.omscentral.modules.netcdf omslibs/netcdf
org.omscentral.modules.plot omslibs/plot
org.omscentral.modules.spreadsheet omslibs/spreadsheet
org.omscentral.modules.statistics omslibs/statistics
org.omscentral.modules.tableapi omslibs/tableapi
org.omscentral.modules.tableio omslibs/tableio
org.omscentral.modules.modelbuilder modelbuilder
org.omscentral.modules.modelcore modelcore
org.omscentral.modules.omsapi modelcore/omsapi
org.omscentral.modules.omscore modelcore/omscore
org.omscentral.modules.projects modelcore/projects
org.omscentral.modules.omsui omsbuild/omsui
org.omscentral.modules.upgrader omsbuild/upgrader
org.omscentral.modules.gcc gcc

Release Process

Release a new set of modules using the ant release-modules task

Here are the steps to be performed releasing a set of modules for testing/deployment:

  • Put all Tasks (Defects/Requests) into status "Development completed"
  • Execute the report that filters for these items.
  • Export the result into Excel or WIKI (4.0 preferred).
  • Create a new milestone tracker item with a useful name (dev1, update 3)
  • Copy the report result to this tracker item (either description or attachment or comment).
  • Set the tracker date, assigment, etc. to specify the release.
  • Capture the milestone tracker ID (e.g. 12345)!
  • Determine which modules to release (e.g. modelbuilder and modelcore based on the category field in the list of Defects and Requests.
  • release the modules in ../nb5-server/omsserver
     ant  -Ddist.version=2.0dev 
                  -Ddist.modules="modelcore/projects,modelcore,modelbuilder,omsbuild/omsui" 
                  -Dmilestone.id=12345 release-modules \\  
      
    • dist.version specifies the version for distribution. If missing the default value is taken from nb5/msbuild/etc/omsdist.properties Modify nb5/msbuild/etc/omsdist.properties for defaults
       \\    dist.version   = 2.0 \\    dist.host      = http://oms.ars.usda.gov/ \\    
    • dist.modules comma separated list of modules to be built and released (required).
    • milestone.id CB milestone tracker ID (required).
    • leaf projects first (modelcore/projects before modelcore in the dist.modules list.
    • bumps the manifest.mf OpenIDE-Module-Specification-Version version by one.
    • sets the manifest.mf OpenIDE-Module-Build-Version the milestone ID
    • builds the module's nbm.
    • commits the module to the trunk; commit message with milestone ID for svnloop plus spec and revision number
    • No documentation gets generated, a catalog.xml descriptor gets generated in the 'htdocs/download/dist.version' folder.
  • Sync it up with the webserver, execute in ../nb5-server/omsserver
     \\  $make sync \\  
  • Set all "Delelopment Completed" items to "Ready for Testing" by using the "Mass Edit" feature.

Release a new distribution using the ant release-dist task

Provide the distribution version property for the release-dist target. No web-site documentation is being generated, no module catalog either.

$ ant -Ddist.version=2.0dev release-dist

Sync it up again with the web server

 \\  $make sync \\  

Where resides which information about the release

OMS Module Info properties
Specification <spec number>, Build: <CB milestone id>
SVN Commit message #: <CB milestone id> <modulename> <spec number> <rev number>
CB Milestone tracker commit history
<modulename> <spec number> <rev number>