Modernize the frontend with TypeScript and streamline release packaging - #165
Merged
Conversation
…nto update/plugin-maintanence-part-4
alecgeatches
approved these changes
Sep 8, 2026
alecgeatches
left a comment
Contributor
There was a problem hiding this comment.
Looking good! Tested locally with no issues.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Modernizes the plugin frontend and build tooling while preserving existing governance rule behaviour.
What changed
useBlockEditingModeAPI available in supported WordPress versions.@wordpress/scriptsand switched REST requests to@wordpress/api-fetch.@wordpress/compose,babel-jest, andwebpack.wp-scripts build, producing optimized bundles without source maps.wp-scripts plugin-zipwith an explicitvip-governance/root folder.Behaviour and compatibility
Governance rule decisions are intended to remain unchanged:
allowedBlocksbeneath wildcard parent settings remains unsupported.One observable behaviour has been corrected: parent arrays passed to the public insertion and editing filters are now consistently nearest-parent-first, matching the documented contract. Trunk could expose root-first order when nested settings were present because the shared array was mutated during lookup. Consumers relying on that accidental ordering may observe this correction.
The settings page has deliberate visual and accessibility improvements. Release ZIPs are also smaller because development-only files, TypeScript source, tests, and lockfiles are no longer included.
Follow-up opportunity
A separate issue should consider replacing the legacy block-name matching behavior with exact rule matching and adding intentional wildcard-parent support for nested
allowedBlocks. That change would explicitly drop compatibility with the current legacy matching behaviour and should be handled separately.Steps to Test
Run
npm ci.Run
composer install.Run
npm run lint.Run
npm test.Start the isolated WordPress environment:
Run:
npm run test:e2e
Open the VIP Block Governance settings page and verify:
Open the post editor and verify:
Run npm run release:zip, unzip vip-governance.zip, and verify:
Screenshots