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/job... the line starting with bash)
Cheers
-- Jeroen De Dauw http://www.bn2vs.com Don't panic. Don't be evil. ~=[,,_,,]:3 --