Releasing Beta and RC Versions

These are the prescribed steps to take when releasing a betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. version of WordPress. As you go through this process, please add any missing information to the steps below so future contributors have an easier experience.

  • Draft the announcement post.
    • Copy a previous wordpress.org/news/ post and start editing from there (e.g., Beta 1, Beta 2, RC 1, RC 2).
    • When drafting the post, ensure you check the “Enable public preview” option in the “Status & visibility” sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. panel so you can copy and share that preview URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org with others to help review and provide feedback before publishing.
    • Ensure links, ticketticket Created for both bug reports and feature development on the bug tracker. counts, and other aspects are updated for your specific beta release.
    • Obtain reviews for accuracy from release leads and copyediting from marketing or documentation folks. Ensure these folks get @mentioned at the end of the post.
    • Note that if this Beta/RC release was originally unplanned (e.g., an additional Beta before RC, an additional RC before final release), then historically these announcement posts as “silent” in that they are not published on wordpress.org/news/ and instead on make.wordpress.org/core (e.g., 5.7 RC 3).
  • Before starting, run all unit tests locally.
    • Ensure NPM packages are updated locally to reflect the latest changes before running these tests
    • phpunit --stop-on-failure
    • phpunit --group ajax --stop-on-failure
    • phpunit -c tests/phpunit/multisite.xml --stop-on-failure
  • For Minor releases, verify that all closed tickets in the milestone have had their commits merged into the release (looking for tickets that lack fixed-major can narrow this down). Minor releases may optionally include beta releases. The decision is at the discretion of the release leadRelease Lead The community member ultimately responsible for the Release..
  • Announce in #coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. so nobody tries to commit.
    • Example (archive): @committers Please refrain from committing until we get 4.8-beta2 released.
  • Verify latest GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ Action checks are passing (i.e., all show ✅).
    • Check the latest commit on https://github.com/WordPress/wordpress-develop/actions?query=event%3Apush+branch%3Amaster
  • For Minor releases, check out the release branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch".: svn switch '^/branches/4.7' and remind people to update their current install or make a fresh install.
  • Ask a member of the Security team to run the private security unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. suite to make sure no regressions are introduced.
    • If any are found, avoid discussing the details publicly, because some sites (like wordpress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/) run trunk or beta/RCs in production. Instead, notify the Security team privately.
  • Bump version.
    • Update the $wp_version in trunk/src/wp-includes/version.php (e.g., $wp_version = ‘5.8-beta1-src’;).
    • Update the version in the package.json if it hasn’t been updated yet.
    • If the $wp_version is 4.8.1-beta1 then the version in package.json should be just 4.8.1.
    • If you are releasing an RC, then the $wp_version would be 4.8.1-RC1-src.
    • Update $wp_version to add the appropriate version identifier and remove the SVNSVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. changeset number:
    • Ensure version bump appears on https://build.trac.wordpress.org/.
  • Build the packages.
    • The release package needs to be built in Mission Control. Once it’s packaged, it needs to be tested well, including manually testing updates. (How do you do that? Checkout the docs.)
    • Enter build name?
    • Click button?
  • Test the packages.
      • Install and activate the WordPress Beta Tester pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party (select the Bleeding edge channel and then Beta/RC Only stream)
      • Use WP-CLIWP-CLI WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/ https://make.wordpress.org/cli/ to test: wp core update https://wordpress.org/wordpress-4.9-beta2.zip
      • Directly download the Beta/RC version (e.g., https://wordpress.org/wordpress-5.8-RC4.zip)
    • Note: If anyone reports files removed when updating via WP-CLI, make sure you verify that those files exist in the $_old_files variable.
    • Note: Folks testing packages using the WP-CLI may report warnings related to checksums. This is expected because checksums are not available for nightlies.
    • Ideal tests to run:
      • Test from latest in 4.0.* release series
      • Test from latest in 4.9.* release series
      • Test from latest in current major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope. series (e.g., 5.7.2 > 5.8 Beta 2)
      • Test from most recent Beta/RC release (e.g., Beta 2 > Beta 3, Beta 3 > RC 1, RC 1 > RC 2)
      • Test fresh install
      • Remove wp-config.php file and test fresh install
      • Test single site and multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site/networknetwork (versus site, blog) (both subdirectory and subdomain) installs
  • Another version bump.
    • Commit: Post WordPress 4.8 Beta 2 version bump.
  • The nightly package now needs to be rebuilt in Mission Control after the previous commit appears at https://build.trac.wordpress.org/
  • Publish the announcement post.
    • Matt can do this, or anyone with Adminadmin (and super admin) or Editor access to wordpress.org/news/.
  • Announce in #core that release is available.
    • Example: /here WordPress 5.8 Beta 1 is now available. Please help test! There’s a lot to test this release.
    • As a reminder, only tickets related to functionality added in 5.8, test changes, and documentation updates will be considered during beta this release.
  • Announce to Committers that SVN committing in #core is open.
    • For RC releases, note the dev-feedback and dev-reviewed workflow is required prior to committing, where each commit must get double-signoff.
      • Example: @committers Feel free to resume committing. Reminder that we are now in the RC period so all commits will require double-signoff using the dev-feedback and dev-reviewed TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. keywords on each ticket.
  • Write a message in the #props channel thanking and giving props to everyone who tested or otherwise helped with the beta release process
    • Example: Props to @mention, @mention2, …, @mentionN for helping get 5.8 Beta 1 released!
  • For first Beta in the release cycle:
    • Add a new Milestone to Core Trac for the next release version. For example, when releasing WordPress 5.0, add a Milestone for 5.1. You may need to ask someone with admin rights on Trac to do this.
    • A member of the Security team should email participants in our HackerOne program, encouraging them to find any new vulnerabilities before they make it into the stable release. See the Security Team handbook for details.

Last updated: