The supported matrix is WordPress 7.0.6 and 7.1.2 with PHP 7.4, 8.4, and 8.5. PHP 8.4 is the recommended production runtime. Node 24.18 is pinned for the current test toolchain; runtime WordPress packages compile against the wp-7.0 npm distribution tags.
Run local checks:
npm ci
composer install
npm run build
npm run lint:js
npm run lint:css
npm run lint:types
npm run test:unit
composer lint
composer phpstan
npm run env:start
npm run test:e2ePHPUnit requires the WordPress test library. Run it in the dedicated wp-env test container:
npm run env:test:start
npx wp-env run tests-cli --config .wp-env.tests.json \
--env-cwd=wp-content/plugins/wordpress-navigation-studio composer testThe E2E configuration runs Chromium, Firefox, and WebKit. WordPress integration tests use the test library exposed by wp-env. Run Plugin Check against the generated ZIP rather than only the source directory.
Build the package with php tools/build-release.php. It uses a fixed file allowlist and normalized ZIP timestamps, then writes dist/navigation-studio-1.0.0.zip. Install that exact ZIP into a clean environment for activation, deactivation/reactivation, upgrade, console, debug-log, frontend, and accessibility smoke tests.
Manual release review includes keyboard-only admin and frontend paths; NVDA/Firefox and VoiceOver/Safari semantics; RTL and 200% zoom; reduced motion; no-JavaScript links; touch drawer behavior; 0/1/100/500/1,000-node fixtures; and visual loading/empty/error/conflict states.