Meeting Notes | Matt, Josepha, and Theme Team

Attendees: Ari Stathopoulos, Carolina Nymark, Chloé Bringmann, Josepha Haden, Kelly Choyce-Dwan, Matt Mullenweg, Sandilya Kafle, William Patton

Purpose: This meeting was called in response to a recent post on WP Tavern: Upsells, Barriers, and the End/Beginning of the Quality of $free Themes Era.

TLDR
All participants of the February 23rd call agreed that a diverse and thriving theme repository requires the current theme review process to be reframed to mirror 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 review process. The next steps include a list of review guard rails to be provided to the team by Matt and for 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. to develop specific automated tooling to reduce the burden of manual checks.

Theme Team Participants Overview

  • Carolina Nymark is a Yoast-sponsored contributor and has been active in WordPress for 11 years.
  • William Patton has contributed to the Theme Team for five years, currently at 8 hours/week.
  • Ari Stathopoulos considers himself at the soul, a themer. He is a Yoast-sponsored contributor in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and 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/.
  • Sandilya Kafle has contributed his time for six years and is currently focused on themes.

Automattic Participants Overview

  • Matt Mullenweg is the co-founder of WordPress and its active project lead.
  • Josepha Haden is the current Executive Director of WordPress.
  • Kelly Choyce-Dwan works on the Meta team and has contributed to WordPress for eleven years.
  • Chloé Bringmann supports Josepha, the Automattic-sponsored team, and contributes to the WordPress project.

Matt’s Perspective on the Theme Landscape
Themes have been one of the means by which new users are brought into the fold of WordPress. In essence, you choose a theme, and an introduction to the WP ecosystem follows.

We are approaching a point where almost half the active themes aren’t hosted in this theme directory. As a point of comparison, plugins installed that are outside of the plugin directory constitute 15%. It is important to ask ourselves how we can evolve the theme directory process and the theme directory to be the most compelling place for people to source themes.

Big, robust themes take more time to review due to their complexity, even when the functionality they provide should be the work of a plugin. Code, and code standards, get out of date, and that’s the code we rely on.

If you imagine a post-commit review process, rather than a pre-commit review, where would be the best place to invest our time to further our goals of licensing, a11yAccessibility 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), security, upgrade and switch themes? If we increase the breadth of themes in the repository by minimizing requirements, we can shift guidelines and depend upon users for reviews.

Theme Team Feedback
Historically, other repositories were successful because they allowed most themes to go live without substantial checks, and in WordPress, we put a high value on the experience of the user, which made our reviews more conservative around site health. Since we minimize upsell and advertising, there are few compelling business cases for people to add themes to the .org repository. Those upsell notifications can be the primary driver for a theme author’s profit, but from a user perspective, it is a deterrent.

One high-priority fix is making it possible for the team to have a functional meta environment for testing. The theme team members cannot work directly in the directory as they cannot recreate a meta environment, lack important data that’s tied up in the themes, and there is no script to build dummy data or otherwise anonymize it.

Next Steps
Participants agreed that for the theme review process to change, a shortlist of non-negotiable guardrails is required, and increased collaboration with the Meta team.

In addition, metrics to discern whether a new review process is effective are twofold: the usage of themes in the directory vs. not, and an increase in security reports. The goal is for the 47.1% of active themes outside of the theme repository to decrease considerably.

Meta is committed to providing any tools needed to implement a review process that increases the breadth of themes for a comprehensive repository that conveys confidence via ranks, e.g., badges or another demarkation.

#recap

Gutenberg 9.9: New JSON structure for theme.json files

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/ 9.9 changes the structure of theme.json files for experimental Full Site Editing (FSEFSE Short for Full Site Editing, a project for the Gutenberg plugin and the editor where a full page layout is created using only blocks.) themes.

The changes made are a first step to allowing theme metadata and more granular control for FSE in the future. More details on that process and what to expect in the future can be found in the Overview GitHub ticket.

The Documentation for theme.json has been updated and is properly maintained so theme developers experimenting with FSE can follow that and update their files accordingly.

The structural changes that went in Gutenberg 9.9 can be found in Pull Request #28110 in the Gutenberg project and can be summed-up in the following:

  • settings and styles and now on the root level of the 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. file
  • global was renamed to root

With settings and styles in the root level it is now easier to group all 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. settings in one place and all block styles in a separate area, therefore making it easier to navigate the file and get an overview, while at the same time making it easier to extend the file’s functionality in the future.

Before:

{
  "global": {
    "settings": { ... },
    "styles": { ... }
  },
  "core/paragraph": {
    "settings": { ... },
    "styles": { ... }
  }
}

