Update the version string in three places:
index.php—Version: X.X.Xpackage.json—"version": "X.X.X"readme.txt—Stable tag: X.X.X
Add a new entry at the top of the == Changelog == section in readme.txt:
= X.X.X =
* Description of change.
npm run format
npm run lint:phpFix any issues before proceeding.
git add .
git commit -m "Release X.X.X"
git push origin trunkPushing to trunk triggers the Release Drafter GitHub Action, which auto-drafts release notes from merged PR labels (enhancement, bug, fix).
npm run releaseThis runs three steps in sequence:
composer run build— strips dev PHP dependencies and optimizes the autoloadernpm run build— compiles production JS/TSnpm run plugin-zip— creates the distributable ZIP
The ZIP includes only the files listed in the files field of package.json: build/, index.php, readme.txt, includes/, vendor/autoload.php, and vendor/composer.
- Go to GitHub → Releases and find the draft created by Release Drafter
- Set the tag to
X.X.X(matchingreadme.txt'sStable tag) - Attach the generated ZIP as a release asset
- Publish
Upload the ZIP (or use SVN) to the WordPress.org plugin repository, updating the trunk and tags/X.X.X directories.