It was announced earlier this week that the final 7.0 release has been delayed specifically to allow more time to address testing feedback about the implementation of real-time collaboration. While the broad reasons for the delay were shared, this post will clarify what the delay means in practice (“returning to beta 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.” after entering the Release Candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). phase of a release is unprecedented), and how to handle some specific technical details. Having clear guidance helps to direct attention to the right areas and ensures that the delay is as minimal as necessary.
This post outlines the policies dictating what can move forward, and the processes that should be followed until further notice to best focus community efforts while promoting stability and the ability to remain nimble.
Committing
To help Core Core is the set of software required to run WordPress. The Core Development Team builds WordPress. committers understand what types of commits are allowed during this pause, the following policies are now (or continue to be) in place:
For non-Committer A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component. contributors, this section may help explain why Core committers make certain decisions.
Commits to trunk
To avoid the potential for merge conflicts while backporting and other complexities, trunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision. is closed to commits for the 7.1 release until further notice.
Backporting to the 7.0 Branch 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".
Backporting commits will continue to require double sign-off by two core committers. The commit dev-feedback keywords should be used to request a second committer’s review, and dev-reviewed should be added to indicate a second committer has reviewed and approved performing the merge to the 7.0 branch.
Changes Allowed
The typical rules followed during the Release Candidate phase of the release cycle will remain in effect:
- No new features or enhancements are allowed.
- Only fixes for bugs introduced during the current release cycle are allowed.
- Built/Test Tool and/or test coverage improvements are allowed at any time.
- Features can be removed if they are deemed particularly risky, unstable, or new testing data surfaces previously undiscovered issues.
Note: These restrictions also apply to the wp/7.0 branch in the Gutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc.
https://wordpress.org/gutenberg/ repository, which is used to merge changes targeted for the 7.0 release into wordpress-develop.
The primary exceptions to the rules above are any changes related to the stability of real-time collaboration (see #64696, #64904, #64890, #65008, #64622 and this board on GitHub), and any improvements necessary to refine the experience of the new Connectors admin (and super admin) screen (see #64960 and #64789).
Pre-release Versions During Delay
To allow everyone a chance to regroup and properly identify the outstanding issues and discuss how best to address them, additional pre-release versions of WordPress 7.0 will be paused through April 17th.
Enough of the surrounding context about the work remaining will be better understood by then. The release squad and project leadership can then develop a new, well informed schedule for the 7.0 final stretch, which will be published no later than April 22nd.
Testing During This Pause
Following standard procedures during a major version release cycle, the nightly releases are now being generated from the 7.0 branch. During this pause, it is recommended that you perform testing using the latest nighty build.
The easiest way to accomplish this is by installing and activating the WordPress Beta Tester plugin 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. on a test site and selecting the “Bleeding edge The latest revision of the software, generally in development and often unstable. Also known as trunk.” channel and “Nightlies” stream.
Version Numbering
While the nature of the pause suggests that the release is returning to the beta phase, truly returning to beta releases from a version string perspective is challenging due to a number of technical limitations. Mainly, version_compare() will not recognize 7.0-beta7 as newer than 7.0-RC2.
After considering a number of ways to approach the situation and discussing with contributors, I’ve concluded that the best option seems to be continuing releases in the expected numerical order (RCX+1). This is a bit unorthodox because RC3 and likely RC4 will be represented as Release Candidates by version string despite being considered a beta release in practice. But it’s the most technically sound option to ensure minimal confusion around which version to test, and that sites continue to update as expected when future versions are published.
Each release post must clearly mention this nuance with clear testing instructions and guidance to avoid confusion.
Given that new releases are paused until April 17th, there is a bit more time to consider other options if new data or rationale is presented before then.
String Freeze
To avoid creating new work for Polyglots contributors, new strings should be avoided as much as possible. Exceptions can be made for critical strings (the About page or real-time collaboration, for example) provided they are properly tagged with the i18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.-change keyword in Trac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. and the Polyglot team is made aware. Existing strings can be removed and/or duplicated as necessary.
Feedback
If a specific and compelling scenario comes up that makes clear adjustments to the above policies are required, please note them in the comments below for discussion and consideration. This post will be updated as changes to these policies are deemed necessary with each change clearly noted at the top. Additionally, changes will be announced in #core on Slack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/ and noted in each next Dev Chat agenda.
Props @peterwilsoncc, @matveb, @annezazu, and @jorbin for peer review.
You must be logged in to post a comment.