MIT licensed by Roman Gonzalez
This version can be pinned in stack with:capataz-0.2.1.0@sha256:185b2456561f496ecfdcfc338fdbf0da78580f7d0116543c60ef3bf9f3a4415b,3129
Module documentation for 0.2.1.0
Capataz
Our greatest glory is not in never failing, but in rising every time we fail.โ Confucius
Table Of Contents
Installation

Make sure you include the following entry on your cabal fileโs
dependecies
section.
library:
build-depends: capataz
Or on your package.yaml
dependencies:
- capataz
Documentation
The documentation website can be found
here. Some relevant links:
Development

Follow the developer guidelines
In future releases
- Replace Protolude in favor of RIO
- Documentation of performance analysis
- Ensure unit tests always finish on all concurrent scenarios (dejafu experiment)
Change log
capataz uses Semantic Versioning.
The change log is available on GitHub.
v0.2.1.0
- Support GHC-8.6.3.
- Deprecate
buildLogWorkerSpec in favour of buildLogWorkerSpec1 which takes
Natural instead of Int for compatibility with stm-2.5.
- Deprecate
buildLogWorkerOptions in favour of buildLogWorkerOptions1 which
takes Natural instead of Int for compatibility with stm-2.5.
v0.2.0.0 Bumblebee release
BREAKING CHANGES
- Allow the creation of Supervision Trees on Monad Transformer stacks ๐
- Move to latest stable stackage snapshot (lts-11.10)
- Remove
protolude in favor of rio (closes #9)
- Add convinience module
Capataz
- Add
Control.Concurrent.Capataz.Util which provide ProcessSpec for normal use-cases
- Add
buildLogWorkerSpec and buildLogWorkerOptions which create a dedicated supervised
thread that logs messages (sits on top of rio logger utilities)
- Add
terminateCapataz and terminateCapataz_ , these functions replace the
re-exported runTeardown
- Add re-export of
TeardownResult from the teardown package
- Update the
capataz-simple-example project to use typed-process and rio
- Add export for
WorkerName and SupervisorName aliases
- Add new dependency
prettyprinter
- Add new dependency
pretty-show to prettify exceptions
- Add
Pretty instance for CapatazEvent
- Add
Display instance for CapatazEvent
- Add
ProcessThreadId newtype to better render ThreadId values
- Add
buildWorkerOptions1 and workerSpec1 (closes #17)
- Move to CircleCI
v0.1.0.1
- Bump bounds of
async dependency
v0.1.0.0 Who supervises the supervisor?
BREAKING CHANGES
- Introduction of the
Process type which is composed of both Supervisor and
Worker types
- Replace
defWorkerSpec in favor of workerSpec and workerSpecWithDefaults
to build static workers
- Replace of
defWorkerOptions in favor of buildWorkerOptions and
buildWorkerOptionsWithDefaults to build dynamic workers
- Replace
terminateWorker in favor of terminateProcess
- Add
supervisorSpec, supervisorSpecWithDefaults to build static supervision
trees
- Add
forkSupervisor, buildSupervisorOptions and
buildSupervisorOptionsWithDefaults to build dynamic supervision trees
- Replace usage of default records semantics in favor of Lenses
- Add
joinCapatazThread to avoid providing direct access to async of root
supervision tree
- Add
getSupervisorProcessId to access the ProcessId of a given Supervisor
record (for dynamic termination)
- Add
getSupervisorAsync to access the Async () record of a supervisor
process thread
- Add
getCapatazTeardown to access the Teardown record of the capataz system
- Move
CapatazEvent records to new module Control.Concurrent.Capataz.Event
to avoid requiring DuplicateRecordFields extension on API users
- Remove
WorkerAction alias as it is used for library development
documentation
- Add capataz-repo-watcher example to showcase static supervision trees
- Update capataz-simple-example unix-process example
forkCapataz signature now requires name for root supervisor
v0.0.0.2
- Bump bounds of
tasty dependency
v0.0.0.1
- Bump bounds of
tasty dependency
- Bump bounds of
tasty-hunit dependency
v0.0.0.0
- First release of capataz
- Support for supervising simple worker
IO () sub-routines