gldrenthe89/nova-calculated-field
A Laravel Nova field that displays calculated values across index, detail, and form views. Supply a callback to derive results from other fields or model attributes without storing them in the database, keeping derived data accurate and in sync throughout your admin panel.
Architecture fit. gldrenthe89/nova-calculated-field is a Laravel Nova field extension — it plugs into Nova resource definitions to display values derived from other fields at render/compute time. Architecturally it sits at the presentation layer of the admin panel and does not alter domain logic, persistence, or the host application's service container. That is a low-coupling shape and a good fit for teams already standardised on Nova.
Integration feasibility. The v2.4.1 change is a single Composer dependency-graph edit: laravel/framework removed from the package's requirements (PR #11). For consumers this is generally favourable — a package that required laravel/framework directly imposes a transitive version constraint on the host application and is a classic source of composer update resolution conflicts. Removing it widens the installable Laravel range and reduces the chance that this field blocks a framework upgrade elsewhere in the estate.
Technical risk. Low-to-moderate, with two specific concerns:
Illuminate\Foundation\* or other components not guaranteed by laravel/nova or an explicit illuminate/* requirement, removing the dependency can produce runtime Class not found errors that CI on the package side may not catch. The release note does not show the resulting require block, so we cannot confirm the package now declares illuminate/support / illuminate/contracts explicitly.composer update.Secondary risk: Nova itself is closed-source and commercially licensed, so the dependency chain is opaque and cannot be audited the way the framework can.
Key questions.
composer.json require look like after PR #11 — is laravel/nova declared, and are illuminate/* components pinned?Stack fit. Requires a Laravel application running Laravel Nova. The change makes the package more compatible with varied Laravel versions, not less, so it is a net-positive for multi-application estates where Laravel patch levels drift between services. Teams not on Nova should not be evaluating this package at all.
Migration path. From v2.4 to v2.4.1 this is a straightforward composer update gldrenthe89/nova-calculated-field. The practical migration steps are: (1) update in a branch, (2) run composer why laravel/framework and inspect the resolved graph to confirm nothing shifted unexpectedly, (3) execute the application test suite, (4) manually smoke-test every Nova resource that defines a CalculatedField, since failures here are render-time and will not be caught by unit tests.
Compatibility. Two axes to confirm before rollout: the Laravel range now admitted by the looser constraint, and the Nova major version in use. Because the package no longer pins the framework, the host application's own laravel/framework constraint becomes the sole governor — which is the desired behaviour, but it means our CI must be the thing that proves compatibility. Recommend an explicit entry in our internal package register recording "verified against Laravel X.Y / Nova Z".
Sequencing.
require block from the tag on Packagist/GitHub.2.4.0 — it is functionally identical apart from the constraint.Maintenance. Single-maintainer package with a small surface area; the v2.4.1 commit is one line of dependency hygiene contributed by a first-time contributor, which is a mild positive signal for project health but also means the change likely received light review. No ongoing maintenance burden is added on our side.
Support. Upstream support is GitHub issues only, with no commercial backing. Our exposure is bounded: if the package stalls, the field is small enough to fork or reimplement as a custom Nova field. The removal of the framework dependency actually reduces future support burden by lowering the chance of Composer conflicts pinning us to an old Laravel release.
Scaling. The package operates only inside the Nova admin panel and adds no request-path overhead to customer-facing traffic. Scaling considerations are therefore negligible — it scales with admin concurrency, not application load.
Failure modes. Ranked by likelihood:
Illuminate\Foundation usage was implicitly satisfied before. Manifests as a broken Nova resource page, not a 500 on the app.Ramp-up. Near zero for any developer already comfortable with Nova resource definitions; the field is declarative and configured in PHP. The only unfamiliar element is the now-implicit dependency contract, so document in the internal package register that this package relies on the host application to supply Laravel — that is the single piece of tribal knowledge worth capturing from this release.
How can I help you explore Laravel packages today?