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