Proposal: Introduce Maintenance Mode For Components

This proposal aims to introduce the concept of legacy components and a process of managing them in a way that is intentional and accountable.

Once something is committed and released in WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., it comes with an implicit promise of backward compatibility for the foreseeable future. But it’s not clear what to do when a feature becomes outdated, unused, or deprioritized. These features often remain in Core instead of being removed or moved to a 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, where bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. reports and feature requests can be more appropriately handled, as was done with PressThis.

In the past, components have been reorganized or removed when no longer relevant, but removing a component is not always appropriate and there’s a missing middle ground.

Defining Maintenance Mode

Maintenance mode would be an official status for components that should continue to be supported, but are no longer actively developed. Components might qualify for this status for reasons such as:

  • Low priority
  • No Maintainer
  • Better, more modern options available
  • Being replaced in the near future

These components would:

  • Continue to receive security updates when necessary.
  • Continue to consider and evaluate all bug reports on an individual basis.
  • Stop accepting feature or enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. requests, unless they are necessary to maintain backward compatibility or prevent breakage in new WordPress or PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher versions.

Maintenance mode could be removed from components in the future if conditions change.

What does maintenance mode look like?

When in maintenance mode, components would continue to have maintainers and regular triaging should continue. They would be marked clearly in TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. and the Components page.

How would maintenance mode be declared for a component?

The process for placing a component in maintenance mode would be flexible and decided on a case by case basis. The process should be transparent and involve open discussions with the contributor community. The process could work like this:

  • A discussion is opened with (or by) current component maintainers about placing a component into maintenance mode. 
  • A call for proposal and call for feedback on Make Core is published detailing why the component(s) are being considered for maintenance mode.
  • The component is placed in maintenance mode after sign off from leadership.

While a proposal to add the maintenance mode label will usually come from maintainers, it can also be proposed by any Core contributor. Contributors can perform regular audits of all components to try and identify any that are appropriate for maintenance mode.

What are the benefits of placing components in maintenance mode?

  • Clarifies which features are actively maintained, helping contributors and developers focus their efforts where they’re most impactful.
  • Reduces triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. noise by lowering the volume of low-priority feature requests (there are currently over 8200 open tickets in Trac).
  • Prevents contributor frustration by setting clear expectations before time is spent on patches that are unlikely to be accepted.
  • Establishes precedent for responsible deprecation of features without requiring immediate removal.
  • Supports long-term maintenance by allowing legacy components to receive targeted attention without open-ended development pressure.
  • Facilitates better communication with users and extenders about Core’s direction and future support levels.

Current Maintenance Mode Candidates

Here are a few components that are possible candidates for the proposed maintenance mode state.

TinyMCE

TinyMCE no longer powers the blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. editor and only remains in Core to maintain Classic Editor support and backwards compatibility. There’s currently only 5 tickets in the component on Trac, and updating to more recent versions of the library does not have enough benefit to justify contributors’ time and effort. Its low ticketticket Created for both bug reports and feature development on the bug tracker. volume, lack of active development, and functional redundancy make it a strong candidate for maintenance mode.

Customize

The CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. served WordPress well, but has effectively been replaced by the block editor and full site editing. Sites with block themes no longer have access to the Customizer by default. Despite having 184 open tickets, development has slowed significantly with most activity focused on bug triage rather than feature enhancements.

Shortcodes

Shortcodes played a huge role in WordPress’ evolution, but today blocks offer a more modern and flexible alternative. No new features should be added to shortcodes. In fact, the APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.’s brittle nature has historically led to bugs from even minor changes (see #58333). There are currently 54 open tickets in this component (5 feature requests and 11 enhancements).

Pingbacks/Trackbacks

Pingbacks and trackbacks are a big part of blogging, so they should remain for the foreseeable future. It could be replaced by Webmentions in the future should that mature a bit. The last enhancement ticket was merged over 5 years ago now (see #36576), and there has only been one feature ticket in the history of the component (#34420).

XML-RPC

XML-RPC is essential to many external apps and services that interact with WordPress, so it can’t be deprecated. But, the spec has remained largely unchanged for over a decade. There have been no new enhancement or feature requestfeature request A feature request should generally begin the process in the ideas forum, on a mailing list, as a plugin, or brought to the attention of the core team, such as through scope meetings held for each major release. Unsolicited tickets of this variety are typically, therefore, discouraged. tickets closed as fixed since 2017 (term metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. support, see #40916) and 2012 (retrieving post terms, see #18434).

Conclusion

Labeling components as legacy and placing them in maintenance mode helps set accurate expectations, reduce unnecessary churn, and focus contributor efforts on current project priorities. A documented process also gives maintainers a framework for making intentional, accountable decisions about the level of support each component receives.

If adopted, this approach could help scale WordPress Core’s maintenance model while staying true to the project’s principles.

Props @peterwilsoncc, @priethor, @karmatosed, and @4thhubbard for peer review.

#component-maintainers, #components