Allow caret syntax for sdk constraints (#3672)
diff --git a/lib/src/validator/sdk_constraint.dart b/lib/src/validator/sdk_constraint.dart
index 736876b..9dc084e 100644
--- a/lib/src/validator/sdk_constraint.dart
+++ b/lib/src/validator/sdk_constraint.dart
@@ -35,21 +35,6 @@
Future validate() async {
final dartConstraint = _sdkConstraintFromPubspecYaml();
if (dartConstraint is VersionRange) {
- if (dartConstraint.toString().startsWith('^')) {
- var dartConstraintWithoutCaret = VersionRange(
- min: dartConstraint.min,
- max: dartConstraint.max,
- includeMin: dartConstraint.includeMin,
- includeMax: dartConstraint.includeMax);
- errors.add(
- "^ version constraints aren't allowed for SDK constraints since "
- "older versions of pub don't support them.\n"
- 'Expand it manually instead:\n'
- '\n'
- 'environment:\n'
- ' sdk: "$dartConstraintWithoutCaret"');
- }
-
if (dartConstraint.max == null) {
errors.add(
'Published packages should have an upper bound constraint on the '
diff --git a/test/validator/sdk_constraint_test.dart b/test/validator/sdk_constraint_test.dart
index 7e82aef..297b872 100644
--- a/test/validator/sdk_constraint_test.dart
+++ b/test/validator/sdk_constraint_test.dart
@@ -25,6 +25,12 @@
await expectValidation(sdkConstraint);
});
+ test('has an SDK constraint with ^', () async {
+ await d.dir(
+ appPath, [d.libPubspec('test_pkg', '1.0.0', sdk: '^1.8.0')]).create();
+ await expectValidation(sdkConstraint);
+ });
+
test('depends on a pre-release Dart SDK from a pre-release', () async {
await d.dir(appPath, [
d.libPubspec('test_pkg', '1.0.0-dev.1', sdk: '>=1.8.0-dev.1 <2.0.0')
@@ -60,13 +66,6 @@
});
group('should consider a package invalid if it', () {
- test('has an SDK constraint with ^', () async {
- await d.dir(
- appPath, [d.libPubspec('test_pkg', '1.0.0', sdk: '^1.8.0')]).create();
- await expectValidation(sdkConstraint,
- errors: anyElement(contains('">=1.8.0 <2.0.0"')));
- });
-
test('has no upper bound SDK constraint', () async {
await d.dir(appPath,
[d.libPubspec('test_pkg', '1.0.0', sdk: '>=1.8.0')]).create();