Skip to content

chore: PHP 8.4 and upgrade pest - #33

Draft
tymondesigns wants to merge 8 commits into
mainfrom
chore/upgrade-pest
Draft

chore: PHP 8.4 and upgrade pest#33
tymondesigns wants to merge 8 commits into
mainfrom
chore/upgrade-pest

Conversation

@tymondesigns

@tymondesigns tymondesigns commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

This pull request updates the package to require PHP 8.4 or higher, removes support for PHP 8.3, and upgrades several dependencies and development tools. It also includes codebase improvements for consistency and modernization, as well as documentation updates to reflect the new requirements. Additionally, the test setup and workflow have been streamlined, and some minor code and test enhancements have been made.

PHP Version and Dependency Updates

  • Bumped minimum required PHP version from 8.3 to 8.4 across all configuration, documentation, and workflow files, and updated the opis/json-schema dependency to ^2.5 in composer.json. [1] [2] [3] [4] [5] [6] [7] [8] [9]
  • Updated development dependencies to latest major versions (e.g., Pest, Pest plugins, ECS), and improved the test script to use parallel execution and test impact analysis in composer.json. [1] [2]

CI and Tooling Enhancements

  • Removed PHP 8.3 from the GitHub Actions test matrix and commented out mutation testing step for now. [1] [2]
  • Added Pest PHPStan plugin to phpstan.dist.neon and included the tests directory in static analysis.
  • Updated rector.php to enable PHP 8.4 rules and include Pest coding style set. [1] [2]

Codebase Consistency and Modernization

  • Refactored several instances of (new Class(...))->method() to new Class(...)->method() for improved readability and consistency in src/Converters/JsonConverter.php, src/Converters/ClassConverter.php, and src/Exceptions/SchemaException.php. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]
  • Updated type hints and generics for enums to use UnitEnum instead of BackedEnum in EnumConverter.php.
  • Fixed a logic bug in SchemaVersion::supports() to correctly handle maximum version comparison.

Documentation Updates

  • Updated all references in documentation (README.md, docs/json-schema/installation.mdx, docs/json-schema/introduction.mdx) to indicate PHP 8.4+ support. [1] [2] [3] [4] [5] [6]

Test Suite Improvements

  • Updated Pest configuration and usage for improved extensibility and compatibility with new Pest versions in tests/Pest.php.
  • Improved type annotations and assertion chaining in tests for better clarity and correctness. [1] [2] [3]

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