From bb0d8c416e8f107b051626c877cdc364ce62f706 Mon Sep 17 00:00:00 2001 From: Parker Lougheed Date: Wed, 23 Sep 2026 00:10:52 +0800 Subject: [PATCH 1/2] Switch current version to documented version --- .../components/layout/trailing_content.dart | 26 ++++++++++++++++--- .../content/reference/supported-platforms.md | 2 +- sites/docs/src/data/site.yml | 3 ++- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/sites/docs/lib/src/components/layout/trailing_content.dart b/sites/docs/lib/src/components/layout/trailing_content.dart index 4cd9ab996c..521cd0c48e 100644 --- a/sites/docs/lib/src/components/layout/trailing_content.dart +++ b/sites/docs/lib/src/components/layout/trailing_content.dart @@ -21,8 +21,9 @@ class TrailingContent extends StatelessComponent { final siteData = page.data.site; final pageDate = pageData['date'] as String?; - final currentFlutterVersion = - siteData['currentFlutterVersion'] as String? ?? ''; + final documentedFlutterVersion = _parseDocumentedFlutterVersion( + siteData['documentedFlutterVersion'], + ); final sourceInfo = page.sourceInfo; final issueUrl = sourceInfo.issueUrl; @@ -38,7 +39,7 @@ class TrailingContent extends StatelessComponent { span([ .text( 'Unless stated otherwise, the documentation on ' - 'this site reflects Flutter $currentFlutterVersion. ', + 'this site reflects Flutter $documentedFlutterVersion. ', ), if (pageDate != null) .text( @@ -67,4 +68,23 @@ class TrailingContent extends StatelessComponent { ], ); } + + /// Returns the [rawVersionValue] as a version string in `major.minor` format. + /// + /// Throws a [FormatException] if [rawVersionValue] + /// isn't in the expected version format. + static String _parseDocumentedFlutterVersion(Object? rawVersionValue) { + if (rawVersionValue is! String || + !_documentedFlutterVersionPattern.hasMatch(rawVersionValue)) { + throw const FormatException( + 'documentedFlutterVersion in src/data/site.yml must be a version ' + 'in major.minor format (for example, "3.47").', + ); + } + return rawVersionValue; + } + + static final RegExp _documentedFlutterVersionPattern = RegExp( + r'^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$', + ); } diff --git a/sites/docs/src/content/reference/supported-platforms.md b/sites/docs/src/content/reference/supported-platforms.md index 1198191e33..97dbd8c88a 100644 --- a/sites/docs/src/content/reference/supported-platforms.md +++ b/sites/docs/src/content/reference/supported-platforms.md @@ -5,7 +5,7 @@ description: The platforms that Flutter supports by platform version. showBreadcrumbs: false --- -As of Flutter {{site.currentFlutterVersion}}, +As of Flutter {{site.documentedFlutterVersion}}, Flutter supports deploying apps on the following combinations of hardware architectures and operating system versions. These combinations are called _platforms_. diff --git a/sites/docs/src/data/site.yml b/sites/docs/src/data/site.yml index f549ba3fcb..a5c7c9bf58 100644 --- a/sites/docs/src/data/site.yml +++ b/sites/docs/src/data/site.yml @@ -56,7 +56,8 @@ yt: watch: 'https://www.youtube.com/watch' playlist: 'https://www.youtube.com/playlist?list=' -currentFlutterVersion: '3.47.2' +# The Flutter version reflected by the docs, in 'major.minor' format. +documentedFlutterVersion: '3.47' # Settings for Jaspr. From ab0e656fd4091bd51241e056c98d7f6e0d969550 Mon Sep 17 00:00:00 2001 From: Parker Lougheed Date: Wed, 23 Sep 2026 00:24:17 +0800 Subject: [PATCH 2/2] Add additional feedback to exception --- sites/docs/lib/src/components/layout/trailing_content.dart | 7 ++++--- sites/docs/src/data/site.yml | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/sites/docs/lib/src/components/layout/trailing_content.dart b/sites/docs/lib/src/components/layout/trailing_content.dart index 521cd0c48e..afc3523666 100644 --- a/sites/docs/lib/src/components/layout/trailing_content.dart +++ b/sites/docs/lib/src/components/layout/trailing_content.dart @@ -76,9 +76,10 @@ class TrailingContent extends StatelessComponent { static String _parseDocumentedFlutterVersion(Object? rawVersionValue) { if (rawVersionValue is! String || !_documentedFlutterVersionPattern.hasMatch(rawVersionValue)) { - throw const FormatException( - 'documentedFlutterVersion in src/data/site.yml must be a version ' - 'in major.minor format (for example, "3.47").', + throw FormatException( + 'documentedFlutterVersion in sites/docs/src/data/site.yml must be a ' + 'quoted string in "major.minor" format, such as "3.47". ' + 'Received: $rawVersionValue (${rawVersionValue.runtimeType}).', ); } return rawVersionValue; diff --git a/sites/docs/src/data/site.yml b/sites/docs/src/data/site.yml index a5c7c9bf58..26c4a039a0 100644 --- a/sites/docs/src/data/site.yml +++ b/sites/docs/src/data/site.yml @@ -56,7 +56,7 @@ yt: watch: 'https://www.youtube.com/watch' playlist: 'https://www.youtube.com/playlist?list=' -# The Flutter version reflected by the docs, in 'major.minor' format. +# The Flutter version reflected by the docs, as a quoted 'major.minor' string. documentedFlutterVersion: '3.47' # Settings for Jaspr.