Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
62f21a5
Add `@see` docblocks for internal tables
defunctl Sep 15, 2026
0658a9c
Replace WordPress database backend with managed Doctrine DBAL
defunctl Sep 22, 2026
3313167
Document Doctrine database workflows and extension boundaries
defunctl Sep 22, 2026
3a0e8c7
Test database workflows against MySQL and MariaDB
defunctl Sep 22, 2026
fa5b314
Make database regression tests portable across CI environments
defunctl Sep 22, 2026
3786e84
Rename database lock connection property to db
defunctl Sep 22, 2026
cf3cfb2
Standardize Doctrine connection variables as db
defunctl Sep 23, 2026
950aa80
Fix migration rollback behavior and finalize database failure contracts
defunctl Sep 23, 2026
6269e5d
Add more code style rules, test on Migrate.php
defunctl Sep 23, 2026
5ffdcff
Add Command::clearRuntimeCache() for long-running cli processes
defunctl Sep 23, 2026
6abd505
Use colon-separated names for generator commands
defunctl Sep 23, 2026
95e4a96
Discover anonymous migrations from configurable directories
defunctl Sep 23, 2026
b4c03e0
Extract database locks into a dedicated package
defunctl Sep 23, 2026
fabc812
Extract migrations into a dedicated Foundation package
defunctl Sep 24, 2026
d1e196a
Improve doc examples
defunctl Sep 24, 2026
71e77c5
Standardize test helper calls and fix clean-checkout analysis
defunctl Sep 24, 2026
0911f14
Try to fix the agents from doing these super long single line arrays
defunctl Sep 24, 2026
825c07d
Add foreign-key declarations and recovery to migrations
defunctl Sep 24, 2026
7cf366d
Add recoverable migration renames and common column types
defunctl Sep 24, 2026
924cee4
Refactor SchemaPlanner to pull out some responsibilities
defunctl Sep 24, 2026
6a81220
Give Redis Lock a dedicated documentation guide
defunctl Sep 24, 2026
d994764
Remove duplicate checks that already exist outside of migrations
defunctl Sep 24, 2026
6183cfb
Simplify migrations to execute current declarations without historica…
defunctl Sep 25, 2026
7bd7e9f
Add migration history marking and focused WP-CLI commands
defunctl Sep 25, 2026
0c56e2e
Add wp nx migrate:reset command
defunctl Sep 25, 2026
1507479
Improve migration cli docs
defunctl Sep 25, 2026
94e4d55
Order migration guide by status, preview, and execution
defunctl Sep 25, 2026
9168a40
Remove double registration of provider guards
defunctl Sep 25, 2026
f236453
Add count, deleteAll and truncate
defunctl Sep 25, 2026
92b44a5
Capture and output exceptions for our WP CLI commands
defunctl Sep 25, 2026
ebc38a6
Add fluent database queries and consistent table writes
defunctl Sep 25, 2026
f68ec48
Don't commit design junk
defunctl Sep 25, 2026
dc48986
Fix MySQL 5.7 LIMIT 0 inside of EXISTS bug
defunctl Sep 25, 2026
0c11e0d
Allow statement recovery after confirmed savepoint rollback
defunctl Sep 28, 2026
847b854
Add literal substring queries and clarify JSON writes
defunctl Sep 28, 2026
e437f46
Add sum aggregate with explicit numeric return types
defunctl Sep 28, 2026
105c5a7
Add single-column pluck queries
defunctl Sep 28, 2026
43dd43e
Align binary column declarations with SQL storage types
defunctl Sep 28, 2026
e43bcc3
Add raw query conditions with positional bindings
defunctl Sep 28, 2026
b0f9671
Add raw query ordering with positional bindings
defunctl Sep 28, 2026
69fe122
Add atomic query increments and decrements
defunctl Sep 28, 2026
10e1e90
Add query locking reads with lockForUpdate
defunctl Sep 28, 2026
0f77da2
Support DBAL 4.5 and aliases for joined tables
defunctl Sep 29, 2026
1a0f34b
Add query pagination with immutable page results
defunctl Sep 29, 2026
3b0319b
Support marking migration history through a target version
defunctl Oct 2, 2026
14c5215
Support Monolog 2 and 3 with shared logging integration
defunctl Oct 2, 2026
b2828d4
Update to blacksmith runners
defunctl Oct 2, 2026
22079ac
Add slic composer caching now that 2.5.1 is out
defunctl Oct 2, 2026
402102a
Test composer version on runner and install v2
defunctl Oct 2, 2026
9945d09
Select Composer 2 explicitly in host workflow setup
defunctl Oct 2, 2026
d2fed71
Add insertOrIgnore queries with documented IGNORE semantics
defunctl Oct 2, 2026
efc5349
Allow application contributions to database middleware
defunctl Oct 2, 2026
f38c9cc
Add raw SQL operations with inferred parameter types
defunctl Oct 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/check-for-required-files.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:

