Plugin directory chat on 2016-10-19

We’ll have a quick chat about the #plugin-directory at 2016-10-20 00:00 UTC in #meta.

No fixed agenda, just some brief updates.

Plugin directory chat on 2016-10-12

The weekly plugin directory chat will be at 2016-10-13 00:00 UTC, in #meta on Slack.

This week we’ll chat about user testing goals, and the new tickets and progress since the last chat.


Plugin directory chat on 2016-10-05

The next plugin directory chat will be at 2016-10-06 00:00 UTC, in #meta on Slack. Here’s a very broad agenda for now:

  • Review the current milestone.
  • Plan the next milestone.

Suggestions for specific agenda items are welcome – we have plenty of time before then. See you in chat.


Support Forums Upgrade Status (2016/09/05):

Over the weekend, I did the following:

  • Correlated existing ratings with the new post id and updated the ratings table. This script took about twice as long as expected to run, but all star ratings now have the correct post id in the ratings table.
  • Tested ratings code changes that use the new post id.
  • Imported all user favorites.
  • Forum optimization. I’m still figuring out what queries are inefficient and patching around those. While not a visible feature, this should lead to a better experience for everyone.

I am currently running an import for user subscriptions to open topics. The information for subscriptions to closed topics still exists, but importing this is a lower priority since by their nature, these topics will not have any more activity. This *will not* overwrite but will add old topic subscriptions (with the new topic id) to any that a user has added since the move.

Subscription import code must be tested and re-tested (and re-re-tested) before running an import; adding the wrong subscriptions would potentially spam hundreds of thousands of users with unwanted updates to topics.

Top priorities for today are:

  • Adding stars and ratings to existing templates (@jmdodd)
  • Opening ratings for new topics/ratings. (@jmdodd)
  • Adding the ability to edit ratings. (@jmdodd)
  • Importing user subscriptions to topics. (@jmdodd)
  • Importing user subscriptions to topic tags. Yes, still running. (@jmdodd)
  • Importing user subscriptions to plugins. Yes, still running. (@jmdodd)
  • Fixing RSS feeds. First pass in r3972-meta. (@jmdodd)

Next priorities will be:

  • Activating plugin/theme subscriptions. (@jmdodd)
  • Ability to resolve topics for plugin/theme authors. (@jmdodd)
  • Plugin author/committer support views.
  • Plugin/theme stickies (this should also fix the unpinned topics in plugin forums — that data was moved, it just isn’t being used). (@jmdodd)
  • Fixing plugin-directory and theme-directory review connections. (@coffee2code)
  • Plugin/theme author/contributor badges. (@coffee2code)


  • Fix profile fave/sub/topics/replies management url. (@jmdodd)
  • Prevent users from changing the forum of theme/plugin topics. (@jmdodd)

Plugin Directory Chat Agenda

Agenda for this week’s meeting on September 1, 2016 at 00:00 UTC:

We’ll be meeting in #meta on Slack. If you have anything to propose to add to the agenda, please leave a comment below.

See you in the chat!


Initial Analysis of Plugin Search Logs

In preparing to do some relevancy testing of the new plugin search here is some data analysis of the search logs from the existing plugin search. This data and the search logs should help us improve the search query more methodically, but it may also be of use when thinking about the overall search user experience.

Aggregated Stats

  • 53 days of aggregated, anonymized search records with 4,952,788 total searches and 805,488 unique searches. This excludes API searches(*)
  • Almost 100k searches a day on average.
  • Focusing on en_US: 499,489 unique searches from 3,929,003 total searches
  • Top 100 en_US terms: 944,243 searches (24% of the total)
  • Top 1000 en_US terms: 1,834,942 total searches (46.7% of the total)
  • Bottom 400k en_US terms: 479,604 searches (12.2% of total)
  • 320,390 en_US terms occurred once in 53 days (8.1% of total)
  • 472,500 en_US terms occurred ten times or less 839,123 total (21% of total)
  • 492,500 en_US terms occur less than once a day 1271786 total (32% of total)
  • 245,151 of 472,500 search queries pass aspell (though aspell is limited, there are lots of fun spelling mistakes “composor”, “conditon”, “taxanomy”, “produkt”)
  • Here is a random set of queries that only occurred once in the 53 days to get a sense of what the long tail of queries looks like.

Non-English data is a little hard to draw conclusions from because there aren’t currently any search indices for non-English languages. So the top searches in other languages look about the same as English. About 20% of all searches are not in English. Here are the search counts by language. This likely undercounts the demand since search in non-English languages almost certainly don’t work well.

(*) A very large volume of searches come through the API, but a lot of these appear to be bots or direct lookups of an exact plugin name rather than organic search results. These should be looked at separately and should maybe not use the same search query.

Some Takeaways from the Data

Hopefully from this data it is clear why we can’t just focus on the top 100 queries. Doing so ignores probably 75% of our users. Even top 1000 is less than 50% of all searches. So in testing out our search quality at the very least we should look at top 1000. Ideally we’ll also do some random sampling of the other 50% of searches and find ways to address spelling mistakes and other edge cases that affect a very large percentage of users. Similarly, adding better support for non-English languages could help as many users as improving the top 100 queries.


Support Forum Maintenance Window

The Support Forums will be undergoing scheduled maintenance beginning at 01 September 2016 14:00 UTC. During this window, they will be read-only; support will still be available via IRC.

