Skip to content

v2.2.00

Choose a tag to compare

@github-actions github-actions released this 27 Oct 23:49
· 12 commits to main since this release

Version 2.2.00 adds to the API of 2.1.00 without removing anything. Code built against 2.1.00 links and compiles unchanged.

The client can now stream the sensors and the FRUs: each one is yielded as soon as it is read, instead of once every one is read. ipmicli sensors and ipmicli fru print them as they arrive.

See Upgrading from 2.1.00 to 2.2.00 for every behavior change.

Highlights

Streaming sensors and FRUs (#235)

  • sensors().stream() and frus().stream() return a lazy, sequential java.util.stream.Stream that yields each sensor or FRU as soon as it is read, in the order of execute(). Close it with try-with-resources; closing early sends no further command. See Streaming the sensors and Streaming the FRUs.
  • The selection (types(), names(), ids()) applies as before: an unselected sensor costs no round trip.
  • Each element is read as an operation of the client of its own: the request timeout is an inactivity timeout (the SDR walk, then each element), the operations of other threads run between two elements, and a session lost while an element is read is reopened without the elements already yielded being read again.
  • onSkippedRecord(Consumer<SkippedRecord>) on both requests reports the SDR records the walk skipped, before the first element. execute() calls it too, and still lists them in skippedRecords().
  • execute() is unchanged: it keeps its result type and its overall deadline, and shares one implementation with stream().

Command-line client

  • ipmicli sensors and ipmicli fru print each sensor or FRU as it is read. -t bounds the SDR walk then each sensor or FRU, not the whole subcommand.
  • Behavior change. The columns of the sensors table have fixed widths, so that a row is printed before the next sensor is read; a wider cell pushes the rest of its row. Scripts that cut the table at fixed columns must be adjusted; --json is the stable format for scripts.
  • Behavior change. With -v, the time of sensors and fru is printed after their output, as it includes the printing.

Build and documentation

  • Checkstyle warnings fail the build, as the GitHub check-run only reports them as neutral. The TODO comments left by Verax in SensorRecord and FruRecord are removed.
  • A Latin-1 degree sign in sensors.md is fixed.

Pull requests

  • Streaming terminals sensors().stream() and frus().stream() (#235) — #238

Full Changelog: v2.1.00...v2.2.00