jobs:
check-workflows:
runs-on: ubuntu-latest
runs-on: blacksmith-2vcpu-ubuntu-2404

steps:
- name: Check out repository
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ concurrency:

jobs:
preview:
runs-on: ubuntu-latest
runs-on: blacksmith-2vcpu-ubuntu-2404

permissions:
contents: read
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/monorepo-split.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ env:

jobs:
list-repos:
runs-on: ubuntu-latest
runs-on: blacksmith-2vcpu-ubuntu-2404
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}

Expand All @@ -30,7 +30,7 @@ jobs:

split:
needs: list-repos
runs-on: ubuntu-latest
runs-on: blacksmith-2vcpu-ubuntu-2404

strategy:
fail-fast: false
Expand Down Expand Up @@ -72,7 +72,7 @@ jobs:
bump-next-development-line:
needs: split
if: ${{ startsWith(github.ref, 'refs/tags/') }}
runs-on: ubuntu-latest
runs-on: blacksmith-2vcpu-ubuntu-2404

steps:
- name: Determine next development line
Expand Down Expand Up @@ -109,6 +109,7 @@ jobs:
with:
php-version: '8.3'
coverage: none
tools: composer:v2

- name: Install Composer dependencies
if: ${{ steps.version.outputs.should_bump == 'true' }}
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

jobs:
ci:
runs-on: ubuntu-latest
runs-on: blacksmith-2vcpu-ubuntu-2404
name: Code Quality

steps:
Expand All @@ -19,7 +19,8 @@ jobs:
with:
php-version: '8.3'
coverage: pcov
extensions: redis
extensions: redis, mysqli
tools: composer:v2

- name: Detect File Changes
uses: dorny/paths-filter@v4
Expand Down
98 changes: 88 additions & 10 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ on:

jobs:
ci:
runs-on: ${{ matrix.os }}
runs-on: blacksmith-2vcpu-ubuntu-2404
strategy:
fail-fast: true
matrix:
os: [ ubuntu-latest ]
php: [ '8.3', '8.4', '8.5' ]
name: Tests PHP${{ matrix.php }} - ${{ matrix.os }}
# Preserve existing required-check names when changing runner providers.
name: Tests PHP${{ matrix.php }} - ubuntu-latest

steps:
- name: Checkout code
Expand All @@ -24,7 +24,8 @@ jobs:
with:
php-version: ${{ matrix.php }}
coverage: none
extensions: redis
extensions: redis, mysqli
tools: composer:v2

- name: Install Composer dependencies
uses: ramsey/composer-install@v4
Expand All @@ -37,11 +38,65 @@ jobs:
- name: Run Feature Tests
run: vendor/bin/phpunit --configuration ./phpunit.xml.dist --colors=always --testsuite Feature

monolog:
runs-on: blacksmith-2vcpu-ubuntu-2404
name: Monolog ${{ matrix.monolog }} compatibility
strategy:
fail-fast: false
matrix:
monolog: [ '2.11.0', '3.10.0' ]

steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
coverage: none
extensions: redis, mysqli
tools: composer:v2

- name: Install Composer dependencies
uses: ramsey/composer-install@v4
with:
dependency-versions: highest

- name: Install supported Monolog floor
run: composer update monolog/monolog:${{ matrix.monolog }} --with-all-dependencies --no-interaction --prefer-dist

