diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 01828d2..655dea5 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -17,9 +17,6 @@ jobs: fail-fast: false matrix: include: - - php: '8.3' - illuminate: '^11.0' - testbench: '^9.0' - php: '8.3' illuminate: '^12.0' testbench: '^10.0' @@ -50,7 +47,7 @@ jobs: --health-retries=10 steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -68,17 +65,9 @@ jobs: --with="illuminate/contracts:${ILLUMINATE_VERSION}" \ --with="illuminate/database:${ILLUMINATE_VERSION}" \ --with="illuminate/support:${ILLUMINATE_VERSION}" \ + --with="laravel/scout:^11.0" \ --with="orchestra/testbench:${TESTBENCH_VERSION}" - - name: Pint (lint, no auto-fix in CI) - run: vendor/bin/pint --test - - - name: Rector (dry-run, no auto-fix in CI) - run: vendor/bin/rector --dry-run --no-diffs - - - name: PHPStan - run: vendor/bin/phpstan analyse --no-progress --memory-limit=512M - - name: Pest run: vendor/bin/pest --ci if: ${{ !(matrix.php == '8.5' && matrix.illuminate == '^13.0') }} @@ -101,8 +90,46 @@ jobs: - name: Upload coverage to Codecov if: ${{ matrix.php == '8.5' && matrix.illuminate == '^13.0' }} - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v7 with: files: ./coverage.xml token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: false + + quality: + runs-on: ubuntu-latest + name: Quality · PHP 8.5 · Laravel 13 + + steps: + - uses: actions/checkout@v7 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.5' + extensions: pdo_pgsql, mbstring, intl + coverage: none + + - name: Install latest-stack dependencies + run: | + composer update --prefer-dist --no-progress --no-interaction \ + --with="illuminate/contracts:^13.0" \ + --with="illuminate/database:^13.0" \ + --with="illuminate/support:^13.0" \ + --with="laravel/scout:^11.0" \ + --with="orchestra/testbench:^11.0" + + - name: Validate Composer configuration + run: composer validate --strict --no-check-publish + + - name: Audit Composer dependencies + run: composer audit --locked + + - name: Rector (dry-run, no auto-fix in CI) + run: vendor/bin/rector --dry-run --no-diffs + + - name: Pint (lint, no auto-fix in CI) + run: vendor/bin/pint --test + + - name: PHPStan + run: vendor/bin/phpstan analyse --no-progress --memory-limit=512M diff --git a/CHANGELOG.md b/CHANGELOG.md index 18702c5..127d2b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,18 @@ All notable changes to `jonaspauleta/scout-postgres` are documented here. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.0.0] - 2026-07-09 + +### Changed + +- **Breaking:** Dropped Laravel 11 and Laravel Scout 10 support. The package now + requires Laravel 12 or 13 and Laravel Scout 11. +- Updated the development support floor to Testbench 10 and Pest 4 while + retaining PHP 8.3 support. +- Updated Rector to target the minimum supported PHP 8.3 and Laravel 12, and + refreshed the CI matrix and actions for PHP 8.3-8.5, Laravel 12-13, Scout 11, + and Postgres 18. + ## [1.0.0] - 2026-04-25 First public stable release. @@ -72,4 +84,5 @@ First public stable release. - Postgres 14+ (CI-tested on Postgres 18) with `pg_trgm` ≥ 1.6 and `unaccent` ≥ 1.1. +[2.0.0]: https://github.com/jonaspauleta/scout-postgres/releases/tag/v2.0.0 [1.0.0]: https://github.com/jonaspauleta/scout-postgres/releases/tag/v1.0.0 diff --git a/README.md b/README.md index 3af97d6..10f88c9 100644 --- a/README.md +++ b/README.md @@ -90,8 +90,8 @@ If you need faceting, highlighting wired by default, synonyms, multi-language-pe | Component | Version | |-----------------|---------------------------------------------------------------| | PHP | 8.3, 8.4, 8.5 | -| Laravel | 11.x, 12.x, 13.x | -| Laravel Scout | 10.x, 11.x | +| Laravel | 12.x, 13.x | +| Laravel Scout | 11.x | | Postgres | 14+ (CI-tested on **Postgres 18**) | | Extensions | `pg_trgm` ≥ 1.6, `unaccent` ≥ 1.1 | @@ -430,11 +430,11 @@ million-row corpora. ## Stability -The package is **stable** as of `v1.0.0`. The public API — the `postgresSearchable()` migration macro, the `dropPostgresSearchable()` macro, the `PostgresSearchable` contract, the `pgsql` Scout engine driver name, and the keys in `config/scout-postgres.php` — is committed across the entire `1.x` line. Breaking changes will land on a `2.0.0` release tag and will be documented in `CHANGELOG.md` with a migration note. +The package is **stable** as of `v1.0.0`. Version `2.0.0` raises the support floor to Laravel 12 and Scout 11 without changing the runtime API. The public API includes the `postgresSearchable()` migration macro, the `dropPostgresSearchable()` macro, the `PostgresSearchable` contract, the `pgsql` Scout engine driver name, and the keys in `config/scout-postgres.php`. ## Limitations -By design, this package targets the 80% case. The following are **not** in scope for the `1.x` line: +By design, this package targets the 80% case. The following are **not** in scope for this package: - No synonym / stopword customisation beyond what your `regconfig` provides. - No relevance feedback / learning-to-rank. diff --git a/composer.json b/composer.json index 665e68c..7ce7bff 100644 --- a/composer.json +++ b/composer.json @@ -32,19 +32,19 @@ "php": "^8.3", "ext-pdo": "*", "ext-pdo_pgsql": "*", - "illuminate/contracts": "^11.0 || ^12.0 || ^13.0", - "illuminate/database": "^11.0 || ^12.0 || ^13.0", - "illuminate/support": "^11.0 || ^12.0 || ^13.0", - "laravel/scout": "^10.0 || ^11.0", + "illuminate/contracts": "^12.0 || ^13.0", + "illuminate/database": "^12.0 || ^13.0", + "illuminate/support": "^12.0 || ^13.0", + "laravel/scout": "^11.0", "spatie/laravel-package-tools": "^1.16" }, "require-dev": { "driftingly/rector-laravel": "^2.2", "larastan/larastan": "^3.0", "laravel/pint": "^1.25", - "orchestra/testbench": "^9.0 || ^10.0 || ^11.0", - "pestphp/pest": "^3.0 || ^4.0 || ^5.0", - "pestphp/pest-plugin-laravel": "^3.0 || ^4.0 || ^5.0", + "orchestra/testbench": "^10.0 || ^11.0", + "pestphp/pest": "^4.0", + "pestphp/pest-plugin-laravel": "^4.0", "phpstan/phpstan-deprecation-rules": "^2.0", "phpstan/phpstan-phpunit": "^2.0", "rector/rector": "^2.2" diff --git a/phpunit.xml b/phpunit.xml index 2f0cea7..7bbaf52 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,6 +1,6 @@ withPhpSets(php85: true) + ->withPhpSets(php83: true) ->withPreparedSets( deadCode: true, codeQuality: true, @@ -25,6 +25,6 @@ earlyReturn: true, ) ->withSets([ - LaravelSetList::LARAVEL_130, + LaravelSetList::LARAVEL_120, LaravelSetList::LARAVEL_CODE_QUALITY, ]);