#36: Separate out installation of the OpenGuides software from installing a guide ------------------------+--------------------------------------------------- Reporter: ivorw | Owner: Type: enhancement | Status: new Priority: normal | Version: 0.51 Severity: normal | Keywords: ------------------------+--------------------------------------------------- Currently, the install of [http://search.cpan.org/~dom/OpenGuides/ OpenGuides] is tricky, and doesn't allow a great deal of flexibility:
* Running more than one guide on the same host * Upgrading the software
It is proposed that the install process be split into two distinct steps:
./Build install # install the software, run as root
./Build guide # Ask all the config questions about setting up a guide # Set up the wiki.conf, CGI and database tables, run as www-data
Thus a CPAN(PLUS) or Debian apt-get install will only install the software, and not any guides. This exact mechanism can be used for software upgrades with the minimum of human effort.
As a side effect, the test suite will need revising, as the answers to the config questions about databases will not be known at this point.
Currently, the test suite is run against all the supported database drivers found (MySQL, pg, SQLite). These are destructive tests that are run against the databases concerned, and could have a devastating effect if run against the real production database.
I propose that instead, there are two options for running the test suite, either minimally via an SQLite throwaway database (the default), or running the tests against the full range of databases on the target machine - a full test. To do this will involve another new build target:
./Build testconfig # probe system for database drivers, and get authentification info
Once testconfig has been run, the test suite will run against all test databases, and the schemae and test data will be torn down on completion, and also at the beginning if the databases appear non-empty.
A full test with testconfig against all database platforms is recommended before shipping releases.
Note, this change will also insist on making DBD::SQLite a prerequisite module.