Set first version with null safety to 2.12 (#2684)

diff --git a/lib/src/language_version.dart b/lib/src/language_version.dart
index 403bd01..4018e3c 100644
--- a/lib/src/language_version.dart
+++ b/lib/src/language_version.dart
@@ -48,9 +48,7 @@
   bool operator <=(LanguageVersion other) => compareTo(other) <= 0;
   bool operator >=(LanguageVersion other) => compareTo(other) >= 0;
 
-  // TODO(sigurdm): update this when we know the actual version with null-safety
-  // enabled by default.
-  static const firstVersionWithNullSafety = LanguageVersion(2, 11);
+  static const firstVersionWithNullSafety = LanguageVersion(2, 12);
 
   @override
   String toString() => '$major.$minor';
diff --git a/test/outdated/outdated_test.dart b/test/outdated/outdated_test.dart
index 7999858..b7af4a6 100644
--- a/test/outdated/outdated_test.dart
+++ b/test/outdated/outdated_test.dart
@@ -205,48 +205,48 @@
         ..serve('foo', '2.0.0', deps: {
           'bar': '^1.0.0'
         }, pubspec: {
-          'environment': {'sdk': '>=2.11.0 < 3.0.0'}
-        })
-        ..serve('bar', '2.0.0', pubspec: {
           'environment': {'sdk': '>=2.12.0 < 3.0.0'}
         })
+        ..serve('bar', '2.0.0', pubspec: {
+          'environment': {'sdk': '>=2.13.0 < 3.0.0'}
+        })
         ..serve('file_opts_out', '1.0.0', pubspec: {
-          'environment': {'sdk': '>=2.11.0 < 3.0.0'},
+          'environment': {'sdk': '>=2.12.0 < 3.0.0'},
         }, contents: [
           d.dir('lib', [d.file('main.dart', '// @dart = 2.9\n')])
         ])
         ..serve('file_opts_out', '2.0.0', pubspec: {
-          'environment': {'sdk': '>=2.11.0 < 3.0.0'},
+          'environment': {'sdk': '>=2.12.0 < 3.0.0'},
         })
         ..serve('fails_analysis', '1.0.0', pubspec: {
-          'environment': {'sdk': '>=2.11.0 < 3.0.0'},
+          'environment': {'sdk': '>=2.12.0 < 3.0.0'},
         }, contents: [
           d.dir('lib', [d.file('main.dart', 'syntax error\n')])
         ])
         ..serve('fails_analysis', '2.0.0', pubspec: {
-          'environment': {'sdk': '>=2.11.0 < 3.0.0'},
+          'environment': {'sdk': '>=2.12.0 < 3.0.0'},
         })
         ..serve('file_in_dependency_opts_out', '1.0.0', deps: {
           'file_opts_out': '^1.0.0'
         }, pubspec: {
-          'environment': {'sdk': '>=2.11.0 < 3.0.0'},
+          'environment': {'sdk': '>=2.12.0 < 3.0.0'},
         })
         ..serve('file_in_dependency_opts_out', '2.0.0', pubspec: {
-          'environment': {'sdk': '>=2.11.0 < 3.0.0'},
+          'environment': {'sdk': '>=2.12.0 < 3.0.0'},
         })
         ..serve('fails_analysis_in_dependency', '1.0.0', deps: {
           'fails_analysis': '^1.0.0'
         }, pubspec: {
-          'environment': {'sdk': '>=2.11.0 < 3.0.0'},
+          'environment': {'sdk': '>=2.12.0 < 3.0.0'},
         })
         ..serve('fails_analysis_in_dependency', '2.0.0', pubspec: {
-          'environment': {'sdk': '>=2.11.0 < 3.0.0'},
+          'environment': {'sdk': '>=2.12.0 < 3.0.0'},
         }),
     );
