Preparing for WCEU 2019 contributor day

What is the contributor dayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of There are many teams that people can participate in, each with a different focus.

As noted on the official contributor day registration page, contributor day is a one-day event where volunteers contribute to WordPress, collaborate with new and existing contributors, and learn about the different ways to get involved in the project. Events like this take place all over the world, either as standalone fixtures or partnered with a WordCampWordCamp A WordCamp is a conference where the WordPress community come together to teach one another what they’ve learned throughout the year and share the joy.

This year it’s held on 20th of June before the main conference. The Theme Review team (TRT) will be lead by Denis Žoljom aka @dingo_d with Carolina Nymark aka @poena helping out with the reviews.

What you need for the contributor day?

Besides a positive attitude, you will need to have your laptop in order to contribute to TRT projects. It would be great if you had a local development environment ready.
If you already have one you like to use, feel free to use it – what ever you feel most confident developing and working on.
If this is your first time contributing, and you haven’t worked on local developments, don’t be afraid, we got you covered.
In order to help us with contributions, you need some form of local development environment. This means that you need to have 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., MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. and ApacheApache Apache is the most widely used web server software. Developed and maintained by Apache Software Foundation. Apache is an Open Source software available for free. or NginxNGINX NGINX is open source software for web serving, reverse proxying, caching, load balancing, media streaming, and more. It started out as a web server designed for maximum performance and stability. In addition to its HTTP server capabilities, NGINX can also function as a proxy server for email (IMAP, POP3, and SMTP) and a reverse proxy and load balancer for HTTP, TCP, and UDP servers. installed somewhere on your system, in order for WordPress to run (or to run PHP_CodeSniffer – more on that later).

Windows users

Local by Flywheel – a simple to set up local development environment for WordPress
WAMP – another local development server, that doesn’t come with preinstalled WordPress unlike Local
XAMPP – also a local PHP development server
VVV – Varying Vagrant Vagrants is an open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. Vagrant configuration focused on WordPress development. It also comes with preinstalled WordPress and some other useful tools (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, Node, Composer etc.) – preferred if you want to contribute to coding standards.
Microsoft Web Platform – if you want to set up local development without the help of predefined development environments listed above.

MacOS users

Local by Flywheel – works on PC and a Mac
VVV – also works great on Mac
MAMP – similar to WAMP and XAMPP but for MacOS

Linux users

If you have a Linux computer you can set up VVV, or set up local development by manually installing PHP, MySQL and Apache (or Nginx) web server (instructions for installing LAMP stack on Ubuntu 18.04, instructions for installing LEMP stack on Ubuntu 18.04).

Additional environments

If you are feeling more adventurous (or you are a bit more versed in the development area) you can set up a docker for local development.

Another tool which may help you for reviewing themes is a Chrome extension by BoldGrid – WPTRT Cloud Launcher. This extension will add a ‘Launch in Cloud’ button to any theme in the themes tracTrac Trac is the place where contributors create issues for bugs or feature requests much like GitHub., and this will set up the theme with all the review tools in the cloud (no local environment required).

List of projects you can contribute to

This year the plan is to divide in several groups that will work on similar tasks, based on what you feel more comfortable working on.
TRT has an excel sheet with a list of open source projects we are working on . Based on that we have several projects you may want to help with

Theme reviews

The biggest thing that the TRT does is reviewing themes that will be added to the themes repository on 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.
Reviewing themes sharpens your own theme development skills, and is a great learning experience.

Useful starting point for getting involved with theme review is the following link: become a reviewer.

At the WCEU you can pick a theme from the themes trac, and start with the review making sure that the theme is functioning properly (no JS or PHP errors) and that it meets the required requirements. Carolina is an expert reviewer who can help you get started with the review, explain what things you need to take a closer look at and can help if you get stuck. Also feel free to ask questions on the slackSlack Slack is a Collaborative Group Chat Platform The WordPress community has its own Slack Channel at channel – a lot of experienced reviewers from all over the world can help you with things that are unclear to you.

