diff --git a/CHANGELOG.md b/CHANGELOG.md
index ce42469..143e1c2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.1.15
+
+* Set max SDK version to `<3.0.0`, and adjust other dependencies.
+
 ## 2.1.14
 
 * Remove use of deprecated features.
diff --git a/analysis_options.yaml b/analysis_options.yaml
deleted file mode 100644
index a10d4c5..0000000
--- a/analysis_options.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-analyzer:
-  strong-mode: true
diff --git a/pubspec.yaml b/pubspec.yaml
index 8f520c5..9f0897c 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,15 +1,19 @@
 name: yaml
-version: 2.1.14
-author: "Dart Team <misc@dartlang.org>"
-homepage: https://github.com/dart-lang/yaml
+version: 2.1.15
+
 description: A parser for YAML.
+author: Dart Team <misc@dartlang.org>
+homepage: https://github.com/dart-lang/yaml
+
 environment:
-  sdk: '>=2.0.0-dev.49.0 <2.0.0'
+  sdk: '>=2.0.0-dev.49.0 <3.0.0'
+  
 dependencies:
-  charcode: "^1.1.0"
-  collection: ">=1.1.0 <2.0.0"
-  string_scanner: ">=0.1.4 <2.0.0"
-  source_span: ">=1.0.0 <2.0.0"
+  charcode: ^1.1.0
+  collection: '>=1.1.0 <2.0.0'
+  string_scanner: '>=0.1.4 <2.0.0'
+  source_span: '>=1.0.0 <2.0.0'
+
 dev_dependencies:
-  path: ">=1.2.0 <2.0.0"
-  test: ">=0.12.0 <0.13.0"
+  path: '>=1.2.0 <2.0.0'
+  test: '>=0.12.0 <0.13.0'
diff --git a/test/utils.dart b/test/utils.dart
index f720387..39fe203 100644
--- a/test/utils.dart
+++ b/test/utils.dart
@@ -7,7 +7,7 @@
 import 'package:yaml/yaml.dart';
 
 /// A matcher that validates that a closure or Future throws a [YamlException].
-final Matcher throwsYamlException = throwsA(new isInstanceOf<YamlException>());
+final Matcher throwsYamlException = throwsA(new TypeMatcher<YamlException>());
 
 /// Returns a matcher that asserts that the value equals [expected].
 ///
diff --git a/test/yaml_node_wrapper_test.dart b/test/yaml_node_wrapper_test.dart
index 5d9a102..d9b5010 100644
--- a/test/yaml_node_wrapper_test.dart
+++ b/test/yaml_node_wrapper_test.dart
@@ -53,19 +53,19 @@
         }));
 
     expect(map.span, isNullSpan(isNull));
-    expect(map["list"], new isInstanceOf<YamlList>());
-    expect(map["list"].nodes[0], new isInstanceOf<YamlScalar>());
+    expect(map["list"], new TypeMatcher<YamlList>());
+    expect(map["list"].nodes[0], new TypeMatcher<YamlScalar>());
     expect(map["list"].span, isNullSpan(isNull));
-    expect(map["map"], new isInstanceOf<YamlMap>());
-    expect(map["map"].nodes["foo"], new isInstanceOf<YamlScalar>());
-    expect(map["map"]["nested"], new isInstanceOf<YamlList>());
+    expect(map["map"], new TypeMatcher<YamlMap>());
+    expect(map["map"].nodes["foo"], new TypeMatcher<YamlScalar>());
+    expect(map["map"]["nested"], new TypeMatcher<YamlList>());
     expect(map["map"].span, isNullSpan(isNull));
-    expect(map.nodes["scalar"], new isInstanceOf<YamlScalar>());
+    expect(map.nodes["scalar"], new TypeMatcher<YamlScalar>());
     expect(map.nodes["scalar"].value, "value");
     expect(map.nodes["scalar"].span, isNullSpan(isNull));
     expect(map["scalar"], "value");
     expect(map.keys, unorderedEquals(["list", "map", "scalar"]));
-    expect(map.nodes.keys, everyElement(new isInstanceOf<YamlScalar>()));
+    expect(map.nodes.keys, everyElement(new TypeMatcher<YamlScalar>()));
     expect(map.nodes[new YamlScalar.wrap("list")], equals([1, 2, 3]));
   });
 
@@ -108,14 +108,14 @@
         ]));
 
     expect(list.span, isNullSpan(isNull));
-    expect(list[0], new isInstanceOf<YamlList>());
-    expect(list[0].nodes[0], new isInstanceOf<YamlScalar>());
+    expect(list[0], new TypeMatcher<YamlList>());
+    expect(list[0].nodes[0], new TypeMatcher<YamlScalar>());
     expect(list[0].span, isNullSpan(isNull));
-    expect(list[1], new isInstanceOf<YamlMap>());
-    expect(list[1].nodes["foo"], new isInstanceOf<YamlScalar>());
-    expect(list[1]["nested"], new isInstanceOf<YamlList>());
+    expect(list[1], new TypeMatcher<YamlMap>());
+    expect(list[1].nodes["foo"], new TypeMatcher<YamlScalar>());
+    expect(list[1]["nested"], new TypeMatcher<YamlList>());
     expect(list[1].span, isNullSpan(isNull));
-    expect(list.nodes[2], new isInstanceOf<YamlScalar>());
+    expect(list.nodes[2], new TypeMatcher<YamlScalar>());
     expect(list.nodes[2].value, "value");
     expect(list.nodes[2].span, isNullSpan(isNull));
     expect(list[2], "value");
@@ -153,7 +153,7 @@
 }
 
 Matcher isNullSpan(sourceUrl) => predicate((span) {
-      expect(span, new isInstanceOf<SourceSpan>());
+      expect(span, new TypeMatcher<SourceSpan>());
       expect(span.length, equals(0));
       expect(span.text, isEmpty);
       expect(span.start, equals(span.end));
