On 27.09.2012, 3:26 Krinkle wrote:
On Sep 26, 2012, at 8:01 PM, Niklas Laxström niklas.laxstrom@gmail.com wrote:
On 26 September 2012 10:08, Krinkle krinklemail@gmail.com wrote:
Another problem I found in the current setup is that its a bit counter-intuitive how to manage the directory structure for developers. I mean, most of us probably have this:
- mediawiki
- /core (clone mediawiki/core.git)
- /extensions (directory with clones of individual extensions or clone of mediawiki/extensions.git tracking repo)
In SVN time extensions were a subdir of mediawiki core and I doubt that everyone has suddenly decided to change it. At least I haven't. -Niklas
No, not at all. They never were and never will.
In svn we have:
[mediawiki]
- trunk/
- phase3/
- extensions/
Extensions has always been besides never inside core.
Of course in unversioned installations (e.g. tarballs) we put extensions in the extensions subdirectory. And even in versioned installations, one can
- git clone individual extensions in the extensions directory
- git clone extensions next to core and place symlinks for invidual
extensions in the extensions directory
But if someone simply clones the mediawiki/extensions.git tracking repository, then it is kind of annoying to have to put symlinks in place. I have my local dev environment set up like this:
$wgScriptPath = '/mediawiki/core'; $wgExtensionAssetsPath = '/mediawiki/extensions'; $extDir = dirname( $IP ) . '/extensions';
require_once( "$extDir/Vector/Vector.php" );
This approach has a problem:
Let's take a look at random extension's (AbuseFilter was in the beginning of directory listing) maintenance script:
require_once ( getenv( 'MW_INSTALL_PATH' ) !== false ? getenv( 'MW_INSTALL_PATH' ) . "/maintenance/commandLine.inc" : dirname( __FILE__ ) . '/../../maintenance/commandLine.inc' );
If MW_INSTALL_PATH is not set (and nobody sets it), this layout will break all the maintenance scripts. And there are more way extensions rely on themselves being present in $IP/extensions