Topics older than two months have been marked as closed so that they can be imported prior to the window. You will still be able to create new topics and reply to recent topics until the window begins.

All public topics and replies are being moved over to bbPress 2. Because ratings and reviews are used by both the plugin and theme directories, they will be moved over after the maintenance window so that all of the code can be updated. This means that you will not be able to rate or review a plugin or theme until 05 September 2016 to allow time for code updates in all of the relevant directories.

The maintenance window will end at 01 September 2016 20:00 UTC.


Plugin Directory Chat Summary (8/25)

This is a summary of the Plugin Directory chat from August 25. (Slack log)

Attendees: @mapk, @webdevmattcrom, @kevinwhoffman, @Ipstenu, @diddledan, @jcastaneda, @hugobaeta, @obenland


  • Status of M7
    Three tickets have been closed so far. #1828 has a mockup now, as discussed last week, and already got some feedback on it. It should be a good base to test and iterate on. @ocean90 is on well deserved vacation after 4.6 so #1691 is still on standby, while @dd32 was at a conference and probably didn’t have much time to look at #1579. #1839 has a final version of the email, so @Otto42 should be able to close that fairly soon.

    One of the three fixed tickets was #1810, that significantly improves the display of the FAQ section. Additional suggestions voiced in the chat were making questions linkable and not using all caps on them. For more feedback please comment on the ticket so @mapk has a chance to respond to it.

  • Review community feedback
    We decided to postpone discussions of the remaining non-urgent items until @mapk and @dd32 can participate again and give their input next week.
  • Open Floor
    @webdevmattcrom created a mockup for plugin cards on index/archive pages. Some of the things that were discussed was potentially removing the description switch position with the new information to make it more cohesive, different view points about whether the icons provide enough context, and how more context can be added.

The next meeting is on Thursday September 1, 00:00 UTC.


Plugin Directory Chat Agenda

Agenda for this week’s meeting on August 25, 2016 at 00:00 UTC:

  • Status update for Milestone 7, due next week.
  • Review remaining feedback items from Open Beta.
  • Open Floor.

We’ll be meeting in #meta on Slack.

If you have anything to propose to add to the agenda, please leave a comment below.

See you in the chat!


Support Forum Progress Report

I began backfilling all valid closed support forum topics and replies last Thursday. The current rate of about 500 topics/minute includes all topic tags, replies, and subscription information and discards spam and deleted topics. I’ve outlined the upgrade path with a tentative timeline for this week below.

Pre-maintenance window (this week):

  • Import all valid topics and replies from more than a year ago. Topics are considered valid if they are public, not a plugin or theme review (more on that later), and are not spam or trash. These are all topics that are closed and have no activity. I’m currently at offset 2,197,000 of 2,400,000 of the desired topic set. (@jmdodd)
  • Post a small notification message regarding the maintenance window once it is scheduled at the top of all pages in the support forum. (@jmdodd)

Switch over forum registration to be handled on This will be done after the forum upgrade; “one catastrophe at a time”.

  • Change “topic closed” plugin date to two months rather than one year. Any topics older than two months will be considered closed in bbPress 1. This allows us to import much more of the existing database rather than relying on the maintenance window for all of the import. These topics will still be open once we switch over to bbPress 2. (@jmdodd)
  • Import the last ten months of topics from offset 2,400,000 to a set topic ID outside of the two month window. (@jmdodd)

Maintenance window (about 6 hours, very tentatively set for Friday, 26 August 2016):

  • Close the bbPress 1 forums. They will still be searchable, and users can browse them, but they will not be available for posting new topics or replies. (@jmdodd)
  • Run the import for valid topics and replies from the last two months. Do not include reviews. (@jmdodd)
  • Testing shakedown pre-nginx; make sure that registration/login/posting/etc. are all functional. (@jmdodd)
  • Update the forum site URL. (@jmdodd)
  • Deploy nginx rewrites for the support forums only. Rosetta forums still need nginx rewrites, but in the interests of restoring access to the support forum and not complicating the maintenance window, those can be done in a separate action. (@jmdodd)
  • Testing shakedown post-nginx; make sure that registration/login/posting/etc. are all functional. (@jmdodd)
  • Open all bbPress 2 forums except for reviews. (@jmdodd)

Post-maintenance window (at least 12 hours, hopefully on Saturday, 27 August 2016):

  • User role backfill for any users that are not the default bbPress user role. (@jmdodd)
  • Import all 300k reviews into bbPress 2. Reviews are editable by the poster and involve an external table that holds the actual rating data; the external table will need to be scanned and matched with the new post id of the imported topic. Reviews are also far more dense than normal topics; we gain some efficiency because most reviews have no replies, but no reviews will be discarded. The plugin and theme directories rely on the review data for their current designs; their queries will continue to work from stale pre-maintenance-window data until they are updated to use the new bbPress 2 tables. Doing the review import after the main switchover will allow us to deploy query updates against the plugin and theme directory code as well as the support forum to avoid errors, and reduce the time of the maintenance window from needing to import 360k topics to only needing to guarantee import of about 60k topics. (@jmdodd)
  • Import user favorites and topic, topic tag, and plugin subscriptions. Users will potentially miss some subscription emails during this period, but this should not be updated until all topics are available in the new tables. Plugin subscriptions will be the last data retrieved from the old bbPress 1 tables, as they are unrelated to any topics and will need to be crawled separately on a term-by-term basis.