From f40a4eb09524ccc223fa959a18bf37487ee27147 Mon Sep 17 00:00:00 2001 From: Devon Carew Date: Mon, 25 Sep 2023 16:13:13 -0700 Subject: [PATCH] improve support for '-dev' and '-wip' package versions (#173) * improve support for '-dev' and '-wip' package versions * update the workflow files * try out a -dev version * rev to a stable version --- .github/workflows/publish.yaml | 2 +- .github/workflows/publish_internal.yaml | 2 +- pkgs/firehose/CHANGELOG.md | 4 ++++ pkgs/firehose/lib/firehose.dart | 7 ++----- pkgs/firehose/lib/src/pub.dart | 7 +++++++ pkgs/firehose/pubspec.yaml | 2 +- pkgs/firehose/test/pub_test.dart | 18 ++++++++++++++++++ 7 files changed, 34 insertions(+), 8 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index e27ead4c..f5a7931d 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -10,7 +10,7 @@ name: Publish # branches: [ main ] # types: [opened, synchronize, reopened, labeled, unlabeled] # push: -# tags: [ 'v[0-9]+.[0-9]+.[0-9]+' ] +# tags: [ 'v[0-9]+.[0-9]+.[0-9]+*' ] # jobs: # publish: # uses: dart-lang/ecosystem/.github/workflows/publish.yml@main diff --git a/.github/workflows/publish_internal.yaml b/.github/workflows/publish_internal.yaml index 341cbf6d..e0c81480 100644 --- a/.github/workflows/publish_internal.yaml +++ b/.github/workflows/publish_internal.yaml @@ -10,7 +10,7 @@ on: branches: [ main ] types: [opened, synchronize, reopened, labeled, unlabeled] push: - tags: [ '[A-z]+-v[0-9]+.[0-9]+.[0-9]+' ] + tags: [ '[A-z]+-v[0-9]+.[0-9]+.[0-9]+*' ] env: use-flutter: false diff --git a/pkgs/firehose/CHANGELOG.md b/pkgs/firehose/CHANGELOG.md index 2b2ccb49..f3d87b93 100644 --- a/pkgs/firehose/CHANGELOG.md +++ b/pkgs/firehose/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.30 + +- Improve support for `-dev` and `-wip` package versions. + ## 0.3.29 - Fix an issue rendering longer changelogs (#170). diff --git a/pkgs/firehose/lib/firehose.dart b/pkgs/firehose/lib/firehose.dart index 4091a645..c6dfb44a 100644 --- a/pkgs/firehose/lib/firehose.dart +++ b/pkgs/firehose/lib/firehose.dart @@ -138,11 +138,8 @@ Saving existing comment id $existingCommentId to file ${idFile.path}'''); var result = Result.info(package, 'already published at pub.dev'); print(result); results.addResult(result); - } else if (package.pubspec.version!.isPreRelease) { - var result = Result.info( - package, - 'pre-release version (no publish necessary)', - ); + } else if (package.pubspec.version!.wip) { + var result = Result.info(package, 'WIP (no publish necessary)'); print(result); results.addResult(result); } else { diff --git a/pkgs/firehose/lib/src/pub.dart b/pkgs/firehose/lib/src/pub.dart index 1c319f58..9b875dfb 100644 --- a/pkgs/firehose/lib/src/pub.dart +++ b/pkgs/firehose/lib/src/pub.dart @@ -5,6 +5,7 @@ import 'dart:convert'; import 'package:http/http.dart' as http; +import 'package:pub_semver/pub_semver.dart'; class Pub { http.Client? _httpClient; @@ -29,3 +30,9 @@ class Pub { _httpClient?.close(); } } + +extension VersionExtension on Version { + bool get wip { + return isPreRelease && preRelease.length == 1 && preRelease.first == 'wip'; + } +} diff --git a/pkgs/firehose/pubspec.yaml b/pkgs/firehose/pubspec.yaml index 1150a37c..3f16ad1c 100644 --- a/pkgs/firehose/pubspec.yaml +++ b/pkgs/firehose/pubspec.yaml @@ -1,6 +1,6 @@ name: firehose description: A tool to automate publishing of Pub packages from GitHub actions. -version: 0.3.29 +version: 0.3.30 repository: https://github.com/dart-lang/ecosystem/tree/main/pkgs/firehose environment: diff --git a/pkgs/firehose/test/pub_test.dart b/pkgs/firehose/test/pub_test.dart index f99a3fd3..f574ca00 100644 --- a/pkgs/firehose/test/pub_test.dart +++ b/pkgs/firehose/test/pub_test.dart @@ -5,6 +5,7 @@ library; import 'package:firehose/src/pub.dart'; +import 'package:pub_semver/pub_semver.dart'; import 'package:test/test.dart'; void main() { @@ -35,4 +36,21 @@ void main() { expect(result, false); }); }); + + group('VersionExtension', () { + test('wip no pre-release', () async { + final version = Version.parse('1.2.3'); + expect(version.wip, false); + }); + + test('wip pre-release', () async { + final version = Version.parse('1.2.3-dev'); + expect(version.wip, false); + }); + + test('wip pre-release wip', () async { + final version = Version.parse('1.2.3-wip'); + expect(version.wip, true); + }); + }); }