Skip to content

v1.0 on master missing essential API from v0.1 #15

@IanButterworth

Description

@IanButterworth

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:

  1. Restore the v0.1 API (the release-0.1 branch has thread-safety fixes that could be forward-ported), or
  2. 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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions