From 4a516fef87cbe1a4e2091b0320cfa8c8012dc499 Mon Sep 17 00:00:00 2001 From: David Glasser Date: Mon, 10 Nov 2014 21:51:36 -0800 Subject: [PATCH] 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! --- tools/isopack-compiler.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/isopack-compiler.js b/tools/isopack-compiler.js index 29a36b13af..688f4e028a 100644 --- a/tools/isopack-compiler.js +++ b/tools/isopack-compiler.js @@ -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);