Just wondering if anyone out there is practicing any form of continuous delivery with their JADE systems
Hey there,
A client of mine releases software updates (fixes and enhancements) on a daily basis. They have a JADE system that tracks individual units of change (called a "log"). In the wee hours of every morning this automatically makes the next upgrade (in a compressed file called a "package") and tests the application of it to a dozen different databases. If all goes well (i.e. the upgrade applies and there are no compile errors afterwards) then the package is uploaded to our FTP site, and an install shield installed is rebuilt with the new version and also uploaded. This is for the benefit of over 1200 JADE installations. It's up to the site (and their reseller) as to when they take these updates. Some take them regularly while others have a 6 month delay between updates. We have a custom written application (developed in C++) which is responsible for applying the upgrade(s) to the database. At the moment this is purely an offline process. All configuration (such as which schema and app to run, ini settings, app servers to connect to) is stored in the database server, and the client workstations use software (also developed in C++) each time they connect which first gets these settings (and many others) before executing jade.exe. This allows configuration changes to be made in a single location (in the JADE database) and all client workstations "magically" use those new settings the next time they connect. <shameless plug>This "connection management" software is in use by a number of JADE development teams, and can be used by you too! Just ask me</shameless plug>.
The only way we can do daily releases it to be able to use the change control provided by JADE deltas. We do not use patch versioning at all.
Cheers,
Allistar.