Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
309 commits
Select commit Hold shift + click to select a range
2e5ec28
Preserve decimal metadata numeric coercion
adamziel Jun 10, 2026
9bcd460
Improve PostgreSQL SELECT compatibility
adamziel Jun 11, 2026
5dde0c0
Preserve BETWEEN bounds in truthiness rewrite
adamziel Jun 11, 2026
c8e9646
Add PostgreSQL date function compatibility
adamziel Jun 11, 2026
9b9d4ac
Preserve DISTINCT grouped archive semantics
adamziel Jun 11, 2026
099e16e
Support grouped HAVING aliases for PostgreSQL
adamziel Jun 11, 2026
97628ff
Constrain grouped HAVING equality extensions
adamziel Jun 11, 2026
b8a4a7f
Translate PostgreSQL duplicate-key inserts
adamziel Jun 11, 2026
256a6dc
Guard PostgreSQL duplicate-key upserts
adamziel Jun 11, 2026
0661271
Fail closed unsafe PostgreSQL upserts
adamziel Jun 11, 2026
83509ab
Implement PostgreSQL FOUND_ROWS accounting
adamziel Jun 11, 2026
d73766b
Support PostgreSQL binary regex translation
adamziel Jun 11, 2026
e9438fa
Fix PostgreSQL backslash string quoting
adamziel Jun 11, 2026
a40d141
Support grouped DISTINCT term ordering
adamziel Jun 11, 2026
0308d0a
Fix PostgreSQL text quoting for feed upserts
adamziel Jun 11, 2026
13d7d8c
Fix PostgreSQL text sentinel decoding
adamziel Jun 11, 2026
2f4c065
Preserve PostgreSQL count aggregate result shape
adamziel Jun 12, 2026
ed04f52
Fix PostgreSQL term text lookups
adamziel Jun 12, 2026
963927c
Prevent schema-qualified predicate suffix rewrites
adamziel Jun 12, 2026
23bf3ad
Normalize PostgreSQL date DML values
adamziel Jun 12, 2026
e923eb0
Preserve PostgreSQL comment column lengths
adamziel Jun 12, 2026
52372d2
Stabilize PostgreSQL sticky post ordering
adamziel Jun 12, 2026
f8157dc
Fix PostgreSQL search relevance ordering
adamziel Jun 12, 2026
efa6caa
Preserve postmeta value LIKE collation
adamziel Jun 12, 2026
f2083ba
Return changed rows for PostgreSQL updates
adamziel Jun 12, 2026
a99de2f
Add page search order tie-breaker
adamziel Jun 12, 2026
b4eaaeb
Order available post MIME types for PostgreSQL
adamziel Jun 12, 2026
ba60bce
Preserve explicit PostgreSQL insert IDs
adamziel Jun 12, 2026
dac9cbf
Preserve insert ID for upsert conflicts
adamziel Jun 12, 2026
2d83634
Bound PostgreSQL CI checks
adamziel Jun 12, 2026
7856683
Merge upstream trunk into PostgreSQL backend
adamziel Jun 12, 2026
c7093b8
Stabilize PostgreSQL savepoint test
adamziel Jun 12, 2026
2ac46d7
Run full PostgreSQL WordPress PHPUnit CI
adamziel Jun 12, 2026
144f115
Cache PostgreSQL metadata lookups
adamziel Jun 13, 2026
81ac332
Cache PostgreSQL introspection results
adamziel Jun 13, 2026
701531c
Bound PostgreSQL WordPress PHPUnit CI
adamziel Jun 13, 2026
5742258
Speed up PostgreSQL WordPress PHPUnit
adamziel Jun 14, 2026
394f5fd
Cache PostgreSQL column metadata lookups
adamziel Jun 14, 2026
6daf53d
Cache more PostgreSQL metadata lookups
adamziel Jun 14, 2026
afcca89
Speed up PostgreSQL SELECT translation
adamziel Jun 14, 2026
39ec9b8
Guard FOUND_ROWS direct counts for aggregates
adamziel Jun 14, 2026
a4644a4
Coerce FOUND_ROWS direct count predicates
adamziel Jun 14, 2026
c8c5b39
Stabilize approved comment ID ordering
adamziel Jun 14, 2026
275327e
Narrow approved comment projection guard
adamziel Jun 14, 2026
ddcc8ad
Cache PostgreSQL SELECT translations
adamziel Jun 14, 2026
03276ce
Restore commented SELECT translation
adamziel Jun 14, 2026
87dfcbf
Skip WordPress npm setup in PostgreSQL CI
adamziel Jun 14, 2026
0be0be1
Hydrate WordPress assets for PostgreSQL tests
adamziel Jun 14, 2026
8ad115b
Reduce PostgreSQL WordPress test runtime
adamziel Jun 14, 2026
85f4098
Reject grouped SQL_CALC window fetch modes
adamziel Jun 14, 2026
b82f4bc
Improve PostgreSQL compatibility for popular plugins
adamziel Jun 14, 2026
10df813
Add PostgreSQL SHOW metadata support
adamziel Jun 14, 2026
ef7f09e
Reject quoted SHOW metadata WHERE columns
adamziel Jun 14, 2026
5999f0d
Add PostgreSQL table administration support
adamziel Jun 14, 2026
edd67f9
Fix PostgreSQL admin checks for temp tables
adamziel Jun 14, 2026
09496b6
Add PostgreSQL SHOW TABLE STATUS support
adamziel Jun 14, 2026
017480a
Add PostgreSQL USE statement support
adamziel Jun 14, 2026
0f1d9b1
Guard information_schema table handlers
adamziel Jun 14, 2026
cc2f9d3
Add PostgreSQL SHOW CREATE TABLE support
adamziel Jun 14, 2026
86b138a
Add PostgreSQL SHOW GRANTS support
adamziel Jun 14, 2026
8b1c145
Add PostgreSQL index hint translation
adamziel Jun 14, 2026
428cb77
Add PostgreSQL SHOW KEYS support
adamziel Jun 14, 2026
5612ab0
Reject SHOW EXTENDED index forms
adamziel Jun 14, 2026
a6ab43e
Support SHOW FIELDS in PostgreSQL driver
adamziel Jun 14, 2026
8c61820
Support PostgreSQL SHOW VARIABLES forms
adamziel Jun 14, 2026
01f5629
Add PostgreSQL LOCK TABLES compatibility
adamziel Jun 14, 2026
e318f83
Support PostgreSQL SET session variables
adamziel Jun 14, 2026
e36aecb
Support PostgreSQL TRUNCATE and savepoints
adamziel Jun 14, 2026
c73a7c7
Support more PostgreSQL query forms
adamziel Jun 14, 2026
fa7a5d0
Support PostgreSQL metadata SHOW filters
adamziel Jun 14, 2026
9d3cfe8
Clean generated wp-setup backup files
adamziel Jun 14, 2026
c915b32
Support PostgreSQL ALTER DROP INDEX
adamziel Jun 14, 2026
3a65a1d
Add PostgreSQL adapter insert replace helper tests
adamziel Jun 14, 2026
f2632c8
Support translated PostgreSQL CREATE INDEX forms
adamziel Jun 15, 2026
c69e247
Harden PostgreSQL WordPress test setup guards
adamziel Jun 15, 2026
5907723
Add PostgreSQL follow-up coverage tests
adamziel Jun 15, 2026
cc85bd4
Test PostgreSQL SQL mode adapter filtering
adamziel Jun 15, 2026
8add580
Test PostgreSQL charset determination
adamziel Jun 15, 2026
6cfe191
Test PostgreSQL print error recording
adamziel Jun 15, 2026
6fd64ba
Test PostgreSQL flush state reset
adamziel Jun 15, 2026
b160f9a
Test PostgreSQL real escape behavior
adamziel Jun 15, 2026
672964c
Test PostgreSQL constructor behavior
adamziel Jun 15, 2026
bd80088
Test PostgreSQL server info fallback
adamziel Jun 15, 2026
cb63808
Test PostgreSQL connection health checks
adamziel Jun 15, 2026
95b2447
Test PostgreSQL charset defaults
adamziel Jun 15, 2026
ea61c6c
Support PostgreSQL prepare identifier placeholders
adamziel Jun 15, 2026
3a5a374
Test PostgreSQL connection and index guard edges
adamziel Jun 15, 2026
49d00ce
Test PostgreSQL select default connection handle
adamziel Jun 15, 2026
24df8a5
Test PostgreSQL query early returns
adamziel Jun 15, 2026
d41680c
Test PostgreSQL capability reporting
adamziel Jun 15, 2026
51e3cb0
Test PostgreSQL identifier NUL rejection
adamziel Jun 15, 2026
d354b23
Test PostgreSQL socket DSN preservation
adamziel Jun 15, 2026
ea7b5bd
Test PostgreSQL socket host options
adamziel Jun 15, 2026
b560b1e
Test PostgreSQL connection option failures
adamziel Jun 15, 2026
0aa8a9b
Clear PostgreSQL ready state on close
adamziel Jun 15, 2026
98cf004
Test PostgreSQL global PDO filtering
adamziel Jun 15, 2026
2747aee
Recover stale wp-setup locks conservatively
adamziel Jun 15, 2026
30cfb68
Test PostgreSQL drop metadata cleanup
adamziel Jun 15, 2026
fc1d267
Test PostgreSQL existing driver connect
adamziel Jun 15, 2026
3b1e86e
Test PostgreSQL query comments before writes
adamziel Jun 15, 2026
40b4e7f
Fix PostgreSQL test setup and parser edge cases
adamziel Jun 15, 2026
2d17e52
Require PostgreSQL WordPress PHPUnit success
adamziel Jun 15, 2026
126debf
Expand PostgreSQL SQL compatibility
adamziel Jun 15, 2026
d13d403
Complete PostgreSQL compatibility goals
adamziel Jun 15, 2026
42db73c
Expand PostgreSQL MySQL compatibility coverage
adamziel Jun 15, 2026
058fe5c
Expand PostgreSQL MySQL compatibility parity
adamziel Jun 15, 2026
40e8c28
Bridge PostgreSQL MySQL compatibility gaps
adamziel Jun 15, 2026
35793b4
Expand PostgreSQL DML compatibility
adamziel Jun 15, 2026
3b9c1e6
Expand PostgreSQL MySQL compatibility
adamziel Jun 15, 2026
b11fa7f
Expand PostgreSQL SHOW WHERE filtering
adamziel Jun 15, 2026
83da9bb
Expand PostgreSQL compatibility parity
adamziel Jun 15, 2026
e91e7ad
Support PostgreSQL SHOW TABLE STATUS AND filters
adamziel Jun 15, 2026
1890662
Support PostgreSQL composite interval literals
adamziel Jun 15, 2026
6550b1c
Support PostgreSQL prefix unique upserts
adamziel Jun 15, 2026
4bfef2e
Support PostgreSQL REPLACE SELECT
adamziel Jun 15, 2026
e8e0bb4
Support columnless PostgreSQL REPLACE SELECT
adamziel Jun 15, 2026
ee271e2
Support PostgreSQL UPDATE LIMIT offsets
adamziel Jun 15, 2026
fa4b289
Expand PostgreSQL MySQL compatibility edges
adamziel Jun 15, 2026
b32c8f8
Support PostgreSQL ALTER rename column
adamziel Jun 15, 2026
a56ba02
Support PostgreSQL ALTER rename index
adamziel Jun 15, 2026
a4c7a7e
Support PostgreSQL information schema collations
adamziel Jun 15, 2026
64f61e9
Expand PostgreSQL MySQL parity edges
adamziel Jun 15, 2026
918812b
Support columnless PostgreSQL SELECT upserts
adamziel Jun 15, 2026
02dc3cb
Expand PostgreSQL runtime date function parity
adamziel Jun 15, 2026
efbe309
Support PostgreSQL REPLACE SET translation
adamziel Jun 15, 2026
754b3e5
Support PostgreSQL table rename translation
adamziel Jun 15, 2026
ae0f1ad
Expand PostgreSQL SHOW WHERE expressions
adamziel Jun 15, 2026
0835653
Expand PostgreSQL catalog SHOW WHERE filters
adamziel Jun 15, 2026
35eccbd
Support PostgreSQL admin table modifiers
adamziel Jun 15, 2026
c7e1db4
Support nested PostgreSQL information_schema selects
adamziel Jun 15, 2026
22462f4
Expand PostgreSQL MySQL compatibility parity
adamziel Jun 15, 2026
b61802f
Preserve PostgreSQL MySQL comment metadata
adamziel Jun 16, 2026
8106e3a
Expand PostgreSQL SHOW CREATE and UPDATE guards
adamziel Jun 16, 2026
0f833ab
Support PostgreSQL SELECT upserts and schema functions
adamziel Jun 16, 2026
4c9f7a0
Expand PostgreSQL MySQL compatibility cases
adamziel Jun 16, 2026
f634fa3
Support mixed PostgreSQL information_schema joins
adamziel Jun 16, 2026
2801a5a
Support table-backed PostgreSQL upsert subqueries
adamziel Jun 16, 2026
8132ac5
Match PostgreSQL information_schema SHOW routing
adamziel Jun 16, 2026
b3eac71
Support dynamic PostgreSQL date formats
adamziel Jun 16, 2026
a4fd8c9
Expand PostgreSQL MySQL parity coverage
adamziel Jun 16, 2026
2e6aad1
Support PostgreSQL character aliases and serial DDL
adamziel Jun 16, 2026
e0c85cd
Support PostgreSQL JSON DDL parity
adamziel Jun 16, 2026
632bc7f
Support PostgreSQL long type aliases
adamziel Jun 16, 2026
6c0a700
Fail closed on unsupported PostgreSQL DELETE
adamziel Jun 16, 2026
11b8266
Preserve fractional second intervals for PostgreSQL
adamziel Jun 16, 2026
7090f83
Cover PostgreSQL JSON metadata parity
adamziel Jun 16, 2026
ca4b54d
Preserve PostgreSQL index sort metadata
adamziel Jun 16, 2026
2a1100d
Expose PostgreSQL index direction statistics
adamziel Jun 16, 2026
8a26249
Support PostgreSQL upsert assignment variants
adamziel Jun 16, 2026
9d68dab
Bridge PostgreSQL DDL and DML parity gaps
adamziel Jun 16, 2026
59cd2af
Broaden PostgreSQL REPLACE parity
adamziel Jun 16, 2026
9f7d0e4
Support derived-source PostgreSQL updates
adamziel Jun 16, 2026
ef10f48
Support PostgreSQL ON UPDATE timestamps
adamziel Jun 16, 2026
a032506
Broaden PostgreSQL joined UPDATE targets
adamziel Jun 16, 2026
2b39824
Support PostgreSQL joined DELETE regex predicates
adamziel Jun 16, 2026
5c8952c
Support ordered PostgreSQL joined DELETE limits
adamziel Jun 16, 2026
a0ab081
Support DML LIMIT OFFSET syntax
adamziel Jun 16, 2026
8d28a8c
Support PostgreSQL ADDDATE and SUBDATE aliases
adamziel Jun 16, 2026
e1c26d7
Broaden PostgreSQL DML predicate coverage
adamziel Jun 16, 2026
8c64239
Support PostgreSQL ANALYZE histogram clauses
adamziel Jun 16, 2026
833387e
Handle duplicate PostgreSQL upsert conflicts
adamziel Jun 16, 2026
5bba86e
Allow PostgreSQL information schema app subqueries
adamziel Jun 16, 2026
be045d8
Support PostgreSQL information schema ON joins
adamziel Jun 16, 2026
f20707e
Support PostgreSQL upsert table subqueries
adamziel Jun 16, 2026
9cab127
Support PostgreSQL metadata-only CHECK constraints
adamziel Jun 16, 2026
c835997
Support PostgreSQL SHOW WHERE expression predicates
adamziel Jun 16, 2026
3032177
Close PostgreSQL backend parity gaps
adamziel Jun 16, 2026
15c022d
Cover PostgreSQL delete limit offsets
adamziel Jun 16, 2026
1606795
Support information_schema union selects
adamziel Jun 16, 2026
da5dc48
Support PostgreSQL multi-target updates
adamziel Jun 16, 2026
3a6cb81
Support information_schema derived union sources
adamziel Jun 16, 2026
1f249bb
Support constant auto-increment upsert selects
adamziel Jun 16, 2026
5778dec
Fail closed on unsupported MySQL admin SQL
adamziel Jun 16, 2026
6c6de8f
Preserve FROM_UNIXTIME formatted strings
adamziel Jun 16, 2026
a846a72
Support ADDDATE numeric day aliases
adamziel Jun 16, 2026
833165c
Emulate additional MySQL SHOW metadata
adamziel Jun 16, 2026
9dd3a87
Fail closed on unsupported MySQL DML forms
adamziel Jun 16, 2026
dcd45d2
Support omitted defaults in replace selects
adamziel Jun 16, 2026
4d464a0
Bridge PostgreSQL backend parity gaps
adamziel Jun 16, 2026
f150084
Tighten PostgreSQL temp and admin parity
adamziel Jun 16, 2026
f3ebd20
Support information schema joined deletes
adamziel Jun 16, 2026
102b3e4
Support information schema joined updates
adamziel Jun 16, 2026
95a3372
Support columnless PostgreSQL inserts
adamziel Jun 16, 2026
086bf8d
Support same-table PostgreSQL deletes
adamziel Jun 16, 2026
1efe3bd
Support omitted upsert VALUES columns
adamziel Jun 16, 2026
3072ece
Support binary PostgreSQL length semantics
adamziel Jun 16, 2026
1ebab7a
Omit unbounded joined delete ordering
adamziel Jun 16, 2026
98f10da
Support plural table administration syntax
adamziel Jun 16, 2026
e345a2a
Support SHOW EXTENDED index syntax
adamziel Jun 16, 2026
f9e868a
Support unbounded joined update ordering
adamziel Jun 16, 2026
4045755
Support DML priority modifiers
adamziel Jun 16, 2026
b706b34
Support unbounded multi-target delete ordering
adamziel Jun 16, 2026
6a33555
Support bounded joined update slices
adamziel Jun 16, 2026
f4bf2e0
Support inline keys in changed columns
adamziel Jun 16, 2026
19f1702
Support bounded multi-target DML
adamziel Jun 16, 2026
07e383d
Support MySQL savepoint rollback variants
adamziel Jun 16, 2026
9781632
Support parenthesized ALTER ADD entries
adamziel Jun 16, 2026
09aaef2
Support ordered information schema unions
adamziel Jun 16, 2026
52478c5
Support qualified INSERT SET targets
adamziel Jun 16, 2026
cbb4aec
Support SELECT upserts with identity sources
adamziel Jun 16, 2026
4d6dc2f
Support ordered upsert scalar subqueries
adamziel Jun 16, 2026
efdd6f2
Broaden PostgreSQL MySQL compatibility
adamziel Jun 16, 2026
643d16d
Support MySQL date week formats
adamziel Jun 16, 2026
2670d44
Expose information schema parameters
adamziel Jun 16, 2026
94b9bfe
Broaden PostgreSQL parity for DML and DDL
adamziel Jun 16, 2026
5238583
Expand PostgreSQL MySQL function and SHOW parity
adamziel Jun 16, 2026
38af594
Route information schema CTE selects
adamziel Jun 16, 2026
6985c95
Bridge PostgreSQL parity gaps
adamziel Jun 16, 2026
25ed19d
Close remaining PostgreSQL parity gaps
adamziel Jun 16, 2026
c10caa0
Bridge additional PostgreSQL parity gaps
adamziel Jun 16, 2026
bbf6df7
Support RIGHT JOIN PostgreSQL update translation
adamziel Jun 16, 2026
ef70076
Fail closed on unsupported PostgreSQL compatibility forms
adamziel Jun 16, 2026
1cebb12
Bridge PostgreSQL compatibility parity gaps
adamziel Jun 16, 2026
f141d29
Bridge more PostgreSQL parity gaps
adamziel Jun 16, 2026
79a5836
Bridge additional PostgreSQL parity gaps
adamziel Jun 16, 2026
4edaaf8
Expose empty information schema privilege relations
adamziel Jun 16, 2026
e5638a5
Preserve ROW_COUNT after failed PostgreSQL statements
adamziel Jun 16, 2026
f6609e7
Bridge remaining PostgreSQL parity gaps
adamziel Jun 16, 2026
c1280d4
Route qualified writes after USE information_schema
adamziel Jun 16, 2026
b6af1ec
Bridge PostgreSQL parity gaps
adamziel Jun 16, 2026
4b72ec9
Bridge additional PostgreSQL parity gaps
adamziel Jun 16, 2026
fb724b8
Bridge PostgreSQL JSON and upsert parity gaps
adamziel Jun 16, 2026
6055276
Support PostgreSQL CREATE TABLE LIKE
adamziel Jun 16, 2026
f5e79fb
Bridge remaining PostgreSQL SQL parity gaps
adamziel Jun 16, 2026
cc440ac
Bridge PostgreSQL parity gaps across SQL surfaces
adamziel Jun 16, 2026
2c259d2
Preserve PostgreSQL DML ORDER BY rewrites
adamziel Jun 16, 2026
abf3d2f
Close PostgreSQL parity gaps
adamziel Jun 16, 2026
63086c8
Support PostgreSQL CTAS definitions
adamziel Jun 16, 2026
08377b8
Bridge PostgreSQL SQLite parity gaps
adamziel Jun 16, 2026
cbad347
Support bare PostgreSQL temporal keywords
adamziel Jun 16, 2026
3416def
Bridge PostgreSQL compatibility gaps
adamziel Jun 16, 2026
789b207
Bridge remaining PostgreSQL parity gaps
adamziel Jun 16, 2026
c05a8df
Support nested information schema DML predicates
adamziel Jun 16, 2026
406967e
Bridge PostgreSQL SQLite parity gaps
adamziel Jun 16, 2026
3f02aa4
Bridge PostgreSQL parity gaps
adamziel Jun 16, 2026
69afb93
Route explicit main database joins after USE information_schema
adamziel Jun 16, 2026
7a792d9
Bridge more PostgreSQL SQLite parity gaps
adamziel Jun 16, 2026
e0deca2
Support multi-expression PostgreSQL group concat
adamziel Jun 16, 2026
746b095
Support ordered distinct PostgreSQL group concat
adamziel Jun 16, 2026
6288f3e
Close PostgreSQL parity test gaps
adamziel Jun 16, 2026
f3288a4
Skip lexer benchmark comments for fork PRs
adamziel Jun 16, 2026
a3d30ff
Support PostgreSQL TIMESTAMPDIFF
adamziel Jun 16, 2026
cfd18bf
Fix PostgreSQL WordPress install DDL execution
adamziel Jun 16, 2026
6abdbce
Close PostgreSQL SQLite parity gaps
adamziel Jun 16, 2026
8b8581d
Improve PostgreSQL parity for typed conversions and REPLACE
adamziel Jun 16, 2026
f3b5bd7
Close PostgreSQL admin and upsert parity gaps
adamziel Jun 16, 2026
dd8c071
Add PostgreSQL DDL parity for foreign keys and renames
adamziel Jun 16, 2026
fcc0980
Fix PostgreSQL temporal parity gaps
adamziel Jun 16, 2026
86d75c4
Fix PostgreSQL upsert target references
adamziel Jun 16, 2026
21214cc
Fix PostgreSQL CI regressions
adamziel Jun 16, 2026
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
13 changes: 10 additions & 3 deletions .github/workflows/cs.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
name: CS

