From 4f473ff2d2003b69d641aeadd9b9cd06883d4208 Mon Sep 17 00:00:00 2001 From: David Greenspan Date: Tue, 13 Jan 2015 09:30:57 -0800 Subject: [PATCH] =?UTF-8?q?=E2=80=9Cmeteor=20update=E2=80=9D=20can=20updat?= =?UTF-8?q?e=20non-root=20dependencies?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, “meteor update foo” meant “ignore .meteor/versions for foo”, which would upgrade if “foo” was a root dependency, and downgrade if foo was only a transitive dependency. Now, we make sure to try to upgrade foo even if it is not a root dependency. See #3282. --- packages/constraint-solver/constraint-solver.js | 7 +++---- packages/constraint-solver/resolver.js | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/constraint-solver/constraint-solver.js b/packages/constraint-solver/constraint-solver.js index 10b94f9ecb..2cd2925643 100644 --- a/packages/constraint-solver/constraint-solver.js +++ b/packages/constraint-solver/constraint-solver.js @@ -188,7 +188,7 @@ var getCostFunction = function (resolver, options) { }); return { - costFunction: function (state, options) { + costFunction: function (state) { options = options || {}; // very major, major, medium, minor costs // XXX maybe these can be calculated lazily? @@ -228,8 +228,7 @@ var getCostFunction = function (resolver, options) { PV.versionMagnitude(_.last(resolver.unitsVersions[uv.name]).version) - PV.versionMagnitude(uv.version); - if (isRootDep[uv.name]) { - // root dependency + if (isRootDep[uv.name] || _.has(options.upgrade, uv.name)) { // preferably latest cost[MEDIUM] += latestDistance; } else { @@ -246,7 +245,7 @@ var getCostFunction = function (resolver, options) { return cost; }, - estimateCostFunction: function (state, options) { + estimateCostFunction: function (state) { options = options || {}; var cost = [0, 0, 0, 0]; diff --git a/packages/constraint-solver/resolver.js b/packages/constraint-solver/resolver.js index 912c547142..bf758c2e82 100644 --- a/packages/constraint-solver/resolver.js +++ b/packages/constraint-solver/resolver.js @@ -77,7 +77,7 @@ ConstraintSolver.Resolver.prototype.getConstraint = }; // options: Object: -// - costFunction: function (state, options) - given a state evaluates its cost +// - costFunction: function (state) - given a state evaluates its cost // - estimateCostFunction: function (state) - given a state, evaluates the // estimated cost of the best path from state to a final state // - combineCostFunction: function (cost, cost) - given two costs (obtained by