- name: Analyze supported Monolog APIs
run: composer analyze

- name: Test logging behavior
run: |
vendor/bin/phpunit --configuration phpunit.xml.dist tests/Unit/Log
vendor/bin/phpunit --configuration phpunit.xml.dist tests/Feature/Log

slic:
runs-on: ubuntu-latest
name: SLIC Tests
runs-on: blacksmith-2vcpu-ubuntu-2404
name: SLIC Tests (${{ matrix.database.name }})
strategy:
fail-fast: false
matrix:
database:
- name: MariaDB
image: mariadb:11.8.3
healthcheck: healthcheck.sh --connect --innodb_initialized
- name: MariaDB-10.4
image: mariadb:10.4
healthcheck: mysqladmin ping --host=127.0.0.1 --silent
- name: MySQL-5.7
image: mysql:5.7
healthcheck: mysqladmin ping --host=127.0.0.1 --silent
- name: MySQL
image: mysql:8.0
healthcheck: mysqladmin ping --host=127.0.0.1 --silent

env:
SLIC_DB_IMAGE: ${{ matrix.database.image }}
SLIC_DB_HEALTHCHECK: ${{ matrix.database.healthcheck }}
COMPOSER_AUTH: '{"github-oauth": {"github.com": "${{ github.token }}"}}'

steps:
Expand All @@ -56,6 +111,27 @@ jobs:
path: slic
fetch-depth: 1

- name: Set up host PHP and Composer
uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
coverage: none
tools: composer:v2

- name: Get Composer cache directory
id: composer-cache-directory
run: |
cache_directory=$(composer config cache-dir --absolute)
echo "path=$cache_directory" >> "$GITHUB_OUTPUT"

- name: Restore Composer cache
uses: actions/cache@v6
with:
path: ${{ steps.composer-cache-directory.outputs.path }}
key: ${{ runner.os }}-composer-slic-php8.3-v1-${{ hashFiles('composer.lock', 'composer.json', 'src/*/composer.json') }}
restore-keys: |
${{ runner.os }}-composer-slic-php8.3-v1-

- name: Set SLIC environment variables
run: |
echo "SLIC_BIN=${GITHUB_WORKSPACE}/slic/slic" >> $GITHUB_ENV
Expand All @@ -71,6 +147,8 @@ jobs:
echo "SSH_AUTH_SOCK=/tmp/ssh_agent.sock" >> $GITHUB_ENV

- name: Configure SLIC
env:
COMPOSER_CACHE_PATH: ${{ steps.composer-cache-directory.outputs.path }}
run: |
cd "${GITHUB_WORKSPACE}/.."
"${SLIC_BIN}" here
Expand All @@ -80,13 +158,13 @@ jobs:
"${SLIC_BIN}" xdebug off
"${SLIC_BIN}" debug on
"${SLIC_BIN}" php-version set 8.3 --skip-rebuild
"${SLIC_BIN}" composer-cache set "$COMPOSER_CACHE_PATH"
"${SLIC_BIN}" info
"${SLIC_BIN}" config

- name: Install dependencies
run: |
"${SLIC_BIN}" use foundation
"${SLIC_BIN}" composer set-version 2
"${SLIC_BIN}" composer install

- name: Update WordPress
Expand Down Expand Up @@ -150,15 +228,15 @@ jobs:
if: github.event_name == 'pull_request'
uses: actions/upload-artifact@v7
with:
name: coverage-report
name: coverage-report-${{ matrix.database.name }}
path: clover.xml
if-no-files-found: error
retention-days: 1

coverage:
if: github.event_name == 'pull_request'
needs: slic
runs-on: ubuntu-latest
runs-on: blacksmith-2vcpu-ubuntu-2404
name: Monitor coverage

permissions:
Expand All @@ -170,7 +248,7 @@ jobs:
- name: Download coverage report
uses: actions/download-artifact@v8
with:
name: coverage-report
name: coverage-report-MariaDB

- name: Monitor coverage
uses: slavcodev/coverage-monitor-action@v1
Expand Down
Loading