on:
# Run on all relevant pushes (except to main) and on all relevant pull requests.
# Run on all relevant pushes and pull requests.
push:
paths:
- '**.php'
- '.github/workflows/**'
- 'bin/verify-workflow-ci-gates.js'
- 'composer.json'
- 'composer.lock'
- '.phpcs.xml.dist'
- 'phpcs.xml.dist'
- '.github/workflows/cs.yml'
pull_request:
paths:
- '**.php'
- '.github/workflows/**'
- 'bin/verify-workflow-ci-gates.js'
- 'composer.json'
- 'composer.lock'
- '.phpcs.xml.dist'
- 'phpcs.xml.dist'
- '.github/workflows/cs.yml'
# Allow manually triggering the workflow.
workflow_dispatch:

Expand Down Expand Up @@ -55,6 +57,11 @@ jobs:
- name: Validate Composer installation
run: composer validate --no-check-all

- name: Verify workflow CI gates
env:
DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
run: composer run verify-workflow-ci-gates

# Install dependencies and handle caching in one go.
# @link https://github.com/marketplace/actions/install-composer-dependencies
- name: Install Composer dependencies
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/end-to-end-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- main
- trunk
pull_request:

# Disable permissions for all available scopes by default.
Expand Down Expand Up @@ -34,8 +35,12 @@ jobs:
run: npx playwright install --with-deps