Theme Sniffer 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 Plugin Directory or can be cost-based plugin from a third-party

Theme Sniffer is a plugin utilizing custom sniffs for PHP_CodeSniffer that statically analyzes your theme and ensures that it adheres to WordPress coding conventions, as well as checking your code against PHP version compatibility.

If you like to develop plugins using object oriented PHP this is a project you can help with. There are a list of open issues, that you can help with.

Theme Sniffer is a tool that helps theme authors create better themes by checking them for some common issues, and it can help reviewers as well when reviewing (ensuring that there are no big issues in a theme).

WPThemeReview coding standards

This project attempts to automate the code analysis part of the Theme Review Process as much as possible using static code analysis.

You don’t need to know how to write sniffs in order to contribute to this project (if you do know, that’s even better). You can go through the list of open issues in the repo and try to find as many examples of the rules as possible. You can even try to find examples in the current themes repository, using this awesome tool by Peter Booker

Theme Unit tests

Theme Unit tests is a repository that contains the sample data that can help you see if the theme will look good when installed – it adds some predefined content that cover most of the possibilities of how the content can look when a theme is installed.

There are some open issues on the repo as well, so if you’re interested in helping out you can start there.

Theme Feature repository

Justin Tadlock proposed in a post a TRT led repository where we would put some standardised packages that theme authors can utilise in their themes.

As Justin mentioned in the post: “The idea is that if we can get enough people together solving some common theme issues, then there’d be far fewer points of contention between theme reviewers and theme authors.”

This repository will have some useful examples of how to handle admin notices, have unobtrusive links in 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. etc.

If you have a good idea, or you can code some examples, feel free to contribute in the repository.

Final remarks

If you are interested in any of these projects feel free to comment here so that we can maybe pair into groups who want to work on a certain project. This will make it easier for us to make contributions during the contributor day on WCEU.

Of course, if you cannot attend the contributor day, you are welcomed to contribute to any of these projects any time. We welcome new contributors and will help with the onboarding to any of the project. Just drop us a line on the #themereview channel on slack.

Useful links

Contributor Orientation Tool
Contributor Day Q&A pt1
Contributor Day Q&A pt2
How to do a review
Working with trac

#contributor-day, #wceu

Meeting notes from the 11th of June 2019

Yesterdays meeting had a lot of agendas, and it lasted for an hour and a half. A lot was discussed, and some conclusions were made. The following is the recap of the meeting, you can read the meeting transcript in the slack archives (a Slack account is required).

Legacy readme files issue

Some older themes didn’t update their readme.txt file to make it compliant with the proposed unification of the readme format (sample readme).
The idea is to have the readme file similar or same as the plugins have, so that we can maybe work towards making the themes preview more similar to that of the plugins.

Punishing the theme authors seems too harsh so it was agreed to fall back to style.css to keep the backwards compatibility in place, as well as notifying the authors in bulk to update their readme.

Removing the TA program

A big discussion was held whether we should keep or remove the trusted authors (TA) program. One side was adamant that it serves to game the system, as the authors in the TA program get to publish their themes more quickly than the authors not in it. In addition to this argument, another one was that it adds more work for admins who already have a lot on their plate.
Another side said that this keeps the quality of the themes up, and is a good incentive to maintain that quality. Plus, with the new rule that TA must review one theme a month if they wish to have their themes reviewed in the TA queue, the review queue could benefit from it (this is something that we need data to substantiate).

No conclusion was made as to what is the solution for the TA issues, and it was agreed that another discussion should be had regarding this issue.

Removing closed theme tickets to make the names available

A proposal was made to remove closed tickets in order to free up the names in the directory, since once a theme is in the system, the name of that theme is used and cannot be used again (because that could cause conflicts).

