Skip to content

Releases: mathiasonea/laravel-rulebook

v0.2.1

Choose a tag to compare

@mathiasonea mathiasonea released this 10 Aug 06:09
827588a

Fixed

  • Reject invalid UTF-8 in snapshotted rule keys, class names, reasons, and reason codes before JSON serialization.
  • Raise UnportableSnapshotValue during snapshot creation instead of allowing a later JsonException.
  • Add regression coverage for malformed UTF-8 metadata, outcome strings, and array keys.

v0.2.0

Choose a tag to compare

@mathiasonea mathiasonea released this 10 Aug 06:00
5a35a95

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

Choose a tag to compare

@mathiasonea mathiasonea released this 10 Aug 05:41
cc87658

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

Choose a tag to compare

@mathiasonea mathiasonea released this 08 Aug 22:17
a49e482

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

Choose a tag to compare

@mathiasonea mathiasonea released this 08 Aug 21:10
d037d5d

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

Choose a tag to compare

@mathiasonea mathiasonea released this 20 Jul 20:01
d64c6a5

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

Choose a tag to compare

@mathiasonea mathiasonea released this 17 Jul 20:00
9c4305c

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.