Hi,
did somebody of you consider to implement an automatic software update service for OpenACS? Or is there already some code around?
Our idea is to provide relatively "non-technical users" with a software update service very much like "Yast Online Update" that automatically checks for available updates and automates the task of patching the system.
Such a service would go beyond the (great!) APM service, because it would automatically check for new software versions, download them and update the /packages/* folder. Then it would redirect to /acs-admin/apm/.
There are several considerations:
1. Updates using CVS or via .apm download: Both could be an option. Updates via CVS would have the advantage that (small) user modifications might be preserved. APMs are already somehow integrated into the current APM. => I think CVS would be easier to implement, because a "cvs update -r xxx" would be sufficient.
2. File format to store version information: XML is probably best suited, but are there already standard formats (DTDs) for this type of information? => We'd probably go for a simple format with a list of versions composed of version name, release date, description and some additional fields.
3. Security and Authentication: Is there a (relatively) easy way to introduce a server authentication so that the updating user can be sure he doesn't download any spoofed stuff?
4. Backup and Roll-Back: Such an update service should have the option to roll-back the changes. Should it? The code could be rolled back by issuing another "cvs udpate -r xxx", so we basicly would have to remind the user to perform a database backup.
5. Different Update Sources or CVS Servers: We are hosting the Project/Open module on a CVS different from OpenACS, because we have some proprietary modules ("ISO 9000 Translation Quality" and an automatic "Translation RFQ/RFC Marketplace"). So there would be updates from two different CVS servers. Is this P/O specific or is it the generic case? => We'd probably include the "URL" of the CVS server for each module to be updated.
Just some ideas... I think the main question is whether to use .APM files or CVS.
Bests,
Frank