Releases
What's new in 2.0.0, and where to find the full changelog.
Releases
RuleBox follows Semantic Versioning. The full,
line-by-line history lives in
changelog.md
at the root of the repository. Highlights below.
2.0.0
A BoxLang-only rewrite of the module, with a number of correctness fixes and additions:
- BoxLang only - the module now targets BoxLang exclusively.
- ColdBox 8+ integrations.
- Rule priority -
Rule.withPriority()lets a rule run earlier than others in the same chain, regardless ofaddRule()order. See The RuleBook DSL. RULE_STATES.FAILED- athen()consumer that throws is now recorded asFAILEDin the audit trail before the exception is re-thrown to the caller, instead of leaving a stale status behind. See Error Handling.RuleBox.RuleNotAttachedException- callingrun()on aRulethat was never added to aRuleBookviaaddRule()now throws this named exception instead of a cryptic null-reference error.- Audit trail reset on every
run()-RuleBook.run()resetsgetRuleStatusMap()/getRuleStatus()at the start of every run, so a rule that a chain didn't reach this time around no longer reports a stale status left over from a previous run. overwriteis honored - theoverwriteargument ongiven()/givenAll()was previously ignored (facts were always force-overwritten); it's now respected on bothRuleandRuleBook.- Thread-safety for singleton objects (like
Builder@rulebox). - Safe-navigation (
?.) used forRulechain traversal instead of manualisNull()guards.
See Migrating from 1.0.0 if you're upgrading from the CFML/RuleBook-era version of this module.
1.0.0
The first iteration of this module, released 2018-OCT-29. Its docs are preserved under the 1.0.0 version of this site.