Vanilla now uses Composer

Yesterday, we merged a change to master branch that greatly effects how folks interact with the repository: we switched to Composer.

This means it is no longer possible to simply clone the repo into a web directory and run Vanilla. In developer parlance, the source code and the runtime code have diverged. Now to build Vanilla's runtime code, you must install Composer. This is only necessary if you are running a non-official version directly from GitHub - the releases on this site will continue to work normally because we will be pre-building those for you (using Phing, if you're interested).

Composer will eventually replace the entire /library/vendors directory, in addition to being the autoloader for /library/core files. For dependencies without Composer support we'll make a wrapper for them.

Unfortunately, it will not be possible to directly manage addons using Composer. Our plugin structure demands that disabled addons never have their files autoloaded, which is not something Composer can support.

Why we added Composer:

Vastly easier dependency management.

It's had wide support in the PHP community for quite some time.

Other Composer-based projects can now easily use Vanilla if they want.

@Linc said:
More architectural improvements like this are coming soon.

I'm a fan of using standards and reusing work someone else has already done! But only questions comes directly to my mind when reading this: will all those changes be applied for Vanilla 2.2 and wouldn't that have big influence on the release date?

Could these be excluded using phing instead?
Having to download the composer files manually to build from the archive is cumbersome when you are on a machine without git. (And sometimes you don't want to clone the entire repository to quickly test something.)

Yep that sounds a lot more stable. I think phpbrew is a good idea, but getting it working with all the servers buggy. At least with vagrant once set up switiching is easy. Besides as you are testing HHVM phpbrew would be useless for that.