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


      

_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to