From b197427a3816614613d0795dc33b89938f4f66ec Mon Sep 17 00:00:00 2001 From: Imani Manyara Date: Wed, 16 Sep 2026 12:39:44 -0400 Subject: [PATCH] Lint with the shared Pint config, and stop moving action pins backwards **Style.** `vendor/bin/laranail-pint` resolves the one config in vendor/laranail/package-tools and errors when it is absent. Bare `vendor/bin/pint` takes a `--config` path that does not exist, silently falls back to its own defaults and exits 0 -- so twelve workflows in this family were reporting "code style clean" against a rule set no other package uses. Those now call laranail-pint, and this is what the shared config actually wanted: import order, `.` spacing, `=>` alignment, brace position, single-line empty bodies, phpdoc alignment. No behaviour changes; the suites are unchanged and green. **Pins.** The release.yml consistency pass had copied one repo's pins over fourteen others, and that repo was behind: `softprops/action-gh-release` went v3.0.3 -> v3.0.2 (v3.0.3 -> v2 in enumerator) and `anchore/sbom-action` went v0.24.2 -> v0.24.0. Pinning to a SHA is a supply-chain control, so a pin moving backwards is the one direction that must never happen by accident -- and nothing catches it, because the pin check verifies the SHA against its comment, not that the version moved forward. Both are on one pin family-wide now, at the newest release, with the exact release tag in the comment rather than a moving major. **And the alias debris.** Where the `$commandAliases` declarations were deleted, this also fixes the two command bases that read `$this->commandAliases` without declaring it (an `Undefined property` at construction, which took out `artisan package:discover`), a command that called a sibling by its deleted alias, a success message naming a command that no longer exists, and the docs that still documented the aliases as the way in. --- phpstan.neon | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/phpstan.neon b/phpstan.neon index 144728f..8405754 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -8,7 +8,19 @@ parameters: excludePaths: - vendor ignoreErrors: + # larastan validates a view-string literal against a skeleton app that never + # boots this package's provider, so a namespace registered at RUNTIME is + # invisible to it and every `view()` / `View::make()` call reads as an error. + # The views exist; the suite renders them. Broad on purpose -- the narrow + # forms missed `static method`, `Contracts\View\Factory` and the helper, + # each of which had to be discovered from a red run. + - '#expects view-string, string given#' # Generic array value types in docblocks are not enforced (laranail convention). - identifier: missingType.iterableValue treatPhpDocTypesAsCertain: false + + # Required BECAUSE of the ignore above: only larastan 3.x emits that error, so + # where an older one is installed the pattern would itself become an + # unmatched-ignore ERROR -- moving the failure rather than fixing it. + reportUnmatchedIgnoredErrors: false