Module Management
Table of Contents
The following tasks need to be taken care of in order for full module management to be implemented:
for CLI installs
- module dependencies need to be resolved
- see what ideas can be adapted from the SimpleSeagull project
PEAR Server setup (requires PHP5)- bug needs to be resolved which causes uploading of current seagull PEAR archive to fail (xml-rpc debugging)
Pear_PackageFileManager v2 needs to be developed (it will produce package2.xml files), this will be used to automatically generate the package files for all the modules (liaise with Greg Beaver)looks like above will have to be hacked with current PackageFileManager, pear convert, and XML_Tree- PEAR lib dependencies will be tied to current modules installed, so SGL::import() type method required to wrap PEAR includes so they can die gracefully on failure
- resolution of package2.xml notation required
- creation of generatePackage.php builder files for each module
- all table variable names ($conftable?user?) must be stored in the conf.ini files for each module
- installation should be handled by a seagull installer which has the advantage of not requiring root access like the post install scripts invoked from the new PEAR installer - the seagull installer will also have the advantage of PEAR::DB instance with the ability to create and populate schemas
- in addition to the current attributes, module entities also need the ability to be hidden, to have author/license info, status info
- ideally a better parser implementation needs to be done to deal with reading SQL definitions (see precog)
- current installer class needs to become more sophisticated:
- concept of pre and post tasks needs to be introduced, like in PEAR installer
- requirement for SGL_Installer to implement following methods (these will wrap DAL methods):
addPerm/delPerm- addPage/delPage
- addBlock/delBlock
- addCategory/delCategory
- addModule/delModule
addPref/delPref
- SQL constraint issues on install should be dealt with by disabling constraint checking during install, and this way be stored in table definitions, not separate constraint files
- the module installer screen will need to be updated to accomodate new functionality
- the same installer must be capable of initial install, subsequent module installs, uninstalls, and updates
for web installs
- HTML_Template_IT needs to be decoupled from PEAR_Frontend_Web, the template-neutral driver Seagull's flexy can be used
