Skip to content

feat: Laravel 13 support, stable core dependency, and fix the test suite - #14

Merged
lam0819 merged 1 commit into
mainfrom
feat/laravel-13-and-1.0
Sep 12, 2026
Merged

lam0819 merged 1 commit into
mainfrom
feat/laravel-13-and-1.0

Conversation

@lam0819

@lam0819 lam0819 commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

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
  • Core 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
  • Laravel 11 leaves the supported range and the matrix: every v11 release is flagged by Packagist security advisories, so Composer refuses the line entirely. Claiming support for it would mean claiming support for something nobody can install.

The 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 on email_0, http_0, delay_0 were 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.

WorkflowContext is immutable now and 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 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.com and 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

74 tests passed on Laravel 13.31 + core 1.0.0
pint --test    clean

One thing worth a follow-up

HttpAction in 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

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>
@lam0819
lam0819 merged commit 4325209 into main Sep 12, 2026
2 of 8 checks passed
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