Multisite Recap for the week of July 17th

Office Hours Recap

The agenda for this office hours meeting was to review the current state of the multisite roadmap and plan out how to complete it for publishing as an official document on the make blog.

The meeting’s chat log

Attendees: @desrosj, @earnjam, @feshin, @flixos90, @jeremyfelt, @jmdodd, @johnbillion, @maximeculea, @spacedmonkey, @stephdau, @stevenkword

Chat Summary:

  • @jeremyfelt shared a link to the draft roadmap document for review.
    • @desrosj suggested using the Taxonomy roadmap posts an example
    • We agreed that the roadmap should be broken up into specific sections for REST API, Internal APIs, and Implementation, with each of those sections having their own users, sites, and networks areas.
    • We will also need a section of the document dedicated to “bootstrap” or file organization and load order. See #40647, #40948, #29684, #40646
  • The first priority should be the REST and Internal APIs. Once those are in better shape, they can be used to make improvements to the multisite UX/UI and we can focus on the different network admin screens that need attention.
  • Because networks are managed in widely varying ways, the primary goal of multisite should be to provide standardized data structures and low-level database APIs to support a range of network and multi-network implementations through plugins and custom code. The roadmap should reflect this philosophy.
  • We will need to discuss the “global” state (data spanning multiple networks) and make decisions on what should be implemented there. Right now users are the only global data, but even things like number of users are stored per-network and not globally.
  • Before getting too detailed on the actual roadmap document, we will spend the next few office hours meetings discussing specific items that will go into and affect the direction of the roadmap, including network meta, global state, and some Internal API decisions (See #40180 and #40228)

The next office hours will take place on Tuesday 16:00 UTC. An agenda for it will be posted in advance.

Ticket Scrub Recap

The agenda for this ticket scrub was to continue going through the list of multisite-related good-first-bug tickets for new contributors, review their status, and adjust keywords as necessary.

The meeting’s chat log

Attendees: @earnjam, @euthelup, @flixos90, @greatislander, @maximeculea

Chat Summary:

  • #40363Remove current_blog_ cache invalidation from clean_blog_cache()
    • Waiting for feedback from @jjj and @jeremyfelt over possible backward compatibility concerns with removing these
  • #41163: Display active theme name on Sites screen
    • This could make use of a wp_blogmeta table if it gets implemented, but in current form would require switch_to_blog() calls for each row in the list table.
    • Related to #40268
    • good-first-bug keyword removed since it will require further discussion across multiple tickets.
  • #41168: Identify the active theme when editing a site’s themes
    • Discussion revolved around disabling ability to disable the active theme to protect users from not being able to switch back after changing the theme.
    • Because of a possible inconsistency with network-enabled themes and a common paradigm of deprecating old themes by disabling them, the agreed upon suggestion was to only apply a label for the active theme and not change the enable/disable functionality.
  • #41166: .htaccess config should not be shown on network setup screen when Nginx is in use
    • Existing patch is in good shape, but needs minor update to use $is_nginx global
    • Suggested updates to the codex for subdirectory/subdomain configuration
  • #41169: Inaccurate descriptive text when adding a new site
    • Slight verbiage change to patch suggested.
    • Patch has since been committed and ticket closed.

The next ticket scrub will take place on Monday 17:00 UTC. An agenda for it will be posted in advance.

If you were unable to attend one of these meetings but have feedback, please share your thoughts in the comments on this post. In case there’s a need for further discussion we will ensure to make time for it in one of next week’s chats. See you next week!

#4-9, #multisite, #networks-sites, #summary

Multisite Agenda for the week of July 17th

Office Hours Agenda

This is the agenda for the weekly office hours meeting on Tuesday 16:00 UTC in #core-multisite.

  • Review the current state of the multisite roadmap and discuss the next steps to get it ready as an official document that we can publish on the make blog.
  • We especially need to define the scope of the roadmap. This includes looking at which work areas of multisite belong into it. For these areas we will need to either have the major decisions already made or plan respective meetings to come to a conclusion.

Ticket Scrub Agenda

This is the agenda for the weekly ticket scrub meeting on Monday 17:00 UTC in #core-multisite.

Please join the chat if you’re interested in one of the topics. In case you cannot make the respective meeting, we will be working on publishing a recap post afterwards. If you have some thoughts beforehand or would like something related to be part of the agenda, feel free to share your ideas in the comments for this post. See you in the chat!

#4-9, #agenda, #multisite, #networks-sites

Multisite Recap for the week of July 10th

Office Hours Recap

The agenda for this office hours meeting included a discussion around the introducing a wp_blogmeta table and related *_site_meta() functions to store arbitrary data for sites, particularly as a means to extend the future sites REST API endpoint. See #37923 for the respective ticket.

The meeting’s chat log

Attendees: @dac @earnjam @flixos90 @jeremyfelt @jjj @maximeculea @spacedmonkey @stephdau @stevenkword

Chat Summary:

  • There is a feature plugin available for installing site meta (the database table is called blogmeta for legacy reasons).
  • A consensus was reached for proposing a new blogmeta table which will be beneficial but not required for the planned REST API sites endpoint.
  • Priority for the 4.9 release will be the introduction of this new table with focus on adding a related meta_query to wp_site_query deferred to a subsequent release. See #40229.

The next office hours will take place on Tuesday 16:00 UTC. An agenda for it will be posted in advance.

Ticket Scrub Recap

The agenda for this ticket scrub was to go through the multisite good-first-bug tickets. We worked off of this report with the aim of general gardening, adjusting keywords as necessary and removing good-first-bug keywords for tickets that are overly complex or have been open and without activity for an extended period of time.

The meeting’s chat log

Attendees: @danhgilmore @earnjam @flixos90 @pcarvalho @pmbaldha @stevenkword

Chat Summary:

  • #20537: Don’t spawn cron requests for suspended blogs.
    • We successfully applied the latest patch and provided a request for user testing.
  • #37799: Add progress indicator to “Upgrade Network” page
    • We successfully applied the latest patch and provided UI feedback.
  • #39213: Audit the network pages notices.
    • We successfully applied the latest patch and provided a request for user testing.
  • #39419: Explicitly globalize global variables in ms-settings.php
    • We successfully applied the latest patch and provided a request for documentation.
  • #41167: Remove help text duplication on Site editing screens in network admin
    • We successfully applied the latest patch and provided a request for a refreshed patch that resolved warnings from trailing CRs.

The next ticket scrub will take place on Monday 17:00 UTC. An agenda for it will be posted in advance.

If you were unable to attend one of these meetings but have feedback, please share your thoughts in the comments on this post. In case there’s a need for further discussion we will ensure to make time for it in one of next week’s chats. See you next week!

#4-9, #multisite, #networks-sites, #summary

Multisite Agenda for the week of July 10th

Office Hours Agenda

This is the agenda for the weekly office hours meeting on Tuesday 16:00 UTC in #core-multisite.

  • Discuss the state of introducing a wp_blogmeta table and related *_site_meta() functions to store arbitrary data for sites, particularly as a means to extend the future sites REST API endpoint. There have been several discussions at WordCamp Europe, and we should soon come to a conclusion, whether it should be part of core or not. See #37923 for the respective ticket.

Ticket Scrub Agenda

This is the agenda for the weekly ticket scrub meeting on Monday 17:00 UTC in #core-multisite.

  • Go through the list of multisite-related good-first-bug tickets for new contributors. The major goal is to look at those tickets, briefly review where they’re at and adjust keywords as necessary. If a ticket appears to be overly complex or has been open and without activity for a longer while, the good-first-bug keyword should be removed.

Please join the chat if you’re interested in one of the topics. In case you cannot make the respective meeting, we will be working on publishing a recap post afterwards. If you have some thoughts beforehand or would like something related to be part of the agenda, feel free to share your ideas in the comments for this post. See you in the chat!

#4-9, #agenda, #multisite, #networks-sites

Multisite Recap for the week of July 3th

Office Hours Recap

The agenda for this office hours meeting was to focus on the new sites CRUD API (not the REST endpoint).

The meeting’s chat log.

Attendees: @flixos90, @jjj, @maximeculea, @schlessera, @spacedmonkey.

Chat Summary:

  • Discussion about sites CRUD API (not the REST endpoint), see #40364. The goal here was to determine how we could refactor the site insertion and installation.
    • We’re planning to implement wp_insert_site()(for adding a row to the wp_blogs table) and wp_install_site() (for installing the site’s DB tables, populating options, etc). Both should be wrapped by a new wp_create_site() which will become a replacement for wpmu_create_blog().
    • Similarly, we will have wp_delete_site() and wp_uninstall_site() wrapped inside wp_remove_site(), which are counterparts of those before. The latter may not be clear enough, so we might need to find a better name. The naming discussion will continue on the ticket, and we’ll provide a summary about all the new functions.
    • About the technical details, a patch has been posted couple weeks ago. It seems to be a great first pass. However it passes around WP_Site objects which was the result of previous discussions, and there were concerns expressed at WCEU due to inconsistency with similar core functions. We therefore decided to use the common “$args pattern” instead for now, but maybe a chat could take place in #core-php at some point especially about consistency and new patterns.

The next office hours will take place on Tuesday 16:00 UTC. An agenda for it will be posted in advance.

Ticket Scrub Recap

The agenda for this ticket scrub was to look through multisite tickets without a response and provide feedback.

The meeting’s chat log.

Attendees: @afragen, @andy, @flixos90, @ipstenu, @jmdodd, @maximeculea, @sergey, @spacedmonkey.

Chat Summary:

  • As we only had two tickets, we gave feedback and asked for more details to the first one, #40459.
  • The second one (see #41177) was more tricky. We had a chat about site deletion which is not triggering an AYS notification. As pointed, this should not be a JS Driven AYS but more be handled with a separate page which is showing up. A patch has been submitted.
  • In addition, we highlighted a great new feature for multisite development: Thanks to @loreleiaurora, it’s now easily possible to setup VVV development multisites for both subdirectory and subdomain setup.

The next ticket scrub will take place on Monday 17:00 UTC. An agenda for it will be posted in advance.

If you were unable to attend one of these meetings but have feedback, please share your thoughts in the comments on this post. In case there’s a need for further discussion we will ensure to make time for it in one of next week’s chats. See you next week!

#4-9, #multisite, #networks-sites, #summary

Multisite Agenda for the week of July 3rd

Office Hours Agenda

This is the agenda for the weekly office hours meeting on Tuesday 16:00 UTC in #core-multisite. Since it is a US holiday, attendance will likely be a bit lower than usually.

  • New CRUD API for sites: Briefly summarize WCEU thoughts and discuss our approach. See #40364 for related ticket.
  • Open floor for new contributors.

Ticket Scrub Agenda

This is the agenda for the weekly ticket scrub meeting on Monday 17:00 UTC in #core-multisite.

Please join the chat if you’re interested in one of the topics. In case you cannot make the respective meeting, we will be working on publishing a recap post afterwards. If you have some thoughts beforehand or would like something related to be part of the agenda, feel free to share your ideas in the comments for this post. See you in the chat!

#4-9, #agenda, #multisite, #networks-sites

Multisite Recap for the week of June 26th

Office Hours Recap

The agenda for this office hours meeting included/was continue the previous week’s discussion on component maintenance with a particular focus on onboarding of new contributors.

The meeting’s chat log

Attendees: @afragen @desrosj @drew @earnjam @flixos90 @jjj @maximeculea @pmbaldha @spacedmonkey @stevenkword

Chat Summary:

  • Weekly agenda and recap posts should be published. Preferably responsibility for these should rotate between contributors.
    • To make the process of writing such posts easier and more consistent, boilerplates are available as GitHub gists (for agenda posts and recap posts). These are drafts and open to feedback, but should be used as a foundation for new make posts from now on.
  • Regarding new contributors, the main priority is to ensure those who are interested find their spot. It should be as intuitive as possible where and how to help.
    • Long-term contributors, particularly the person running the meeting should make sure to ask who is around initially and preferably reach out to new people after the meeting per DM to offer help. Even those who are only reading along should be encouraged to let everyone else know they’re around and interested.
    • Having a multisite setup available in the basic VVV configuration would be very helpful. There is an inofficial temporary solution available, which is not quite the best approach to solving the problem, but yet it should be considered to be added in the official setup until a better solution is available (which might take some time to work on). This topic will be picked up again once VVV maintainer @jeremyfelt is back around.
    • More efforts should be put into gardening tickets with the good-first-bug keyword. Several of those tickets already have a patch, but are not obviously highlighted as such, others have turned out to be far too complex, making the search for such tickets time-consuming and possibly frustrating. This particularly affects the agenda of weekly ticket scrub meetings.
    • Anytime when looking at tickets, it is important to not only take tickets in the “Networks and Sites” component into account, but also those that have the “multisite” focus applied. The latter group gets overlooked by the multisite team too often. This Trac query is a good starting point.
    • An idea from the community summit about a mentorship program was brought up. It may be useful to invest possibilities to dedicate a specific mentor to each new contributor that is interested. This should be discussed in a broader scope though, together with other components.
    • A common issue for new contributors is that sometimes Trac tickets are overlooked or no action taken. Sometimes even when tickets are assigned, it’s a long time for any action or response. Regardless of whether a ticket simply needs more discussion, whether it is considered low priority or too complex to tackle at the moment, the multisite team should ensure to always provide at least a response about why a certain ticket is in its current state. More precise workflow keywords could help describe a ticket’s state as well. Having a weekly ticket scrub is at least a good starting point as it gives a chance to look at those tickets more regularly.
    • A few minor workflow issues with tickets could be improved. An idea was to automatically apply the has-patch keyword once a new patch is uploaded.
  • While the original agenda included discussing the improvements to the sites API, this discussion was postponed to a later meeting.
  • Several contributors were not aware of the weekly ticket scrub. It should be added to the list of meetings on https://make.wordpress.org/core/. A further idea was to set up reminders for both meetings on Slack.

The next office hours will take place on Tuesday 16:00 UTC. An agenda for it will be posted in advance.

Ticket Scrub Recap

The agenda for this ticket scrub included/was to look through multisite tickets without a response and provide feedback.

The meeting’s chat log

Attendees: @andy @desrosj @earnjam @flixos90 @jmdodd @kraft @pmbaldha @sergey

Chat Summary:

  • We got the count of tickets without a response from 14 to 6. One ticket was committed, the others are either on a good way or further feedback or updates have been requested. The process will continue next week to hopefully get that list to a count of 0.

The next ticket scrub will take place on Monday 17:00 UTC. An agenda for it will be posted in advance.

If you were unable to attend one of these meetings but have feedback, please share your thoughts in the comments on this post. In case there’s a need for further discussion we will ensure to make time for it in one of next week’s chats. See you next week!

#4-9, #multisite, #networks-sites, #summary

Multisite Agenda for the week of June 26th

Office Hours Agenda

This is the agenda for the weekly office hours meeting on Tuesday 16:00 UTC in #core-multisite.

  • Continue the discussion from the last meeting about organization and maintenance of the multisite component:
    • Briefly collect impressions about the new meeting workflow.
    • Focus on improving contributor onboarding.
    • Open floor for related ideas.
  • Figure out what our improved site API functions should look like. While this has been discussed before, there have been some discussions at WordCamp Europe questioning our latest approach. See #40364 for the related ticket and patch.

Ticket Scrub Agenda

This is the agenda for the weekly ticket scrub meeting on Monday 17:00 UTC in #core-multisite.

Please join the chat if you’re interested in one of the topics. In case you cannot make the respective meeting, @flixos90 will be working on publishing a recap post afterwards. If you have some thoughts beforehand or would like something related to be part of the agenda, feel free to share your ideas in the comments for this post. See you in the chat!

#4-9, #agenda, #multisite, #networks-sites

WCEU & Weekly Multisite Chat Summaries

During lunch at WordCamp Europe, there was an informal discussion with some contributors who have an interest in multisite. This post is meant to summarize those discussions and create a plan for organizing and improving the multisite component moving forward.

Present for discussions: @flixos90 @stephdau @spacemonkey @desrosj

Weekly Component Dev Chats

Because all contributors cannot be present every week, there have been a few instances where deep discussions have reoccurred in consecutive weeks due to a different set of people being present. This has slowed progress, and also limited feedback to only those who can attend.

The meeting discussions sometimes veer off course to items that are not necessarily a part of the current component goals. Weekly bug scrubs have also on occasion turned into detailed discussions (more on this later).

For these reasons the following items were proposed:

  • Post a meeting agenda weekly at least one full day prior to scheduled dev chats.
  • Post a meeting summary after the meeting.

The meeting agendas will help keep the conversations on target and ensure they are productive. They will also help contributors decide which meetings they want and need to attend. If someone has anything that they would like to contribute but is unable to attend, they can post a comment on the agenda post.

The meeting summaries will help inform all who were unable to attend by communicating what was discussed. It will also help prevent discussions from reoccurring in consecutive weeks when a different set of contributors are present. Anyone can also comment on the meeting summary with any additional feedback. If there is a lot of feedback on the summary, the topic can be slated for more discussion during the following week’s dev chat.

These two things have proven effective for both the Core and JavaScript chats, and should also help the multisite component.

Multisite Roadmap

In an ongoing effort that will continue through the next couple weeks, a component roadmap is being discussed. Roadmaps are great for identifying the current problems that should be solved in a general order and establishing a direction. The roadmap should also describe why each problem needs solving with examples, and what steps potentially could be taken to reach a solution.

By listing out the goals and needs of the component in the rough order they should be tackled, dev chats can be more targetted and the component can progress more effectively.

Currently, the primary goals of the multisite component are implementing a REST API endpoint for sites and improving the user endpoint to support all multisite functionality. It is also likely that a networks API endpoint will be introduced, although that is a lower priority than the other two. Sites and networks are the only WordPress core component without a REST API endpoint.

Information Sharing

Since WordPress.com has had a Sites endpoint for quite a while now, @stephdau shared some links after the meeting with the other attendees. He emphasized that nothing there is secret and there is a desire to share information and collaborate. He also stated that much of the code is actually packaged in Jetpack.

Ticket Gardening

As of this being published, there are 160 bug tickets for the multisite component in Trac. It would be great to decrease this. As mentioned above, weekly bug scrubs occasionally turn into continuation discussions of the previous dev chat. Having specific ticket lists to work through on a given day may help more effectively manage tickets belonging to the component, gardening them into the appropriate milestones.

@johnbillion also mentioned in a separate discussion that he has an offline list of multisite bugs that he has noticed. He will be going through Trac at some point to ensure each issue has a Trac ticket (although most already do).

Follow Up

As a follow-up to this meeting, @flixos90 created a Google Doc to help collect thoughts and serve as an organizational document for the multisite component.

Weekly Office Hours

The meeting’s chat log

Attendees: @jeremyfelt @flixos90 @johnjamesjacoby @desrosj @sergey @spacedmonkey @saracannon @stephdau @earnjam

This week’s office hours were used to recap the discussions above and gather further input. @flixos90 shared the Google Doc linked above, and then discussions were had to determine if the policies roughly outlined are viable for common procedures in multisite. Eventually, after the necessary tweaks are made to the document, it will be posted on this blog and on the Networks and Sites component page. This will ensure more permanent visibility and also allow other components to possibly follow some of the ideas for their workflows as well.

Key points summarized from the document by those who were at WCEU:

  • Not repeating ourselves week to week is important. Meeting recaps will inform people who cannot attend office hours. Agendas will keep meetings focused.
  • Responsibility for creating agenda and recap posts (especially the recaps as they’re more work) should rotate between multiple contributors. This is a great way to help onboard new contributors and foster interest in the component.
  • There should be more targeted ticket lists to focus on during bug scrubs. Try to tackle the ones that relate to our roadmap goals and properly prioritize.

At times, the component does get a little slow. Even during these times, an agenda should still be posted. It was also decided that there should be one agenda post (stating the agenda for both the week’s upcoming bug scrub and office hours), and one summary per week. Having consistent agendas will help us stay on target. Establishing a roadmap as needed will also help. “The multisite group is currently focusing on these 3 things from X date to X date” could be a useful way to clearly state the current goals. This would fit well on the component page.

It was decided to change “bug scrub” to “ticket scrub” as it is not limited to discussing bugs. Also discussed was having people who can focus only on bug fixes without needing to worry about when new features will land around them. This would be very helpful to the component. Current contributors each have different strengths and utilizing these strengths effectively should be a priority.

Increased documentation around why decisions are made needs to happen. This will help future contributors understand why specific actions are taken, and why certain features are implemented how they are.

Better utilizing Trac’s “good first bug” was discussed. These tickets are very helpful for picking up new contributors and giving them a positive experience contributing to the component. Ensuring that good first bugs are in fact easy to fix is important. Good first bug tickets should not remain open for multiple releases though. Otherwise, there is a risk for a negative experience when the contribution is not immediately accepted. There was, however, some disagreement on this. Leaving easy fix tickets could be counter-productive.

There was also some post-meeting discussion about making multisite contributions to core easier. Currently, VVV does not allow a multisite install to be created using trunk. This would make writing and testing patches much easier.

Next week, @flixos90 will run office hours. @spacedmonkey will run office hours the week after that. The rough plan for office hours the next three weeks is:

  • Continued discussion on component organization and, afterward, on the sites API
  • Site meta
  • Network meta

Next week’s ticket scrub will focus on tickets without a response followed by tickets awaiting review.

To conclude the meeting, @spacedmonkey was officially approved as a component maintainer. Congratulations!

If you’re interested, please come to our meetings or leave a comment on this post with your thoughts. Multisite office hours are held every Tuesday at 16:00 UTC, while our ticket scrub is held every Monday at 17:00 UTC, both in #core-multisite. The next ticket scrub will be Monday 17:00 UTC and the next office hours will be Tuesday 16:00 UTC.

#multisite, #networks-sites

Weekly Multisite Bug Scrubs

The multisite team has recently been focussed on figuring out and planning the implementation of REST API support for multisite features, which has been the primary topic during the weekly office hours. Unfortunately discussion about regular bugs and small enhancements has been a bit on hold because of that.

Therefore we would like to start running weekly bug scrubs again, and in Tuesday’s meeting we decided to have these every Monday at 18:00 UTC. We will continue to primarily focus on the REST API during office hours, so there will be a clear separation of concerns.

Please join us in #core-multisite if you’re interested or have a bug to discuss. The initial bug scrub will be on Monday 18:00 UTC.

#bug-scrub, #multisite, #networks-sites