After:

{
  "settings": {
    "defaults": { ... },
    "root": { ... },
    "core/paragraph": { ... }
  },
  "styles": {
    "root": { ... },
    "core/paragraph": { ... }
  }
}

Call for maintainers: Theme Unit Test

The Theme Unit Test is a widely known XML file with test content for WordPress websites. Theme authors and reviewers use this file to test various content types, including blocks, classic content, sound, video, images, comments, and menus.

As my focus is moving more towards 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) and full site editing, I do not have the capacity to keep the file up to date or respond to issues and pull requests on GitHub in a timely manner.

Except for typos, the last substantial update to the theme unit test was July 3, 2020.

Because of the lack of updates, some 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. content no longer matches what you would get if you manually created new blocks in the editor. 

The demo content has been available since 2011 and is an important tool for theme authors. For it to remain useful, it needs to be updated more regularly, and your help is wanted.

What does a maintainer do?

  • Triage issues, open issues, and create pull requests on the GitHubGitHub GitHub is a website that offers online implementation of git repositories that can 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.
  • Update the XML file when there are block markup changes (Keeping the old markup examples is still important for testing).
  • Update the XML file to include new major blocks.
  • Keep the codex page up to date.
  • Plan for the future and how the content and format can be improved.

What skills do I need to become a maintainer?

  • To update the file, you need to have basic knowledge of XML and the structure of the content exported and imported from WordPress.
  • Have intermediate experience with the block editor, and stay up to date with block markup changes.
  • You need a WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ account to be able to update the codex page.

I want to help, who do I contact?

Leave a comment on this post if you would like to help or if you have any questions.

Discussion: Requirements for full site editing themes

As explorations of the minimum viable full site editing theme continues and the outreach program is starting, it is time to have a first discussion about requirements for FSEFSE Short for Full Site Editing, a project for the Gutenberg plugin and the editor where a full page layout is created using only blocks. themes in the theme directory.

Having basic requirements is one of the steps needed for us to be able to open up theme submissions:

  1. Requirements
  2. Update the Theme Check 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 to allow full site editing themes
  3. Strengthen reviewer knowledge
  4. Activate 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/ on the theme previewer -Completed

These are discussions points and not a complete proposal.

You can compare the items below with the current requirements.

New code requirements:

Valid 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. markup: There must be no block validation errors on theme switch.

For this requirement, we need to research if it is possible to validate the block markup automatically.

Minimum required files:

  • style.css
  • readme.txt
  • functions.php
  • index.htmlHTML HTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites. (placed inside the block-templates folder)
  • Temporary: Comments.php is required as without it, a PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. http://php.net/manual/en/intro-whatis.php. warning is shown.
  • Theme.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. (or experimental-theme.json).

Requirements that may need to be adjusted:

Plugins: Themes are allowed to require Gutenberg as long as Gutenberg is needed to enable full site editing.

Options and Settings
Theme options may only be included as:

  • Theme_support
  • Global style settings
  • Block patterns
  • Block variations
  • Block styles

Items under this requirement that become irrelevant or confusing because blocks are used instead of PHP functions:

  • Use 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. for implementing theme options
  • Save options in a single array
  • Don’t use transients for things they shouldn’t be used for, like storing theme options
  • Use sane defaults and don’t write default setting values to the database

Presentation vs Functionality: Images that are not plain placeholder images and essential for the design are allowed.

Items under this requirement that become irrelevant or confusing because blocks are used instead of PHP functions:

  • The theme options should not be pseudo custom post types and save non-trivial user data
  • Non-design related functionality is not allowed

CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Functionality and Features

Items under this requirement that become irrelevant or confusing because blocks are used instead of PHP functions:

If incorporated, features must support the WordPress functionality:  

  • Sidebars
  • Navigation Menus
  • Post Thumbnails
  • Custom Headers
  • Custom Backgrounds
  • Editor Style
  • Logo

Use template tags properly

Include comments.php (via comments_template())

Requirements that remain the same:

  • Licensing
  • 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) (temporary exception for skip to content link)
  • Readme file
  • Importing or downloading
  • Documentation
  • Naming
  • Screenshot
  • Image guidelines (exception for placeholder images that are essential for the design)
  • Stylesheets and Scripts
  • Privacy
  • Selling, credits, and links
  • Child themes

Requirements that it is not currently possible to follow:

Language / translation ready


Request for feedback

  • Which of the current requirements are relevant for full site editing themes?
  • What new full site editing specific requirements needs to be added?
  • How do we best present the requirements for full site editing themes?
    • On a separate page
    • In a separate section of the current requirements page
    • Other, describe your suggestion in the comment

