Prepare release for 0.3.0
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fc8e1e0..3bda04b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.3.0
+
+- Remove outdated references in the documentation
+
 ## 0.3.0-nullsafety.0
 
 - Remove `TarReader.contents` and `TarReader.header`. Use `current.contents` and `current.header`, respectively.
diff --git a/pubspec.yaml b/pubspec.yaml
index 75e4d51..b2467e0 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,17 +1,17 @@
 name: tar
 description: Memory-efficient, streaming implementation of the tar file format
-version: 0.3.0-nullsafety.0
+version: 0.3.0
 repository: https://github.com/simolus3/tar/
 
 environment:
-  sdk: '>=2.12.0-0 <3.0.0'
+  sdk: '>=2.12.0-29.10.beta <3.0.0'
 
 dependencies:
-  chunked_stream: ^1.4.0-nullsafety.0
-  meta: ^1.3.0-nullsafety.6
-  typed_data: ^1.3.0-nullsafety.5
+  chunked_stream: ^1.4.0
+  meta: ^1.3.0
+  typed_data: ^1.3.0
 
 dev_dependencies:
-  charcode: ^1.2.0-nullsafety
+  charcode: ^1.2.0
   extra_pedantic: ^1.2.0
-  test: ^1.16.0-nullsafety
+  test: ^1.16.0
diff --git a/test/reader_test.dart b/test/reader_test.dart
index a03a3b2..3a9a3d8 100644
--- a/test/reader_test.dart
+++ b/test/reader_test.dart
@@ -767,13 +767,13 @@
 
     for (final testInputs in tests) {
       test('${testInputs['file']}', () async {
-        final tarReader = TarReader(open(testInputs['file'] as String),
+        final tarReader = TarReader(open(testInputs['file']! as String),
             maxSpecialFileSize: 16000);
 
         if (testInputs['error'] == true) {
           expect(tarReader.moveNext(), throwsFormatException);
         } else {
-          final expectedHeaders = testInputs['headers'] as List<TarHeader>;
+          final expectedHeaders = testInputs['headers']! as List<TarHeader>;
 
           for (var i = 0; i < expectedHeaders.length; i++) {
             expect(await tarReader.moveNext(), isTrue);