-    await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '2.12.0'});
+    await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '2.13.0'});
 
     await variations('null_safety',
-        environment: {'_PUB_TEST_SDK_VERSION': '2.12.0'});
+        environment: {'_PUB_TEST_SDK_VERSION': '2.13.0'});
   });
 
   test('overridden dependencies', () async {
diff --git a/test/run/enable_experiments_test.dart b/test/run/enable_experiments_test.dart
index b55cf08..c770c3a 100644
--- a/test/run/enable_experiments_test.dart
+++ b/test/run/enable_experiments_test.dart
@@ -26,12 +26,12 @@
   });
 
   test('Passes --no-sound-null-safety to the vm', () async {
-    const nullSafeEnabledVM = '2.11.0';
+    const vmWithExperiment = '2.11.0';
 
     await d.dir(appPath, [
       d.pubspec({
         'name': 'test_package',
-        'environment': {'sdk': '>=$nullSafeEnabledVM <=3.0.0'}
+        'environment': {'sdk': '>=$vmWithExperiment <=3.0.0'}
       }),
       d.dir('bin', [
         d.file('script.dart', '''
@@ -54,7 +54,7 @@
       ),
     ]).create();
 
-    const environment = {'_PUB_TEST_SDK_VERSION': nullSafeEnabledVM};
+    const environment = {'_PUB_TEST_SDK_VERSION': vmWithExperiment};
 
     await pubGet(environment: environment);
     await runPub(args: [
diff --git a/test/validator/null_safety_mixed_mode_test.dart b/test/validator/null_safety_mixed_mode_test.dart
index 8bbd311..e7abd2a 100644
--- a/test/validator/null_safety_mixed_mode_test.dart
+++ b/test/validator/null_safety_mixed_mode_test.dart
@@ -11,7 +11,7 @@
   await runPub(
       error: error,
       args: ['publish', '--dry-run'],
-      environment: {'_PUB_TEST_SDK_VERSION': '2.11.0'},
+      environment: {'_PUB_TEST_SDK_VERSION': '2.12.0'},
       workingDirectory: d.dir(appPath).io.path,
       exitCode: exitCode);
 }
@@ -34,7 +34,7 @@
     ...extraFiles,
   ]).create();
 
-  await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '2.11.0'});
+  await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '2.12.0'});
 }
 
 void main() {
@@ -46,7 +46,7 @@
           'foo',
           '0.0.1',
           pubspec: {
-            'environment': {'sdk': '>=2.11.0<3.0.0'}
+            'environment': {'sdk': '>=2.12.0<3.0.0'}
           },
         ),
       );
@@ -62,13 +62,13 @@
           'foo',
           '0.0.1',
           pubspec: {
-            'environment': {'sdk': '>=2.11.0<3.0.0'}
+            'environment': {'sdk': '>=2.12.0<3.0.0'}
           },
         ),
       );
 
       await setup(
-          sdkConstraint: '>=2.11.0 <3.0.0', dependencies: {'foo': '^0.0.1'});
+          sdkConstraint: '>=2.12.0 <3.0.0', dependencies: {'foo': '^0.0.1'});
       await expectValidation(contains('Package has 0 warnings.'), 0);
     });
   });
@@ -87,7 +87,7 @@
       );
 
       await setup(
-          sdkConstraint: '>=2.11.0 <3.0.0', dependencies: {'foo': '^0.0.1'});
+          sdkConstraint: '>=2.12.0 <3.0.0', dependencies: {'foo': '^0.0.1'});
       await expectValidation(
           allOf(
             contains(
@@ -98,7 +98,7 @@
     });
 
     test('is opting in to null-safety, but has file opting out', () async {
-      await setup(sdkConstraint: '>=2.11.0 <3.0.0', extraFiles: [
+      await setup(sdkConstraint: '>=2.12.0 <3.0.0', extraFiles: [
         d.dir('lib', [d.file('a.dart', '// @dart = 2.9\n')])
       ]);
       await expectValidation(
@@ -114,7 +114,7 @@
         () async {
       await servePackages(
         (server) => server.serve('foo', '0.0.1', pubspec: {
-          'environment': {'sdk': '>=2.11.0<3.0.0'}
+          'environment': {'sdk': '>=2.12.0<3.0.0'}
         }, contents: [
           d.dir('lib', [
             d.file('foo.dart', '''
@@ -125,7 +125,7 @@
       );
 
       await setup(
-          sdkConstraint: '>=2.11.0 <3.0.0', dependencies: {'foo': '^0.0.1'});
+          sdkConstraint: '>=2.12.0 <3.0.0', dependencies: {'foo': '^0.0.1'});
       await expectValidation(
           allOf(
             contains('package:foo/foo.dart is opting out of null safety:'),
diff --git a/test/validator/relative_version_numbering_test.dart b/test/validator/relative_version_numbering_test.dart
index 45ae071..3cb69b2 100644
--- a/test/validator/relative_version_numbering_test.dart
+++ b/test/validator/relative_version_numbering_test.dart
@@ -25,7 +25,7 @@
     }),
   ]).create();
 
-  await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '2.11.0'});
+  await pubGet(environment: {'_PUB_TEST_SDK_VERSION': '2.12.0'});
 }
 
 void main() {
@@ -62,7 +62,7 @@
             'test_pkg',
             '2.0.0',
             pubspec: {
-              'environment': {'sdk': '>=2.11.0<3.0.0'}
+              'environment': {'sdk': '>=2.12.0<3.0.0'}
             },
           ),
       );
@@ -87,7 +87,7 @@
             'test_pkg',
             '0.0.2-dev',
             pubspec: {
-              'environment': {'sdk': '>=2.11.0<3.0.0'}
+              'environment': {'sdk': '>=2.12.0<3.0.0'}
             },
           ),
       );
@@ -103,29 +103,29 @@
           'test_pkg',
           '0.0.1',
           pubspec: {
-            'environment': {'sdk': '>=2.11.0<3.0.0'}
+            'environment': {'sdk': '>=2.12.0<3.0.0'}
           },
         ),
       );
 
-      await setup(sdkConstraint: '>=2.11.0 <3.0.0');
+      await setup(sdkConstraint: '>=2.12.0 <3.0.0');
       await expectValidation(validator);
     });
 
     test(
-        'is opting in to null-safety using a pre-release of 2.11.0 '
+        'is opting in to null-safety using a pre-release of 2.12.0 '
         'with previous null-safe version', () async {
       await servePackages(
         (server) => server.serve(
           'test_pkg',
           '0.0.1',
           pubspec: {
-            'environment': {'sdk': '>=2.11.0<3.0.0'}
+            'environment': {'sdk': '>=2.12.0<3.0.0'}
           },
         ),
       );
 
-      await setup(sdkConstraint: '>=2.11.0-dev <3.0.0');
+      await setup(sdkConstraint: '>=2.12.0-dev <3.0.0');
       await expectValidation(validator);
     });
 
@@ -138,7 +138,7 @@
             'test_pkg',
             '0.0.1',
             pubspec: {
-              'environment': {'sdk': '>=2.11.0<3.0.0'}
+              'environment': {'sdk': '>=2.12.0<3.0.0'}
             },
           )
           ..serve(
@@ -150,7 +150,7 @@
           ),
       );
 
-      await setup(sdkConstraint: '>=2.11.0 <3.0.0');
+      await setup(sdkConstraint: '>=2.12.0 <3.0.0');
       await expectValidation(validator);
     });
 
@@ -163,7 +163,7 @@
             'test_pkg',
             '0.0.1',
             pubspec: {
-              'environment': {'sdk': '>=2.11.0<3.0.0'}
+              'environment': {'sdk': '>=2.12.0<3.0.0'}
             },
           )
           ..serve(
@@ -175,12 +175,12 @@
           ),
       );
 
-      await setup(sdkConstraint: '>=2.11.0 <3.0.0');
+      await setup(sdkConstraint: '>=2.12.0 <3.0.0');
       await expectValidation(validator);
     });
 
     test('is opting in to null-safety with no existing versions', () async {
-      await setup(sdkConstraint: '>=2.11.0 <3.0.0');
+      await setup(sdkConstraint: '>=2.12.0 <3.0.0');
       await servePackages((x) => x);
       await expectValidation(validator);
     });
@@ -188,7 +188,7 @@
     test(
         'is opting in to null-safety with no existing versions. '
         'Even with an in-between non-null-safe prerelease', () async {
-      await setup(sdkConstraint: '>=2.11.0 <3.0.0');
+      await setup(sdkConstraint: '>=2.12.0 <3.0.0');
       await servePackages(
         (server) => server.serve(
           'test_pkg',
@@ -217,7 +217,7 @@
           'test_pkg',
           '0.0.2-dev',
           pubspec: {
-            'environment': {'sdk': '>=2.11.0<3.0.0'}
+            'environment': {'sdk': '>=2.12.0<3.0.0'}
           },
         ),
       );
@@ -239,7 +239,7 @@
         ),
       );
 
-      await setup(sdkConstraint: '>=2.11.0 <3.0.0');
+      await setup(sdkConstraint: '>=2.12.0 <3.0.0');
       await expectValidation(validator, hints: isNotEmpty);
     });
 
@@ -259,12 +259,12 @@
             'test_pkg',
             '2.0.0',
             pubspec: {
-              'environment': {'sdk': '>=2.11.0<3.0.0'}
+              'environment': {'sdk': '>=2.12.0<3.0.0'}
             },
           ),
       );
 
-      await setup(sdkConstraint: '>=2.11.0 <3.0.0');
+      await setup(sdkConstraint: '>=2.12.0 <3.0.0');
       await expectValidation(validator, hints: isNotEmpty);
     });
 
@@ -284,12 +284,12 @@
             'test_pkg',
             '0.0.2-dev',
             pubspec: {
-              'environment': {'sdk': '>=2.11.0<3.0.0'}
+              'environment': {'sdk': '>=2.12.0<3.0.0'}
             },
           ),
       );
 
-      await setup(sdkConstraint: '>=2.11.0 <3.0.0');
+      await setup(sdkConstraint: '>=2.12.0 <3.0.0');
       await expectValidation(validator, hints: isNotEmpty);
     });
 
@@ -300,7 +300,7 @@
           'test_pkg',
           '0.0.1',
           pubspec: {
-            'environment': {'sdk': '>=2.11.0<3.0.0'}
+            'environment': {'sdk': '>=2.12.0<3.0.0'}
           },
         ),
       );
@@ -318,7 +318,7 @@
             'test_pkg',
             '0.0.1',
             pubspec: {
-              'environment': {'sdk': '>=2.11.0<3.0.0'}
+              'environment': {'sdk': '>=2.12.0<3.0.0'}
             },
           )
           ..serve(
@@ -343,7 +343,7 @@
             'test_pkg',
             '0.0.1',
             pubspec: {
-              'environment': {'sdk': '>=2.11.0<3.0.0'}
+              'environment': {'sdk': '>=2.12.0<3.0.0'}
             },
           )
           ..serve(