SoC install script refinements
The install script is one of the very first things a new Geeklog user encounters. Therefore, it's important that it's easy to use, supports the user in installing, updating and migrating a Geeklog site while being robust and providing helpful hints and error messages.
The current install script was originally implemented as a GSoC project in 2007 and further improved upon in GSoC 2008. We're still pretty happy with it, but there's always room for improvement. And this is what this GSoC project is about.
Think evolution not revolution.
The following is a rather random list of - mostly minor - issues where the install script could be improved.
Error Handling and Usability
- Better error reporting on install problems (also: debugging, mostly for developers). This is sort of a bootstrapping problem: With the site being in the process of being installed, it's often tricky to provide useful error messages and a recovery from the problem.
- More specific and more conservative checks and recommendations for file and directory permissions: Right now, the install script gives rather liberal recommendations for permissions. It could check what's actually required and be more precise.
- Let the user continue with installation even when certain files/directories are not writable: Disable the feature that needs it, but finish the installation (where possible)
- The install script could possibly even offer to attempt to fix read/write permissions where they do not match the required setting. Note that this may not be possible on some hosting platforms.
- Add proper HTML title tags in the install script (all pages of the install script currently use the same title, which makes it confusing in the browser's history).
- Character Set Conversion: Say you initially set up your Geeklog site to use ISO-8859-1 and want to switch to UTF-8 now. All the content would have to be converted manually. The install script could do that for you instead.
- Allow for localized install data. Currently, a fresh setup is always in English, with English default stories, preferences, etc.
- Build install/admin/info.php into the install script.
- Add a maintenance" option at the end of the install or upgrade process where we could offer (re)setting certain options, e.g. when a default changed, so that the user can opt to change the default for every user (or not).
- A technicality: the plugin upload from within Geeklog uses the unpacker class, while the install script only relies on the PEAR Tar and Zip packages, so you may not be able to add some plugin archives in the install script (another bootstrap problem - the location of said class may not be known yet when it's needed).
Database Migration (optional)
The vast majority of our users is using MySQL. So the following ideas, while useful for those who cannot or do not want to use MySQL, are less important right now. Consider them optional:
- The Site Migration feature should also work for PostgreSQL and/or MS SQL
- Implement a Database Migration, i.e. allow switching from Postgres to MySQL or MS SQL or the other way around
Your idea here
As explained above, we are not looking for an entirely new install script or any radical changes in this project. We are, however, open to new ideas. Someone who's new to Geeklog (that would be you) can probably look at the install process from a fresh perspective and suggest improvements. Let us hear them.
Level of Difficulty
low to medium
The proposed changes aren't overly difficult but require a lot of attention to detail and testing.
Possible mentor: Dirk Haun