feat: Laravel 13 support, stable core dependency, and fix the test suite - #14
Merged
Merged
Conversation
Prepares the package for a 1.0.0 release. Dependencies - illuminate/* widened to ^13.0. - The core dependency becomes ^1.0 instead of `dev-main || ^0.0.3-alpha`. A stable release cannot require an alpha, and `dev-main` in a release means consumers get whatever main happens to be that day. - minimum-stability drops to stable now that nothing needs otherwise. - Laravel 11 leaves the supported range and the CI matrix: every v11 release is flagged by Packagist security advisories, so Composer refuses the line entirely. The suite had not been run against core 0.0.4+, and three things had drifted: - Auto-generated step ids became 1-based in core (`++$counter`), so assertions on `email_0`, `http_0` and `delay_0` were all off by one. Two tests also asserted the same key twice while claiming to check three different steps, which hid the drift. - WorkflowContext is immutable now; `setData()` is gone. The payment fixture still mutated the context it was handed. What a step produces belongs in the ActionResult it returns, which that action already did. - A "complex workflow" test executed a real HTTP step against api.example.com and a real five-minute delay. It spent 300 seconds sleeping and then failed on DNS, which is also why it never reached the payment assertions to notice they were broken. The builder assertions still cover the http step and the five-minute delay; execution now runs the same workflow without the network call and with a one second delay. The suite goes from 304 seconds to 4.6. 74 tests pass on Laravel 13.31 with core 1.0.0. Pint is clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prepares the package for the 1.0.0 release. Depends on workflow-engine-core#57, now merged and tagged v1.0.0.
Dependencies
illuminate/*widened to^13.0^1.0instead ofdev-main || ^0.0.3-alpha. A stable release cannot require an alpha, anddev-mainin a release means consumers get whatevermainhappens to be that day.minimum-stabilitydrops tostableThe suite had never run against core 0.0.4+
Pinned to
^0.0.3-alpha, it missed three changes:Step ids became 1-based in core (
++$this->autoStepCounter), so assertions onemail_0,http_0,delay_0were all off by one. Two tests also asserted the same key twice while claiming to check three different steps — which is part of why the drift went unnoticed.WorkflowContextis immutable now andsetData()is gone. The payment fixture still mutated the context it was handed. What a step produces belongs in theActionResultit returns — which that action was already doing, so the mutations were redundant even before they broke.A test did real network I/O and a real sleep. The "complex workflow" test executed an HTTP step against
api.example.comand a five-minute delay. It spent 300 seconds sleeping and then failed on DNS — and because it died at the HTTP step, it never reached the payment assertions to reveal those were broken too.The builder assertions still cover the http step and the five-minute delay. Execution now runs the same workflow without the network call and with a one second delay.
Suite time: 304s → 4.6s.
Verified
One thing worth a follow-up
HttpActionin core builds a curl handle directly, so it cannot be faked — any test that executes an http step reaches the network. Injecting a client would make that testable. Out of scope here; happy to raise it separately.🤖 Generated with Claude Code