From 34a471c57c9137b94c0c282a30395bcd8b34880c Mon Sep 17 00:00:00 2001 From: Janice Collins Date: Mon, 20 Apr 2020 10:02:58 -0700 Subject: [PATCH 1/3] Fix version parsing error for new dev builds --- lib/src/model/package.dart | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/src/model/package.dart b/lib/src/model/package.dart index c09be930a0..603d0ac53b 100644 --- a/lib/src/model/package.dart +++ b/lib/src/model/package.dart @@ -226,8 +226,20 @@ class Package extends LibraryContainer case 'b': { Version version = Version.parse(packageMeta.version); + if (version.isPreRelease) { + // version.preRelease is a List with a mix of + // integers and strings. Given this, handle + // 2.8.0-dev.1.0, 2.9.0-dev.1.0, and similar + // variations. + String tag = version.preRelease.whereType().first; + // Who knows about non-SDK packages, but assert that SDKs + // must conform to the known format. + assert( + packageMeta.isSdk == false || int.tryParse(tag) == null, + 'Got an integer as string instead of the expected "dev" tag'); + } return version.isPreRelease - ? version.preRelease.first + ? version.preRelease.whereType().first : 'stable'; } case 'n': From fb3d0908acdb603e5f6f89ebbdc3d7763cc2534f Mon Sep 17 00:00:00 2001 From: Janice Collins Date: Mon, 20 Apr 2020 10:12:46 -0700 Subject: [PATCH 2/3] Cleanup --- lib/src/model/package.dart | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/src/model/package.dart b/lib/src/model/package.dart index 603d0ac53b..e47d004ffa 100644 --- a/lib/src/model/package.dart +++ b/lib/src/model/package.dart @@ -226,21 +226,20 @@ class Package extends LibraryContainer case 'b': { Version version = Version.parse(packageMeta.version); + String tag = 'stable'; if (version.isPreRelease) { // version.preRelease is a List with a mix of // integers and strings. Given this, handle // 2.8.0-dev.1.0, 2.9.0-dev.1.0, and similar // variations. - String tag = version.preRelease.whereType().first; + tag = version.preRelease.whereType().first; // Who knows about non-SDK packages, but assert that SDKs // must conform to the known format. assert( packageMeta.isSdk == false || int.tryParse(tag) == null, 'Got an integer as string instead of the expected "dev" tag'); } - return version.isPreRelease - ? version.preRelease.whereType().first - : 'stable'; + return tag; } case 'n': return name; From 07da71d57fe1a662399cb6c5336725d393710705 Mon Sep 17 00:00:00 2001 From: Janice Collins Date: Mon, 20 Apr 2020 11:16:55 -0700 Subject: [PATCH 3/3] Correct comment to have the new version scheme as an example --- lib/src/model/package.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/model/package.dart b/lib/src/model/package.dart index e47d004ffa..46721d50e5 100644 --- a/lib/src/model/package.dart +++ b/lib/src/model/package.dart @@ -230,7 +230,7 @@ class Package extends LibraryContainer if (version.isPreRelease) { // version.preRelease is a List with a mix of // integers and strings. Given this, handle - // 2.8.0-dev.1.0, 2.9.0-dev.1.0, and similar + // 2.8.0-dev.1.0, 2.9.0-1.0.dev, and similar // variations. tag = version.preRelease.whereType().first; // Who knows about non-SDK packages, but assert that SDKs