Meta Team in 2015

Just a week into 2016, it’s time to take a look at what the meta team did in 2015. As a reminder, here’s a version of this post from last year.

Sure, I could give you a long list of trac tickets, but instead here’s a general overview of the bigger things we accomplished:

  • Theme Directory: Launched an all-new theme directory, completely open source and powered by WordPress instead of bbPress 1.x. Lists are now sorted by active installs instead of downloads and you can “favorite” your favorite themes.
  • Plugin Directory: Crossed 1 billion cumulative downloads. Redesigned the plugin directory. Lists are now sorted by active installs instead of downloads.
  • Translate: Launched the ability to translate themes and plugins directly on, language packs for said themes and plugins, added a stats overview, and refreshed the GlotPress interface to improve usability.
  • Rosetta: Introduced internationalized theme and plugin directories for all locales, automated Rosetta deploys, and fixed a number of issues throughout the sites. On the forums side, we launched two new internationalized forums, powered by bbPress 2.x.
  • Version 1 of the JSON API was added to, which involved customizing it so only whitelisted data was exposed. Additionally, WordCamp Payments, WordCamp Site Cloner, and WordCamp Remote CSS were launched, to say nothing of the dozens of contributions reviewed and committed. Part of WordCamp Central received a refresh as well.
  • Trac: Mentions were added throughout all of the trac instances so you can -mention someone. Additionally, the entire design was refreshed, among other improvements.
  • Meta Environment: A number of sites were added to the WordPress Meta Environment including:,,,, and
  • Open Source: The changes in this list were mostly open source as the meta team is committed to open sourcing as much of as possible. In 2015, we also open sourced the Showcase theme and reviewed/committed numerous patches from contributors (see below).
  • Feature Plugins: Added the ability to sync feature plugins on GitHub with the plugin directory.
  • Slack: Worked on further integrations including /announce for team leads and better warning/error reporting for Translate and Meta services.
  • Devhub: Added user contributed notes to the developer reference, migrated hundreds of examples from the Codex, and added Used By and Uses section to show direct relationships.
  • Profiles: A number of teams received badges for the first time, including the core, polyglots, and training teams. Favorites was expanded to include themes and updated with plugin icons and new ratings data.
  • Centralized Logins: We started the process of centralizing logins on, which will lead to other improvements.

There’s a ton more that we did throughout the year. You can keep up with changes using the meta trac timeline.


The following 79 people‡ received 149 props over the course of 2015 to the meta repository and its related project: @adrian2k7, @akirk, @amylaneio, @ankit-k-gupta, @atimmer, @bandonrandon, @bansod_deven, @boonebgorges, @bordoni, @bowlhat, @brashrebel, @chaselivingston, @clorith, @coffee2code, @colorful-tones, @dd32, @deconf, @djpaul, @drewapicture, @dzver@empireoflight, @erikguimaraes, @folletto, @francescolaffi, @garyj, @helen, @hideokamoto, @hugobaeta, @iandunn, @isaackeyet, @jasonm4563, @jeffgolenski, @jeherve, @jeremyfelt, @joefletcher, @johnbillion, @johnjamesjacoby, @johnnypea, @kovshenin, @kraftbj, @liljimmi, @markoheijnen, @matheusfd @mcguive7, @mdawaffe, @melchoyce, @mercime, @mj12982, @morganestes, @nacin, @nao, @nataliemac, @nathanshubert, @nbachiyski, @netweb, @nickmomrik, @nvwd, @obenland, @obrienlab, @ocean90, @otto42, @pauldewouters, @pento, @pixolin, @rachelbaker, @ramiy, @rclilly, @ryelle, @sa3idho, @samuelsidler, @sergeybiryukov, @siobhan, @stephdau, @tfrommen, @tyxla, @valeriosouza, @yoavf, @zodiac1978, and @_dorsvenabili.

A HUGE thank you to all of the contributors above. I’d especially like to call out @sergeybiryukov and @ramiy, who both made large contributions (21 and 15 props, respectively) to the meta team last year.

As a basis for comparison, here’s a table of our stats in 2014 versus 2015.

2014 2015
Contributors 45 79
Props 113 149
Committers 14 18
Commits 875 1163

(The table above only includes props, committers, and commits for the meta repository, not related projects.)

‡ Note that this total includes contributors to the Meta Environment, Camptix, and Tagregator repositories.


Planning for the 2015 Summit

Hey everyone, the Summit is next week, and there are a few things we need to decide on before we get there.

Wednesday – Unconference Discussions

The first day is unconference-style conversations. We need to think about what topics we’d like to discuss, and post them to the forums.

There’s a few there already:

Those are mostly about vision and policy, though, rather than technical implementation. Are there things that are more specific to Meta that we could discussion on Wednesday? Ideas to improve our workflow and tools? Ways to get more contributors involved, and to make the process easier for them? Are there any projects that are stalled and could use a discussion to jumpstart them? etc. Please post your ideas to the forums and +1 the ones you think should be discussed.

Thursday – Work Day

The second day is for working on projects. We need to create an agenda so that we don’t waste time at the Summit, and also figure out what kind of space we’ll need at the venue.


