Skip to content

Run feature checks on every database seed-forum supports - #46

Merged
bonelifer merged 1 commit into
mainfrom
feature-checks-seed-board
Nov 2, 2026
Merged

bonelifer merged 1 commit into
mainfrom
feature-checks-seed-board

Conversation

@bonelifer

Copy link
Copy Markdown
Contributor

Lets the feature checks run on every database phpBB supports, except Oracle, which phpBB is dropping. Until now they only ran on phpbb-test-board's own SQLite board.

What changes

  • feature_checks.py --seed-board BOARD_ROOT --port PORT: runs the checks against an installed seed-forum board, on SQLite, MySQL, MariaDB, PostgreSQL or MSSQL. A new SeedBoard class drives it. SQL goes through seed-forum's bin/board-sql.php (phpBB's own database layer) and PHP through bin/board-php.py, so the checks don't change per database. After its check, each extension is disabled, purged and enabled again through phpBB's CLI, which runs its migrations backwards and forwards on that database. This needs seed-forum's board.database support (phpbbmodders/seed-forum, branch board-database-engines).
  • db-matrix.sh: runs that for every phpBB branch and database. It builds a seed-forum board per combination, runs the checks, unmounts the board's extensions, stops its database container, and prints a summary.
  • SeedBoard.serve() refuses to start when something already answers on the board's port. A leftover server once made a run check the wrong board.
  • Contact Admin check:
    • builds its route with b.route(), so it also runs on phpBB 4.0 (index.php instead of app.php);
    • now sends a guest message by private message and checks it was stored, so each database gets a real write through the contact form.
  • The README documents both. Tests cover the new options' help text and exit statuses, and CI's ShellCheck step now includes db-matrix.sh.

Testing

  • tests/test-phpbb-test-board.sh: all tests pass, including the eight new ones.
  • CI's ShellCheck command passes locally.
  • Claude ran db-matrix.sh on Contact Admin across phpBB 3.3.19 and 4.0.0-a3-dev with SQLite, MySQL 8.4, MariaDB LTS, PostgreSQL 16 and SQL Server 2022: all ten boards passed, 15 of 15 checks each.
  • The existing SQLite mode was not changed.

Investigated and written by Claude on behalf of William Jacoby (bonelifer).

feature_checks.py --seed-board BOARD_ROOT --port PORT runs the checks
against an installed seed-forum board, on SQLite, MySQL, MariaDB,
PostgreSQL or MSSQL, instead of phpbb-test-board's own SQLite board. A new
SeedBoard class drives it: SQL goes through seed-forum's bin/board-sql.php
(phpBB's own database layer) and PHP through bin/board-php.py, so the same
checks work everywhere. After its check each extension is disabled, purged
and enabled again through phpBB's CLI, running its migrations backwards and
forwards on that database.

db-matrix.sh runs that for every phpBB branch and database: it builds a
seed-forum board per combination, runs the checks and stops the board's
database container, then prints a summary. Oracle isn't covered, since
phpBB is dropping it.

The Contact Admin check builds its route with b.route(), so it also runs on
phpBB 4.0 (index.php instead of app.php), and it now sends a guest message
by private message and checks it was stored, so each database gets a real
write through the contact form.

Tests cover the new options' help and exit statuses; CI's ShellCheck step
includes db-matrix.sh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bonelifer
bonelifer merged commit 385710d into main Nov 2, 2026
1 check passed
@bonelifer
bonelifer deleted the feature-checks-seed-board branch November 2, 2026 20:37
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