The v1.0 rewrite on master (unreleased currently) removed several essential API functions that downstream packages (like BinaryBuilderBase) depend on:
Missing from v1.0:
OutputCollector(cmd; verbose, tee_stream, tail_error) constructor - the main way to use the package
wait(::OutputCollector) returning success status (Bool)
merge(::OutputCollector) - merge stdout/stderr by timestamp
collect_stdout(::OutputCollector) / collect_stderr(::OutputCollector)
tail(::OutputCollector)
tee(::OutputCollector)
v1.0 provides instead:
collect_output(cmd, outputs) - returns (pipeline, collector) tuple
wait(::OutputCollector) returns nothing
The v1.0 API requires significantly more boilerplate and doesn't store output for later retrieval.
Before releasing v1.0 to General, we should either:
- Restore the v0.1 API (the
release-0.1 branch has thread-safety fixes that could be forward-ported), or
- Document the breaking changes and provide a migration guide
cc @staticfloat - Not sure if there's a direction you intended BBB to take with this V1 rewrite?
The v1.0 rewrite on
master(unreleased currently) removed several essential API functions that downstream packages (like BinaryBuilderBase) depend on:Missing from v1.0:
OutputCollector(cmd; verbose, tee_stream, tail_error)constructor - the main way to use the packagewait(::OutputCollector)returning success status (Bool)merge(::OutputCollector)- merge stdout/stderr by timestampcollect_stdout(::OutputCollector)/collect_stderr(::OutputCollector)tail(::OutputCollector)tee(::OutputCollector)v1.0 provides instead:
collect_output(cmd, outputs)- returns(pipeline, collector)tuplewait(::OutputCollector)returnsnothingThe v1.0 API requires significantly more boilerplate and doesn't store output for later retrieval.
Before releasing v1.0 to General, we should either:
release-0.1branch has thread-safety fixes that could be forward-ported), orcc @staticfloat - Not sure if there's a direction you intended BBB to take with this V1 rewrite?