From a6869155ce819225da18ce47d441f414f15876f2 Mon Sep 17 00:00:00 2001 From: Imani Manyara Date: Mon, 5 Oct 2026 05:57:46 -0400 Subject: [PATCH] Add a Pint gate, declare routing, drop unused vcs repos The auto-fix workflow is path-filtered and pushes with GITHUB_TOKEN, so it could never fail a PR; the phpstan job now runs composer pint as a real gate. require declares illuminate/routing. The atlas and enumerator vcs entries were outside both closures and are removed. The two Fixed headings under v1.0.0 are merged with every line kept. --- .github/workflows/phpstan.yml | 12 ++++++++++++ CHANGELOG.md | 22 +++++++++++++++------- composer.json | 9 +-------- 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 6b1a101..77350cf 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -38,3 +38,15 @@ jobs: - name: Run PHPStan run: ./vendor/bin/phpstan --error-format=github --no-interaction + + # The gate the auto-fix job is not. fix-php-code-style-issues.yml rewrites and + # commits, but it is path-filtered and pushes with GITHUB_TOKEN, which starts + # no new run -- so it can never report a failure and cannot be a required + # check. This step can: laranail-pint --test against the shared config in + # vendor/laranail/package-tools. When the auto-fix job has pushed a fix, this + # run stays red on the old head until the next push re-runs it. + # `composer pint` rather than `composer lint`, because lint also runs PHPStan + # (the step above) and Rector (rector.yml). + - name: Check formatting + if: ${{ !cancelled() }} + run: composer pint diff --git a/CHANGELOG.md b/CHANGELOG.md index ed4fbb9..880edcf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,16 @@ Entries below `Unreleased` are written by CI from the GitHub release body — se - `PostIncDecToPreIncDecRector` is skipped. Rector rewrote `$i++` to `++$i` in 21 files and Pint's `increment_style` rewrote every one of them back, so the two gates could never both pass. Formatting belongs to Pint. +- `require` now declares `illuminate/routing`, which `Testing\FluentRulesTester` imports + (`Redirector`). It arrived only transitively before. +- Dropped the `vcs` repositories for `laranail/atlas` and `laranail/enumerator`: nothing in this package's `require` or + `require-dev` closure installs them (checked with `composer why` after a fresh `composer update`). + +### Added + +- The `PHPStan` workflow also runs `composer pint` (`laranail-pint --test`). The auto-fix + workflow rewrites and commits but is path-filtered and pushes with `GITHUB_TOKEN`, which starts + no new run, so it could never fail a pull request. This step can, and has no path filter. ## v0.1.0 - 2026-08-27 @@ -100,13 +110,6 @@ The 1.0 major: the package graduates to real SemVer, the README's stability cont binding (stable surfaces break only in a major; deprecations live at least one minor), and the `rector-migrate-1.0.php` set auto-migrates the one mechanical break. See `UPGRADING.md`. -### Fixed - -- `CachedDnsResolver` crashed mid-validation when the cache backend resolved but could not - answer — a database store with no migrated cache table being the canonical case. The store - erroring now falls back to a direct lookup, the same contract as having no cache at all: an - optimization's infrastructure failure costs speed, never a verdict. - ### Added - Initial laranail release. Type-aware fluent rule builders (`FluentRule` and the twelve @@ -162,6 +165,11 @@ binding (stable surfaces break only in a major; deprecations live at least one m ### Fixed +- `CachedDnsResolver` crashed mid-validation when the cache backend resolved but could not + answer — a database store with no migrated cache table being the canonical case. The store + erroring now falls back to a direct lookup, the same contract as having no cache at all: an + optimization's infrastructure failure costs speed, never a verdict. + Divergences from Laravel's own validator, found by differential testing against it. Each can change whether input an application previously accepted still passes, so read `UPGRADING.md` before upgrading. diff --git a/composer.json b/composer.json index 82ef3a9..9b67dec 100644 --- a/composer.json +++ b/composer.json @@ -16,14 +16,6 @@ "type": "vcs", "url": "https://github.com/laranail/console" }, - { - "type": "vcs", - "url": "https://github.com/laranail/atlas" - }, - { - "type": "vcs", - "url": "https://github.com/laranail/enumerator" - }, { "type": "vcs", "url": "https://github.com/laranail/validation-js" @@ -77,6 +69,7 @@ "php": "^8.5", "illuminate/contracts": "^13.0", "illuminate/http": "^13.0", + "illuminate/routing": "^13.0", "illuminate/support": "^13.0", "illuminate/validation": "^13.0", "laranail/package-tools": "^0.1",