adevpmftc/nova-permissions-field
A Laravel Nova field that lets you manage model permissions directly from the Nova resource form, with a checkbox-style interface for assigning and revoking permissions without leaving the admin panel.
Because 0.1.0 is the first tagged release, treat it as a pre-stable package: there is no upgrade history to read, so the source is the documentation.
composer.json and check require (PHP and illuminate/* constraints) and the extra.laravel.providers / extra.laravel.aliases block. That tells you whether the service provider is auto-discovered or must be registered by hand, and whether it will even install alongside your app's Laravel version.src/ for a service provider, a config/ directory, and any Contracts/ or Concerns/ folder. These three locations define 90% of how you will actually use the package day to day.php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider" (or --tag=config) and read the published file. Any package with a config file has its behaviour decided there — read it before writing code.php artisan tinker (or a throwaway route) and call the least destructive method available. Confirm it boots, resolves dependencies, and talks to whatever backing service it needs before you wire it into a controller or job.Do this inside a feature test rather than tinker if the package touches the database or an external API — you want the first invocation to be repeatable.
new it up. Even if the package ships a facade, prefer constructor injection of the underlying class or contract in your own services. Facades are fine in controllers and Blade; they get painful in queued jobs and unit tests.App\Services\... class that depends on the package and exposes only the two or three operations your app needs. When 0.2.0 renames a method (likely, at this stage), you change one file instead of thirty.App\Contracts and bind the package implementation to it in a service provider. This is the cheapest insurance against a breaking minor release.config/ and .env, then reference them through config('package.key'). Never hardcode a value the package already exposes as config.$tries, $backoff, and $timeout set explicitly. First releases rarely ship their own retry logic.::fake() or a testing trait. Grep the tests/ directory of the package itself — the maintainer's test suite is the best usage documentation available at 0.1.0.composer.lock diff check so a patch release cannot silently land in production.0.1.0 means the public API is not frozen. Under semver, anything below 1.0.0 may break in a minor bump. Constrain to "^0.1" at minimum, and consider an exact pin ("0.1.0") until you have read a changelog with actual content.extra.laravel.providers is absent, you must register the provider in bootstrap/providers.php (Laravel 11+) or config/app.php. A "class not found" or "config key missing" error is almost always this.mergeConfigFrom vs. publish. A merged config only supplies defaults; a published config file wins entirely. If you publish early and the package adds a new key in a later release, your published file will be missing it and you will get a null where you expect a default. Re-publish and diff on every upgrade..env or the published config, run php artisan config:clear. Cached config is the single most common cause of "my setting isn't taking effect."defer flag on the provider. A deferred provider that fails to register its bindings will throw only when the class is first resolved, which can be far from the real cause. Reproduce in a test, not in a request.illuminate/support constraint is loose.0.1.0 the README frequently lags the code. When behaviour surprises you, vendor/vendor/package/src/ is the ground truth; step through with Xdebug or add a temporary dump() in the provider's register() method.composer update.0.2.0 arrives, that note is your upgrade checklist.How can I help you explore Laravel packages today?