- Remove
com.taoensso/timbre
dependency- BEHAVIOR CHANGE: previously, failures logged by
state-flow.core/log-error
were sent to whatever appenders were configured in timbre. Now, failures are always logged toclojure.core/*out*
.
- BEHAVIOR CHANGE: previously, failures logged by
- Bump dependencies
- org.clojure/clojure from 1.11.4 to 1.12.0
- com.taoensso/timbre from 6.5.0 to 6.6.1
- Bump dependencies
- org.clojure/clojure from 1.11.1 to 1.11.4
- com.taoensso/timbre from 4.10.0 to 6.5.0
- nubank/matcher-combinators from 3.5.0 to 3.9.1
- revert linter
state-flow.labs.state/with-redefs
- Add linter for
state-flow.labs.state/with-redefs
#175
- Store init function in state metadata
- switch the declare/import-var function to def in state.api #171
- Bump midje to 1.10.9
- Bump midje to 1.10.7
- bump library dependencies
- Fix test result visualization bug when running with cider #163
- Add flow and parameters to test metadata on cljtest deflow
- Include line information when reporting flows that raise exceptions
- unbump major version bump of
timbre
done in5.13.0
- Recursively apply stack-trace filtering to exception causes
- Shorten stack-trace raised by throw-error! to not include so much state-flow internals
- Label
state-flow.core/description-stack
as public (was only for internal usage).
- Add
:defined-by
indefflow
clj-kondo hook used by latest clj-kondo. This should fix clojure-lsp warnings aboutunused-public-var
linter.
- Add clj-kondo hooks for
defflow
andflow
to the classpath.
- fix
when
shadow warning
- add
when
tostate-flow.api
- Pushed test report to state metadata everytime an assertion is done with match?
- Removed clojure.test assertion from match?
- Clojure.test assertions are made on defflow macro, after flow is run, by calling clojure.test/report directly
- add filename to flow descriptions. Use the following format:
<description> (<file>:<line>)
- upgrade to cats 2.4.1
- enables the user to add a hook that is executed before flow execution and after description is updated, via the
before-flow-hook
option
- add
state-flow.api/for
macro #142
- downgrade timbre logging library major version bump that was done in
5.6.0
because it is causing transient issues.
- create the
:fail-fast?
options forrun*
. When set the flow will failing fast on the first assertion instead of continuing to run
- support n flows passed to
state-flow.labs.state/with-redefs
#133
- upgrade to matcher-combinators-3.0.1
- upgrade to matcher-combinators-2.1.1
- add stack-trace filtering #129
- improve error message when last arg to flow is a vector #128
- upgrade to matcher-combinators-2.0.0
WARNING: matcher-combinators-2.0.0 includes breaking changes for edge cases. See https://github.com/nubank/matcher-combinators/blob/master/CHANGELOG.md#200
- add experimental
wrap-fn
andwith-redefs
helpers #123
state-flow.api/match?
throwstimes-to-try
exception a runtime instead of macro-expansion time #125- The deprecated
state-flow.cljtest/match?
no longer throws that exception at all.
- The deprecated
- Make sure Intellij can find the vars imported in api ns.
- Add
state-flow.api
namespace #118- New namespace which has everything you need™
- New
fmap
fn
- Add state-flow.core/runner to access runner within flows #119
- Throw when calling match? with times-to-try > 1 and a value for actual (should be a step) #116
WARNING: for any code relying on previously undocumented behavior of
state-flow.assertions.matcher-combinators/match?
, this release includes a
breaking change.
;; if you were doing this before in a binding
[actual (match? <expected> <step-that-produces-actual>)]
;; you can do this, now
[actual (fmap report->actual (match? <expected> <step-that-produces-actual>))]
;; or
[report (match? <expected> <step-that-produces-actual>)
:let [actual (report->actual report)]]
state-flow.assertions.matcher-combinators/match?
returns a map instead of theactual
value #110- use
state-flow.assertions.matcher-combinators/report->actual
to get the actual value if you need it
- use
- Upgrade to matcher-combinators 1.5.1 (from 1.2.7))
- Upgrade to funcool.cats 2.3.5
- Enhancements to
state-flow.core/run*
- Add
:on-error
option (with default to log and rethrow) - Add
:cleanup
option to clean up after an exception
- Add
- Deprecate
state-flow.core/run!
run*
now has the same behavior by default (note the argument order is switched and the initial state is passed in as a part of the option map)
- Fix issues with exceptions being thrown and not returned as the left value of the error-state monad
- add shell script to refactor match? expressions and
:require [state-flow.cljtest} ...
- state-flow.state/modify and state-flow.state/gets pass additional args to f
- Introduce
state-flow.assertions.matcher-combinators/match?
- deprecate
state-flow.cljtest/match?
- add
state-flow.refactoring-tools.refactor-match/refactor-all
to help with refactoring to the new version
- deprecate
- Revert changes in
2.2.2
until a few issues are resolved
DO NOT USE VERSION 2.2.2
Changes were reintroduced in 2.2.4
, so use that.
- Use vectors in internal state data structure instead of cats pairs
- Remove delay from the first try of
probe
- Refactor probe and change return value to include the probed value and check result of each try
- Make
state-flow.state/return
constructable/def'able outside monadic context.
- Add 1-arg arity to
state-flow.core/run
andstate-flow.core/run!
with default initial-state of{}
- Improve error when a non-flow expression is provided as a subflow
- Add flow declaration line numbers to failure output
- Added state-flow.core/top-level-description fn
- mostly for tooling built on top of state-flow
- Removed state-flow.core/get-description
- This is for internal use, but if you happen to have been using it, you can use state-flow.core/current-description instead.
- Moved flow descriptions to the State object's meta
- Moved probe to its own namespace
- Changed push-meta and pop-meta so that execution descriptions are logged (internal)
- Add
state-flow.labs
namespace for experimental features - Add
state-flow.labs.cljtest/testing
- update
times-to-try
default from100
to5
andsleep-time
default from10
to200
- Add
state-flow.state/modify
to align with rest of the fn names from Haskell's State Monad - Deprecate
state-flow.state/swap
(usemodify
instead)
- Update cats and matcher-combinators to latest versions
- Allow
(str ...)
to be a valid flow description
- [BREAKING] Move
verify
to fromstate-flow.core
to thestate-flow.midje
namespace.
- Add alias for m/return as state/return
- Require flows to have a string description to prevent the first subflow from being used as the description.
- Allow for empty flows
- Add optional parameters to
match?
, making it possible to tweak times-to-try and sleep-time of test probing
- Fix and update matcher-combinators dependency
- Fix license name in
project.clj
- Implement test probing for match?
- Improved support for clojure test
- Add state related functions
- Move wrap-fn to state namespace
- Improve documentation
- Clean up helpers
- Add with-responses helper
- Add
state-flow.core/ftap
for State pretty printing;
- Add support for clojure.test + matcher-combinators
- Add
helpers.kafka/last-consumed-message
- Update cats and nu-algebraic-data-types dependencies
- Request helper using request-map
- Experimental req function without exceptions and status assertion
- Update-component helper function
- Add Flow schema
- Add system swap helper
- Add http client get-responses and clear-requests
- Remove responses from function pararemeters
- Moved core code from nu-algebraic-data-types
- Moved helpers from purgatory code