resolveProjectDartSdkVersion function
Resolves the Dart SDK version to use for the project in rootDir.
Resolution order:
.tool-versions in rootDir → environment.sdk from
rootDir/pubspec.yaml → VersionConstants.minSupportedSdkVersion.
Throws FailureException if a version found in .tool-versions is invalid.
Implementation
String resolveProjectDartSdkVersion(final Directory rootDir) {
final fromToolVersions = ToolVersionsIO.readDartVersionFromToolVersions([
rootDir,
]);
if (fromToolVersions != null) {
ensureValidVersionConstraint(
fromToolVersions,
sourceDescription: '(from .tool-versions)',
);
return fromToolVersions;
}
final pubspecFile = File('${rootDir.path}/pubspec.yaml');
if (pubspecFile.existsSync()) {
final fromPubspec = TenantProjectPubspec.fromFile(
pubspecFile,
).environmentSdkConstraint();
if (fromPubspec != null) {
ensureValidVersionConstraint(
fromPubspec,
sourceDescription: '(from pubspec.yaml)',
);
return fromPubspec;
}
}
return VersionConstants.minSupportedSdkVersion;
}