readability refactor (#106026)
diff --git a/dev/conductor/core/lib/src/globals.dart b/dev/conductor/core/lib/src/globals.dart
index e9c7bfa..5eb1541 100644
--- a/dev/conductor/core/lib/src/globals.dart
+++ b/dev/conductor/core/lib/src/globals.dart
@@ -22,6 +22,21 @@
const String kWebsiteReleasesUrl = 'https://docs.flutter.dev/development/tools/sdk/releases';
+const String discordReleaseChannel =
+ 'https://discord.com/channels/608014603317936148/783492179922124850';
+
+const String flutterReleaseHotline =
+ 'https://mail.google.com/chat/u/0/#chat/space/AAAA6RKcK2k';
+
+const String hotfixToStableWiki =
+ 'https://github.com/flutter/flutter/wiki/Hotfixes-to-the-Stable-Channel';
+
+const String flutterAnnounceGroup =
+ 'https://groups.google.com/g/flutter-announce';
+
+const String hotfixDocumentationBestPractices =
+ 'https://github.com/flutter/flutter/wiki/Hotfix-Documentation-Best-Practices';
+
final RegExp releaseCandidateBranchRegex = RegExp(
r'flutter-(\d+)\.(\d+)-candidate\.(\d+)',
);
diff --git a/dev/conductor/core/lib/src/state.dart b/dev/conductor/core/lib/src/state.dart
index 3078a0a..505440c 100644
--- a/dev/conductor/core/lib/src/state.dart
+++ b/dev/conductor/core/lib/src/state.dart
@@ -7,15 +7,36 @@
import 'package:file/file.dart' show File;
import 'package:platform/platform.dart';
-import './globals.dart';
+import './globals.dart' as globals;
import './proto/conductor_state.pb.dart' as pb;
import './proto/conductor_state.pbenum.dart' show ReleasePhase;
const String kStateFileName = '.flutter_conductor_state.json';
+const String betaPostReleaseMsg = """
+ 'Ensure the following post release steps are complete:',
+ '\t 1. Post announcement to discord',
+ '\t\t Discord: ${globals.discordReleaseChannel}',
+ '\t 2. Post announcement flutter release hotline chat room',
+ '\t\t Chatroom: ${globals.flutterReleaseHotline}',
+""";
+
+const String stablePostReleaseMsg = """
+ 'Ensure the following post release steps are complete:',
+ '\t 1. Update hotfix to stable wiki following documentation best practices',
+ '\t\t Wiki link: ${globals.hotfixToStableWiki}',
+ '\t\t Best practices: ${globals.hotfixDocumentationBestPractices}',
+ '\t 2. Post announcement to flutter-announce group',
+ '\t\t Flutter Announce: ${globals.flutterAnnounceGroup}',
+ '\t 3. Post announcement to discord',
+ '\t\t Discord: ${globals.discordReleaseChannel}',
+ '\t 4. Post announcement flutter release hotline chat room',
+ '\t\t Chatroom: ${globals.flutterReleaseHotline}',
+""";
+
String luciConsoleLink(String channel, String groupName) {
assert(
- kReleaseChannels.contains(channel),
+ globals.kReleaseChannels.contains(channel),
'channel $channel not recognized',
);
assert(
@@ -30,7 +51,8 @@
String defaultStateFilePath(Platform platform) {
final String? home = platform.environment['HOME'];
if (home == null) {
- throw ConductorException(r'Environment variable $HOME must be set!');
+ throw globals.ConductorException(
+ r'Environment variable $HOME must be set!');
}
return <String>[
home,
@@ -134,7 +156,7 @@
'at ${state.engine.checkoutPath} in order:',
for (final pb.Cherrypick cherrypick in state.engine.cherrypicks)
'\t${cherrypick.trunkRevision}',
- 'See $kReleaseDocumentationUrl for more information.',
+ 'See ${globals.kReleaseDocumentationUrl} for more information.',
].join('\n');
case ReleasePhase.CODESIGN_ENGINE_BINARIES:
if (!requiresEnginePR(state)) {
@@ -143,7 +165,7 @@
}
// User's working branch was pushed to their mirror, but a PR needs to be
// opened on GitHub.
- final String newPrLink = getNewPrLink(
+ final String newPrLink = globals.getNewPrLink(
userName: githubAccount(state.engine.mirror.url),
repoName: 'engine',
state: state,
@@ -179,7 +201,7 @@
'PR is necessary.';
}
- final String newPrLink = getNewPrLink(
+ final String newPrLink = globals.getNewPrLink(
userName: githubAccount(state.framework.mirror.url),
repoName: 'flutter',
state: state,
@@ -195,44 +217,21 @@
case ReleasePhase.VERIFY_RELEASE:
return 'Release archive packages must be verified on cloud storage: ${luciConsoleLink(state.releaseChannel, 'packaging')}';
case ReleasePhase.RELEASE_COMPLETED:
- const String DISCORD_RELEASE_CHANNEL =
- 'https://discord.com/channels/608014603317936148/783492179922124850';
- const String FLUTTER_RELEASE_HOTLINE =
- 'https://mail.google.com/chat/u/0/#chat/space/AAAA6RKcK2k';
- const String HOTFIX_TO_STABLE_WIKI =
- 'https://github.com/flutter/flutter/wiki/Hotfixes-to-the-Stable-Channel';
- const String FLUTTER_ANNOUNCE_GROUP =
- 'https://groups.google.com/g/flutter-announce';
- const String DOCUMENTATION_BEST_PRACTICES =
- 'https://github.com/flutter/flutter/wiki/Hotfix-Documentation-Best-Practices';
if (state.releaseChannel == 'beta') {
return <String>[
- 'Ensure the following post release steps are complete:',
- '\t 1. Post announcement to discord',
- '\t\t Discord: $DISCORD_RELEASE_CHANNEL',
- '\t 2. Post announcement flutter release hotline chat room',
- '\t\t Chatroom: $FLUTTER_RELEASE_HOTLINE',
+ betaPostReleaseMsg,
'-----------------------------------------------------------------------',
'This release has been completed.',
].join('\n');
}
return <String>[
- 'Ensure the following post release steps are complete:',
- '\t 1. Update hotfix to stable wiki following documentation best practices',
- '\t\t Wiki link: $HOTFIX_TO_STABLE_WIKI',
- '\t\t Best practices: $DOCUMENTATION_BEST_PRACTICES',
- '\t 2. Post announcement to flutter-announce group',
- '\t\t Flutter Announce: $FLUTTER_ANNOUNCE_GROUP',
- '\t 3. Post announcement to discord',
- '\t\t Discord: $DISCORD_RELEASE_CHANNEL',
- '\t 4. Post announcement flutter release hotline chat room',
- '\t\t Chatroom: $FLUTTER_RELEASE_HOTLINE',
+ stablePostReleaseMsg,
'-----------------------------------------------------------------------',
'This release has been completed.',
].join('\n');
}
// For analyzer
- throw ConductorException('Unimplemented phase ${state.currentPhase}');
+ throw globals.ConductorException('Unimplemented phase ${state.currentPhase}');
}
/// Regex pattern for git remote host URLs.
@@ -250,13 +249,13 @@
final String engineUrl = remoteUrl;
final RegExpMatch? match = githubRemotePattern.firstMatch(engineUrl);
if (match == null) {
- throw ConductorException(
+ throw globals.ConductorException(
'Cannot determine the GitHub account from $engineUrl',
);
}
final String? accountName = match.group(2);
if (accountName == null || accountName.isEmpty) {
- throw ConductorException(
+ throw globals.ConductorException(
'Cannot determine the GitHub account from $match',
);
}
@@ -271,7 +270,7 @@
assert(currentPhase != null);
final ReleasePhase? nextPhase = ReleasePhase.valueOf(currentPhase.value + 1);
if (nextPhase == null) {
- throw ConductorException('There is no next ReleasePhase!');
+ throw globals.ConductorException('There is no next ReleasePhase!');
}
return nextPhase;
}