mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Reverts https://github.com/flutter/flutter/pull/163753 Relands https://github.com/flutter/flutter/pull/140783 Original PR description below ------ This makes various Flutter version information available at runtime. It's basically the same as executing `flutter --version`. This is especially useful for tools like Crashlytics or Sentry (see for example https://github.com/getsentry/sentry-dart/issues/416). Usage example: ```dart FlutterVersion.version; // 3.16.5 FlutterVersion.channel; // stable FlutterVersion.gitUrl; // https://github.com/flutter/flutter.git FlutterVersion.frameworkRevision; // 78666c8dc5 FlutterVersion.engineRevision; // 3f3e560236 FlutterVersion.dartVersion; // 3.2.3 ``` This approach has prior art as seen in #134179. Fixes https://github.com/flutter/flutter/issues/61814 <!-- *If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].* --> ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/wiki/Tree-hygiene#overview [Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene [test-exempt]: https://github.com/flutter/flutter/wiki/Tree-hygiene#tests [Flutter Style Guide]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo [Features we expect every widget to implement]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/wiki/Chat
36 lines
1.3 KiB
Dart
36 lines
1.3 KiB
Dart
// Copyright 2014 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'package:flutter/services.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
void main() {
|
|
test('FlutterVersion.version contains the current version', () {
|
|
expect(FlutterVersion.version, const String.fromEnvironment('FLUTTER_VERSION'));
|
|
});
|
|
|
|
test('FlutterVersion.channel contains the current channel', () {
|
|
expect(FlutterVersion.channel, const String.fromEnvironment('FLUTTER_CHANNEL'));
|
|
});
|
|
|
|
test('FlutterVersion.gitUrl contains the current git URL', () {
|
|
expect(FlutterVersion.gitUrl, const String.fromEnvironment('FLUTTER_GIT_URL'));
|
|
});
|
|
|
|
test('FlutterVersion.frameworkRevision contains the current framework revision', () {
|
|
expect(
|
|
FlutterVersion.frameworkRevision,
|
|
const String.fromEnvironment('FLUTTER_FRAMEWORK_REVISION'),
|
|
);
|
|
});
|
|
|
|
test('FlutterVersion.engineRevision contains the current engine revision', () {
|
|
expect(FlutterVersion.engineRevision, const String.fromEnvironment('FLUTTER_ENGINE_REVISION'));
|
|
});
|
|
|
|
test('FlutterVersion.dartVersion contains the current Dart version', () {
|
|
expect(FlutterVersion.dartVersion, const String.fromEnvironment('FLUTTER_DART_VERSION'));
|
|
});
|
|
}
|