softrules/php
SoftRules for PHP offers a lightweight way to define and evaluate soft validation rules in Laravel apps, letting you flag or score issues without hard failures.
What this release actually is: v0.3.0 contains no product changes. Every one of the 57 entries is a Dependabot dependency bump. There are no new features, no API changes, no deprecations, and no changelog entries authored by humans. Two categories of bump matter to a TPM:
illuminate/http, illuminate/support, and illuminate/collections move from the 11.x line (11.37.0) through to 12.8.1. This is the single decision-relevant change in the release: the package's framework support matrix now tracks Laravel 12. It is not stated whether 11.x was dropped or merely bumped in the dev lockfile, and that distinction determines whether this is a routine bump or a breaking change for your estate.phpstan-phpunit, spaze/phpstan-disallowed-calls, and Guzzle 7.9.3 (a security-relevant patch). These affect the package's own CI, not your runtime.Architecture fit: The package is SoftRules/PHP, a rules-engine-style library, and it sits at v0.x. Pre-1.0 semver means a minor bump may legitimately contain breaking changes; the release notes give you no way to confirm that either way. Treat the version number as unreliable and read composer.json constraints directly.
Integration feasibility: Low-risk if you are on Laravel 12. If you are on Laravel 11, feasibility is unknown and must be verified against composer.json before any upgrade attempt — do not infer compatibility from the changelog, because the changelog does not address it.
Technical risk:
composer.json read resolves this.express, cookie, and elliptic — Node packages — into a PHP library. The elliptic 6.5.7 → 6.6.1 bump is a cryptographic-library security patch. This suggests a bundled docs site or JS tooling in the same repository, which expands your dependency surface beyond what a PHP package assessment would normally cover.Key questions for the maintainer:
composer.json?express, cookie, elliptic) live in this repo, and are they shipped in the distributed package or confined to docs/tooling?Stack fit: Best fit is a Laravel 12 application on PHP 8.2+. Reasonable fit on Laravel 11 pending confirmation. The illuminate/*-only dependency set (rather than laravel/framework) is a positive architectural signal — the package is framework-decoupled enough to be used outside a full Laravel app, which widens its applicability but also means it will not pull in the framework for you.
Migration path: There is no migration from a prior version in scope — this is a first assessment, so the path is an initial adoption rather than an upgrade.
composer require softrules/php:0.3.0 rather than ^0.3, and commit composer.lock.composer.json between v0.2.13 and v0.3.0 to establish the actual support matrix. That one artifact answers more than the changelog does.Compatibility: Verify against your own constraint set before touching the package:
Sequencing:
composer.json at v0.3.0 — establish Laravel/PHP support matrix. (blocking gate)Do not skip step 1 and do not compress steps 2–4 because "it's just dependency bumps" — the changelog being empty of features is exactly why the risk is unquantified rather than absent.
Maintenance: Low ongoing cost at runtime; the notable cost is review cost. A dependency-only release of this size implies the maintainer tags releases infrequently and lets Dependabot accumulate, so each release will require you to diff manifests rather than read prose. Budget a recurring half-day per release for that verification, and expect release notes to remain non-descriptive. You also inherit transitive churn: illuminate patch versions, Guzzle security patches, and the Node-side packages all move on their own cadence.
Support: There is no evidence of a formal support policy, LTS statement, or security-disclosure process. Pre-1.0 with a single-maintainer profile (inferred, not confirmed) means you should assume best-effort support. Your mitigation is version pinning plus a fork-and-patch capability, or a maintained internal fork if the package becomes load-bearing.
Scaling: The package's dependency set is lightweight (illuminate/collections, support, http — no database, no queue, no full framework). That is favourable for horizontal scaling: no shared state, no new backing services, no connection-pool implications. The Node dependencies (express, cookie) do not ship to production PHP and should not be counted in your runtime footprint — confirm this rather than assume it. The elliptic bump is a reminder that if those Node packages do support a docs or admin surface you deploy, they need their own patching cadence.
Failure modes:
composer install. Low severity.composer audit and lockfile review in CI.Ramp-up: Minimal for a Laravel-fluent engineer — an illuminate/*-only rules library has a small API surface and no infrastructure to learn. The real ramp-up is organisational: establishing the manifest-diffing habit and the pin-and-gate policy for a package whose releases are not self-describing. If the package encodes business rules, assign an explicit owner; a v0.x dependency with no support policy should not be orphaned in a critical path.
Recommendation: Adopt v0.3.0 only after confirming the Laravel 12 question from composer.json. On Laravel 12, this is a low-risk addition — proceed to trial install with an exact pin. On Laravel 11, stay on v0.2.13 and treat the eventual Laravel 12 upgrade as the prerequisite, not this package.
How can I help you explore Laravel packages today?