Skip to content

fix: restore PHP 8.3 installs and align Pest CI with SQLite#143

Merged
CodeWithDennis merged 2 commits into
6.xfrom
ci/test-create-project-install
Jul 16, 2026
Merged

fix: restore PHP 8.3 installs and align Pest CI with SQLite#143
CodeWithDennis merged 2 commits into
6.xfrom
ci/test-create-project-install

Conversation

@CodeWithDennis

@CodeWithDennis CodeWithDennis commented Jul 16, 2026

Copy link
Copy Markdown
Owner

Summary

Follow-up to #141. Restores real PHP 8.3 support for composer create-project, and aligns the Pest GitHub Action with Larament’s SQLite defaults.

Problem

After #141 landed, Installation CI still failed on PHP 8.3 because composer.lock had resolved to Symfony 8.1, which requires PHP >=8.4.1.

That was a lockfile resolution issue — not a Laravel/Filament floor:

Package PHP requirement
Laravel 13 ^8.3
Pest 4 ^8.3
Filament 5 ^8.2

Larament correctly targets PHP 8.3+ (Laravel + Pest). Filament would allow 8.2, but that is irrelevant here.

Separately, .github/workflows/pest.yml started a MySQL service even though:

  • .env.example defaults to DB_CONNECTION=sqlite
  • phpunit.xml forces sqlite + :memory: for tests

So MySQL was unused setup noise.

Changes

PHP 8.3-compatible lockfile

  • Regenerated composer.lock under a temporary PHP 8.3 platform constraint, then removed that platform config.
  • Downgraded Symfony components from 8.1 → 7.4 (still valid for Laravel 13 and symfony/process: ^7.4.5 || ^8.0.5).
  • Kept composer.json on php: ^8.3.
  • Re-enabled PHP 8.3 in the Installation workflow matrix (8.3 / 8.4 / 8.5 × Ubuntu, macOS, Windows).
  • README PHP note remains 8.3 or higher.

Pest workflow → SQLite

  • Removed the MySQL service bootstrap from .github/workflows/pest.yml.
  • Create database/database.sqlite before php artisan migrate so migrate matches .env.example.
  • Tests continue to use in-memory SQLite via phpunit.xml.

Files

File Change
composer.lock Symfony 7.4 resolution for PHP 8.3 installs
composer.json Confirm / keep php: ^8.3
.github/workflows/installation.yml Include PHP 8.3 in matrix
.github/workflows/pest.yml Drop MySQL; touch SQLite DB before migrate
README.md PHP 8.3+ requirement note

Why this matters

create-project installs from the committed lockfile. If the lock drifts onto Symfony 8.x, PHP 8.3 users hit hard Composer failures even though Laravel 13 and Pest 4 officially support 8.3. This PR makes the lock match that support again, and makes Pest CI reflect the same SQLite stack users get by default.

Test plan

  • Lockfile uses Symfony 7.4.x (no Symfony 8.1 platform blockers on PHP 8.3)
  • Installation matrix includes PHP 8.3 / 8.4 / 8.5
  • Pest workflow no longer starts MySQL; creates SQLite file for migrate
  • CI green: Installation on PHP 8.3 across Ubuntu / macOS / Windows
  • CI green: Pest shards without MySQL
  • Optional: local composer create-project smoke on PHP 8.3

@CodeWithDennis CodeWithDennis changed the title fix: restore PHP 8.3 support with Symfony 7.4 lock fix: restore PHP 8.3 installs and align Pest CI with SQLite Jul 16, 2026
@CodeWithDennis
CodeWithDennis merged commit 6324298 into 6.x Jul 16, 2026
16 checks passed
@CodeWithDennis
CodeWithDennis deleted the ci/test-create-project-install branch July 16, 2026 19:38
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