Description:
Write a module to capture the current configuration of Drupal. This task can be divided into three main steps:
1) Changes to global variables, as in via variable_set() commands. These should be collected, compared with defaults, and displayed to an admin on the Drupal page for this module.
2) Changes to the database. These should be collected, compared with the default from an install based on default.profile, and displayed to an admin on the Drupal page for this module.
3) Changes to the file system. These should be collected and displayed to an admin on the Drupal page for this module. It should scan the site's file system as well as the sites/ directory. For example, it might collect that mysiteslogo.png has been added.
This could be one task, or divided into multiple tasks (up to 3). The idea is that you can install Drupal, enable this module, and at any time, go to an admin page to get the "status" of your website: the variable changes, the database changes, and the file changes are all displayed. This could be very helpful in development of modules, themes, and (especially) writing installation profiles. It could even (in the future) possibly actually generate code for an installation profile based on the site's status.
The power of this would be enormous: at any time, you can get a detailed summary of your site's status in very little time. This module will be written for Drupal 6. If this task is to be limited, sections (1) and (2) are the most critical. The code generation should definitely wait.
Primary contact: cwgordon7
Resources:
Drupal api: http://api.drupal.org
Dba module: http://drupal.org/project/dba - Already gives information about the database in Drupal. Look at it for help/ideas.
Devel module: http://drupal.org/project/devel - Has a variable editor, look at the code for ideas about the variable part.
-cwgordon7
Any ideas would be welcome and appreciated.
Comments
Comment #1
keith.smith commentedAlso see the sitedoc module at http://drupal.org/project/sitedoc.
(I've never used it but I think it does something similar.)
Comment #2
dman commentedYep, nancyw's sitedoc does the first part of that, it's quite verbose.
What it needs is a few people to kick the tyres and actually ask the hard questions of it and see if it does tell you the answers you want.
Perhaps a user-friendly review of it is needed.
I think idea 3 is OK - I've been thinking of a file audit also. Perhaps a task could be to ADD a file audit to the sitedoc. That's a doable task.
As for "changes to the database" - that's just too big and hairy. That would include things like defined content types, defined views, defined fields, and anything ever done through the admin interface, all done in different ways through different modules.
That's really hard to present in a viewable way!
I've done lots of different jobs with site synchronization, including running "diff" on mysql dumps, Comparing admin form values between sites, using xmlrpc to compare drupal data objects directly between sites...
I know what we'd be looking for in a power-user config-dump tool, and this is way too big for an outsider to pick up and do. You really need to have worked inside the system before you know what the relevant questions to ask are.
I really like the idea of drawing out the settings that would be relevant to install profile configs. I think there was a profilemaker module to be done once ... not sure ...
Comment #3
cwgordon7 commentedThis is the thing I love about Drupal - one person makes a feature request, and it turns out that there's already a module for it!
Setting to "won't fix" because it already exists- feel free to change it if you can think of a way to turn it into a doable task that doesn't duplicate already-created work.