- name: Run end-to-end tests
env:
WP_TEST_DB_BACKEND: sqlite
run: composer run test-e2e

- name: Stop Docker containers
if: always()
env:
WP_TEST_DB_BACKEND: sqlite
run: composer run wp-test-clean
5 changes: 4 additions & 1 deletion .github/workflows/lexer-benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ jobs:
timeout-minutes: 15
permissions:
contents: read # Required to clone the repo.
pull-requests: write # Required to post/update the result comment.
issues: write # Required to post/update the result comment.
pull-requests: write # Required to inspect pull request metadata.

steps:
- name: Checkout repository
Expand Down Expand Up @@ -84,8 +85,10 @@ jobs:
echo '```'
} > "$RUNNER_TEMP/comment.md"
echo "COMMENT_FILE=$RUNNER_TEMP/comment.md" >> "$GITHUB_ENV"
cat "$RUNNER_TEMP/comment.md" >> "$GITHUB_STEP_SUMMARY"

- name: Post or update the PR comment
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
uses: actions/github-script@v7
with:
script: |
Expand Down
50 changes: 29 additions & 21 deletions .github/workflows/phpunit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ name: PHPUnit Tests
on:
push:
branches:
- main
- trunk
paths:
- '.github/workflows/phpunit-tests.yml'
Expand Down Expand Up @@ -30,9 +31,9 @@ permissions: {}
jobs:
test:
# The pure-PHP parser is exercised across the full PHP/SQLite range; the
# native Rust parser extension is exercised on PHP 8.0+ (its minimum). Both
# run the same mysql-on-sqlite suite, just with a different parser engine.
name: PHP ${{ matrix.php }}${{ matrix.extension && ' + ext-wp-mysql-parser' || '' }} / SQLite ${{ matrix.sqlite }}
# native Rust parser extension is exercised on PHP 8.0+ (its minimum).
# PostgreSQL-specific tests run in one bounded adapter lane.
name: PHP ${{ matrix.php }}${{ matrix.extension && ' + ext-wp-mysql-parser' || '' }} / SQLite ${{ matrix.sqlite }} / ${{ matrix.testsuite }}
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
Expand All @@ -43,22 +44,24 @@ jobs:
include:
# Pure-PHP parser, across the supported PHP versions, each pinned to a
# representative SQLite version spanning the supported range.
- { php: '7.2', sqlite: '3.27.0', extension: false } # minimum with WP_SQLITE_UNSAFE_ENABLE_UNSUPPORTED_VERSIONS
- { php: '7.3', sqlite: '3.31.1', extension: false } # Ubuntu 20.04 LTS
- { php: '7.4', sqlite: '3.34.1', extension: false } # Debian 11 (Bullseye)
- { php: '8.0', sqlite: '3.37.0', extension: false } # minimum supported version (STRICT tables)
- { php: '8.1', sqlite: '3.40.1', extension: false } # Debian 12 (Bookworm)
- { php: '8.2', sqlite: '3.45.1', extension: false } # Ubuntu 24.04 LTS
- { php: '8.3', sqlite: '3.46.1', extension: false } # Debian 13 (Trixie)
- { php: '8.4', sqlite: '3.51.2', extension: false } # First 2026 release
- { php: '8.5', sqlite: 'latest', extension: false }
- { php: '7.2', sqlite: '3.27.0', extension: false, testsuite: default } # minimum with WP_SQLITE_UNSAFE_ENABLE_UNSUPPORTED_VERSIONS
- { php: '7.3', sqlite: '3.31.1', extension: false, testsuite: default } # Ubuntu 20.04 LTS
- { php: '7.4', sqlite: '3.34.1', extension: false, testsuite: default } # Debian 11 (Bullseye)
- { php: '8.0', sqlite: '3.37.0', extension: false, testsuite: default } # minimum supported version (STRICT tables)
- { php: '8.1', sqlite: '3.40.1', extension: false, testsuite: default } # Debian 12 (Bookworm)
- { php: '8.2', sqlite: '3.45.1', extension: false, testsuite: default } # Ubuntu 24.04 LTS
- { php: '8.3', sqlite: '3.46.1', extension: false, testsuite: default } # Debian 13 (Trixie)
- { php: '8.4', sqlite: '3.51.2', extension: false, testsuite: default } # First 2026 release
- { php: '8.5', sqlite: 'latest', extension: false, testsuite: default }
# PostgreSQL adapter tests run once in a bounded package lane.
- { php: '8.3', sqlite: '3.46.1', extension: false, testsuite: postgresql }
# Native Rust parser extension (requires PHP 8.0+).
- { php: '8.0', sqlite: '3.37.0', extension: true }
- { php: '8.1', sqlite: '3.40.1', extension: true }
- { php: '8.2', sqlite: '3.45.1', extension: true }
- { php: '8.3', sqlite: '3.46.1', extension: true }
- { php: '8.4', sqlite: '3.51.2', extension: true }
- { php: '8.5', sqlite: 'latest', extension: true }
- { php: '8.0', sqlite: '3.37.0', extension: true, testsuite: default }
- { php: '8.1', sqlite: '3.40.1', extension: true, testsuite: default }
- { php: '8.2', sqlite: '3.45.1', extension: true, testsuite: default }
- { php: '8.3', sqlite: '3.46.1', extension: true, testsuite: default }
- { php: '8.4', sqlite: '3.51.2', extension: true, testsuite: default }
- { php: '8.5', sqlite: 'latest', extension: true, testsuite: default }

