Prelaunch Checklist
We are currently working on a documentation reboot, here’s the new home of the best accurate docs (WIP). You’re very welcome to contribute to it.
Releasing BuddyPress to the world is a big deal, and takes quite a few manual steps to ensure safe & comfortable updates & upgrades are had by all. Below are the steps release leads go through with each & every release.
Note: These steps vary slightly depending on major/minor/urgency of the deployment to WordPress.org. For questions, or if something is not clear, please ping @johnjamesjacoby, @boone, or @djpaul, who are mad enough to comprehend how & why all this works the way it does. (We keep planning to automate this, but until then, please enjoy this extremely long and intimidating list of responsibilities.)
Updated documentation for following sections is available here.
Prologue
There are two code repositories, and you’ll be tasked with compiling the BuddyPress codebase from the development repo to the deployment repo. They are separate because BuddyPress is deployed to almost all end-users from the public WordPress.org plugin repository in a way that requires some development assets to be pre-compiled (it’s not a literal 1-to-1 copy) and because BuddyPress is lucky enough to have its own Trac instance on WordPress.org.
Key
We’ll refer to these two repositories like this for the duration of these steps:
[dev]
= buddypress.svn.wordpress.org[wporg]
= plugins.svn.wordpress.org/buddypress/
Now that you’re familiar, sit back, relax, put on your headgear, and get ready for a trip to the atmosphere…
Pre-Release Codex, Trac, & Publicity
For minor/major full releases only.
- Create release version page on codex (
https://codex.buddypress.org/releases/version-1-5-5/
) - Create version page to codex Releases page (
https://codex.buddypress.org/releases/
). - Review recent rockstars and release credits (props). Change as needed.
- Updates to bp-about page.
- Draft blog post.
- If this is a major release, check to see whether there are tickets closed against a minor release that will not happen due to the major release. (For example, 3.3.0 was subsumed into 4.0.0.) If so, reassign those tickets to the major release milestone, and delete the unused milestone.
Version Bumps (in dev)
- For major releases (2.7.0), switch to:
/trunk/
.svn switch https://buddypress.svn.wordpress.org/trunk/
- For minor releases (2.7.1), switch to relative branch:
branches/2.7/
svn switch https://buddypress.svn.wordpress.org/branches/2.7/
- For Beta and Release Candidate releases (2.7.1-beta1), switch to:
/trunk/
.svn switch https://buddypress.svn.wordpress.org/trunk/
- Change version in
bp-loader.php
(plugin header) - Change version in
src/bp-loader.php
(plugin header) - Change
$this->version
(setup_globals()) in class-buddypress.php - Change stable-tag
readme.txt
(major and minor releases) - Change tested-up-to
readme.txt
(major and minor releases) - Change version in
package.json
- Use the latest version of npm and:
npm install
and thennpm shrinkwrap
- Add “Upgrade Notice” & “Changelog” entries for this version in
readme.txt
(major and minor releases) - Commit changes
Tagging/Branching (in dev)
N.B. Once created, a tag cannot be removed or edited nor trunk merged to it so please ensure all necessary updates to trunk are committed before creating the tag copy from it.
- For major releases (2.7.0), branch from trunk, then tag from new branch.
svn cp https://buddypress.svn.wordpress.org/trunk/ https://buddypress.svn.wordpress.org/branches/2.7
svn cp https://buddypress.svn.wordpress.org/branches/2.7 https://buddypress.svn.wordpress.org/tags/2.7.0 - For minor releases (2.7.1), tag from relevant branch.
svn cp https://buddypress.svn.wordpress.org/branches/2.7 https://buddypress.svn.wordpress.org/tags/2.7.0
- For Beta and Release Candidate releases (2.7.0-beta1), create tag from trunk.
svn cp https://buddypress.svn.wordpress.org/trunk https://buddypress.svn.wordpress.org/tags/2.7.0-beta1
Deploying to [wporg]
You’ll probably want to checkout the entire BuddyPress repository from WordPress.org. This way you can navigate the entire trunk/branches/tags
structure, and more easily make changes as necessary.
svn co https://plugins.svn.wordpress.org/buddypress/
Omit externals – that will save you lots of time. Checkout into a temporary directory…
- Export the development version of BuddyPress you intend to deploy to users:
svn co https://buddypress.svn.wordpress.org/tags/2.7.1/ . --force --ignore-externals
. - Use the latest version of npm and run:
npm install
and thencomposer install && grunt build
. (You may need to globally update npm, or other such fun stuff. Your mileage may vary.) - Overwrite the contents of the
trunk
directory with the contents ofbuild
in the [wporg] checkout. - If it’s a beta or a release candidate, make sure the
Stable tag
in both trunk and the newly created tag are the same and are the one of current stable version of BuddyPress. - Run
svn stat
to check if you need tosvn add
orsvn delete
files - Create an svn tag from trunk using
svn cp trunk tags/2.7.1
. - If it’s not a beta or a release candidate, make sure the
Stable tag
in both trunk and the newly created tag are the same and are the one of the new version of BuddyPress. This is needed to make sure GlotPress will successfully update Translation strings. - Commit & cross fingers!
- Verify the zip file for the tag, which will be at a URL of the format https://downloads.wordpress.org/plugins/buddypress.4.0.0.zip
- Ask Paul Gibbs to update https://github.com/buddypress/BuddyPress-build (via git-svn he has locally).
- Ask Boone Gorges to go to https://packagist.org/packages/buddypress/buddypress and click “Update”.
Trac cleanup
- If any tickets remain in milestone, close them or reassign them to a future milestone.
- Close milestone.
- Ensure that milestone exists for next major and minor releases.
- Create a Version for the completed release.
Announcements
- Publish blog post on buddypress.org
- Update version number in the Downloads page on the buddypress.org.
- Write a blog post on bpdevel.wordpress.com
- Forum announcement in buddypress.org/support
- Send tweets from the BP twitter accounts.
Version Bumps (in dev)
- If a major x.y release, bump trunk version numbers to alpha in bp-loader.php (2.1-alpha).
- Bump relevant branch version numbers to alpha in bp-loader.php (2.1-alpha).
- If a major x.y release, sync [dev] trunk and [wporg] trunk.
GlotPress Translation Strings
- Development strings are here: https://translate.wordpress.org/projects/wp-plugins/buddypress/dev
- The source of the
buddypress.pot
is: https://plugins.svn.wordpress.org/buddypress/trunk/buddypress.pot - Regular updates by running:
grunt release
and pushing to https://plugins.svn.wordpress.org/browser/buddypress/trunk/ will make #Polyglots translators happy - This also allows for relatively easy “string freezes” as new releases near