The rave.missing feature is meant to supply missing metadata properties until a third-party package author fixes their package.json or bower.json file(s). This feature works for some properties, such as "main", but not for others, such as "dependencies".
In the case of "dependencies", it doesn't work for two reasons:
rave.missing overrides rave's abstraction of the metadata properties, not the actual metadata properties, and rave's abstracted property is named "deps", not "dependencies".
Rave supplies a default "deps" property, so the rave.missing algorithm never detects that it's missing.
There are really two problems here:
rave.missing really needs to override the actual metadata properties, not rave's abstraction of them. This will take some refactoring, but needs to be done.
Rave shouldn't supply default values for the actual metadata properties. It must only supply defaults for it's abstraction. (Rave supplies defaults to simplify and accelerate internal logic.)
This is fixed in the crawl branch... although my choice of using "dependencies" is strange since I can't think of a valid use case for overriding this particular property. :)
The
rave.missing
feature is meant to supply missing metadata properties until a third-party package author fixes their package.json or bower.json file(s). This feature works for some properties, such as "main", but not for others, such as "dependencies".In the case of "dependencies", it doesn't work for two reasons:
rave.missing
overrides rave's abstraction of the metadata properties, not the actual metadata properties, and rave's abstracted property is named "deps", not "dependencies".rave.missing
algorithm never detects that it's missing.There are really two problems here:
rave.missing
really needs to override the actual metadata properties, not rave's abstraction of them. This will take some refactoring, but needs to be done.