Skip to content

Modernize package for PHP 8.0+, Laravel 9–13, and Storybook 8.5#157

Open
mrtimbrook wants to merge 9 commits into
1.xfrom
clean-up
Open

Modernize package for PHP 8.0+, Laravel 9–13, and Storybook 8.5#157
mrtimbrook wants to merge 9 commits into
1.xfrom
clean-up

Conversation

@mrtimbrook

Copy link
Copy Markdown
Collaborator

Summary

This PR drops PHP 7.x support (now well past end-of-life) while retaining PHP 8.0+ compatibility, and extends Laravel support up to Laravel 13. The CI matrix, dependencies, and tooling have been updated to reflect these supported versions. Storybook is bumped to 8.5 with forward-compatible dependency resolution for Storybook 9+.

Changes

  • Extend framework support — require PHP ^8.0 and support Laravel 9–13; drop PHP 7.x and Laravel 7–8
  • Overhaul CI matrix — test PHP 8.0–8.5 × Laravel 9–13 with correct testbench versions per Laravel release; update actions to v4; drop multi-OS runs
  • Bump Storybook to 8.5 — update default version in config and Helpers trait; add version-aware dependency resolution so Storybook 9+ uses its consolidated addon structure
  • Add Tailwind v4 config option — new tailwind_version config key (auto/v3/v4) to support both JS and CSS-based Tailwind configs
  • Replace docblock types with native PHP 8 types — convert @var annotations to typed properties and add return types across all Commands, Components, Controllers, DataStore, UiDocsStore, and Traits
  • Add Dependabot — weekly automated dependency updates for Composer, npm (with Storybook grouped), and GitHub Actions
  • Clean up phpunit.xml — update schema to 11.0, remove deprecated attributes, use cacheDirectory

Test plan

  • CI passes across the full PHP 8.0–8.5 × Laravel 9–13 matrix on this PR
  • Verify Storybook installs correctly at 8.5.0 with php artisan blast:install
  • Confirm existing projects on PHP 8.0/8.1 are unaffected by the composer constraint change

- Drop PHP 7.x/8.0/8.1 and Laravel 7–9 support; require PHP ^8.2
- Add Laravel 13 and testbench 11 to composer and CI matrix
- Update CI workflow: Laravel-aware matrix, actions v4, proper cache key
- Bump default Storybook version to 8.5.0; add version-aware dependency
  resolution so Storybook 9+ uses consolidated addon packages
- Add tailwind_version config option (auto/v3/v4)
- Replace docblock type hints with native PHP 8 typed properties and
  return types across Commands, DataStore, UiDocsStore, and Helpers
- Update phpunit.xml to schema 11.0 and use cacheDirectory
- Remove deprecated storyStoreV7 Storybook feature flag
Copilot AI review requested due to automatic review settings June 23, 2026 21:13

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR modernizes the package’s supported ecosystem by dropping PHP 7.x / older Laravel versions, updating tooling and CI for newer PHP/Laravel ranges, and bumping Storybook defaults while adding version-aware dependency installation logic.

Changes:

  • Updated PHP/Laravel compatibility (PHP ^8.0, Laravel 9–13) and refreshed dev tooling (PHPUnit config + Composer metadata).
  • Expanded GitHub Actions CI matrix across PHP 8.0–8.5 and Laravel 9–13, with per-Laravel Testbench selection.
  • Updated Storybook default version to 8.5.0 and added Storybook major-version-aware dependency resolution.

Reviewed changes

Copilot reviewed 41 out of 42 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/UiDocsStore.php Converts docblocks to typed properties and adds internal paths/filesystem fields.
src/Traits/TailwindViewports.php Converts filesystem docblock to typed property.
src/Traits/Helpers.php Updates Storybook default version, adds Storybook dependency resolution helpers, and adds/adjusts return types.
src/DataStore.php Converts docblocks to typed properties.
src/Controllers/StoryController.php Adds parameter/return types and imports View contract.
src/Components/DocsPages/UiWidth.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiTypesets.php Uses constructor property promotion and adds a typed Collection property.
src/Components/DocsPages/UiTransition.php Uses constructor property promotion and trailing commas in params.
src/Components/DocsPages/UiSpacing.php Uses constructor property promotion and trailing commas in params.
src/Components/DocsPages/UiShadows.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiOpacity.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiMinWidth.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiMinHeight.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiMaxWidth.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiMaxHeight.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiLineHeight.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiLetterSpacing.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiHeight.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiGutterOuter.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiGutterInner.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiFontWeight.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiFontSize.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiContainer.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiColumns.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiColors.php Uses constructor property promotion and trailing commas in params.
src/Components/DocsPages/UiBreakpoints.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiBorderWidth.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/UiBorderRadius.php Uses constructor property promotion for UiDocsStore dependency.
src/Components/DocsPages/DocsPage.php Uses public promoted properties with native nullable string types.
src/Commands/PublishStorybookConfig.php Converts docblocks to typed properties.
src/Commands/Publish.php Converts docblocks to typed properties (incl. mixed fields).
src/Commands/Launch.php Converts docblocks to typed properties (incl. mixed fields).
src/Commands/GenerateUIDocs.php Converts docblocks to typed properties and adds return types.
src/Commands/GenerateStories.php Converts docblocks to typed properties and adds return types.
src/Commands/Demo.php Converts docblocks to typed properties and adds return types.
phpunit.xml Updates schema to PHPUnit 11.0 and replaces <coverage> include with <source> include + cache directory.
config/blast.php Bumps default Storybook version and adds tailwind_version config with docs.
composer.json Drops PHP 7.x, extends Illuminate/Testbench ranges, adds PHPUnit constraint + test script, and sets minimum stability to stable.
.storybook/main.js Removes storyStoreV7 feature flag (no longer needed).
.gitignore Adds .phpunit.cache, .claude/, and tasks/ to ignored files.
.github/workflows/phpunit.yml Expands CI matrix across PHP/Laravel versions and updates actions/cache/checkout to v4.
.github/dependabot.yml Adds Dependabot configuration with grouping for npm/composer/actions updates.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/Traits/Helpers.php
Comment on lines 41 to 45
$process->run();

if (!$disableOutput) {
return $process->getOutput();
}
Comment thread src/Traits/Helpers.php
Comment on lines 166 to 170
} catch (\Exception $e) {
$this->error($e->getMessage());

exit();
}
Comment thread .github/workflows/phpunit.yml Outdated
Comment on lines +49 to +51
# Laravel 13 requires PHP 8.2+
- laravel: '13.*'
php: '8.2'
Comment thread composer.json Outdated
Comment on lines 33 to 35
"orchestra/testbench": "^7.0|^8.0|^9.0|^10.0|^11.0",
"phpunit/phpunit": "^9.0|^10.0|^11.0|^12.0|^13.0"
},
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.

2 participants