-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing and Releasing
webdesign29 edited this page Jun 13, 2026
·
1 revision
Contributions are welcome! The canonical guide is CONTRIBUTING.md in the repo; this page mirrors the essentials.
The plugin is dependency-free at runtime. For tooling:
composer install # phpcs (WordPress Coding Standards) + PHP-compat# 1. Lint every PHP file (must pass on PHP 7.4+)
find . -path ./vendor -prune -o -name '*.php' -print0 | xargs -0 -n1 php -l
# 2. Unit tests (no WordPress runtime required)
for t in tests/unit/*.php; do php "$t" || break; done
# 3. Coding standards
vendor/bin/phpcsCI runs lint + unit tests on PHP 7.4 / 8.1 / 8.3.
-
PHP 7.4 compatible. No
match, nullsafe?->,str_contains/str_starts_with, named args, constructor promotion, or enums. (php -lon 8.x won't catch 8.0-only APIs — keep it in mind.) -
Fail open. A bext call must never break a WordPress request:
is_wp_error-check and time-bound every network call. -
Escape on output, sanitize on input. Verify a nonce +
current_user_canin handlers. -
No secrets in the repo. Tokens go in settings /
wp-configconstants. - Match the surrounding style.
- WP-free unit tests live in
tests/unit/*.phpand run with plainphp(they stub the few WordPress functions they touch). Add one when you change config resolution, transport, or a pure helper. - A purge-contract integration script is in
tests/integration/.
- Bump the version in
bext-wp.php(header andBEXT_WP_VERSION) andmu-loader.php. - Add a
CHANGELOG.mdentry. - Tag
vX.Y.Zand push. - The fleet deploy (
bin/deploy-fleet.sh) reads the version from the plugin header.
Maintained with support from webdesign29 and Inklura. Want to sponsor? Use the repo's Sponsor button or open an issue.
bext-wp · GPL-2.0-or-later · Sponsored by webdesign29 & Inklura · bext.dev
Getting started
Features
Reference
Operations