Make encoding parameter nullable (#65)

This aligns the interface with the upstream `dart:io` API.

The `covariant` keyword is used for backward compatibility. It should be
removed in the next major release.

cc #64
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d469337..bf69b55 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+#### 4.2.2
+
+* Mark `stderrEncoding` and `stdoutEncoding` parameters as nullable.
+
 #### 4.2.1
 
 * Added custom exception types `ProcessPackageException` and
diff --git a/lib/src/interface/local_process_manager.dart b/lib/src/interface/local_process_manager.dart
index 72e513a..7de97a3 100644
--- a/lib/src/interface/local_process_manager.dart
+++ b/lib/src/interface/local_process_manager.dart
@@ -67,8 +67,8 @@
     Map<String, String>? environment,
     bool includeParentEnvironment = true,
     bool runInShell = false,
-    Encoding stdoutEncoding = systemEncoding,
-    Encoding stderrEncoding = systemEncoding,
+    Encoding? stdoutEncoding = systemEncoding,
+    Encoding? stderrEncoding = systemEncoding,
   }) {
     try {
       return Process.run(
@@ -98,8 +98,8 @@
     Map<String, String>? environment,
     bool includeParentEnvironment = true,
     bool runInShell = false,
-    Encoding stdoutEncoding = systemEncoding,
-    Encoding stderrEncoding = systemEncoding,
+    Encoding? stdoutEncoding = systemEncoding,
+    Encoding? stderrEncoding = systemEncoding,
   }) {
     try {
       return Process.runSync(
diff --git a/lib/src/interface/process_manager.dart b/lib/src/interface/process_manager.dart
index 8862a14..d99a874 100644
--- a/lib/src/interface/process_manager.dart
+++ b/lib/src/interface/process_manager.dart
@@ -141,8 +141,9 @@
     Map<String, String>? environment,
     bool includeParentEnvironment = true,
     bool runInShell = false,
-    Encoding stdoutEncoding = systemEncoding,
-    Encoding stderrEncoding = systemEncoding,
+    // TODO(#64): Remove the `covariant` keyword.
+    covariant Encoding? stdoutEncoding = systemEncoding,
+    covariant Encoding? stderrEncoding = systemEncoding,
   });
 
   /// Starts a process and runs it to completion. This is a synchronous
@@ -158,8 +159,9 @@
     Map<String, String>? environment,
     bool includeParentEnvironment = true,
     bool runInShell = false,
-    Encoding stdoutEncoding = systemEncoding,
-    Encoding stderrEncoding = systemEncoding,
+    // TODO(#64): Remove the `covariant` keyword.
+    covariant Encoding? stdoutEncoding = systemEncoding,
+    covariant Encoding? stderrEncoding = systemEncoding,
   });
 
   /// Returns `true` if the [executable] exists and if it can be executed.
diff --git a/pubspec.yaml b/pubspec.yaml
index 685a754..7cb3e93 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: process
-version: 4.2.1
+version: 4.2.2
 description: A pluggable, mockable process invocation abstraction for Dart.
 homepage: https://github.com/google/process.dart