Update the updater

WordPress updates for CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., plugins, and themes are based on a number of Core classes:

Alongside these main classes are several other update-related classes and functions, including those for updating translations.

Which updates are we talking about?

The ability to manually update WordPress from the adminadmin (and super admin) area, and to install and update plugins and themes, has existed since 2.3 in 2007.

Auto-update features were added in WordPress 3.7 (for minor releases), extended in 5.5 (as opt-in for plugins and themes), and 5.6 (major releases). To make the user experience of auto-updates even better, and build trust with users and extenders, it’s important that this mechanism works well and provides all the failsafe checks needed.

The WordPress Core update has proven to be generally reliable, but it doesn’t actually have many tests nor is well documented. There are also some reliability concerns around adding new files and the overall number of changed files, which is the reason WordPress currently tries to keep the number of changed files in minor releases to a minimum.

Plugins and themes updaters are older: in general, all of them can be improved.

Why now?

With the introduction of auto-updates, these processes are run even more often. So relatively small issues get triggered more often, and with that become a bigger problem. They also now more often run unattended: an auto update that breaks could lead to quite problematic results.

As one of the most widely used plugins in the WordPress ecosystem, at Yoast we have already experienced some pains related to these processes. That, combined with the fact that these processes will now trigger more often, made us decide to actively work on these issues.
We believe that other 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 and theme authors have gone through the same experiences and we hope they, and other interested people, will join us in this effort of updating the updater.

What are we working on

In January, team members at Yoast will start

  • combing through TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. to find all open tickets: start with Core, then move to Plugins and eventually Themes;
  • reviewing all the classes involved to make sure their code is efficient and if there is room for improvement.

What are the next steps

This is a big project, one that can help other thousands of companies, so I hope you will join us in the effort.

We have created a GitHubGitHub GitHub is a website that offers online implementation of git repositories that 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/ repository under Yoast’s company account. After research, since a plugin is not needed and the work is done on existing tickets in Core, GitHub is not the right place.

As soon as we will start working actively on the project, you will find in it a project board where we are documenting and managing all we are doing. Once the research part is over, and the steps to take to improve the updaters are clear, we will start weekly meetings in #core or a dedicated channel.

Timeline

  • January 2021 – February – Research and proposal phase
  • March – May – Coding and documenting

I hope you will join us!

Thanks @sergeybiryukov and @joostdevalk for the peer review.
30/11 – Updated for clarity, thanks @audrasjb and @claytoncollie for the questions and the suggestions

#updater