[Request for feedback] Updater Proof of Concept

Over the past month, @aristath and @sergeybiryukov have been working on a proof of concept to solve the two first outcomes highlighted in the Updater Initiative scope post.

They drew inspiration from the https://wordpress.org/plugins/rollback-update-failure/ 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 tried to address a few tickets.

They created a proof of concept that can be found in a draft PR on https://github.com/WordPress/wordpress-develop/pull/1492/files and does the following:

  • Add new arguments to hook_extra passed by plugin and theme updates to ensure we can rollback to the correct version.
  • After a plugin/theme is successfully downloaded and extracted, the old plugin/theme folder is moved to wp-content/upgrade/rollback/plugins/PLUGIN or wp-content/upgrade/themes/THEME wp-content/upgrade/rollback/themes/THEME (thanks Paul Bigai for catching that)
  • If the plugin/theme was successfully installed, the backup of the previous version we kept in wp-content/upgrade/rollback/ is deleted.
  • If the plugin/theme was not successfully installed, then we cleanup any remnants of files in wp-content/plugins/PLUGIN (or the corresponding folder for themes), and then we move the backup we kept in the rollbacks folder back to its original location.
  • Adds info in the site-health screen, to make sure the rollback folder is writable (or can be created if it doesn’t exist)

That is the basic concept. The team ran some tests, helped by @peona as well and it seems to be working.

The main difference with the rollback-update-failure plugin is that this solution moves the plugin/theme folders instead of zipping/unzipping them. This change should help to make the implementation a bit lighter/safer on shared hosts with limited resources.

Before moving forward, I would like to ask the Upgrade/Install Maintainers to have a look at this and discuss together, in the comments of this post, if you agree with this change, if it works, etc…

I am not setting a deadline for the comments, but ideally, I would like to be able to write a merge proposal for 5.9 so I will review the post in mid-JulyAugust (thanks @meher for pointing out that we are at the end of July already 😂) and nudge a bit more 😉

Thank you all for your help and feedback!

Thanks @ipstenu for the peer review

#updater

Upgrade/Install component meeting agenda for June 8th, 2021

The next meeting is scheduled on Tuesday, June 8th, 2021, at 17:00 UTC and will take place on #core-auto-updates SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel with the following agenda:

  • Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. of the tickets in the spreadsheet (they all refer to Outcome 1 of the Updater initiative)
  • Status update on the rollback for failed plugin/theme updates
  • Open floor/tickets awaiting review

Got something to propose for the agenda? Please leave a comment below.

#core-auto-updates, #updater, #upgrade-install

Upgrade/Install component meeting notes from June 1st, 2021

On Tuesday June 1, I did a scrub in the #core-auto-updates SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel about tickets related to Outcome 1 of the Updaters initiative, “Make sure the zips upload and unpacking are safe”. You can read the monologue on Slack 🙂

  • #35217, #36373 – Closed since they contradict the best practices laid out in the plugin handbook.
  • #33571 – Asked for more information to confirm that the issue persists
  • #34676 – I will test it and if it needs a refresh I will leave a comment on it
  • #38084 – Pinged @desrosj for review since there is a patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. uploaded
  • #44118 – Patch has been refreshed by @pbiron recently, added needs-testing keyword
  • #50849 – Pinged @desrosj and @hellofromtonya for a status update.
  • #51823 – Asked the reporter if more information can be provided since the issue can not be reproduced

See you next week!

#core-auto-updates, #updater, #upgrade-install

Upgrade/Install component meeting agenda for June 1st, 2021

The next meeting is scheduled on Tuesday, June 1st, 2021, at 17:00 UTC and will take place on #core-auto-updates SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel with the following agenda:

  • Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. of the tickets in the spreadsheet (they all refer to Outcome 1 of the Updater initiative)
  • Open floor/tickets awaiting review

Got something to propose for the agenda? Please leave a comment below.

#core-auto-updates, #updater, #upgrade-install

Upgrade/Install component meeting notes from May 18th, 2021

On Tuesday May 18, the component held a meeting in the #core-auto-updates SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel. You can read the conversation in Slack.

At this time, the component is tackling two main topics

  • Updaters
  • Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. of the component

Yesterday @afragen, @poena, @francina, and @pbiron worked/discussed the following tickets:

  • #14781 – The ticketticket Created for both bug reports and feature development on the bug tracker. was discussed also during the previous chat. It was decided to close it and follow the best practices laid out in the plugin handbook.
  • #20944 – The ticket was closed. The maintainers don’t see an elegant way to automate this action at this time. The solution is to re-activate the 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 from the CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress. or via FTPFTP FTP is an acronym for File Transfer Protocol which is a way of moving computer files from one computer to another via the Internet. You can use software, known as a FTP client, to upload files to a server for a WordPress website. https://codex.wordpress.org/FTP_Clients..
  • #17301 – A method or instructions on how to test would be good. Added a note asking for testing info in the ticket.
  • #51823 and #51857 – The issue in the first ticket can not be reproduced or addressed without more details. @francina will investigate with @sergeybiryukov since the ticket mentions the Yoast plugin. As for the second ticket, @afragen pointed out that there were issues in the copying of the downloaded plugin or the plugin was incompletely downloaded and it’s hard to determine. The feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. Rollback Update Failure is an attempt to restore the previous existing plugin in the event of a failure. He created a Gist to force a failure to see how the feature plugin works. https://gist.github.com/afragen/80b68a6c8826ab37025b05d4519bb4bf – If you try it, please add your comments in the tickets.
  • #15134, #29408, and #36710 are all related to symlinks. @pbiron will evaluate those and see if he can close a couple of them in favor of keeping of single ticket open.

