Skip to content

Releases

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 28 Sep 22:33

This release changes no source code of the library. It changes one
dependency, socket2. It is the first release from the repository
rednayan/labstream, and the first that publishes all six crates together. labstream goes from 0.1.0 to 0.1.2, and it has no 0.1.1.

Fixed

  • Four live tests pushed a sample before the outlet registered the inlet. The
    outlet sent that sample to no consumer, and the test failed in some runs.
    no_stage_leaves_a_timestamp_alone failed on Windows and on Linux, and
    a_deduced_timestamp_is_rebuilt_from_the_rate failed on Windows.
    clock_sync_moves_a_timestamp_by_the_measured_offset and
    a_marker_stream_goes_out_and_comes_back_as_text held the same fault. Each
    test now waits for the consumer. The library did not change.
  • both_outlets_hold_the_multicast_port is ignored on macOS. It fails there,
    and docs/conformance.md gives the measurement that decides the correction.
    Linux and Windows still run it.

Added

  • .github/workflows/release.yml. A push of a tag that starts with v checks
    the tag against the manifest and the changelog, runs the tests, publishes to
    crates.io, builds labstream-capi for Linux, macOS, and Windows, and writes
    the GitHub release with the three libraries attached.
  • publish = false in labstream-capi. That crate builds a cdylib alone,
    which a Rust program cannot link, so no command can send it to crates.io.

Changed

  • labstream-net takes socket2 0.6 in place of 0.5. labstream-net uses it
    for one socket option, reuse_address, on the port of the multicast query.
    The call did not change. socket2 0.6 needs Rust 1.70, and the minimum of
    this workspace stays 1.75.
  • docs/versioning.md gives the workflow, the one setting that crates.io needs
    for it, and the way to make a person approve each publish.
  • README.md names labstream on crates.io. The page said that the API crate
    was not published.
  • One repository, rednayan/labstream, now holds every crate. It replaces
    rednayan/labstream-core and rednayan/labstream-rs, and it keeps the
    history of both. The repository field of each crate names it.
  • labstream is a member of the workspace. It takes labstream-net and
    labstream-wire by path and by version, so a change to both builds and
    tests in one checkout. The published manifest still names a version on
    crates.io.
  • labstream takes the version of the workspace. One release now publishes
    six crates, and release.yml publishes labstream with the others.
    crates/labstream/CHANGELOG.md holds the entry for labstream 0.1.0.
  • The conformance workbench is in conformance/. It held a copy of each
    protocol crate from before the rename, and that copy was out of date. It now
    tests the crates below crates/. lsl-peer is the one crate that it keeps,
    and that crate sets publish = false.
  • The C++ library is a git submodule at conformance/liblsl/, at the same
    commit, e651023c.

Install

cargo add labstream

labstream is the API for a Rust program. labstream-core gives the
protocol crates for a program that needs a lower level.

The C library for each platform is below. crates.io carries
source and not a binary, so labstream-capi is not there.