Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 41 additions & 14 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down Expand Up @@ -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
Expand All @@ -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') }}
Expand All @@ -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
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |

Expand Down Expand Up @@ -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.
Expand Down
14 changes: 7 additions & 7 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 1 addition & 1 deletion phpunit.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/13/phpunit.xsd"
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
bootstrap="vendor/autoload.php"
colors="true"
processIsolation="false"
Expand Down
4 changes: 2 additions & 2 deletions rector.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
__DIR__.'/build',
__DIR__.'/tests/Fixtures',
])
->withPhpSets(php85: true)
->withPhpSets(php83: true)
->withPreparedSets(
deadCode: true,
codeQuality: true,
Expand All @@ -25,6 +25,6 @@
earlyReturn: true,
)
->withSets([
LaravelSetList::LARAVEL_130,
LaravelSetList::LARAVEL_120,
LaravelSetList::LARAVEL_CODE_QUALITY,
]);