unibuilds need to be rebuilt if their plugins are

Basically, this branch is moving back to the pre-0.9.0 model where you
tell if a dependent package has changed by explicitly putting its
relevant files in your watchset, instead of by including a "build
identifier" which requires a relatively complex calculation.

Notably, let's say you had package P with a plugin, and a package Q that
depends on it.  If a file in P that's neither part of the plugin nor the
package.js changes, you don't have to rebuild Q... but it did change the
0.9.0 "build identifier", which caused an unnecessary rebuild!
This commit is contained in:
David Glasser
2014-11-10 21:51:36 -08:00
parent 685df046d0
commit 4a516fef87

View File

@@ -222,6 +222,11 @@ var compileUnibuild = function (options) {
if (unibuild.pkg.name === isopk.name)
return;
pluginProviderPackageNames[unibuild.pkg.name] = true;
// If other package is built from source, then we need to rebuild this
// package if any file in the other package that could define a plugin
// changes.
watchSet.merge(unibuild.pkg.pluginWatchSet);
if (_.isEmpty(unibuild.pkg.plugins))
return;
activePluginPackages.push(unibuild.pkg);