<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[BuddyPress][13785] trunk/docs/contributor: Documentation: migrate & update the Prelaunch checklist Codex page</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="http://buddypress.trac.wordpress.org/changeset/13785">13785</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"http://buddypress.trac.wordpress.org/changeset/13785","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>imath</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2024-04-06 07:47:19 +0000 (Sat, 06 Apr 2024)</dd>
</dl>
<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Documentation: migrate & update the Prelaunch checklist Codex page
- Rename the doc to "Building a new BuddyPress release"
- Adds imath to the people you can reach in case of troubles
- Adds check/control tasks to make sure deployment went fine
- Update the tasks so that they use our current version numbering principles
Closes https://github.com/buddypress/buddypress/pull/261</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdocscontributormanifestjson">trunk/docs/contributor/manifest.json</a></li>
<li><a href="#trunkdocscontributorprojectreleaseREADMEmd">trunk/docs/contributor/project/release/README.md</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkdocscontributorprojectreleasebuildchecklistmd">trunk/docs/contributor/project/release/build-checklist.md</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdocscontributormanifestjson"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/docs/contributor/manifest.json</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/docs/contributor/manifest.json 2024-04-05 18:59:43 UTC (rev 13784)
+++ trunk/docs/contributor/manifest.json 2024-04-06 07:47:19 UTC (rev 13785)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -36,6 +36,12 @@
</span><span class="cx" style="display: block; padding: 0 10px"> "parent": null
</span><span class="cx" style="display: block; padding: 0 10px"> },
</span><span class="cx" style="display: block; padding: 0 10px"> {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ "title": "Building a new BuddyPress release",
+ "slug": "about-release-builds",
+ "markdown_source": "../contributor/project/release/build-checklist.md",
+ "parent": null
+ },
+ {
</ins><span class="cx" style="display: block; padding: 0 10px"> "title": "Contribute to documentation",
</span><span class="cx" style="display: block; padding: 0 10px"> "slug": "contribute-to-documentation",
</span><span class="cx" style="display: block; padding: 0 10px"> "markdown_source": "../contributor/documentation/README.md",
</span></span></pre></div>
<a id="trunkdocscontributorprojectreleaseREADMEmd"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/docs/contributor/project/release/README.md</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/docs/contributor/project/release/README.md 2024-04-05 18:59:43 UTC (rev 13784)
+++ trunk/docs/contributor/project/release/README.md 2024-04-06 07:47:19 UTC (rev 13785)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,4 +1,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> # How a release cycle works?
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> - [Release Leads & Deputies](./leads.md)
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-- Prelaunch checklist
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+- [Building a new BuddyPress release](./build-checklist.md)
</ins></span></pre></div>
<a id="trunkdocscontributorprojectreleasebuildchecklistmd"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: trunk/docs/contributor/project/release/build-checklist.md</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/docs/contributor/project/release/build-checklist.md (rev 0)
+++ trunk/docs/contributor/project/release/build-checklist.md 2024-04-06 07:47:19 UTC (rev 13785)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,159 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+# Building a new BuddyPress release
+
+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 [@JJJ](https://profiles.wordpress.org/johnjamesjacoby), [@boone](https://profiles.wordpress.org/boonebgorges/), [@djpaul](https://profiles.wordpress.org/djpaul/) or [@imath](https://profiles.wordpress.org/imath/) on [Slack](https://wordpress.slack.com/messages/buddypress). They 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.)
+
+## 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.
+
+> [!IMPORTANT]
+> 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…
+
+## Preliminary tasks
+
+> [!NOTE]
+> These tasks are only required for minor/major releases.
+
+1. Create a `Releases` child page on codex called "Version X.Y.Z" so that the permalink looks like `https://codex.buddypress.org/releases/version-12-4-0/`
+2. Review **Noteworthy Contributors** and release contributor credits (props). Change as needed.
+3. If it's a major release, don't forget to find a nice Pizza place to name the release.
+4. Draft an announcement post on [BuddyPress.org](https://buddypress.org) like [this one](https://buddypress.org/2023/12/buddypress-12-0-0-nonno/).
+5. If this is a major release, check [Trac](https://buddypress.trac.wordpress.org/roadmap) 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]`)
+
+> [!IMPORTANT]
+> For major releases (eg: 12.0.0) or pre-releases (eg: 12.0.0-beta1 or 12.0.0-RC2), switch to: `/trunk/`.
+
+```bash
+svn switch https://buddypress.svn.wordpress.org/trunk/
+```
+
+> [!IMPORTANT]
+> For minor releases (eg: 12.1.0), switch to relative branch: `branches/12.0/`
+
+```bash
+svn switch https://buddypress.svn.wordpress.org/branches/12.0/
+```
+
+1. Change version in bp-loader.php (plugin header)
+2. Change version in src/bp-loader.php (plugin header)
+3. Change $this->version (setup_globals()) in class-buddypress.php
+4. Change stable-tag readme.txt (major and minor releases)
+6. Change version in package.json
+7. Use the latest version of npm and: npm install and then npm shrinkwrap
+
+> [!IMPORTANT]
+> The following two steps are only required when releasing a major or minor version.
+
+1. Change tested-up-to readme.txt
+2. Add “Upgrade Notice” & “Changelog” entries for this version in readme.txt (major and minor releases)
+
+**Commit changes!**
+
+```bash
+svn ci -m 'X.Y.Z version bumps'
+```
+
+## Tagging/Branching (in `[dev]`)
+
+> [!CAUTION]
+> 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 (12.0.0), branch from trunk, then tag from new branch.
+
+```bash
+svn cp https://buddypress.svn.wordpress.org/trunk/ https://buddypress.svn.wordpress.org/branches/12.0
+svn cp https://buddypress.svn.wordpress.org/branches/12.0 https://buddypress.svn.wordpress.org/tags/12.0.0
+```
+
+### For minor releases (12.1.0), tag from relevant branch.
+
+```bash
+svn cp https://buddypress.svn.wordpress.org/branches/12.0 https://buddypress.svn.wordpress.org/tags/12.1.0
+```
+
+### For Beta and Release Candidate releases (12.0.0-beta1), create tag from trunk.
+
+```bash
+svn cp https://buddypress.svn.wordpress.org/trunk https://buddypress.svn.wordpress.org/tags/12.0.0-beta1
+```
+
+## Deploying to `[wporg]`
+
+You’ll probably want to checkout the entire BuddyPress repository from WordPress.org into a local directory. This way you can navigate the entire trunk/branches/tags structure, and more easily make changes as necessary.
+
+```bash
+mkdir buddypress-wporg-repo
+cd buddypress-wporg-repo
+svn co https://plugins.svn.wordpress.org/buddypress/ . --ignore-externals
+```
+
+Now you can export the development version of BuddyPress you intend to deploy to users:
+
+```bash
+mkdir buddypress-to-deploy
+cd buddypress-to-deploy
+svn co https://buddypress.svn.wordpress.org/tags/12.0.0/ . --force --ignore-externals.
+```
+
+Use the latest version of npm and run: `npm install` and then `composer install && grunt build`. (This part can take quite a long time 🧘)
+
+> [!IMPORTANT]
+> If it's a major or minor release: control everything went fine.
+
++ Copy the content of the `buddypress-to-deploy/build` folder into a new `buddypress` folder.
++ Zip it.
++ Test on a WordPress fresh install there are no problems installing this new version of BuddyPress.
++ Test on a WordPress install already having a previous version of BuddyPress installed and use the WordPress Plugin's Add new screen to check there are no problems upgrading to this new version of BuddyPress.
+
+> [!TIP]
+> If you organized a release party on BuddyPress Slack's channel, don't hesitate to ask other contributors to help you test this new version.
+
++ If lights are green, overwrite the contents of the trunk directory with the contents of `build` 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 to`svn add` or `svn delete` files.
++ Create an svn tag from `trunk` using `svn cp trunk tags/12.0.0`.
++ If it’s **not a beta nor 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](https://meta.trac.wordpress.org/ticket/4752#comment:1).
++ Commit & 🤞!
+
+```bash
+svn ci -m 'Update trunk with X.Y.Z code & create X.Y.Z tag from trunk'
+```
+
+> [!IMPORTANT]
+> If it's a major or minor release: Control everything went fine.
+
++ Go to [BuddyPress WP Plugin directory page](https://wordpress.org/plugins/buddypress/)
++ You may need to wait a few minutes, but you should see the main "Download" button of this page is now set to the new version you deployed and the `Version:` information into the right sidebar should be set to your new stable tag.
++ Download the Zip file and check every BuddyPress folders are included.
+
+> [!TIP]
+> Using a tool like [DiffMerge](https://sourcegear.com/diffmerge/) can save you some time when checking the content of the downloaded Zip file is the same than your `buddypress-to-deploy/build` folder.
+
+## Announcements
+
+1. Publish the announcement post on [BuddyPress.org](https://buddypress.org)
+2. Open a new support "super sticky" topic in [buddypress.org/support](https://buddypress.org/support/) to share the great news with the community and let people eventually ask for support from there.
+3. Write a post on the [BP Team's blog](https://bpdevel.wordpress.com) to share the news with our subscribers.
+
+## Trac cleanup
+
+- If any tickets remain in milestone, close them or reassign them to a future milestone.
+- Close milestone.
+- From Trac Admin, ensure that milestone exists for next major and minor releases.
+- From Trac Admin, create a Version for the completed release.
+
+## Version Bumps (in `[dev]`)
+
+- If it's a major x.0.0 release, bump trunk version numbers to alpha in bp-loader.php (Y.0.0-alpha).
+- Bump relevant branch version numbers to alpha in bp-loader.php (x.1.0-alpha).
+- If it's a major or minor release, update `[dev]` trunk's `readme.txt` stable tag and Upgrade/Changelog informations using the `[wporg]` trunk's ones.
+
+🏁 Release built! Great job 👏
</ins></span></pre>
</div>
</div>
</body>
</html>