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 \\
- 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 \\
- 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>