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 https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/.?

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 WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more..

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. http://php.net/manual/en/intro-whatis.php., MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. 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. https://www.nginx.com/. 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 http://wp-cli.org/ https://make.wordpress.org/cli/, 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.https://core.trac.wordpress.org/., 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 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/.
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 https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel – a lot of experienced reviewers from all over the world can help you with things that are unclear to you.

Theme SnifferTheme Sniffer 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. The plugin is available from GitHub. Themes are not required to pass the Theme Sniffer scan without warnings or errors to be included in the theme directory. 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

Theme Sniffer is a plugin utilizing custom sniffssniff A module for PHP Code Sniffer that analyzes code for a specific problem. Multiple stiffs are combined to create a PHPCS standard. The term is named because it detects code smells, similar to how a dog would "sniff" out food. 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 analysisStatic code analysis "...the analysis of computer software that is performed without actually executing programs, in contrast with dynamic analysis, which is analysis performed on programs while they are executing." - Wikipedia.

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 wpdirectory.net

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