Skip to content

Commit d647980

Browse files
authored
Fix version parsing error for new dev builds (#2186)
* Fix version parsing error for new dev builds * Cleanup * Correct comment to have the new version scheme as an example
1 parent 2fe0397 commit d647980

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

lib/src/model/package.dart

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -226,9 +226,20 @@ class Package extends LibraryContainer
226226
case 'b':
227227
{
228228
Version version = Version.parse(packageMeta.version);
229-
return version.isPreRelease
230-
? version.preRelease.first
231-
: 'stable';
229+
String tag = 'stable';
230+
if (version.isPreRelease) {
231+
// version.preRelease is a List<dynamic> with a mix of
232+
// integers and strings. Given this, handle
233+
// 2.8.0-dev.1.0, 2.9.0-1.0.dev, and similar
234+
// variations.
235+
tag = version.preRelease.whereType<String>().first;
236+
// Who knows about non-SDK packages, but assert that SDKs
237+
// must conform to the known format.
238+
assert(
239+
packageMeta.isSdk == false || int.tryParse(tag) == null,
240+
'Got an integer as string instead of the expected "dev" tag');
241+
}
242+
return tag;
232243
}
233244
case 'n':
234245
return name;

0 commit comments

Comments
 (0)