Deploying updated libraries (was Replacing Omnis VCS with SVN/Git type repository)
Mike Matthews
omnis at lineal.co.uk
Tue Jan 2 10:27:51 EST 2018
We use a boot loader app as well. This then load libs that are present in a sub folder structure. Yes, these folders are hard coded to suit us however.
The sub libs are then opened in alphabetical order.
Our version number is held in the customer DB and compared against $methodText in the main lib.
When there is a mismatch between the DB version and the $methodText for that user's installation, we run AutoUpdater to close the existing libs and replace them with current ones. We can use either a standard file share point (AFP/SMB), HTTP or FTP to get these new libs. We replace the whole lot, and not just a few. None of them are compressed.
We also update xcomps at this stage if required. But that does require a restart of Omnis, which we currently let the user do themselves, as this happens so infrequently. So the Python restarter would be neat of course.
Mike
Mike Matthews, Managing Director, Lineal Software Solutions Ltd
Apple Reseller, Microsoft Partner, SQLWorks Business Partner
phone: 01271 375999 | web: lineal.co.uk <http://www.lineal.co.uk/> | email: mike.matthews at lineal.co.uk <mailto:mike.matthews at lineal.co.uk>
>
>
> ok, no as far as libraries for start-up go, I think we are like alex.
>
>
> we have one library called ‘BootLibrary.lbs’ It opens the libraries within a sub folder called TM in a specified order. so our structure within ‘firstRunInstall’ is
>
>
> Startup
> — BootLibrary.lbs
> — TM (folder)
> ——— Theatre.lbs
> ——— spell check libraries
>
>
>
>
> the FUNCTIONS within BootLibrary.lbs is twofold
>
> 1) on startup the first time, it opens the libraries in a specific order. Yes it is in Code, but as Alex points out, its a short step to put it into a configuration list (I like this idea).
>
>
>
> 2) Our updates come from the customers’ database since we’ve made that the central repository of code. Specifically:
>
> - the new library (s) are put into a field in the database in Compress format using some method. We have a daemon that watches out site, downloads, inserts into customer database ready to deploy
>
> - a version number is incremented
>
>
> and when the customer logs in, we look at the version file. If there is a newer version of Theatre.lbs, we read it, uncompress it, stick it into the TM folder and then call it. This allows different versions of Studio runtimes to open the file and launch the application. My holiday testing was making Studio 5 and studio 8 co-exist and auto-update the library file.
>
>
>
> this approach easily be expanded to have a compressed set of multiple libraries … so the BootLibrary could decompress and install all versions.
>
>
>
>
> 3) and we have a restarter library (python) that we’ve given away in the past that you can call .. and it will nicely help omnis shutdown, including the boot library, and then it will restart the boot library with the user’s login credentials .. after decompressing the updated libraries.
>
>
> makes a very nice ‘update me while I’m idle and running Studio’ capability.
>
>
>
> anyway.. a topic for next euromnis for sure — updating on the run.
>
>
>
>
> thats what we did. happy to give away our library as well.
>
> and again… where this whole open source stuff is going. we all have needs for these little helpers .. and we can write once, deploy many places and save ourselves a bunch of time.
>
>
> woo hoo. looking forward to mailchimp !!!
>
>
>
> Doug Easterbrook
> Arts Management Systems Ltd.
> mailto:doug at artsman.com
> http://www.artsman.com
> Phone (403) 650-1978
>
>
More information about the omnisdev-en
mailing list