google/maktaba — pull request #28 by dbarnett (2014-01-18 22:08:38+00:00)
Title: Add support for checking dependencies from VAM addon-info.json

Introduces limited support for the addon-info.json standard, detecting if addon-info.json is present when installing a plugin and installing all dependencies via `maktaba#library#Import`.

This has several advantages over just tracking dependencies via `maktaba#library#Require` calls:
* It's declarative, so it's not maktaba-dependent and can be used by other plugin managers / frameworks.
* Dependencies get satisfied immediately as the plugin is being installed, so you don't get surprised by missing dependencies later on when you're trying to use some functionality.
* It's evaluated by maktaba with full knowledge of e.g. which plugin the dependency is for, so it can give much better error messages in failure scenarios.

I introduced a `BadDependency` type for dependency errors, since allowing the `NotFound` error to bubble up from plugin installation code implies that the requested plugin itself wasn't found.