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:
v11.1.0 - 2023-11-14
New Features:
- Added
waitSpawned'
which works on UnsafeChildProcess (#62 by @JordanMartinez)
Other improvements:
- Noted
pipe
/inherit
stdio issues withstdin
(#62 by @JordanMartinez)
v11.0.0 - 2023-07-26
Breaking changes:
-
Update the signal arg from
String
toKillSignal
(#51, #52 by @JordanMartinez)Exit
'sBySignal
constructor's argexitH
/closeH
's signal argspawnSync
'sSpawnResult
'ssignal
fieldkill'
's signal arg
-
Removed
safeStdio
(#60 by @JordanMartinez)Turns out this isn't safe for
*Sync
functions. 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
Eq
andShow
instance 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-streams
tov9.0.0
to fix FFI issues (#61 by @JordanMartinez)
Other improvements:
- Fix regression: add
ref
/unref
APIs that were dropped inv10.0.0
(#50 by @JordanMartinez) - Wrap
Unsafe
API viaChildProcess
in 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
pid
type signature to returnMaybe Pid
rather thanPid
(#44 by @JordanMartinez) -
Update
kill
returned value fromEffect Unit
toEffect Boolean
(#44 by @JordanMartinez) -
Migrate
Error
tonode-os
'SystemError
(#45 by @JordanMartinez) -
Breaking changes made to the
Exit
type (#46 by @JordanMartinez)- Moved from
Node.ChildProces
toNode.ChildProces.Types
- Changed the
BySignal
's constructor's arg type fromSignal
toString
- Moved from
-
Breaking changes made to the
Handle
type (#46 by @JordanMartinez)- Moved from
Node.ChildProces
toNode.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
stdio
to 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
spawn
event (#43 by @JordanMartinez) -
Added missing APIs (#44 by @JordanMartinez)
- exitCode
- kill (no signal specified)
- kill' (kill with a
String
signal) - killSignal (kill with an ADT
Signal
arg) - 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
-basedwaitSpawned
to 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/checkout
andactions/setup-nodee
tov3
(#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
shell
andencoding
options toexec
functions (#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-object
dependency
v5.0.0 - 2018-06-02
- Updates for 0.12
Breaking
- mkOnClose now reacts to the
close
signal instead ofexit
@Profpatsch kill
returns Unit instead of Boolean @Profpatschexec
/execFile
returns 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 function
errors when callingNode.ChildProcess.fork
- Fix unused import warnings
v0.4.1 - 2015-12-31
- Fix
onError
never firing. Oops.
v0.4.0 - 2015-12-29
-
Breaking change:
SpawnOptions
now uses theUid
andGid
types frompurescript-posix-types
for itsuid
andgid
options, 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
, andsend
would 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 String
for child process environments inspawn
, in order to ensure environment variable values are strings - Allow inheritance of parent process environment by passing
Nothing
to theenv
parameter - Use an opaque data type for
ChildProcess
values - Use
Int
instead ofNumber
where applicable (eg,gid
,uid
,pid
) - Require
Eff
for reading mutable state of aChildProcess
- Simplify effects; now, we just have
cp :: CHILD_PROCESS
for 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
onExit
andonClose
did not get called - Add a
ChildProcessExit
type 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.