Releases: mathiasonea/laravel-rulebook
Releases · mathiasonea/laravel-rulebook
Release list
v0.2.1
Fixed
- Reject invalid UTF-8 in snapshotted rule keys, class names, reasons, and reason codes before JSON serialization.
- Raise
UnportableSnapshotValueduring snapshot creation instead of allowing a laterJsonException. - Add regression coverage for malformed UTF-8 metadata, outcome strings, and array keys.
v0.2.0
Portable decision records release.
- Add schema-versioned, JSON-compatible decision and evaluation snapshots with eager value copying and caller-controlled outcome normalization.
- Add structured applicable, does-not-apply, and outside-validity evaluation statuses.
- Add optional machine-readable result reason codes.
- Capture rule keys, priorities, and validity periods once before domain evaluation.
- Add evaluation lookup, shadowed-evaluation, and conflicting-evaluation helpers.
- Reject blank keys, contradictory evaluation state, and unsupported snapshot values explicitly.
Snapshots remain transport records; applications choose where and how to persist them.
v0.1.4
Trust and polish release.
- Document the deterministic, side-effect-free rule authoring contract, stable keys, exception behavior, and the limits of historical reproduction against mutable code and data.
- Correct the ambiguity logging example to use Laravel's logger with structured context.
- Remove the unnecessary spatie/laravel-package-tools runtime dependency while retaining the existing service provider for compatibility.
- Run PHPStan for pull requests and when Composer metadata changes.
No package behavior or public API changed.
v0.1.3
Documentation and discovery release linking the permanent project page, the versioned-business-rules architecture guide, and the runnable Austrian EV example. The Composer and GitHub homepages now point to the project page. No package behavior or public API changes.
v0.1.2
Distribution and documentation release.
- Lead the documentation with the historical reproducibility problem, a concise
resolveAt()example, practical usage triggers, and intentional scope. - Improve Composer and GitHub discovery metadata with focused keywords, support links, badges, repository topics, and a Packagist homepage.
- Add a Mathias Onea CI-styled social preview and a concrete feedback invitation for effective-date business logic.
No package behavior or public API changes.
v0.1.1
Documentation release.
- Expand the Austrian electric-vehicle example with yearly policy rules, changing parameters, historical resolution, and decision inspection.
- Reframe future feature ideas as a roadmap and invite issues, discussions, and pull requests.
v0.1.0
Initial release of Laravel Rulebook.
- Add application-defined, container-injected rulebooks and rules.
- Add typed subjects, optional contexts, and outcomes with PHPStan generics.
- Add half-open validity periods and deterministic priority resolution.
- Add complete evaluation inspection, shadowed matches, and mandatory reasons.
- Add explicit errors for missing matches, ambiguous winners, duplicate keys, invalid periods, and unexpected input types.