Page MenuHomePhabricator

installer breaks when extensions depend on each other
Closed, ResolvedPublic

Description

For example, SemanticDrilldown will cause an installer failure if it is selected but SemanticMediawiki hasn't been loaded by the installer yet.

Dependency checks done by the extension, but I think they could be done by the installer better.


Version: 1.17.x
Severity: normal

Details

Reference
bz29134

Related Objects

StatusAssignedTask
OpenNone
OpenNone
OpenNone
ResolvedCCicalese_WMF
ResolvedLegoktm
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
InvalidNone
StalledNone
OpenNone
OpenNone
OpenNone
OpenNone
ResolvedDaimona
OpenNone
Resolvedmatej_suchanek
ResolvedDaimona
OpenDaimona
Resolvedmatej_suchanek
Resolvedmatej_suchanek
ResolvedDaimona
OpenDaimona
OpenNone
StalledNone
OpenDaimona
OpenDaimona
OpenDaimona
OpenDaimona
OpenDaimona
StalledDaimona
OpenNone
OpenNone
StalledNone
Resolveddemon
ResolvedLegoktm
OpenNone
OpenNone
OpenNone

Event Timeline

bzimport raised the priority of this task from to Normal.Nov 21 2014, 11:29 PM
bzimport added a project: MediaWiki-Installer.
bzimport set Reference to bz29134.
bzimport added a subscriber: Unknown Object (MLST).
Reedy added a comment.May 25 2011, 3:43 PM

We'd have to standardise some way of noting depedancies

brion added a comment.May 25 2011, 6:47 PM

Chad, did we ever standardize on some extension metadata for the installer & configuration stuff? If not it's probably time for us to whip that out and see what we can do, at least for the name/author/url/depedency basics.

Be pretty spiffy to have that in for 1.18's installer; even if most config's still going to be separate a helper for enabling extensions is very useful, and I really want to push the idea of shipping some default extensions like ParserFunctions and WikiEditor.

$wgExtensionCredits['other'][] = array(
'path' => FILE,
'name' => 'Foo',
'author' => array( 'Foo Barson' ),
'url' => 'http://mediawiki.org/wiki/Extension:Foo',
'descriptionmsg' => 'foo-desc',
'dependencies' => array( 'bar', 'baz', 'lulz' ),
);

?

brion added a comment.May 25 2011, 6:54 PM

PHP code is probably not the best idea; to read it we'd need to execute the file, which starts modifying the program state.

We could play tricks with dividing the file up into parts and executing part of it, but honestly that just skeezes me out. :)

Metadata needs to be readable without executing any code, so we can pull it in for all available extensions with no security risk.

Osnard added a subscriber: Osnard.Sep 19 2016, 7:15 AM

Waking up this thread as it may still be relveant. Since some time now "extension.json" file can be used to store such a information. There ia actually already a field reserved in the schema.

Meno25 removed a subscriber: Meno25.Sep 19 2016, 8:16 AM
Legoktm claimed this task.Apr 12 2018, 6:58 AM

Change 424967 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[mediawiki/core@master] Handle extension dependencies in the installer

https://gerrit.wikimedia.org/r/424967

Change 424967 merged by jenkins-bot:
[mediawiki/core@master] Handle extension dependencies in the installer

https://gerrit.wikimedia.org/r/424967

Legoktm closed this task as Resolved.Apr 17 2018, 3:20 PM