diff --git a/pkgs/firehose/CHANGELOG.md b/pkgs/firehose/CHANGELOG.md index 856ff27a..2d0e81ed 100644 --- a/pkgs/firehose/CHANGELOG.md +++ b/pkgs/firehose/CHANGELOG.md @@ -16,6 +16,7 @@ - Improve and clarify readme documentation. - Add description for the table 'Package publishing'. - Simplify `groundskeeper` workflow +- Fix recognition of `-wip` endings. ## 0.13.1 diff --git a/pkgs/firehose/lib/src/pub.dart b/pkgs/firehose/lib/src/pub.dart index aa1d6992..3ed78fdc 100644 --- a/pkgs/firehose/lib/src/pub.dart +++ b/pkgs/firehose/lib/src/pub.dart @@ -52,6 +52,13 @@ class Pub { } extension VersionExtension on Version { - bool get wip => - isPreRelease && preRelease.length == 1 && preRelease.first == 'wip'; + bool get wip { + if (!isPreRelease) return false; + final last = preRelease.last; + return last is String && + (last == 'wip' // e.g. 1.2.3-wip + || + last.endsWith('-wip') // e.g. 1.2.3-alpha.3-wip + ); + } } diff --git a/pkgs/firehose/test/pub_test.dart b/pkgs/firehose/test/pub_test.dart index e315942f..7b441ab6 100644 --- a/pkgs/firehose/test/pub_test.dart +++ b/pkgs/firehose/test/pub_test.dart @@ -63,5 +63,20 @@ void main() { final version = Version.parse('1.2.3-wip'); expect(version.wip, true); }); + + test('wip pre-release multipart wip (dot)', () async { + final version = Version.parse('1.2.3-alpha.3.wip'); + expect(version.wip, true); + }); + + test('wip pre-release multipart wip (hyphen)', () async { + final version = Version.parse('1.2.3-alpha.3-wip'); + expect(version.wip, true); + }); + + test('wip pre-release awip', () async { + final version = Version.parse('1.2.3-awip'); + expect(version.wip, false); + }); }); }