Since themes cannot be removed (at least not in a simple way) from the SVNSVN Apache Subversion (often abbreviated SVN, after its command name svn) is a software versioning and revision control system. Software developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation. Its goal is to be a mostly compatible successor to the widely used Concurrent Versions System (CVS). WordPress core and the released code are all centrally managed through SVN., and it would cause more work with no real benefits, it was decided that no themes would be removed and that they will remain in the repository.

Limiting links in a theme to Theme URI and Author URI

In an effort to make a directory a better place and make some things like upsells better handled in the themes Justin Tadlock created a repository with a reusable component that will handle 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. upsells.

The idea is to add more such components that would solve some common issues found in the themes, and to provide examples how to use them.

Another repository already exists where some code snippets could be added that would showcase how to correctly program certain parts of the themes.

Volunteers are encouraged to contribute to both of those.

Rule about overly obtrusive upselling is still in effect.

Fully functional themes in the themes repository

Recently there were cases where themes landed in the repository which either had no styling (starter themes), or which required premium plugins to work properly.

It was agreed that this won’t be allowed and those themes will be removed from the repository. Themes should be fully functional without the use of the third party plugins.

Removing .xml files from themes

Some themes provide .xml demo content that can be imported to provide the layout that the theme author created. While this can help users with recreating the layout issue, it opens up a security issue. One such issue is the possibility of an XML External Entities (XXE) attack.
Also, there was a theme which held spammy links inside their .xml file.

In order to prevent that, it was agreed that the themes shouldn’t bundle the .xml files in the theme, but they can link to the .xml file from their site.

This will also encourage theme authors to start looking into utilising starter content for their themes.

Some useful links for starter content can be found below:

How to use starter content in WordPress themes
Using and customizing WordPress Starter content

Creating council/group to judge offences and issues regarding themes

A proposal was made to have a separate council for handling any theme offences. The majority agreed that this is not needed and that the team leads/reps should handle these cases (like they have been doing so far).

Team lead interest

Since current team leads have been running the team for over a year now, new leads should be selected.
Any interested parties for this position should comment on the post by Josepha Haden.

#meeting, #meeting-notes, #trt

Proposal: Theme Feature Repositories

If you’ve been following the Theme Review SlackSlack Slack is a Collaborative Group Chat Platform The WordPress community has its own Slack Channel at channel, you’ve probably noticed a lot going on. We’ve been trying to figure out ways to deal with common theme issues. There are many conflicting ideas about how to make the directory a better place. However, as a programmer (like most of us here), I thought it best to approach some of these issues from code where possible.

Therefore, a few of us have been tossing around an idea of creating some standardized packages on the official Theme Review GitHub account for theme authors to utilize in their themes. The idea is that if we can get enough people together solving these common issues, then there’d be far fewer points of contention between theme reviewers and theme authors.

What issues need to be solved?

That’s the real question. We need to identify and make a list of problems that could be solved with standardized libraries.

The idea would be to create several repositories on our 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. that theme authors could drop into their theme and utilize. It’d mostly be plug-n-play. This would help cut back on in-house code from 100s of different authors that share little in common and make it far easier for reviewers to review themes. It’d also be beneficial to users if things like admin-related interfaces are consistent between themes.

A couple of quick things that often come up are:

  • Admin notices.
  • Link to “pro” version in 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. (I have an existing library I can transfer ownership).

My question for theme authors is: What packages do you need or what problems do you think we could solve together?

This can literally be any common feature in WordPress themes, not just admin or customizer-related things. Nothing is “out of bounds”. Every idea is on the table right now.

This is an ambitious project. It’d require cooperation between authors and reviewers for the betterment of the theme directory as a whole. It’ll only work if we have buy-in from everyone.

Project lead or co-lead

I’d love to head up this project. It’s something I’ve given some thought to a lot over the last few years. It’s just that today I think more people are open to it. Strike while the iron is hot.

