From 473d1b190b5499ccbd5185de9c8f569faf133dbd Mon Sep 17 00:00:00 2001 From: Istvan Soos Date: Wed, 30 Apr 2025 16:50:44 +0200 Subject: [PATCH] Migrate HTTP retry GET for SDK version utils. --- .../lib/utils/dart_sdk_version.dart | 33 ++++++++----------- .../lib/utils/flutter_archive.dart | 22 +++++-------- 2 files changed, 22 insertions(+), 33 deletions(-) diff --git a/pkg/_pub_shared/lib/utils/dart_sdk_version.dart b/pkg/_pub_shared/lib/utils/dart_sdk_version.dart index 9b0fa7f650..06c5851b49 100644 --- a/pkg/_pub_shared/lib/utils/dart_sdk_version.dart +++ b/pkg/_pub_shared/lib/utils/dart_sdk_version.dart @@ -15,26 +15,19 @@ final _logger = Logger('tool.sdk_version'); Future fetchLatestDartSdkVersion({ required String channel, }) async { - for (var i = 0; i < 3; i++) { - final client = httpRetryClient(); - try { - final rs = await client.get(Uri.parse( - 'https://storage.googleapis.com/dart-archive/channels/$channel/release/latest/VERSION')); - if (rs.statusCode != 200) { - _logger.warning( - 'Unable to fetch the Dart SDK version, status code: ${rs.statusCode}'); - continue; - } - final map = json.decode(rs.body) as Map; - final version = map['version'] as String; - final date = DateTime.parse(map['date'] as String); - return CachedSdkVersion(version, date); - } catch (e, st) { - _logger.warning('Unable to fetch the Dart SDK version', e, st); - continue; - } finally { - client.close(); - } + try { + return await httpGetWithRetry( + Uri.parse( + 'https://storage.googleapis.com/dart-archive/channels/$channel/release/latest/VERSION'), + responseFn: (rs) { + final map = json.decode(rs.body) as Map; + final version = map['version'] as String; + final date = DateTime.parse(map['date'] as String); + return CachedSdkVersion(version, date); + }, + ); + } catch (e, st) { + _logger.warning('Unable to fetch the Dart SDK version', e, st); } return null; } diff --git a/pkg/_pub_shared/lib/utils/flutter_archive.dart b/pkg/_pub_shared/lib/utils/flutter_archive.dart index 50b8c9b83e..2397e30287 100644 --- a/pkg/_pub_shared/lib/utils/flutter_archive.dart +++ b/pkg/_pub_shared/lib/utils/flutter_archive.dart @@ -21,19 +21,15 @@ final _logger = Logger('flutter_archive'); /// /// Returns `null` if the archive cannot be fetched. Future fetchFlutterArchive() async { - for (var i = 0; i < 3; i++) { - final client = httpRetryClient(); - try { - final rs = await client.get(Uri.parse( - 'https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json')); - return FlutterArchive.fromJson( - json.decode(rs.body) as Map); - } catch (e, st) { - _logger.warning('Unable to fetch the Flutter SDK archive', e, st); - continue; - } finally { - client.close(); - } + try { + return await httpGetWithRetry( + Uri.parse( + 'https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json'), + responseFn: (rs) => + FlutterArchive.fromJson(json.decode(rs.body) as Map), + ); + } catch (e, st) { + _logger.warning('Unable to fetch the Flutter SDK archive', e, st); } return null; }