Releases: main-branch/process_executer
Releases · main-branch/process_executer
v4.0.0
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#stdoutorResult#stderrwill either have to capture this output manually themselves or change fromspawn_and_wait/runtorun_with_capture.
- calls to ProcessExecuter.spawn_with_timeout_with_optionsandProcessExecuter.run_with_optionshave been removed. UseProcessExecuter.spawn_with_timeoutandProcessExecuter.runinstead.
- 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
v3.2.3
v3.2.2
Release v3.2.1
v3.2.1 (2025-04-08)
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
v3.2.0 (2025-04-04)
Changes since v3.1.0:
Release v3.1.0
v3.1.0 (2025-04-01)
Changes since v3.0.0:
Release v3.0.0
v3.0.0 (2025-03-18)
Changes since v2.0.0:
- 3d337de feat: remove Options setter methods and add withmethod
- 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
Release v1.3.0
v1.3.0 (2025-02-26)
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