So. I checked out a copy of phase3 and extensions to start working on investigating the
feasibility of a comprehensive parser regression test. After getting the working copy
downloaded, I do what I usually do - blow away the extensions directory stub that comes
with phase3 and soft link the downloaded copy of extensions in its place. I then began
familiarizing myself with DumpHTML by starting it up in a debugger. Guess what happened.
If fell over. Why? Because DumpHTML is yet another software module that computes the value
$IP. So what? Well, DumpHTML.php is located in ../extensions/DumpHTML. At line 57-59 it
executes:
$IP = getenv( 'MW_INSTALL_PATH' );
if ( $IP === false ) {
$IP = dirname(__FILE__).'/../..';
}
This works on a deployed version of MW, since the extensions directory is embedded in
/phase3. But, in a development version, where /extensions is a separate subdirectory,
"./../.." does not get you to phase3, it gets you to MW root. So, when you
execute the next line:
require_once( $IP."/maintenance/commandLine.inc" );
DumpHTML fails.
Of course, since I am going to change DumpHTML anyway, I can move it to
/phase3/maintenance and change the '/../..' to '/..' and get on with it.
But, for someone attempting to fix bugs in DumpHTML, the code that uses a knowledge of
where DumpHTML.php is in the distribution tree is an issue.
Dan