Skip to content

Releases: main-branch/process_executer

v4.0.0

06 Jun 19:59

Choose a tag to compare

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)

v3.2.4

18 Apr 00:04

Choose a tag to compare

3.2.4 (2025-04-18)

Other Changes

  • Configure release-please to includes all changes in the CHANGELOG (41acdbc)
  • Do not enforce conventional commits for release PR (080f3ff)

v3.2.3

17 Apr 00:05

Choose a tag to compare

3.2.3 (2025-04-17)

Bug Fixes

  • Do not trigger build workflows after merging to main or for release PRs (0b2701c)

v3.2.2

16 Apr 00:30

Choose a tag to compare

3.2.2 (2025-04-16)

Bug Fixes

  • Automate commit-to-publish workflow (c51e8d2)

Release v3.2.1

09 Apr 01:13

Choose a tag to compare

v3.2.1 (2025-04-08)

Full Changelog

Changes since v3.2.0:

  • d1e19a5 test: assert that MonitoredPipe has no open instances after each test
  • aa71f8e test: ensure MonitoredPipe cleans up open instances in specs
  • 987b0c9 fix: ensure that all pipes are closed even when there is an IOError
  • 65e8db0 fix: ensure that MonitoredPipe cleans up after itself even when there is IOError
  • ed2454e chore: integrate track_open_instances gem to report on leaked MonitoredPipe instances
  • f25c87d chore: release v3.2.0

Release v3.2.0

05 Apr 00:39

Choose a tag to compare

v3.2.0 (2025-04-04)

Full Changelog

Changes since v3.1.0:

  • 272d246 test: fix flaky test that fails on windows
  • 1e121d8 test: add test for raising a SpawnError when Process.spawn raises an error
  • 2a2aaac refactor: improve synchronization of the monitored pipe state

Release v3.1.0

01 Apr 17:11

Choose a tag to compare

v3.1.0 (2025-04-01)

Full Changelog

Changes since v3.0.0:

  • acb6385 fix: give Windows enough time to release its file lock so tmpdir can be deleted
  • 3fe114a feat: wrap errors raised by Process.spawn in a ProcessExecuter::SpawnError

Release v3.0.0

18 Mar 19:37

Choose a tag to compare

v3.0.0 (2025-03-18)

Full Changelog

Changes since v2.0.0:

  • 3d337de feat: remove Options setter methods and add with method
  • 706d78a docs: add a list the breaking changes for each major release in the README.md
  • 2903c80 feat: report all option errors instead of just the first one
  • 247150d feat!: do not capture stdout and stderr by default in ProcessExecuter.run
  • 4b3ac02 feat: support redirection destinations in the form [:child, fd] and :close
  • ed4620f docs: update README.md to highlight the important parts of this gem
  • 48b4695 fix: allow Integer or IO are used as a redirection source
  • 4424a44 feat!: remove the :merge option from ProcessExecuter.run
  • 7257e5d chore: allow SpawnOptions to accept Integer and IO redirection sources
  • 92441d0 chore: move all options related classes to a new Options module
  • 92c096c chore: remove unneeded test file
  • 91d0db3 feat: implement all possible redirection destinations
  • a58af4a fix: fix complexity error reported by CodeClimate
  • 66d97b7 chore: do not fail the CI build for low coverage on JRuby and TruffleRuby
  • 2fb0ccf feat: refactor options classes
  • bcf35d5 chore: do not fail the CI build for low coverage on JRuby and TruffleRuby

Release v2.0.0

03 Mar 22:27

Choose a tag to compare

v2.0.0 (2025-03-03)

Full Changelog

Changes since v1.3.0:

  • f0836cc feat: refactor the interface to simplify the gem

Release v1.3.0

27 Feb 01:29

Choose a tag to compare

v1.3.0 (2025-02-26)

Full Changelog

Changes since v1.2.0:

  • d1e189b build: add Ruby 3.4 to the CI workflow
  • e805dfc feat: implement ProcessExecuter.run_command
  • bad822f fix: update the yard build in the rake file and update included files
  • 6fbdc5e feat: allow #spawn to accept file descriptors for redirection destination
  • d745685 test: make it so that tests do not give unnecessary output