Unfortunately, it looks like my schedule is going to be tight from mid-summer through mid-autumn due to previously-agreed engagements. I don’t want to stick a new project on the team and just walk away when it’s first getting off the ground.

If anyone’s interested in leading or at least sharing some of the lead responsibilities on this, just let us know. GitGit Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. Most modern plugin and theme development is being done with this version control system., Composer, and general OOP knowledge is probably going to be necessary.

If the team goes ahead with this, I’ll do my best to help get this off the ground in the next few weeks.

Licensing on your Theme Shop

@williampatton already published a post regarding the possible issues on theme licensing. Along with that, we can see lots of these shops are not declaring they are licensing properly on their website.

If your premium products are non-GPLGPL GPL is an acronym for GNU Public License. It is the standard license WordPress uses for Open Source licensing The GPL is a ‘copyleft’ license This means that derivative work can only be distributed under the same license terms. This is in distinction to permissive free software licenses, of which the BSD license and the MIT License are widely used examples. or not GPL compatible, you are not allowed to host your free theme in the WordPress repository. Knowingly or unknowingly, authors are missing this.

While visiting a couple of theme shop websites, I found some minor issues about the license:

  • There is nothing mentioned about theme license. (No Terms and Condition)
  • Some website mentioned, All Free and Premium Themes are under GPL License. (Nothing More)
  • Some website has very detailed Terms that mention the license, but in their pricing, we can see limitations that are against the GPL. For example, One Site License or Install on One Site. As per the GPL license, you are not allowed to restrict usage or copying, including an installation limit.
  • Some websites mentioned everything in a good way that is easy for customers to understand, and they have a totally well managed GPL license. For instance, Unlimited Site License, Support, and Updates are Available for One Year. This support the GPL compatible.

In which categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. does your website belong?
Update your website license if you want to host or continue hosting your themes on Otherwise, all your theme will be suspended in the repository.

Free feel to comment below if you have different ideas or thoughts about the GPL License.

Theme Review Team Meeting Agenda for 11 June 2019

Theme review team usually conducts meetings on the second Tuesday and fourth Tuesday of the month. Second Tuesday in the month is the open floor and fourth Tuesday has a fixed agenda.
Due to the number of agendas that we need to discuss, we are going to conduct a second Tuesday meeting with fix agendas.

We encourage all members and anyone interested to attend.

Channel: #themereview | Time: Tuesday, 11th June 2019, 17:00 UTC

Agenda for Discussion

  1. What to do with legacy themes with readme files that don’t match the standard? – Proposed by @joyously
  2. Proposal to remove the TA program. – Proposed by @joyously
  3. Discuss possibilities and ramifications of removing closed tickets to make the name available. – Proposed by @joyously
  4. Suggestion to limit all links in a theme to the Theme URI and Author URI. This includes links to 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 Plugin Directory or can be cost-based plugin from a third-party recommendations, upsells, design services, etc. – Proposed by @greenshady
  5. Revisit/clarify if needed the stance that themes in the directory must be fully functional and complete. They cannot require plugins or users to write code to get a specific design. They must work as a standalone theme. This is meant to be an all-encompassing guideline to cover starters and other blank themes. – Proposed by @greenshady
  6. Demo content should be added using `add_theme_support( ‘starter-content’ )`. No extra .xml files with uncontrollable links or downloading unknown external content. – Proposed by @acalfieri
  7. Idea to create a council/group to judge individual issues (or grey areas) regarding themes. – Proposed by @bothera
  8. Team Lead Interest – We are looking for the replacement of our existing lead @acosmin.
  9. Open Floor

Meetings usually last around 60 minutes. If anyone wants anything else to add on the existing agenda comment below and I will try fit it in. Due to the high number of items to get through in the next meeting any additional items may be added to the agenda of the following meeting for discussion.

Additionally we are looking for a person with managment skills to help us get things done and to keep track of things that are in progress. If you have time to help out and management skills, or know anyone that does, let us know.

Discussion can be held in the comments below.