See you next week!

#core-auto-updates, #updater, #upgrade-install

Upgrade/Install component meeting agenda for May 18th, 2021

The next meeting is scheduled on Tuesday, May 18, 2021, at 17:00 UTC and will take place on #core-auto-updates SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel with the following agenda:

  • Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. of the tickets in the spreadsheet (they all refer to Outcome 1 of the Updater initiative)
  • Open floor/tickets awaiting review

Got something to propose for the agenda? Please leave a comment below.

#core-auto-updates, #updater, #upgrade-install

Upgrade/Install component meeting agenda for May 11th, 2021

Next meeting is scheduled on Tuesday May 11, 2021 at 17:00 UTC and will take place on #core-auto-updates SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel with the following agenda:

  • Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. of the tickets in the spreadsheet (they all refer to Outcome 1 of the Updater initiative)
  • Open floor/tickets awaiting review

Got something to propose for the agenda? Please leave a comment below.

#core-auto-updates, #updater, #upgrade-install

DevChat meeting Summary – May 5, 2021

Agenda for the two meetings. Thanks to @peterwilsoncc and @jeffpaul for leading the 05:00 and 20:00 UTC devchats respectively.

Link to 05:00 UTC devchat meeting archive in Slack // Link to 20:00 UTC devchat meeting archive in Slack

Announcements and news

These posts need your feedback:

  • @ryokuhi published a proposal on Make/Accessibility about a new Trac workflow keyword that the AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) team would like to consider.  If you feel particularly opinionated or passionate about this, please comment on the post.
  • @jeffpaul and @desrosj published a request to Component Maintainers, Feature plugin authors, and the Gutenberg team to share plans / help needed for 5.8 (primary focus will be FSE).  Please comment on the post to help ensure we’re tracking the right work for the release.
    • @youknowriad noted that required Gutenberg changes in Core are made as filters/extensions points and brought to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. as part of the GutenbergGutenberg 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/ merge that happens regularly
    • @mkaz shared the WordPress 5.8 Must Haves project board on GitHub as outline of Gutenberg work for 5.8

5.8 Review

  • Schedule confirmed including 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. scrub schedule
  • @youknowriad shared that trunk is already on Gutenberg 10.4, @gziolo is working on updating it to 10.5 and the big changes (Global styles infrastructure in themes.json and FSE blocks) are coming in 10.6
  • Feature freeze on Tuesday May 25th (19 days from now) defined as “During the following two weeks, there will be no commits for new enhancements or feature requests. Core contributorsCore Contributors Core contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org. will focus on defect work (aka outstanding bugs)
  • 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. 1 on Tuesday June 8 (33 days)
  • RC 1 on Tuesday June 29 (54 days)
  • Release on Tuesday July 20 (75 days)
  • Current list of tickets that are on the 5.8 milestone, list of good-first-bugs tickets

Component maintainers and committers update

  • @sergeybiryukov shared Plugins update that Parameter names in 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 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. functions now use consistent terminology when referring to actions, filters, and callback functions via #50531
  • @sergeybiryukov shared Themes update that #49487 removes the “Featured” tab on Add Themes screen to match an earlier change in the Theme Directory
  • @webcommsat shared About/Help update that ticketticket Created for both bug reports and feature development on the bug tracker. triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. continues with @marybaum
  • @audrasjb shared Menus update that #21603 is being reviewed
  • @audrasjb shared Upgrade/Install update that the last meeting recap includes a project for the next few releases

Open Floor

Props to @audrasjb, @webcommsat and @marybaum for reviewing this post.

#5-8, #accessibility, #dev-chat, #docs, #fse, #full-site-editing, #github, #learnwp, #summary, #updater

Upgrade/Install component meeting notes from May 4th, 2021

On Tuesday May 4, the component held a meeting in the #core-auto-updates SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel.

The main topic in agenda was the Update the Updaters project kickoff.

These are the decisions taken about it:

  • The group will tackle the outcomes in order, to complete one sub-project before moving to another.
  • The weekly upgrade/install component meeting is back and the updater project will be part of them. Tuesdays at 5 pm UTC is confirmed.
  • @francina will post the agenda and host the meeting. If she isn’t available @audrasjb will step in.
  • @pbiron is going to go through the tickets in the “Outcome 1” list to prioritize them before the next meeting.
  • @audrasjb will refresh his patches as part of the “Outcome 1” drive.
  • The attendees agree that @schlessera‘s proposal to make everything as compatible as possible with 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/ should be part of the scope.
  • No additional tools will be used to keep track of the project at this time since it’s a small group of people working on it. If there will be more contributors (🤞), the decision will be revisited.

The attendees also checked an open ticketticket Created for both bug reports and feature development on the bug tracker. on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. (#53049) and agreed that it’s a good idea to include a changelog in the autoupdate emails that users that have opted-in to this service receive.

See you next week!

#core-auto-updates, #updater, #upgrade-install

Upgrade/Install component meeting agenda for May 4th, 2021

Next meeting is scheduled on Tuesday May 4, 2021 at 19:00 UTC+2 and will take place on #core-auto-updates SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel with the following agenda:

  • Update the Updaters project kickoff (thanks @francina for putting this post together)
    • Outcome 1 – Make sure the zip uploads and unpacking are safe
    • Outcome 2 – Create a mechanism to upgrade and rollback
    • Outcome 3 – Have managed updates (database migrations)
    • Outcome 4 – Create a unified JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. convention for requirements and dependencies
  • Open floor / tickets awaiting review

Got something to propose for the agenda? Please leave a comment below.

#core-auto-updates, #updater, #upgrade-install