Skip to content

Upgrate min requirements Laravel 11/12 PHP 8.3/84#32

Merged
matthewnessworthy merged 48 commits intomasterfrom
upgrade
Mar 2, 2026
Merged

Upgrate min requirements Laravel 11/12 PHP 8.3/84#32
matthewnessworthy merged 48 commits intomasterfrom
upgrade

Conversation

@matthewnessworthy
Copy link
Member

No description provided.

matthewnessworthy and others added 30 commits March 2, 2026 10:04
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ibility shims

- composer.json: PHP ^8.3, Laravel ^11.0|^12.0, Symfony ^7.0, testbench ^9.15|^10.0
- WorkflowRegistry: remove ClassInstanceSupportStrategy import and method_exists/class_exists shims
- MethodMarkingStore: add `: void` return type to setMarking() for Symfony 7 MarkingStoreInterface
- UserUnitTest: remove LogicException import and class_exists shim, use NotEnabledTransitionException directly

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…dated

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ts updated

- Phase 1 marked complete in ROADMAP.md with date
- STATE.md advanced to reflect phase completion
- REQUIREMENTS.md: DEPS-01 through DEPS-08 all marked complete
- Traceability table updated

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Applied rules: constructor property promotion, typed properties, return type
declarations, null coalescing, dead code removal, closure-to-arrow,
#[Override] attributes, Laravel model casts method pattern.

11 files modernized, all 6 tests pass (38 assertions).
rector/rector, driftingly/rector-laravel, phpstan/phpstan, and
webmozart/assert removed. rector.php config deleted. Tests still
pass: 6 tests, 38 assertions.
…ts updated

Phase 2 (Rector Pass) complete:
- RECT-01: src/ only modernized (no test files)
- RECT-02: API signatures preserved (type additions only)
- RECT-03: Rector removed from dev dependencies
- RECT-04: All tests pass (6 tests, 38 assertions)

Progress: 2/4 phases complete (50%)
…ew test coverage

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…s real listeners, not Event::fake()

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…hp, update scripts

- Remove tests/Fixtures/Helpers.php (global event() override)
- Remove funkjedi/composer-include-files and extra.include_files
- Create tests/Pest.php binding TestCase for all tests
- Update composer test script to vendor/bin/pest
- Pin pestphp/pest and pestphp/pest-plugin-laravel to ^3.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
matthewnessworthy and others added 17 commits March 2, 2026 15:23
- Convert UserUnitTest to Pest closure-based test() with expect() API
- Convert WorkflowSubscriberTest to use Event::fake() instead of global event() hack
- Fix TestCase::setUp() visibility from public to protected (Pest requirement)
- Remove namespace block and global $events mechanism from WorkflowSubscriberTest
- All 6 tests pass under vendor/bin/pest

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…andling

- MultiWorkflowTest: 4 tests verifying two workflows coexist on same User model
- EventOrderingTest: 2 tests verifying lifecycle milestone ordering
- ErrorHandlingTest: 3 tests verifying exception propagation from subscriber handlers
- Extend User model with subscription_state column
- Extend migration with subscription_state column
- Add getMultiWorflowConfig() to ConfigTrait for second workflow

All 15 tests pass, random ordering verified (no interdependencies)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ts updated

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update matrix to PHP [8.3, 8.4] x Laravel [11.*, 12.*]
- Add matrix include to pin testbench ^9.0 for L11, ^10.0 for L12
- Upgrade actions/checkout and actions/cache from v3 to v4
- Fix broken cache step with proper composer-cache id
- Switch test runner from phpunit to pest
- Remove PHP 8.1/8.2 and Laravel 10 from matrix

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add Requirements section with version/compatibility table
- Add PHP 8.3+ and Laravel 11+ requirement note to Installation
- Update CI badge text from "Unit Test" to "Tests"

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Keep a Changelog format with Unreleased header
- Document PHP/Laravel/Symfony version changes
- Document removed support and migration path from 4.x

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ts updated

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@matthewnessworthy matthewnessworthy marked this pull request as ready for review March 2, 2026 15:53
@matthewnessworthy matthewnessworthy merged commit 784b2e8 into master Mar 2, 2026
11 checks passed
@matthewnessworthy matthewnessworthy deleted the upgrade branch March 2, 2026 16:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants