Added
- Added Rector (
rector/rector^2.4.5) withrector.phpconfig targeting PHP 8.4, Code Quality, Dead Code, Type Declaration, and Early Return rule sets. - Added PHPStan deprecation rules (
phpstan/phpstan-deprecation-rules^2.0.4) to the PHPStan config. - Added
roave/security-advisoriesto block installing dependencies with known vulnerabilities. - Added new composer scripts:
test:rector,fix:standards(PHPCBF), andfix:rector.composer testnow also runs Rector in dry-run mode. - Added
Overrideattribute on overridden methods inEnqueueAdminandEnqueueBlocks. - Added
declare(strict_types=1);toindex.php. - Added
use-sync-external-storedependency.
Changed
- Updated minimum PHP requirement from 8.3 to 8.4.
phpcs.xml.distand composertest:standardsare now pinned to8.4-. - Updated
infinum/eightshift-libsfrom ^11.0.3 to ^12.3.4. - Updated
@eightshift/frontend-libs-tailwindfrom ^2.2.0 to ^3.2.0. - Updated
@eightshift/ui-componentsfrom ^6.0.4 to ^7.3.0. - Updated
infinum/eightshift-coding-standardsfrom ^3.0.0 to ^4.0.2. - Updated
php-stubs/wordpress-stubsfrom 6.8.3 to 6.9.4. - Updated
tailwindcssand@tailwindcss/postcssto ^4.3.0. - Updated
dealerdirect/phpcodesniffer-composer-installerpinned to 1.2.1. - Updated hook registration syntax from array callables (
[$this, 'method']) to first-class callable syntax ($this->method(...)) inBlocks,EnqueueAdmin,EnqueueBlocks, andMain. - Updated object instantiation in
functions.phpto use the PHP 8.4 syntax without parentheses:new Main()->register()instead of(new Main())->register(). - Updated
lintnpm script to runlintStyle && lintJsdirectly.lint-stagednow runs only on the pre-commit hook. - Updated PHPStan config: indentation switched to tabs, paths now scan from project root with
excludePaths, and added WordPress stubs bootstrap. - Updated
.prettierrcprintWidthfrom 120 to 300. - Updated
phpcs.xml.distminimum supported WordPress version to 8.4.
Removed
- Removed
preprocess-tailwind.jsand the customesTwResponsiveCompilerwebpack plugin. Responsive Tailwind class generation is now handled internally by@eightshift/frontend-libs-tailwind. - Removed
registerVariationsimport and the commented-out variations registration fromapplication-blocks-editor.js. - Removed
Generic.Files.LineLengthrule override fromphpcs.xml.dist.
Migration guide
Upgrading from 13.x to 14.0.0 is a major release with breaking changes. Follow these steps:
1. Update PHP to 8.4+
This release requires PHP 8.4. Confirm your server, local environment, and CI runners are on 8.4 before upgrading.
2. Update dependencies
composer update
bun installThis pulls in infinum/eightshift-libs ^12.3.4, @eightshift/frontend-libs-tailwind ^3.2.0, @eightshift/ui-components ^7.3.0, and the new dev tooling (Rector, PHPStan deprecation rules, security advisories).
3. Remove the Tailwind preprocess script
If your project has a custom preprocess-tailwind.js and the esTwResponsiveCompiler plugin wired into webpack.config.mjs, remove them. Responsive class generation is now built into @eightshift/frontend-libs-tailwind. Reference the new webpack.config.mjs in this repo for the minimal config.
4. Rebuild assets
bun run buildThe new Tailwind pipeline regenerates responsive classes during the standard build — no extra step required.
5. Run Rector on your code (optional but recommended)
composer fix:rector will automatically migrate your codebase to PHP 8.4 idioms: first-class callable syntax for hooks, removal of redundant docblocks where types are explicit, and other dead-code/type-declaration improvements. Always review the diff before committing.
6. Re-run linters
composer test
bun run lintcomposer test now runs Rector (dry-run), PHPCS, and PHPStan. Fix any reported issues before deploying.
7. Watch for deprecations
PHPStan now reports deprecated WordPress APIs via phpstan-deprecation-rules. Resolve any deprecation warnings before merging.