steps:
- name: Checkout repository
Expand Down Expand Up @@ -179,10 +182,15 @@ jobs:
if: matrix.extension
env:
WP_SQLITE_REQUIRE_NATIVE_PARSER_EXTENSION: '1'
run: php -d extension="$GITHUB_WORKSPACE/packages/php-ext-wp-mysql-parser/target/release/libwp_mysql_parser.so" ./vendor/bin/phpunit -c ./phpunit.xml.dist
run: php -d extension="$GITHUB_WORKSPACE/packages/php-ext-wp-mysql-parser/target/release/libwp_mysql_parser.so" ./vendor/bin/phpunit -c ./phpunit.xml.dist --testsuite default
working-directory: packages/mysql-on-sqlite

- name: Run PHPUnit suite
if: ${{ ! matrix.extension }}
run: php ./vendor/bin/phpunit -c ./phpunit.xml.dist
if: ${{ ! matrix.extension && matrix.testsuite == 'default' }}
run: php ./vendor/bin/phpunit -c ./phpunit.xml.dist --testsuite default
working-directory: packages/mysql-on-sqlite

- name: Run PostgreSQL PHPUnit suite
if: ${{ matrix.testsuite == 'postgresql' }}
run: php ./vendor/bin/phpunit -c ./phpunit.xml.dist --testsuite postgresql
working-directory: packages/mysql-on-sqlite
17 changes: 15 additions & 2 deletions .github/workflows/wp-tests-end-to-end.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- main
- trunk
pull_request:

