wamesk/laravel-nova-price-tax-field
A Laravel Nova field for entering prices with tax handling, letting you store and display price amounts alongside their tax rate in Nova resources.
Architecture fit. The package is a Laravel/PHP library and release 1.2.0 adds a configuration surface for "fields" — the standard Laravel idiom of a publishable config file resolved through the service container. That implies a service provider registering config, and field definitions being read at runtime rather than hard-coded. For a TPM this is a favourable signal: configuration-driven field mapping is the pattern that lets a package serve more than one domain model without forking, which reduces the likelihood of us maintaining a patched copy.
Integration feasibility. Low-to-moderate friction. Expect composer require, an auto-discovered service provider, and php artisan vendor:publish to emit the config file. Because 1.2.0 is a minor version, semver implies no breaking change to the public API; the new config keys should be additive with defaults that reproduce 1.1.x behaviour. That claim is unverified and is the first thing to test.
Technical risk. The material risk is not the feature but our blindness to it: the changelog is a single line ("add config for fields") with no enumeration of which fields, no default values, no config key names, and no note on whether previously hard-coded behaviour is now overridable or merely extended. Risk areas to probe: (a) defaults — does an unpublished or partial config preserve existing behaviour; (b) persistence — do configurable fields change how data is written to or read from storage, which would make this a de facto schema change; (c) validation — are invalid field configs rejected at boot or silently tolerated.
Key questions.
php artisan config:cache?composer.json constraints for Laravel and PHP?Stack fit. Presumed standard Laravel package shape (service provider plus publishable config), compatible with the config repository and config:cache. Confirm declared support for our target Laravel major and PHP minor before committing; a package that lags one Laravel major is a standing upgrade tax.
Migration path. Treat 1.2.0 as a drop-in minor. Sequence: pin the current version, run the suite against 1.2.0, then publish the config file and diff its defaults against observed 1.1.x behaviour. Only after that do we opt into non-default field configuration.
Compatibility. Two specific hazards. First, if we already vendor-published a config file, vendor:publish will not overwrite it by default, so new keys may be absent at runtime — verify the package's fallback for missing keys. Second, config caching means any field change requires a cache clear and a deploy, not a runtime toggle; plan for that in the change process.
Sequencing. (1) Confirm composer constraints and CI matrix. (2) Upgrade in a non-production branch; assert no behavioural diff with default config. (3) Publish config; re-assert no diff. (4) Adopt field customisation in one low-risk path. (5) Roll out broadly. Do not combine step 2 and step 4 in a single release — otherwise a regression cannot be attributed.
Maintenance. The package's config file becomes part of our operational surface area. Every new field key is a potential drift point between environments, and config that lives in version control must be reviewed like code. Budget a small recurring cost to track upstream releases and re-diff defaults on each minor bump.
Support. Upstream documentation for the new config keys is the gating item — the changelog does not describe them, so we are dependent on the README or source. Until that exists, internal support burden falls on whoever reads the provider. Identify that owner before rollout.
Scaling. Configuration read at boot has negligible runtime cost under config:cache; with the cache disabled, field resolution on a hot path could matter at high request volume. Confirm config is not re-read per request in uncached environments (local, some legacy staging tiers).
Failure modes. Most likely failures, in order: missing config keys after a partial publish causing silent fallback to defaults; stale config cache after a deploy producing inconsistent field mapping across nodes; and invalid field definitions surfacing as runtime exceptions rather than boot-time errors. Each of these is diagnosable but only if field resolution is logged or assertable in tests — add a smoke test that asserts the effective field map after deploy.
Ramp-up. Low. A single config file and one minor version; an engineer familiar with Laravel can onboard in under a day. The real ramp-up cost is the verification work in the sequencing above, not the API itself.
How can I help you explore Laravel packages today?