#full-site-editing, #guidelines, #themes

Feedback requested: Resolution process for issues found in live themes

Thank you to everyone who participated in the discussion a few months ago about how this team should address issues that are discovered with themes that are live in the directory!

It’s great when people are willing to share their thoughts about the ideal or preferred way to resolve problems, because it helps the team understand what theme authors expect and prefer — which helps reviewers design a process that is less surprising for theme authors.

The purpose of this post is to gather feedback on a proposal for how this team should address issues found in themes that are already live in the directory.

All feedback is welcome, but in particular, it would be helpful to know:

  1. Are there any parts of this process that might be unclear or confusing?
  2. Does the process seem too strict, too permissive, or just about right?
  3. Should anything be added to this process (keeping in mind that all reviewers are volunteers who have limited time available)?
  4. Does this process fail to address any significant issues or steps needed for resolution?

Resolving low- to moderate-impact issues

Some examples of low-impact or moderate-impact issues are:

  • Screenshot issues
  • Overuse of content creation in 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.
  • 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 functionality type features
  • Demo content import
  • Failing to meet expectations/guidelines which were added more than 6 months ago
  • Recommending plugins without reason or good integration in the theme

Resolution process: 

When a theme reviewer notices that a live theme does not match the theme guidelines, a theme author should expect the following steps:

  1. The theme author will be emailed with an explanation of the issue(s) and a request to resolve them. The email will include a deadline for the requested changes, which will allow the author at least 7 days to submit changes, and a link to a page with information about the resolution process. 
  2. If the changes are submitted before the deadline, then
    1. they will be reviewed and approved, or 
    2. the author will be informed of additional changes that must be made. 
  3. If changes that resolve the issue are not submitted on time, then the theme may be “delisted” until the issues are resolved. 
  4. Once the theme is delisted, if the theme author does not submit changes that resolve the problem within 3 months, the theme will be suspended until the changes have been resolved. 

Resolving high-impact issues 

Some examples of high-impact issues are:

  • License issues
  • Security issues
  • User tracking-related issues
  • User Consent Issues 
  • Advertising, promoting or otherwise endorsing any real products and/or services on the front (except the theme credit link)
  • PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. http://php.net/manual/en/intro-whatis.php. Fatal Errors* (If a theme is found to throw fatal errors on activation, it is not compatible with modern (PHP 7+) or they are not compatible with the most recent versions of WP.)

Resolution process: 

*If a theme is found to have PHP errors, it will immediately be suspended until the author uploads fixes. (This is to prevent the theme previewer error logs being cluttered and to prevent new users running into the issue.)

When a theme reviewer notices a high-impact issue in a live theme, a theme author should expect the following steps:

  1. The theme author will be emailed with an explanation of the issue(s) and a request to resolve them. The email will also include:
    1. A deadline for the requested changes, which will allow the author at least 3 days to submit changes. 
    2. An explanation of what will happen if the changes are not submitted in time, or if the changes don’t solve the issue(s).
  2. If the changes are submitted before the deadline, then
    1. they will be reviewed and approved, or 
    2. the author will be informed of additional changes that must be made. 
  3. If changes that resolve the issue are not submitted on time, then the theme will be “delisted” or suspended until the issues are resolved. 
  4. Once the theme is delisted, if the theme author does not submit changes that resolve the problem within 3 months, the theme will be suspended until the changes have been resolved. 

Repeated Issues

In the case of a theme author who demonstrates a pattern of failing to meet theme directory expectations when updating themes  — for example, by breaking a certain guideline repeatedly after correcting it in the past, or by breaking different guidelines repeatedly in a period of 3-12 months, then all of the author’s themes may be suspended from the directory, permanently. The author may appeal this decision with the Executive Director (Josepha Haden Chomphosy) or Project Lead (Matt Mullenweg). 


Exceptions

Sometimes special cases will be discovered, which can’t be resolved by the processes described above. Those should be rare, but might include the following situations: 

  • A theme passed the initial review and was added to the directory but should not have been added because it is a clone, or for other foundational reasons. In this case, the theme will be suspended immediately and the author will be warned that another attempt to submit a cloned theme to the directory will result in a lifetime ban. 

Delisting as mentioned in the post, relies on the delisting option being implemented.


The feedback period will be open until December 7th, to allow the team representatives time to summarize it for the December 8 biweekly meeting.
At that time, the team will adjust the proposed process as seems necessary, and then publish the process in the handbook.

Thanks for your time, and for sharing your themes on WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/!

#feedback, #themes-team