# Disable permissions for all available scopes by default.
Expand All @@ -12,11 +13,17 @@ permissions: {}

jobs:
test:
name: WordPress End-to-end Tests
name: WordPress End-to-end Tests / ${{ matrix.backend }}
runs-on: ubuntu-latest
timeout-minutes: 20
timeout-minutes: 60
permissions:
contents: read # Required to clone the repo.
strategy:
fail-fast: false
matrix:
backend:
- sqlite
- postgresql

steps:
- name: Checkout repository
Expand All @@ -34,8 +41,14 @@ jobs:
run: npx playwright install --with-deps

- name: Run WordPress end-to-end tests
env:
WP_TEST_DB_BACKEND: ${{ matrix.backend }}
run: composer run wp-test-e2e

- name: Stop Docker containers
if: always()
env:
WP_TEST_DB_BACKEND: ${{ matrix.backend }}
LOCAL_DB_TYPE: mysql
LOCAL_PHP_MEMCACHED: 'false'
run: composer run wp-test-clean
5 changes: 5 additions & 0 deletions .github/workflows/wp-tests-phpunit-native-extension-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ if [ ! -f "$COMPOSE_OVERRIDE" ]; then
exit 1
fi

if ! grep -Fq 'DB_ENGINE: sqlite' "$COMPOSE_OVERRIDE" || ! grep -Fq 'DATABASE_ENGINE: sqlite' "$COMPOSE_OVERRIDE"; then
echo "Stale $COMPOSE_OVERRIDE. Run WP_TEST_DB_BACKEND=sqlite composer run wp-setup before this helper." >&2
exit 1
fi

add_volume_to_service() {
local service="$1"
local volume="$2"
Expand Down
Loading
Loading