From 0d128ffbb5dcd9d61895cdbdc4bd39e320527912 Mon Sep 17 00:00:00 2001 From: Avital Oliver Date: Wed, 24 Sep 2014 17:44:44 -0700 Subject: [PATCH] Change output range for PackageVersionParser.versionMagnitude It's now back to returning 10000 for "1.0.0", as it was before the recent changes to allow for wrapped package version numbers and prerelease versions. Given that there are other constants in the cost function used in the constraint solver, this gives us much more confidence that we haven't fundamentally changed the behavior of `meteor add` or `meteor update` in 0.9.3. --- .../package-version-parser-tests.js | 11 +++++++---- tools/package-version-parser.js | 12 ++++++------ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/package-version-parser/package-version-parser-tests.js b/packages/package-version-parser/package-version-parser-tests.js index a55e499230..b934f88b9c 100644 --- a/packages/package-version-parser/package-version-parser-tests.js +++ b/packages/package-version-parser/package-version-parser-tests.js @@ -153,16 +153,19 @@ Tinytest.add( }; compare("1.0.0", "1.2.0", "<"); - compare("1.0.0_200", "1.2.0", "<"); + compare("1.0.0_50", "1.0.1", "<"); + compare("1.0.0_50", "1.2.0", "<"); compare("1.0.0_1", "1.0.0_2", "<"); compare("1.0.0_2", "1.0.0_10", "<"); // verify that we compare ~N as numbers, not strings compare("1.0.0", "1.0.0_2", "<"); - compare("1.123.0_123", "3.0.0_2", "<"); + compare("1.99.0_99", "3.0.0_2", "<"); + compare("1.99.0", "2.0.0", "<"); compare("1.0.0_5", "1.0.0_2", ">"); - compare("1.0.0_200", "1.2.0", "<"); + compare("1.0.0_99", "1.2.0", "<"); + compare("1.0.0_99", "1.0.1", "<"); compare("1.0.0_1", "1.0.0_2", "<"); compare("1.0.0", "1.0.0_2", "<"); - compare("1.123.0_123", "3.0.0_2", "<"); + compare("1.99.0_99", "3.0.0_2", "<"); compare("1.0.0_5", "1.0.0_2", ">"); compare("1.0.0", "1.0.0", "="); diff --git a/tools/package-version-parser.js b/tools/package-version-parser.js index 93ae270eb9..0374c4d9a8 100644 --- a/tools/package-version-parser.js +++ b/tools/package-version-parser.js @@ -59,7 +59,7 @@ var extractSemverPart = function (versionString) { // // [* XXX!] We don't quite satisfy the uniqueness and comparison properties in // these cases: -// 1. If any of the version parts are greater than 250 (pretty unlikely?) +// 1. If any of the version parts are greater than 100 (pretty unlikely?) // 2. If we're dealing with a prerelease version, we only look at the // first two characters of each prerelease part. So, "1.0.0-beta" and // "1.0.0-bear" will have the same magnitude. @@ -75,11 +75,11 @@ PV.versionMagnitude = function (versionString) { var version = extractSemverPart(versionString); var v = semver.parse(version.semver); - return v.major * 250 * 250 * 250 + - v.minor * 250 * 250 + - v.patch * 250 + - version.wrapNum + - prereleaseIdentifierToFraction(v.prerelease); + return v.major * 100 * 100 + + v.minor * 100 + + v.patch + + version.wrapNum / 100 + + prereleaseIdentifierToFraction(v.prerelease) / 100 / 100; }; // Accepts an array, eg ["rc", 2, 3]. Returns a number in the range