Skip to content

chore: adopt bambamboole/extended-testbench for the package tooling - #16

Merged
bambamboole merged 1 commit into
mainfrom
chore/adopt-extended-testbench
Aug 2, 2026
Merged

chore: adopt bambamboole/extended-testbench for the package tooling#16
bambamboole merged 1 commit into
mainfrom
chore/adopt-extended-testbench

Conversation

@bambamboole

Copy link
Copy Markdown
Contributor

Adopts bambamboole/extended-testbench ^0.3 and aligns the repo with the setup its package:init scaffolds.

The bridge makes Boost work under Testbench out of the box, so the hand-rolled overrides in workbench/app/Support — which pointed Boost's config, guideline and skill composers at the package root — are gone, along with .ai/guidelines/git.md and the Comments section of development.md, both now shipped by the package and registered via boost.json's packages key.

Tooling

  • Pest 4 → 5; abandoned mrpunyapal/peststanpestphp/pest-plugin-phpstan; added rector/rector. Dropped the explicit orchestra/testbench constraint (the bridge requires ^11).
  • artisan symlink → the committed PHP shim.
  • phpunit.xmlphpunit.xml.dist (+ Unit suite, env block); phpstan.neonphpstan.neon.dist (+ database/); new rector.php.
  • Scripts renamed to the generated shape: lint, stan, refactor, check. test stays scoped to Unit,Feature so check never pulls in the Browser suite, which needs a built bundle and a browser.
  • .gitignore / .gitattributes reconciled with the generated entries.

Two deliberate rector skips
RemoveUnusedPublicMethodParameterRector strips the model argument Laravel's Gate passes to policy methods; FlipTypeControlToUseExclusiveTypeRector rewrites null checks as inline fully-qualified instanceof. Reasons are in rector.php.

Reviewing: ~60 of the 80 files are blank-line-only churn from dropping the blank_line_after_opening_tag override in pint.json — use ?w=1 to hide it. The substantive diff is 23 files.

Verified: composer check (Pint, PHPStan, Rector, 143 Pest), composer test:browser (9), npm run typecheck && npm test (39).

The bridge makes Boost work under Testbench out of the box, which replaces
the hand-rolled overrides in workbench/app/Support that pointed Boost's
config, guideline and skill composers at the package root.

Aligns the repo with what its package:init scaffolds:

- Pest 4 -> 5, abandoned mrpunyapal/peststan -> pestphp/pest-plugin-phpstan,
  added rector/rector. Dropped the explicit orchestra/testbench constraint;
  the bridge requires ^11.
- artisan symlink -> the committed PHP shim.
- phpunit.xml -> phpunit.xml.dist (plus a Unit suite and the env block),
  phpstan.neon -> phpstan.neon.dist (plus database/), new rector.php.
- Scripts renamed to the generated shape: lint, stan, refactor, check.
  test stays scoped to Unit+Feature so check never pulls in the Browser
  suite, which needs a built bundle and a browser.
- pint.json drops the blank_line_after_opening_tag override, which is the
  blank-line-only churn across ~60 files.
- .gitignore and .gitattributes reconciled with the generated entries.
- .ai/guidelines/git.md and the Comments section of development.md are now
  shipped by the package and registered via boost.json's packages key.

rector.php skips two rules: RemoveUnusedPublicMethodParameterRector, which
strips the model argument Laravel's Gate passes to policy methods, and
FlipTypeControlToUseExclusiveTypeRector, which rewrites null checks as
inline fully-qualified instanceof.
@bambamboole
bambamboole merged commit a8c9059 into main Aug 2, 2026
4 checks passed
@bambamboole
bambamboole deleted the chore/adopt-extended-testbench branch August 2, 2026 15:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant