From 0c48313e3e00916ce65319b8a0b998edce75be0a Mon Sep 17 00:00:00 2001 From: Felix Angelov Date: Thu, 11 Jul 2024 13:01:01 -0500 Subject: [PATCH] feat(shorebird_cli): include flutter revision in `BuildEnvironmentMetadata` (#2342) --- .../lib/src/commands/patch/aar_patcher.dart | 1 + .../src/commands/patch/android_patcher.dart | 2 ++ .../commands/patch/ios_framework_patcher.dart | 1 + .../lib/src/commands/patch/ios_patcher.dart | 1 + .../src/commands/release/aar_releaser.dart | 1 + .../commands/release/android_releaser.dart | 2 ++ .../release/ios_framework_releaser.dart | 1 + .../src/commands/release/ios_releaser.dart | 1 + packages/shorebird_cli/pubspec.lock | 2 +- .../src/commands/patch/aar_patcher_test.dart | 3 +++ .../commands/patch/android_patcher_test.dart | 3 +++ .../patch/ios_framework_patcher_test.dart | 5 +++- .../src/commands/patch/ios_patcher_test.dart | 5 +++- .../commands/release/aar_releaser_test.dart | 8 ++++-- .../release/android_releaser_test.dart | 9 +++++-- .../release/ios_framework_releaser_test.dart | 13 ++++++--- .../commands/release/ios_releaser_test.dart | 18 ++++++++----- .../example/main.dart | 1 + .../lib/src/version.dart | 2 +- .../shorebird_code_push_client/pubspec.yaml | 2 +- .../get_release_patches_response.g.dart | 27 ------------------- .../models/build_environment_metadata.dart | 10 +++++++ .../models/build_environment_metadata.g.dart | 4 +++ .../lib/src/models/release.g.dart | 2 +- .../create_patch_request_test.dart | 1 + .../update_release_request_test.dart | 1 + .../build_environment_metadata_test.dart | 5 ++++ .../models/create_patch_metadata_test.dart | 5 ++++ .../models/update_release_metadata_test.dart | 5 ++++ 29 files changed, 94 insertions(+), 47 deletions(-) diff --git a/packages/shorebird_cli/lib/src/commands/patch/aar_patcher.dart b/packages/shorebird_cli/lib/src/commands/patch/aar_patcher.dart index b716c7cf..e0a923a0 100644 --- a/packages/shorebird_cli/lib/src/commands/patch/aar_patcher.dart +++ b/packages/shorebird_cli/lib/src/commands/patch/aar_patcher.dart @@ -191,6 +191,7 @@ class AarPatcher extends Patcher { hasNativeChanges: diffStatus.hasNativeChanges, linkPercentage: null, environment: BuildEnvironmentMetadata( + flutterRevision: shorebirdEnv.flutterRevision, operatingSystem: platform.operatingSystem, operatingSystemVersion: platform.operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_cli/lib/src/commands/patch/android_patcher.dart b/packages/shorebird_cli/lib/src/commands/patch/android_patcher.dart index 08464683..7be4fa3e 100644 --- a/packages/shorebird_cli/lib/src/commands/patch/android_patcher.dart +++ b/packages/shorebird_cli/lib/src/commands/patch/android_patcher.dart @@ -18,6 +18,7 @@ import 'package:shorebird_cli/src/platform.dart'; import 'package:shorebird_cli/src/platform/platform.dart'; import 'package:shorebird_cli/src/release_type.dart'; import 'package:shorebird_cli/src/shorebird_android_artifacts.dart'; +import 'package:shorebird_cli/src/shorebird_env.dart'; import 'package:shorebird_cli/src/shorebird_flutter.dart'; import 'package:shorebird_cli/src/shorebird_validator.dart'; import 'package:shorebird_cli/src/third_party/flutter_tools/lib/flutter_tools.dart'; @@ -214,6 +215,7 @@ Looked in: hasNativeChanges: diffStatus.hasNativeChanges, linkPercentage: null, environment: BuildEnvironmentMetadata( + flutterRevision: shorebirdEnv.flutterRevision, operatingSystem: platform.operatingSystem, operatingSystemVersion: platform.operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_cli/lib/src/commands/patch/ios_framework_patcher.dart b/packages/shorebird_cli/lib/src/commands/patch/ios_framework_patcher.dart index dc1146ed..9470eb27 100644 --- a/packages/shorebird_cli/lib/src/commands/patch/ios_framework_patcher.dart +++ b/packages/shorebird_cli/lib/src/commands/patch/ios_framework_patcher.dart @@ -237,6 +237,7 @@ class IosFrameworkPatcher extends Patcher { hasNativeChanges: diffStatus.hasNativeChanges, linkPercentage: lastBuildLinkPercentage, environment: BuildEnvironmentMetadata( + flutterRevision: shorebirdEnv.flutterRevision, operatingSystem: platform.operatingSystem, operatingSystemVersion: platform.operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_cli/lib/src/commands/patch/ios_patcher.dart b/packages/shorebird_cli/lib/src/commands/patch/ios_patcher.dart index fbfd0013..ca681fd5 100644 --- a/packages/shorebird_cli/lib/src/commands/patch/ios_patcher.dart +++ b/packages/shorebird_cli/lib/src/commands/patch/ios_patcher.dart @@ -348,6 +348,7 @@ For more information see: ${supportedFlutterVersionsUrl.toLink()}''', hasNativeChanges: diffStatus.hasNativeChanges, linkPercentage: lastBuildLinkPercentage, environment: BuildEnvironmentMetadata( + flutterRevision: shorebirdEnv.flutterRevision, operatingSystem: platform.operatingSystem, operatingSystemVersion: platform.operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_cli/lib/src/commands/release/aar_releaser.dart b/packages/shorebird_cli/lib/src/commands/release/aar_releaser.dart index 08564b0d..b26bffb3 100644 --- a/packages/shorebird_cli/lib/src/commands/release/aar_releaser.dart +++ b/packages/shorebird_cli/lib/src/commands/release/aar_releaser.dart @@ -151,6 +151,7 @@ class AarReleaser extends Releaser { flutterVersionOverride: argResults['flutter-version'] as String?, generatedApks: false, environment: BuildEnvironmentMetadata( + flutterRevision: shorebirdEnv.flutterRevision, operatingSystem: platform.operatingSystem, operatingSystemVersion: platform.operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_cli/lib/src/commands/release/android_releaser.dart b/packages/shorebird_cli/lib/src/commands/release/android_releaser.dart index c5edc841..54abf9b8 100644 --- a/packages/shorebird_cli/lib/src/commands/release/android_releaser.dart +++ b/packages/shorebird_cli/lib/src/commands/release/android_releaser.dart @@ -12,6 +12,7 @@ import 'package:shorebird_cli/src/platform.dart'; import 'package:shorebird_cli/src/platform/platform.dart'; import 'package:shorebird_cli/src/release_type.dart'; import 'package:shorebird_cli/src/shorebird_android_artifacts.dart'; +import 'package:shorebird_cli/src/shorebird_env.dart'; import 'package:shorebird_cli/src/shorebird_flutter.dart'; import 'package:shorebird_cli/src/shorebird_validator.dart'; import 'package:shorebird_cli/src/third_party/flutter_tools/lib/flutter_tools.dart'; @@ -193,6 +194,7 @@ Please comment and upvote ${link(uri: Uri.parse('https://github.com/shorebirdtec flutterVersionOverride: argResults['flutter-version'] as String?, generatedApks: generateApk, environment: BuildEnvironmentMetadata( + flutterRevision: shorebirdEnv.flutterRevision, operatingSystem: platform.operatingSystem, operatingSystemVersion: platform.operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_cli/lib/src/commands/release/ios_framework_releaser.dart b/packages/shorebird_cli/lib/src/commands/release/ios_framework_releaser.dart index 2e4ce601..bb8943d3 100644 --- a/packages/shorebird_cli/lib/src/commands/release/ios_framework_releaser.dart +++ b/packages/shorebird_cli/lib/src/commands/release/ios_framework_releaser.dart @@ -154,6 +154,7 @@ Instructions for these steps can be found at https://docs.flutter.dev/add-to-app flutterVersionOverride: argResults['flutter-version'] as String?, generatedApks: false, environment: BuildEnvironmentMetadata( + flutterRevision: shorebirdEnv.flutterRevision, operatingSystem: platform.operatingSystem, operatingSystemVersion: platform.operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_cli/lib/src/commands/release/ios_releaser.dart b/packages/shorebird_cli/lib/src/commands/release/ios_releaser.dart index 2ce4c060..90aa6574 100644 --- a/packages/shorebird_cli/lib/src/commands/release/ios_releaser.dart +++ b/packages/shorebird_cli/lib/src/commands/release/ios_releaser.dart @@ -235,6 +235,7 @@ ${styleBold.wrap('Make sure to uncheck "Manage Version and Build Number", or els flutterVersionOverride: argResults['flutter-version'] as String?, generatedApks: false, environment: BuildEnvironmentMetadata( + flutterRevision: shorebirdEnv.flutterRevision, operatingSystem: platform.operatingSystem, operatingSystemVersion: platform.operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_cli/pubspec.lock b/packages/shorebird_cli/pubspec.lock index 98e6db93..b2772776 100644 --- a/packages/shorebird_cli/pubspec.lock +++ b/packages/shorebird_cli/pubspec.lock @@ -606,7 +606,7 @@ packages: path: "../shorebird_code_push_client" relative: true source: path - version: "0.7.1+1" + version: "0.7.2+1" shorebird_code_push_protocol: dependency: "direct main" description: diff --git a/packages/shorebird_cli/test/src/commands/patch/aar_patcher_test.dart b/packages/shorebird_cli/test/src/commands/patch/aar_patcher_test.dart index 56608915..58cd97be 100644 --- a/packages/shorebird_cli/test/src/commands/patch/aar_patcher_test.dart +++ b/packages/shorebird_cli/test/src/commands/patch/aar_patcher_test.dart @@ -514,6 +514,7 @@ void main() { group('createPatchMetadata', () { const allowAssetDiffs = false; const allowNativeDiffs = true; + const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b'; const operatingSystem = 'Mac OS X'; const operatingSystemVersion = '10.15.7'; @@ -526,6 +527,7 @@ void main() { when( () => platform.operatingSystemVersion, ).thenReturn(operatingSystemVersion); + when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision); }); test('returns correct metadata', () async { @@ -549,6 +551,7 @@ void main() { hasNativeChanges: diffStatus.hasNativeChanges, linkPercentage: null, environment: const BuildEnvironmentMetadata( + flutterRevision: flutterRevision, operatingSystem: operatingSystem, operatingSystemVersion: operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_cli/test/src/commands/patch/android_patcher_test.dart b/packages/shorebird_cli/test/src/commands/patch/android_patcher_test.dart index 2432d3b7..d1912834 100644 --- a/packages/shorebird_cli/test/src/commands/patch/android_patcher_test.dart +++ b/packages/shorebird_cli/test/src/commands/patch/android_patcher_test.dart @@ -633,6 +633,7 @@ Looked in: group('createPatchMetadata', () { const allowAssetDiffs = false; const allowNativeDiffs = true; + const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b'; const operatingSystem = 'Mac OS X'; const operatingSystemVersion = '10.15.7'; @@ -645,6 +646,7 @@ Looked in: when( () => platform.operatingSystemVersion, ).thenReturn(operatingSystemVersion); + when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision); }); test('returns correct metadata', () async { @@ -668,6 +670,7 @@ Looked in: hasNativeChanges: diffStatus.hasNativeChanges, linkPercentage: null, environment: const BuildEnvironmentMetadata( + flutterRevision: flutterRevision, operatingSystem: operatingSystem, operatingSystemVersion: operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_cli/test/src/commands/patch/ios_framework_patcher_test.dart b/packages/shorebird_cli/test/src/commands/patch/ios_framework_patcher_test.dart index a61a76fd..e2870266 100644 --- a/packages/shorebird_cli/test/src/commands/patch/ios_framework_patcher_test.dart +++ b/packages/shorebird_cli/test/src/commands/patch/ios_framework_patcher_test.dart @@ -822,6 +822,7 @@ void main() { group('createPatchMetadata', () { const allowAssetDiffs = false; const allowNativeDiffs = true; + const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b'; const operatingSystem = 'Mac OS X'; const operatingSystemVersion = '10.15.7'; const xcodeVersion = '11'; @@ -837,7 +838,7 @@ void main() { when( () => platform.operatingSystemVersion, ).thenReturn(operatingSystemVersion); - + when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision); when( () => xcodeBuild.version(), ).thenAnswer((_) async => xcodeVersion); @@ -865,6 +866,7 @@ void main() { hasNativeChanges: diffStatus.hasNativeChanges, linkPercentage: null, environment: const BuildEnvironmentMetadata( + flutterRevision: flutterRevision, operatingSystem: operatingSystem, operatingSystemVersion: operatingSystemVersion, shorebirdVersion: packageVersion, @@ -904,6 +906,7 @@ void main() { hasNativeChanges: diffStatus.hasNativeChanges, linkPercentage: linkPercentage, environment: const BuildEnvironmentMetadata( + flutterRevision: flutterRevision, operatingSystem: operatingSystem, operatingSystemVersion: operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_cli/test/src/commands/patch/ios_patcher_test.dart b/packages/shorebird_cli/test/src/commands/patch/ios_patcher_test.dart index ce5b20d7..15026a0e 100644 --- a/packages/shorebird_cli/test/src/commands/patch/ios_patcher_test.dart +++ b/packages/shorebird_cli/test/src/commands/patch/ios_patcher_test.dart @@ -1587,6 +1587,7 @@ For more information see: ${supportedFlutterVersionsUrl.toLink()}''', group('createPatchMetadata', () { const allowAssetDiffs = false; const allowNativeDiffs = true; + const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b'; const operatingSystem = 'Mac OS X'; const operatingSystemVersion = '10.15.7'; const xcodeVersion = '11'; @@ -1602,7 +1603,7 @@ For more information see: ${supportedFlutterVersionsUrl.toLink()}''', when( () => platform.operatingSystemVersion, ).thenReturn(operatingSystemVersion); - + when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision); when( () => xcodeBuild.version(), ).thenAnswer((_) async => xcodeVersion); @@ -1630,6 +1631,7 @@ For more information see: ${supportedFlutterVersionsUrl.toLink()}''', hasNativeChanges: diffStatus.hasNativeChanges, linkPercentage: null, environment: const BuildEnvironmentMetadata( + flutterRevision: flutterRevision, operatingSystem: operatingSystem, operatingSystemVersion: operatingSystemVersion, shorebirdVersion: packageVersion, @@ -1669,6 +1671,7 @@ For more information see: ${supportedFlutterVersionsUrl.toLink()}''', hasNativeChanges: diffStatus.hasNativeChanges, linkPercentage: linkPercentage, environment: const BuildEnvironmentMetadata( + flutterRevision: flutterRevision, operatingSystem: operatingSystem, operatingSystemVersion: operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_cli/test/src/commands/release/aar_releaser_test.dart b/packages/shorebird_cli/test/src/commands/release/aar_releaser_test.dart index a32c4e92..5d93b567 100644 --- a/packages/shorebird_cli/test/src/commands/release/aar_releaser_test.dart +++ b/packages/shorebird_cli/test/src/commands/release/aar_releaser_test.dart @@ -425,13 +425,16 @@ void main() { }); group('releaseMetadata', () { + const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b'; const operatingSystem = 'macos'; const operatingSystemVersion = '11.0.0'; setUp(() { when(() => platform.operatingSystem).thenReturn(operatingSystem); - when(() => platform.operatingSystemVersion) - .thenReturn(operatingSystemVersion); + when( + () => platform.operatingSystemVersion, + ).thenReturn(operatingSystemVersion); + when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision); }); test('returns expected metadata', () async { @@ -443,6 +446,7 @@ void main() { flutterVersionOverride: null, generatedApks: false, environment: BuildEnvironmentMetadata( + flutterRevision: flutterRevision, operatingSystem: operatingSystem, operatingSystemVersion: operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_cli/test/src/commands/release/android_releaser_test.dart b/packages/shorebird_cli/test/src/commands/release/android_releaser_test.dart index ce09dacc..7490be8b 100644 --- a/packages/shorebird_cli/test/src/commands/release/android_releaser_test.dart +++ b/packages/shorebird_cli/test/src/commands/release/android_releaser_test.dart @@ -648,13 +648,16 @@ To change the version of this release, change your app's version in your pubspec }); group('releaseMetadata', () { + const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b'; const operatingSystem = 'macos'; const operatingSystemVersion = '11.0.0'; setUp(() { when(() => platform.operatingSystem).thenReturn(operatingSystem); - when(() => platform.operatingSystemVersion) - .thenReturn(operatingSystemVersion); + when( + () => platform.operatingSystemVersion, + ).thenReturn(operatingSystemVersion); + when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision); }); group('when an apk is generated', () { @@ -670,6 +673,7 @@ To change the version of this release, change your app's version in your pubspec flutterVersionOverride: null, generatedApks: true, environment: BuildEnvironmentMetadata( + flutterRevision: flutterRevision, operatingSystem: operatingSystem, operatingSystemVersion: operatingSystemVersion, shorebirdVersion: packageVersion, @@ -693,6 +697,7 @@ To change the version of this release, change your app's version in your pubspec flutterVersionOverride: null, generatedApks: false, environment: BuildEnvironmentMetadata( + flutterRevision: flutterRevision, operatingSystem: operatingSystem, operatingSystemVersion: operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_cli/test/src/commands/release/ios_framework_releaser_test.dart b/packages/shorebird_cli/test/src/commands/release/ios_framework_releaser_test.dart index 31b5e00f..a5d48349 100644 --- a/packages/shorebird_cli/test/src/commands/release/ios_framework_releaser_test.dart +++ b/packages/shorebird_cli/test/src/commands/release/ios_framework_releaser_test.dart @@ -389,16 +389,20 @@ void main() { }); group('releaseMetadata', () { + const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b'; const operatingSystem = 'macos'; const operatingSystemVersion = '11.0.0'; const xcodeVersion = '123'; setUp(() { when(() => platform.operatingSystem).thenReturn(operatingSystem); - when(() => platform.operatingSystemVersion) - .thenReturn(operatingSystemVersion); - when(() => xcodeBuild.version()) - .thenAnswer((_) async => xcodeVersion); + when( + () => platform.operatingSystemVersion, + ).thenReturn(operatingSystemVersion); + when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision); + when( + () => xcodeBuild.version(), + ).thenAnswer((_) async => xcodeVersion); }); test('returns expected metadata', () async { @@ -410,6 +414,7 @@ void main() { flutterVersionOverride: null, generatedApks: false, environment: BuildEnvironmentMetadata( + flutterRevision: flutterRevision, operatingSystem: operatingSystem, operatingSystemVersion: operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_cli/test/src/commands/release/ios_releaser_test.dart b/packages/shorebird_cli/test/src/commands/release/ios_releaser_test.dart index aea876aa..ef8dc2e9 100644 --- a/packages/shorebird_cli/test/src/commands/release/ios_releaser_test.dart +++ b/packages/shorebird_cli/test/src/commands/release/ios_releaser_test.dart @@ -758,19 +758,24 @@ To change the version of this release, change your app's version in your pubspec }); group('releaseMetadata', () { + const flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b'; const operatingSystem = 'macOS'; const operatingSystemVersion = '11.0.0'; const xcodeVersion = '123'; const flutterVersionOverride = '1.2.3'; setUp(() { + when( + () => argResults['flutter-version'], + ).thenReturn(flutterVersionOverride); when(() => platform.operatingSystem).thenReturn(operatingSystem); - when(() => platform.operatingSystemVersion) - .thenReturn(operatingSystemVersion); - when(() => xcodeBuild.version()) - .thenAnswer((_) async => xcodeVersion); - when(() => argResults['flutter-version']) - .thenReturn(flutterVersionOverride); + when( + () => platform.operatingSystemVersion, + ).thenReturn(operatingSystemVersion); + when(() => shorebirdEnv.flutterRevision).thenReturn(flutterRevision); + when( + () => xcodeBuild.version(), + ).thenAnswer((_) async => xcodeVersion); }); test('returns expected metadata', () async { @@ -781,6 +786,7 @@ To change the version of this release, change your app's version in your pubspec flutterVersionOverride: flutterVersionOverride, generatedApks: false, environment: BuildEnvironmentMetadata( + flutterRevision: flutterRevision, operatingSystem: operatingSystem, operatingSystemVersion: operatingSystemVersion, shorebirdVersion: packageVersion, diff --git a/packages/shorebird_code_push_client/example/main.dart b/packages/shorebird_code_push_client/example/main.dart index 1dac3621..cbfcb7e0 100644 --- a/packages/shorebird_code_push_client/example/main.dart +++ b/packages/shorebird_code_push_client/example/main.dart @@ -52,6 +52,7 @@ Future main() async { hasNativeChanges: false, linkPercentage: null, environment: BuildEnvironmentMetadata( + flutterRevision: '', // e.g. '83305b5088e6' operatingSystem: 'Windows', operatingSystemVersion: '10', shorebirdVersion: '1.2.3', diff --git a/packages/shorebird_code_push_client/lib/src/version.dart b/packages/shorebird_code_push_client/lib/src/version.dart index afaf88cf..4d124834 100644 --- a/packages/shorebird_code_push_client/lib/src/version.dart +++ b/packages/shorebird_code_push_client/lib/src/version.dart @@ -1,2 +1,2 @@ // Generated code. Do not modify. -const packageVersion = '0.7.1+1'; +const packageVersion = '0.7.2+1'; diff --git a/packages/shorebird_code_push_client/pubspec.yaml b/packages/shorebird_code_push_client/pubspec.yaml index 9af00f30..901867c4 100644 --- a/packages/shorebird_code_push_client/pubspec.yaml +++ b/packages/shorebird_code_push_client/pubspec.yaml @@ -1,6 +1,6 @@ name: shorebird_code_push_client description: Library which allows Dart applications to interact with the Shorebird CodePush API -version: 0.7.1+1 +version: 0.7.2+1 repository: https://github.com/shorebirdtech/shorebird publish_to: none diff --git a/packages/shorebird_code_push_protocol/lib/src/messages/get_release_patches/get_release_patches_response.g.dart b/packages/shorebird_code_push_protocol/lib/src/messages/get_release_patches/get_release_patches_response.g.dart index bdcfe83b..766c40a9 100644 --- a/packages/shorebird_code_push_protocol/lib/src/messages/get_release_patches/get_release_patches_response.g.dart +++ b/packages/shorebird_code_push_protocol/lib/src/messages/get_release_patches/get_release_patches_response.g.dart @@ -30,30 +30,3 @@ Map _$GetReleasePatchesResponseToJson( { 'patches': instance.patches.map((e) => e.toJson()).toList(), }; - -ReleasePatch _$ReleasePatchFromJson(Map json) => - $checkedCreate( - 'ReleasePatch', - json, - ($checkedConvert) { - final val = ReleasePatch( - id: $checkedConvert('id', (v) => v as int), - number: $checkedConvert('number', (v) => v as int), - channel: $checkedConvert('channel', (v) => v as String?), - artifacts: $checkedConvert( - 'artifacts', - (v) => (v as List) - .map((e) => PatchArtifact.fromJson(e as Map)) - .toList()), - ); - return val; - }, - ); - -Map _$ReleasePatchToJson(ReleasePatch instance) => - { - 'id': instance.id, - 'number': instance.number, - 'channel': instance.channel, - 'artifacts': instance.artifacts.map((e) => e.toJson()).toList(), - }; diff --git a/packages/shorebird_code_push_protocol/lib/src/models/build_environment_metadata.dart b/packages/shorebird_code_push_protocol/lib/src/models/build_environment_metadata.dart index 73bd9864..c42bbeff 100644 --- a/packages/shorebird_code_push_protocol/lib/src/models/build_environment_metadata.dart +++ b/packages/shorebird_code_push_protocol/lib/src/models/build_environment_metadata.dart @@ -17,6 +17,7 @@ part 'build_environment_metadata.g.dart'; class BuildEnvironmentMetadata extends Equatable { /// {@macro build_environment_metadata} const BuildEnvironmentMetadata({ + required this.flutterRevision, required this.shorebirdVersion, required this.operatingSystem, required this.operatingSystemVersion, @@ -27,12 +28,14 @@ class BuildEnvironmentMetadata extends Equatable { /// Creates a [BuildEnvironmentMetadata] with overridable default values for /// testing purposes. factory BuildEnvironmentMetadata.forTest({ + String flutterRevision = '853d13d954df3b6e9c2f07b72062f33c52a9a64b', String shorebirdVersion = '4.5.6', String operatingSystem = 'macos', String operatingSystemVersion = '1.2.3', String? xcodeVersion = '15.0', }) => BuildEnvironmentMetadata( + flutterRevision: flutterRevision, shorebirdVersion: shorebirdVersion, operatingSystem: operatingSystem, operatingSystemVersion: operatingSystemVersion, @@ -47,6 +50,12 @@ class BuildEnvironmentMetadata extends Equatable { /// Converts a [BuildEnvironmentMetadata] to a Map Map toJson() => _$BuildEnvironmentMetadataToJson(this); + /// The revision of Flutter used to run the command. + /// + /// Reason: often times we want to track things like link percentage + /// which are tied to a flutter revision as opposed to a shorebird version. + final String flutterRevision; + /// The version of Shorebird used to run the command. /// /// Reason: each version of shorebird has new features and bug fixes. Users @@ -74,6 +83,7 @@ class BuildEnvironmentMetadata extends Equatable { @override List get props => [ + flutterRevision, shorebirdVersion, operatingSystem, operatingSystemVersion, diff --git a/packages/shorebird_code_push_protocol/lib/src/models/build_environment_metadata.g.dart b/packages/shorebird_code_push_protocol/lib/src/models/build_environment_metadata.g.dart index 5f261411..1b67bbff 100644 --- a/packages/shorebird_code_push_protocol/lib/src/models/build_environment_metadata.g.dart +++ b/packages/shorebird_code_push_protocol/lib/src/models/build_environment_metadata.g.dart @@ -15,6 +15,8 @@ BuildEnvironmentMetadata _$BuildEnvironmentMetadataFromJson( json, ($checkedConvert) { final val = BuildEnvironmentMetadata( + flutterRevision: + $checkedConvert('flutter_revision', (v) => v as String), shorebirdVersion: $checkedConvert('shorebird_version', (v) => v as String), operatingSystem: @@ -26,6 +28,7 @@ BuildEnvironmentMetadata _$BuildEnvironmentMetadataFromJson( return val; }, fieldKeyMap: const { + 'flutterRevision': 'flutter_revision', 'shorebirdVersion': 'shorebird_version', 'operatingSystem': 'operating_system', 'operatingSystemVersion': 'operating_system_version', @@ -36,6 +39,7 @@ BuildEnvironmentMetadata _$BuildEnvironmentMetadataFromJson( Map _$BuildEnvironmentMetadataToJson( BuildEnvironmentMetadata instance) => { + 'flutter_revision': instance.flutterRevision, 'shorebird_version': instance.shorebirdVersion, 'operating_system': instance.operatingSystem, 'operating_system_version': instance.operatingSystemVersion, diff --git a/packages/shorebird_code_push_protocol/lib/src/models/release.g.dart b/packages/shorebird_code_push_protocol/lib/src/models/release.g.dart index 9e2d85a7..79496d44 100644 --- a/packages/shorebird_code_push_protocol/lib/src/models/release.g.dart +++ b/packages/shorebird_code_push_protocol/lib/src/models/release.g.dart @@ -13,7 +13,7 @@ Release _$ReleaseFromJson(Map json) => $checkedCreate( json, ($checkedConvert) { final val = Release( - id: $checkedConvert('id', (v) => (v as num).toInt()), + id: $checkedConvert('id', (v) => v as int), appId: $checkedConvert('app_id', (v) => v as String), version: $checkedConvert('version', (v) => v as String), flutterRevision: diff --git a/packages/shorebird_code_push_protocol/test/src/messages/create_patch/create_patch_request_test.dart b/packages/shorebird_code_push_protocol/test/src/messages/create_patch/create_patch_request_test.dart index 007a0a1d..29946e24 100644 --- a/packages/shorebird_code_push_protocol/test/src/messages/create_patch/create_patch_request_test.dart +++ b/packages/shorebird_code_push_protocol/test/src/messages/create_patch/create_patch_request_test.dart @@ -15,6 +15,7 @@ void main() { hasNativeChanges: false, linkPercentage: 99.9, environment: BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'linux', operatingSystemVersion: '1.0.0', shorebirdVersion: '1.2.3', diff --git a/packages/shorebird_code_push_protocol/test/src/messages/update_release/update_release_request_test.dart b/packages/shorebird_code_push_protocol/test/src/messages/update_release/update_release_request_test.dart index 2b05eae6..83d3a613 100644 --- a/packages/shorebird_code_push_protocol/test/src/messages/update_release/update_release_request_test.dart +++ b/packages/shorebird_code_push_protocol/test/src/messages/update_release/update_release_request_test.dart @@ -12,6 +12,7 @@ void main() { flutterVersionOverride: null, generatedApks: null, environment: BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '11.1', shorebirdVersion: '1.2.3', diff --git a/packages/shorebird_code_push_protocol/test/src/models/build_environment_metadata_test.dart b/packages/shorebird_code_push_protocol/test/src/models/build_environment_metadata_test.dart index 8133c395..713c186d 100644 --- a/packages/shorebird_code_push_protocol/test/src/models/build_environment_metadata_test.dart +++ b/packages/shorebird_code_push_protocol/test/src/models/build_environment_metadata_test.dart @@ -6,6 +6,7 @@ void main() { group(BuildEnvironmentMetadata, () { test('can be (de)serialized', () { const metadata = BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '1.2.3', shorebirdVersion: '4.5.6', @@ -20,12 +21,14 @@ void main() { group('equatable', () { test('two metadatas with the same properties are equal', () { const metadata = BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '1.2.3', shorebirdVersion: '4.5.6', xcodeVersion: '15.0', ); const otherMetadata = BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '1.2.3', shorebirdVersion: '4.5.6', @@ -36,12 +39,14 @@ void main() { test('two metadatas with different properties are not equal', () { const metadata = BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '1.2.3', shorebirdVersion: '4.5.6', xcodeVersion: '15.0', ); const otherMetadata = BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '1.2.3', shorebirdVersion: '4.5.6', diff --git a/packages/shorebird_code_push_protocol/test/src/models/create_patch_metadata_test.dart b/packages/shorebird_code_push_protocol/test/src/models/create_patch_metadata_test.dart index 6b512564..8bdcad00 100644 --- a/packages/shorebird_code_push_protocol/test/src/models/create_patch_metadata_test.dart +++ b/packages/shorebird_code_push_protocol/test/src/models/create_patch_metadata_test.dart @@ -12,6 +12,7 @@ void main() { hasNativeChanges: false, linkPercentage: 99.9, environment: BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '1.2.3', shorebirdVersion: '4.5.6', @@ -34,6 +35,7 @@ void main() { hasNativeChanges: false, linkPercentage: 99.9, environment: BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '1.2.3', shorebirdVersion: '4.5.6', @@ -48,6 +50,7 @@ void main() { hasNativeChanges: false, linkPercentage: 99.9, environment: BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '1.2.3', shorebirdVersion: '4.5.6', @@ -66,6 +69,7 @@ void main() { hasNativeChanges: false, linkPercentage: null, environment: BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '1.2.3', shorebirdVersion: '4.5.6', @@ -80,6 +84,7 @@ void main() { hasNativeChanges: false, linkPercentage: null, environment: BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '1.2.3', shorebirdVersion: '4.5.6', diff --git a/packages/shorebird_code_push_protocol/test/src/models/update_release_metadata_test.dart b/packages/shorebird_code_push_protocol/test/src/models/update_release_metadata_test.dart index 53fa15b3..570b6c82 100644 --- a/packages/shorebird_code_push_protocol/test/src/models/update_release_metadata_test.dart +++ b/packages/shorebird_code_push_protocol/test/src/models/update_release_metadata_test.dart @@ -9,6 +9,7 @@ void main() { flutterVersionOverride: '1.2.3', generatedApks: false, environment: BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '1.2.3', shorebirdVersion: '4.5.6', @@ -28,6 +29,7 @@ void main() { flutterVersionOverride: '1.2.3', generatedApks: false, environment: BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '1.2.3', shorebirdVersion: '4.5.6', @@ -39,6 +41,7 @@ void main() { flutterVersionOverride: '1.2.3', generatedApks: false, environment: BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '1.2.3', shorebirdVersion: '4.5.6', @@ -54,6 +57,7 @@ void main() { flutterVersionOverride: '1.2.3', generatedApks: false, environment: BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '1.2.3', shorebirdVersion: '4.5.6', @@ -65,6 +69,7 @@ void main() { flutterVersionOverride: '1.2.4', generatedApks: false, environment: BuildEnvironmentMetadata( + flutterRevision: '853d13d954df3b6e9c2f07b72062f33c52a9a64b', operatingSystem: 'macos', operatingSystemVersion: '1.2.3', shorebirdVersion: '4.5.6',