We’ve got two large blocks of time to divide up and fill however we want: 9:15 am – 12:00 pm, and 1:30 pm – 4:40 pm.

What projects do you want to work on? How much time should be devoted to them?

I’m guessing not everyone will want/need to work on each project, so we can have multiple smaller groups working simultaneously if we want.


There’ll be lots of open space where teams will be working most of the time, but there are also a few small, private rooms that we can reserve slots for, if we think we’ll need them.

Does anyone think we’ll need a small private room? If so, for how many people and for how long?


CC’ing everyone who marked Meta on their Summit registration…

@drewapicture, @otto42, @nacin, @atimmer, @chriscct7, @dd32, @pento, @jenmylo, @joedolson, @johnjamesjacoby, @jorbin, @ryelle, @kovshenin, @obenland, @BrashRebel, @clorith, @markjaquith, @coffee2code, @stephdau@samuelsidler



Weekly i18n Chat Notes – July 21, 2015

At our weekly chat today, we talked about a few things:

  • Forums: The Italian forums were launched! It’s a bit rough around the edges, so there’s a bunch of work still left to do. If anyone is interested in contributing to our bbPress theme just let us know. The more help we can get, the faster we can get the forum theme in shape to launch it to other locales. (Big props to @ocean90 and @medariox!)
  • Translate: Tons of things going on and upcoming here.
    • Themes are being imported. Currently ~1100 out of a total of ~1900 themes. The rest should be imported by next week’s meeting.
    • As part of the import, we’re noticing that quite a few themes have a textdomain that is different than the theme’s slug. Language packs will not support that. Instead, we’ll contact theme authors and work with the theme review team to ensure this won’t happen again. (Also, @Otto42 is adding modifying theme-check so that it checks for this issue.) Some stats on that were shared in Slack, but note that they’re for all themes, not just active themes. The actual numbers will be different.
    • Meanwhile, we need to start considering how to sort and prioritize themes and plugins. This post has some ideas and the comments section is open for more. We should have a list to start on by next week’s meeting. There are some backend changes that @dd32 needs to work up first.
    • One method of prioritizing is favorites. @dd32 is working up changes to the theme directory (and elsewhere) so themes can be favorited. ❤️ We can use theme and plugin favorites to prioritize projects (per-user) on
    • @ocean90 is also testing plugin imports with a few select plugins to ensure the import script works well.
    • Additionally, the language pack script currently exists for plugins and will be modified for themes (thanks @ocean90!).

Most of our focus right now is on language packs and theme/plugin translations. Summarized, here’s the next steps:

  • Finish theme import
  • Enable theme directory syncing (every new/updated theme gets imported)
  • Implement some prioritization (including a side project: adding favorites to themes)
  • Modify the theme directory to support translated theme names/descriptions
  • Enable language packs for themes
  • Start importing top n plugins
  • Enable language packs for top n plugins

Of course, some of these will happen in parallel with others and there are numerous parts to each line item, but we’re making great progress. By next week, we’ll probably be able to cross off an item or two. 👏

#forums, #i18n, #l10n, #meeting-notes, #plugins, #rosetta, #themes

HTTPS on Update

Hey all, just a brief update on the status of HTTPS for sites.

We’ve enabled HTTPS on all WordCamp sites and rewrote the URLs, even though we’re not forcing it yet. The majority of the traffic will likely hit HTTPS from now on, and we should catch and fix all (or at least most) mixed content warnings before forcing it. Most of these are probably related to embeds from Flickr, Typekit and other third-party services.

So if while browsing any site you’ve stumbled upon a page with mixed content warnings, please leave a comment with the URL. You can identify these by the “broken” lock in your browser address bar, or the shield icon which prevents execution of unsafe JavaScript:

Screenshot 1430407541 2X


Update: We’re now forcing HTTPS on domains that support it.


Theme Directory Launch Checklist

Tomorrow we’re going live with the new Directory! We’ll start going through the checklist February 25th 2015 1700 UTC.

  • Disable uploads on bbpress themes. (@Otto42)
  • Disable themes.trac sync process. (@Otto42)
  • Migrate themes to WP.
  • Switch over Directory to not use API.
  • Test themesnew API.
  • Test themesnew downloads.
  • Switch over downloads and API scripts.
  • Switch over URLs and redirect.
  • Switch over review sync script.
  • Enable theme uploads in directory plugin.
  • Notify Admins the ban has been lifted.

Disable uploads on bbpress themes.
Replace the uploader page with an “uploads temporarily offline” message.

Disable themes.trac sync process.

  • Announce launch in WPTRT meeting.
  • Commit an early return to sync-theme-review-results.php.
  • Inform Admins directly: No setting themes live between February 25th 2015 1600 UTC and the new directory is live.
  • Channel notification in #themereview.

Migrate themes to WP.
Run migration script in /bin/themes/

Switch over Directory to not use API.

  • Commit
  • Test on /themesnew.

Test themesnew API.

  • Switch to use themesnew.php on sandbox.
  • Test /wp-admin/theme-install.php locally.

Test themesnew downloads.

  • Switch to use themesnew.php on sandbox.
  • Test downloads locally and on /themesnew.

