-
Notifications
You must be signed in to change notification settings - Fork 8
Release Guide
This plugin is released to two channels:
- WordPress.org — the public plugin repository (SVN).
-
GitHub Releases — a tagged release with the built
.zipattached.
Both are driven by Travis CI when you push a git tag. There are no GitHub Actions workflows in this repo — Travis is the only CI/release engine.
A third, manual step finalizes delivery on the BoldGrid Central update channel (separate from WordPress.org), via an internal management portal owned by the BoldGrid/release team.
# 1. Make sure the version bump + changelog are merged to master and master is green.
# 2. Tag the release commit with the BARE version number (no "v" prefix):
git tag -a 1.27.11 -m "Release 1.27.11"
git push origin 1.27.11
# 3. Watch the Travis build for the tag.
# 4. Verify on WordPress.org and edit the GitHub release notes.
# 5. Finalize on the BoldGrid Central portal (release team).The tag name must equal the version in readme.txt → Stable tag: and the
plugin header Version: (e.g. 1.27.11). WordPress.org serves whatever
Stable tag: points to.
-
Travis CI is active for
BoldGrid/post-and-page-builder. - These secrets exist as encrypted Travis environment variables:
-
WP_USERNAME/WP_PASSWORD— WordPress.org SVN credentials. -
GITHUB_TOKEN— used to create the GitHub release and upload the zip. -
WP_SVN_REPO— the WordPress.org SVN URL for this plugin.
-
If any of these are rotated/expired, the deploy fails (often silently from the author's point of view) — always confirm the result on WordPress.org.
All of these must agree on the new X.Y.Z:
| File | What to change |
|---|---|
post-and-page-builder.php |
Version: header (this also feeds BOLDGRID_EDITOR_VERSION) |
readme.txt |
Stable tag: |
readme.txt |
Add a new = X.Y.Z = entry under == Changelog ==
|
package.json |
version — cosmetic only (stripped before SVN), but keep it in sync |
Notes:
- WordPress.org determines the served version from
readme.txt→Stable tag:. The headerVersion:should match it. - You can ship multiple changelog entries under one tag. If 1.27.10 and 1.27.11 were both merged but only 1.27.11 is tagged, both changelog entries ship and the served version is 1.27.11.
Merge the bump + changelog to master before tagging.
git tag -a X.Y.Z -m "Release X.Y.Z"
git push origin X.Y.Z-
Bare semver, no
vprefix — the deploy script uses the tag name verbatim as the SVN tag directory name (tags/X.Y.Z). Existing tags:1.27.9,1.27.10, … - Pre-release / RC tags have been used too (e.g.
1.27.1-rc.1). - Pushing the tag is what triggers everything. It starts a live public release.
From .travis.yml, the deploy: block runs only on tag builds and only on
PHP 7.4. It has two steps:
-
provider: script→ WordPress.org SVN push. Runs@boldgrid/wordpress-tag-sync/release.sh, which:- derives
VERSIONfrom the git tag (git describe --exact-match --tags), -
svn cp trunk → tags/VERSION, then replaces it with the current repo files, - strips dev files (see below),
-
svn commits to WordPress.org usingWP_USERNAME/WP_PASSWORD, - builds
post-and-page-builder.zip.
- derives
-
provider: releases→ GitHub Release. Uploadspost-and-page-builder.zipto the GitHub release for the tag, usingGITHUB_TOKEN.
Files stripped before the SVN commit (not shipped to WordPress.org):
node_modules, .git, .github, tests, bin, tools, bower_components,
.travis.yml, release.sh, gulpfile.js, webpack.config.js,
karma.config.js, yarn.lock, package.json, composer.json,
composer.lock, phpunit.xml, README.md, CHANGELOG.txt, CONTRIBUTING.md,
and various dotfiles. (Note: this strip list lives in the
@boldgrid/wordpress-tag-sync package, not in this repo.)
-
WordPress.org SVN tag exists:
https://plugins.svn.wordpress.org/post-and-page-builder/tags/X.Y.Z/ -
Plugin page shows the new version:
https://wordpress.org/plugins/post-and-page-builder/(the public page can take a few minutes to update). -
GitHub release created with
post-and-page-builder.zipattached:https://github.com/BoldGrid/post-and-page-builder/releases/tag/X.Y.Z— edit/clean up the release notes here (the body is not auto-generated).
The plugin is also delivered to Connect-key users through the BoldGrid Central update channel, which is separate from WordPress.org. Finalizing that release is a manual step in an internal management portal owned by the BoldGrid/release team.
TODO: document the exact portal URL and steps, and who has access.
For vulnerability fixes, keep the tag message, GitHub release notes, and
readme.txt changelog vague — e.g. Security Update: Patched a stored XSS in ….
Full technical detail (finding IDs, exploit specifics) goes in the ENG/Jira
ticket, not in any public-facing text.
| Symptom | Likely cause |
|---|---|
| Deploy step never ran | Tag build wasn't on PHP 7.4, or the ref wasn't a tag (on: tags: true). |
| SVN commit failed / auth error |
WP_USERNAME / WP_PASSWORD invalid or rotated. |
| No GitHub release / zip |
GITHUB_TOKEN invalid or missing scopes. |
| WordPress.org still shows old version |
readme.txt → Stable tag: doesn't match the pushed tag, or the tags/X.Y.Z dir wasn't created. |
| Wrong files shipped | Strip list is in @boldgrid/wordpress-tag-sync/release.sh, not this repo. |