Hey,
The main issue, though, that I was hoping Composer could solve, was not
extension installation but extension dependencies.
The most common for of extension dependencies are other extensions, so in
practice there appears to be little distinction there. If we allow
installation of extensions A, B and C since they are needed by extension D,
then why would we not allow installing extension D in one go as well? Not
much extra effort is needed. There is also not much need to make a
distinction between if it is a "MediaWiki extension" or a third party
library.
I fully agree with you that resolving these kinds of dependencies is what
Composer is for, and that it would be very nice if we could use it to
install all dependencies for some extension. That is the main thing I want
to get out of Composer. And this is already working to a big extend for
some extensions. For instance you can install Wikibase QueryEngine using
"composer create-project wikibase/query-engine:dev-master
WikibaseQueryEngine --keep-vcs". Which will install its 5 dependencies,
including 1 indirect one [0]. When doing so, one still has to include
WikibaseQueryEngine in LocalSettings however, since the composer autoloader
is not loaded. Furthermore, if done like this, you end up with the
dependencies under core/extensions/WikibaseQueryEngine/vendor, and will
have them multiple times if you do other such installs in the extensions
directory. This is thus not a good way to use Composer for installing
extensions within a project such as MW. If we follow one of the approaches
Hashar described in his last mail, we do not have these issues.
[0] You can see this working here
https://travis-ci.org/wikimedia/mediawiki-extensions-WikibaseQueryEngine/jo…
the line starting with bash)
Cheers
--
Jeroen De Dauw
http://www.bn2vs.com
Don't panic. Don't be evil. ~=[,,_,,]:3
--