Up until here, no real damage is done, marks the last chance to postpone the launch.

Switch over downloads and API scripts.
mv index.php old-api.php
mv themesnew.php index.php

Switch over URLs and redirect.

  • Commit /themes removal.
  • Notify @seanosh about making the switch.
  • Commit mu-plugins commercial change.
  • Test the hell out of /themes.

Switch over review sync script.
mv sync-theme-review-results.php sync-theme-review-results-old.php
mv sync-theme-review-results-themesnew.php sync-theme-review-results.php

Enable theme uploads in directory plugin.
Remove custom message and uncomment upload handler.

#theme-directory, #themes-api

Theme Directory Update 2/23

Last week I fixed most of the fixable tickets for the Theme Directory, switched to using WP_Query instead of the API for server-side rendering of themes, updated the WordPress-based Themes API with changes from the bbpress-based one, and finished the import script for the new directory. @otto42 committed the new reviews code today, so we should be able to get those integrated today or tomorrow.

Which means that we’re going to launch on Wednesday or Thursday!

There is still a lot more work to be done, but everything that’s remaining can be added, changed, or improved with the new directory active. Most importantly we want to make it available to language sites, so that we have an internationalized theme directory, and there will be more to be done around that.


Theme Directory Update 2/12

The two major parts of my week were fixing bug reports that came in after my post on make/themes, and getting started with adopting @melchoyce‘s modal design (Modal == modal + single). With the exception of reviews and support, I tried to stick as close as possible to the mockup. While I’m obviously not done yet, a first pass however is live (including some mobile styles).

@otto42 made progress on the rating integration, working on a solution that lets us use existing ratings/review with limited migration efforts. He projected to be done with that around Wednesday next week.

Next week I’ll be focussing on switching the server-side rendering of themes from using the API to using WP_Query directly. Towards the end of the week I’d also like to have ratings/reviews integrated and my work on the modal finished.


Theme Directory Update 2/5

A very busy week with lots of improvements! These are some previously mentioned TODOs that I was able to scratch off the list:

  • Rewrote the Theme API’s update endpoint to work with WordPress.
  • Made synchronizing theme review results a cron job.
  • Made sure uploaded theme files are always deleted, no matter the outcome.
  • Added navigational links to Upload and Commercial pages (r1211).

Additionally, I removed the Admin approval workflow form the Directory plugin, since this is handled entirely on Themes Trac.

I also opened the floor to bug reports from the community. After doing that at last week’s update here with limited success, I added another call for volunteers on make/themes which resulted in 15 tickets so far.

Next week I’ll be working though the tickets, as well as @melchoyce‘s Directory mockups, and @otto42 is still working on theme reviews/ratings.

#theme-directory, #themes-api

Theme Directory Update 1/30

It’s been two weeks since my last update on the theme directory. I had a chance to get my downloader and Themes API code reviewed by @dd32, but between attending an Automattic meetup, a WordCamp, and taking a couple of days off, it was hard to continue the pace of the weeks prior.

  • @otto42 started working on migrating theme reviews from bbpress to WordPress.
  • Chatted with @samuelsidler and @otto42 about how we want to make the switch from old to new.
  • I tracked down a bug with jumping modal contents on small screens.
  • Added smooth scrolling for iOS devices in the theme modal.
  • Spent a day trying to figure out a way how I can prevent background scrolling on iOS when the theme modal is open.

If anyone has a fix for the last mentioned bug, please let me know. My CSS and JS foo is failing me on this one, I have not idea how to fix it.

I think the directory (with the exception of the theme uploader) is to a point where it makes sense to open it up to bug reports. If you find anything wonky and out of the ordinary, please feel free to file a ticket over at meta.trac, and assign it to the Theme Directory component. Thanks so much for your help!


Theme Repository Theme

A while back, @otto42 started to work on bringing the Theme Directory over to WordPress (I know that sounds weird, but currently it runs on an old version of bbpress). The idea is to split functionality and appearance, making the Repopackage custom post type and the uploader a plugin, and let a theme handle the display of themes.

With the help of Matias Ventura, I continued Otto’s work on the theme part of things, taking the existing theme install experience from the admin and making it work on the front-end of the theme. I’m currently in the process of adding server output, so the repository stays crawl-able for search engines. Steps to take going forward include determining what features to take over from the existing theme repository (as the theme install UI is a lot simpler), adding these things to the API, and figuring out how single theme views should look like vs. detail views on index.
I haven’t committed any improvements to meta.trac so far as they are dependent on #30116, but the plan is to make that process a little bit more public. Once the core improvements are in, I’ll make sure to push my updates. Everything will be trac’ed in #745-meta so you can follow along there.

Yesterday @coffee2code and I chatted about how we can work together on the project as well. He’ll look at the difference between the current theme repository and the in-dash experience, to determine what to keep and what to drop. Scott might also be able to pitch in on the plugin side at a later point in time, where we still need to make the theme uploader work.

We’d like to have the new experience ready to go before the end of the year. For that to happen we might decide to take a more iterative approach, go with what the in-dash experience has to offer right now, and do a v2 where we port back features from the existing theme repository. This part has not been determined so far.