Fix ProcessManager signatures to be consistent with LocalProcessManager (#58)

When `LocalProcessManager.run`, `.runSync`, and `.start` were
migrated for null-safety, the base `ProcessManager` interface was not
updated.  This led to an inconsistency where the interface
unnecessarily required non-null versions of `workingDirectory` and
`environment`, which creates extra headache for clients.  This change
should be safe since it makes the base interface less restrictive.

Additionally, `LocalProcessManager` takes a covariant `List<Object>`
where the base interface takes `List<dynamic>`.  I don't see a need
for the interface to take `List<dynamic>` (which could accept `null`)
so change that too.  This change is less safe, although in practice
anything that attempted to pass `null` would already crash if using
the `LocalProcessManager` implementation anyway.

Fixes https://github.com/google/process.dart/issues/56.
4 files changed
tree: 880106ba779c69e6996617b5c710161b9c7d2eb0
  1. dev/
  2. lib/
  3. test/
  4. .gitignore
  5. .travis.yml
  6. analysis_options.yaml
  7. AUTHORS
  8. CHANGELOG.md
  9. CONTRIBUTING.md
  10. LICENSE
  11. pubspec.yaml
  12. README.md
README.md

Process

Build Status - Coverage Status -

A generic process invocation abstraction for Dart.

Like dart:io, package:process supplies a rich, Dart-idiomatic API for spawning OS processes.

Unlike dart:io, package:process:

  • Can be used to implement custom process invocation backends.
  • Comes with a record-replay implementation out-of-the-box, making it super easy to test code that spawns processes in a hermetic way.