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