Notable changes to this project are documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Breaking changes:
New features:
Bugfixes:
Other improvements:
v12.0.0 - 2025-03-22
Breaking changes:
- Account for child creation to possibly fail with system error
BySysError(#66 by @Hi-Angel)
Other improvements:
- Changed
SpawnSyncOptionsdocs to remove mention of input types other thanBuffer, as that is all the PureScript API supports (#64 by @Hi-Angel)
v11.1.0 - 2023-11-14
New Features:
- Added
waitSpawned'which works on UnsafeChildProcess (#62 by @JordanMartinez)
Other improvements:
- Noted
pipe/inheritstdio issues withstdin(#62 by @JordanMartinez)
v11.0.0 - 2023-07-26
Breaking changes:
-
Update the signal arg from
StringtoKillSignal(#51, #52 by @JordanMartinez)Exit'sBySignalconstructor's argexitH/closeH's signal argspawnSync'sSpawnResult'ssignalfieldkill''s signal arg
-
Removed
safeStdio(#60 by @JordanMartinez)Turns out this isn't safe for
*Syncfunctions. AFAIK, this isn't documented in Node docs.
New features:
- Added
fromKillSignal,fromKillSignal'(#51, #59, #60 by @JordanMartinez) - Added
pidExists(#53 by @JordanMartinez) - Export
toUnsafeChildProcess(#55 by @JordanMartinez) - Added
stdio(#55 by @JordanMartinez) - Added
EqandShowinstance toShell&KillSignal(#58, #59 by @JordanMartinez)
Bugfixes:
- Fixed
exitH's String value for listener (#60 by @JordanMartinez) - Added missing FFI for
execSync'(#60 by @JordanMartinez) - Update
node-streamstov9.0.0to fix FFI issues (#61 by @JordanMartinez)
Other improvements:
- Fix regression: add
ref/unrefAPIs that were dropped inv10.0.0(#50 by @JordanMartinez) - Wrap
UnsafeAPI viaChildProcessin safer way (#54 by @JordanMartinez) - Update tests to actually throw if invalid state occurs (#60 by @JordanMartinez)
v10.0.0 - 2023-07-20
Breaking changes:
-
Migrate
onEvent-style event handlers toeventH-style (#43 by @JordanMartinez)-- Before onExit cp case _ of Normally exitCode -> ... BySignal signal -> ... -- After cp # on_ exitH case _ of Normally exitCode -> ... BySignal signal -> ...
See https://pursuit.purescript.org/packages/purescript-node-event-emitter/3.0.0/docs/Node.EventEmitter for more details.
-
Update
pidtype signature to returnMaybe Pidrather thanPid(#44 by @JordanMartinez) -
Update
killreturned value fromEffect UnittoEffect Boolean(#44 by @JordanMartinez) -
Migrate
Errortonode-os'SystemError(#45 by @JordanMartinez) -
Breaking changes made to the
Exittype (#46 by @JordanMartinez)- Moved from
Node.ChildProcestoNode.ChildProces.Types - Changed the
BySignal's constructor's arg type fromSignaltoString
- Moved from
-
Breaking changes made to the
Handletype (#46 by @JordanMartinez)- Moved from
Node.ChildProcestoNode.ChildProces.Types
- Moved from
-
Converted
defaultOptions { override = Just 1}pattern to(_ { override = Just 1})(#46 by @JordanMartinez)Before:
spawn "foo" [ "bar" ] (defaultSpawnOptions { someOption = Just overrideValue }) spawn "foo" [ "bar" ] defaultSpawnOptions
After:
spawn "foo" [ "bar" ] (_ { someOption = Just overrideValue }) spawn "foo" [ "bar" ] identity
-
Restrict end-user's ability to configure
stdioto only those appended tosafeStdio(#46 by @JordanMartinez)See the module docs for
Node.ChildProcess. -
All
ChildProcess-creating functions have been updated to support no args and all args variants (#46, #48 by @JordanMartinez)
New features:
-
Added event handler for
spawnevent (#43 by @JordanMartinez) -
Added missing APIs (#44 by @JordanMartinez)
- exitCode
- kill (no signal specified)
- kill' (kill with a
Stringsignal) - killSignal (kill with an ADT
Signalarg) - killed
- signalCode
- spawnArgs
- spawnFile
-
Added unsafe, uncurried API of all ChildProcess-creating functions (#46 by @JordanMartinez)
-
Added safe variant of
spawnSync/spawnSync'(#46 by @JordanMartinez) -
Added
Aff-basedwaitSpawnedto safely getPid(#47 by @JordanMartinez)Blocks until child process either successfully spawns or fails to spawn.
Bugfixes:
Other improvements:
- Bumped CI's node version to
lts/*(#41 by @JordanMartinez) - Updated CI
actions/checkoutandactions/setup-nodeetov3(#41 by @JordanMartinez) - Format codebase & enforce formatting in CI via purs-tidy (#42 by @JordanMartinez)
- Migrate FFI to uncurried functions (#44, #46 by @JordanMartinez)
- Updated recommended module alias in docs (#46 by @JordanMartinez)
v9.0.0 - 2022-04-29
Breaking changes:
- Update project and deps to PureScript v0.15.0 (#31 by @JordanMartinez, @thomashoneyman, @sigma-andex)
v8.0.0 - 2022-04-27
Due to an incorrectly-made breaking change, please use v8.0.0 instead.
v7.1.0 - 2021-07-13
New features:
- Added
shellandencodingoptions toexecfunctions (#29 by @thomashoneyman)
v7.0.0 - 2021-02-26
Breaking changes:
- Updated dependencies for PureScript 0.14 (#25)
Other improvements:
- Migrated CI to GitHub Actions and updated installation instructions to use Spago (#24)
- Added a CHANGELOG.md file and pull request template (#26)
v6.0.0 - 2019-03-15
- Updated
purescript-foreign-objectdependency
v5.0.0 - 2018-06-02
- Updates for 0.12
Breaking
- mkOnClose now reacts to the
closesignal instead ofexit@Profpatsch killreturns Unit instead of Boolean @Profpatschexec/execFilereturns a ChildProcess @Profpatsch
Additions
- Bindings to the synchronous versions of exec @jyh1
v4.0.0 - 2017-04-05
- Updates for 0.11 compiler
v3.0.1 - 2016-11-19
- Fixed shadowed name warning
v3.0.0 - 2016-10-22
- Updated dependencies
v2.0.0 - 2016-07-31
- Updated dependencies
v1.0.0 - 2016-06-19
- Updates for 0.9.1 compiler and 1.0 core libraries.
v0.6.0 - 2016-03-31
- Bump dependencies (
purescript-node-streams-> v0.4.0).
v0.5.1 - 2016-01-14
- Add
execFile
v0.5.0 - 2016-01-06
- Bump dependencies (
node-fs->~0.10.0)
v0.4.2 - 2016-01-01
- Fix
Node_ChildProcess.fork is not a functionerrors when callingNode.ChildProcess.fork - Fix unused import warnings
v0.4.1 - 2015-12-31
- Fix
onErrornever firing. Oops.
v0.4.0 - 2015-12-29
-
Breaking change:
SpawnOptionsnow uses theUidandGidtypes frompurescript-posix-typesfor itsuidandgidoptions, instead ofInt.
-
New features:
- Added
exec.
- Added
v0.3.2 - 2015-12-27
- Documentation updates
v0.3.1 - 2015-12-27
- Move documentation to Pursuit
- Documentation updates
v0.3.0 - 2015-12-27
- Use purescript-posix-types
- Fix a bug where
kill,connected, andsendwould perform the effects too early - Modify type names to avoid repeating the module name:
ChildProcessExit->Exit, andChildProcessError->Error.
v0.2.0 - 2015-12-27
- Use a
StrMap Stringfor child process environments inspawn, in order to ensure environment variable values are strings - Allow inheritance of parent process environment by passing
Nothingto theenvparameter - Use an opaque data type for
ChildProcessvalues - Use
Intinstead ofNumberwhere applicable (eg,gid,uid,pid) - Require
Efffor reading mutable state of aChildProcess - Simplify effects; now, we just have
cp :: CHILD_PROCESSfor spawning and communicating with child processes - Use a sum type to allow more flexibility with what to do with standard IO streams / file descriptors in the child process after spawning
- Fix a bug where callbacks in
onExitandonClosedid not get called - Add a
ChildProcessExittype with information about how a child process exited - Fix warnings
- Update dependencies:
purescript-node-streams->~0.3.0
See joneshf/purescript-node-child-process#2 for the rationale behind many of these changes.