How to release Codeideal Open Fields to users.
pnpm releaseThis opens an interactive prompt where you choose:
- WordPress.org (SVN → trunk + tagged version)
- GitHub (git tag → Actions → Release page)
- Both
That's it. The CLI handles building, versioning, zipping, and deploying.
pnpm release:svn # WordPress.org only
pnpm release:github # GitHub only
pnpm release:all # Both targets
pnpm release:dry # Dry-run (build + preview, no commits)pnpm version patch # 0.3.0 → 0.3.1 (bug fixes)
pnpm version minor # 0.3.0 → 0.4.0 (new features)
pnpm version major # 0.3.0 → 1.0.0 (breaking changes)This updates package.json automatically and creates a git commit + tag.
git push origin mainpnpm releaseSelect your targets and confirm. Done.
- Syncs version from
package.json→codeideal-open-fields.php - Builds admin React/TypeScript app via Vite
- Creates distributable ZIP in
dist/
- Updates local SVN working copy (
.svn-repo/) - Syncs all plugin files to
trunk/ - Creates a version tag via
svn cp trunk tags/X.Y.Z - Commits everything to
https://plugins.svn.wordpress.org/codeideal-open-fields/ - Update appears on wordpress.org within ~15 minutes
- Creates an annotated git tag
vX.Y.Z - Pushes tag to origin
- GitHub Actions (
.github/workflows/release.yml) builds and creates a Release with the ZIP attached
| Item | Location |
|---|---|
| SVN credentials | .env (SVN_PASSWORD=...) |
| SVN username | shayancode |
| SVN working copy | .svn-repo/ (git-ignored) |
| SVN repository | https://plugins.svn.wordpress.org/codeideal-open-fields/ |
| Plugin version source | package.json → version |
| Release script | scripts/release.ts |
| Build script | scripts/build.sh |
| GitHub Actions | .github/workflows/release.yml |
- Check your SVN password at https://profiles.wordpress.org/me/profile/edit/group/3/?screen=svn-password
- Ensure
.envhas the correctSVN_PASSWORD - Username is
shayancode(case-sensitive)
- WordPress.org rebuilds ZIPs after each SVN commit — can take up to 15 minutes
- Check https://wordpress.org/plugins/codeideal-open-fields/ after waiting
- Check https://github.com/novincode/openfields/actions
- Common issues: build errors, type errors, lint errors
- Test locally first:
pnpm release:dry
# Delete the git tag
git tag -d v0.3.1
git push origin --delete v0.3.1
# Fix the issue, then re-release
pnpm release-
git pull origin main— get latest - Review your changes
-
pnpm release:dry— dry-run to verify everything builds -
pnpm version patch(or minor/major) — bump version -
pnpm release— deploy - Verify on WordPress.org
- Verify on GitHub Releases