Multisite Objective: Defining Network Types

We’ve been having a rolling conversation about the concept of different networknetwork (versus site, blog) types for a long while. @nacin covered it as part of the potential roadmap for multisite in 2013 and described two sections—“Registration and Open Networks” and “Trusting Users in a Closed Network”—that describe the overall intent of this conversation pretty well.

At WCSF this year, we covered the topic a few times during the contributor days, trying to really nail down what “open” and “closed” meant or if “trusted” and “untrusted” were better words. We even committed wp_is_trusted_network() to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. for about a month in #30145 as a guess at starting to figure out what it should do. 🙂

This repeating conversation has usually started as one of confusion. We have different meanings for open/closed, so we can’t use that. We have different meanings for trusted/untrusted, so we can’t use that.

How do we figure out what we’re talking about?

While all of this discussion has been happening, we’ve been exploring the different ways of phrasing things. A use case discussion for network types on 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. A breakdown of open/closed network functionality. A categorization of every is_multisite() use in core.

During our office hours today, we made some great progress.

We’re going to skip our attempts at binary classification. The future we’re looking at is one in which installing a network is the choice of a pre-configured network type.

Long winded intro aside—this thread you are reading is a place to have this discussion. We need to work out answers to a few questions so that we can move forward:

  • What network types are there?
  • Which of these should be pre-configured in core?
  • What are possible ways of managing these network types?
  • What kind of experience can we introduce during network installation that makes this simple.

I’d encourage you to read some of the previous discussions linked above, especially today’s #core-multisite logs, and then refocus the discussion in the comments here. This will be our main topic in next week’s multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site office hours, so brainstorm away! The more input the better.