[dev] Seamless/streamlined configuring/upgrading Horde/apps

Josh Endries josh at endries.org
Wed Oct 20 23:02:43 UTC 2010


Quoting Jan Schneider <jan at horde.org>:
> - Until now, it's perfectly possible to run Horde without a  
> database. Requiring a database for configuration would break this.  
> Granted, there won't be many people out there still using Horde  
> without a DB, since they will miss a lot of features, but still.

Yeah, I thought about this. I think one would be hard pressed to find  
someone running Horde without a DB, but it's a value call as to  
whether or not you want to support that environment. It's hard to  
justify, IMHO, with sqlite available, but I wouldn't be surprised if  
others thought differently.

> - One of Horde's strengths and a major selling point are the great  
> customization capabilities. These are closely tied to the fact that  
> all configuration files are PHP scripts that you can fill with any  
> logic you want.

Definitely a drawback... Some things could be worked around, like  
pointing to a hooks.php location, but you would lose the ability to,  
say, choose IMAP params based on the cycle of the moon (which AFAIK  
isn't supported natively :)).

> Regarding upgrade detection: we already have database migration  
> scripts in Horde 4, and detecting required upgrades and starting  
> them from the UI is easy to implement now. And we already offer this  
> for the main configuration files for years.

This is good news, I'm going to have to try out H4. Theoretically I  
could clone my H3 DB and H4 would be able to at least somewhat migrate  
it? Does this affect all apps and the framework in general, or just  
the Horde/framework?

Maybe I've never upgraded properly...though I tried to follow UPGRADE  
docs and whatnot. I don't remember seeing anything about upgrading in  
the UI. I ran the PHP scripts manually (e.g. something like,  
contacts_4_2_to_4_5.sql or whatever).

> Maybe different storage backends for configurations are an option,  
> so you can pick between storing the configuration in db vs. php files.

Another semi-alternative could be allowing config files to exist  
elsewhere. Instead of looking in conf/, check Array(/etc/horde,  
/etc/horde/$app, /usr/local/etc/horde, ./conf) or something like that.  
This would allow drop-in replacements (or side-by-side replacements),  
if one hasn't customized very heavily.

phpBB makes available tarballs with each release for the full thing  
(e.g.: phpbb-5.tbz), diff patches for individual files  
(phpbb-4-to-5-patches.tbz), and whole files for only those files that  
have changed (phpbb-4-to-5-files.tbz). Sometimes the latter two are  
easier to use. Just tossing out another idea. I'm sure you all don't  
have enough to do. :)

Not having used H4 yet, maybe some of this is moot (I hope so!). I'm  
going to go grab it now...

Thanks,
Josh



More information about the dev mailing list