Skip to content

v4.0.0

Latest

Choose a tag to compare

@jcouball jcouball released this 06 Jun 19:59

4.0.0 (2025-06-05)

⚠ BREAKING CHANGES

  • Users who call ProcessExecuter::Options::Base#with even if from a derived class will need to update to use #merge instead.
  • Users depending on Result#stdout or Result#stderr will either have to capture this output manually themselves or change from spawn_and_wait/run to run_with_capture.
  • calls to ProcessExecuter.spawn_with_timeout_with_options and ProcessExecuter.run_with_options have been removed. Use ProcessExecuter.spawn_with_timeout and ProcessExecuter.run instead.
  • Users who use ProcessExecuter.spawn_and_wait will need to update their calls to spawn_with_timeout. In addition, the following items will need to be updated if used by the user of this gem:
    • ProcessExecuter.spawn_and_wait_with_options
    • ProcessExecuter::SpawnAndWaitOptions
  • In places where users of this gem rescued ::ArgumentError, they will have to change the rescued class to ProcessExecuter::ArgumentError.

Features

  • Add ProcessExecuter.run_with_capture (d9e97fe)
  • Add encoding, stdout_encoding, stderr_encoding options to RunWithCaptureOptions (83eaa93)
  • Add ProcessExecuter::ArgumentError and raise it instead of ::ArgumentError (860fc5a)
  • Ensure that all data written by MonitoredPipe is ASCII-8BIT encoded (8753006)
  • Make run_with_capture encode captured stdout and stderr based on encoding options (75c3d92)
  • Remove #spawn_with_timeout_with_options and #run_with_options methods (446cb51)
  • Remove Result#stdout and Result#stderr (2dcad47)
  • Rename ProcessExecuter::Options::Base#with to #merge (7e8c28e)
  • Rename ProcessExecuter.spawn_and_wait to spawn_with_timeout (b9d19e7)

Bug Fixes

  • Fix new rubocop offense Style/EmptyStringInsideInterpolation (bb610af)

Other Changes

  • Add a JRuby 10 build to the continuous integration workflow (7a939ba)
  • Document the new encoding options on ProcessExecuter.run_with_capture (c86ce62)
  • Ensure that binary data is correctly written to file destinations (0d2db54)
  • Fix indentation in README (1837e7a)
  • Internally refactor classes for clarity and update documentation (da1db96)
  • Remove unneeded :nocov: blocks (7a1fcf5)
  • Update the README with all the changes for the latest release (38206a5)