Dev Chat Summary, November 5th


  • BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1
  • Feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. merge window


  • Extend the feature plugin merge window to Friday, or later.
  • Tag Beta 1 on Friday, or later.
  • Do a scrub of enhancement tickets this week, particularly 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. tickets. 1600 UTC tomorrow (Nov. 6) was suggested.
  • Hook recursion, #17817, will be discussed further after beta 1 with the aim of having it ready for early 4.2.
  • Pending the final call of @ johnbillion, the full UIUI User interface for the session manager will come later (and will be moved into a 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 in the plugin repository). @jorbin will work up a patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. that adds a “Sign out everywhere else” button along with killing all other sessions on password change and capturing data for a future UI.

Uncertainties, Ambiguities, Do Betters

  • Shiny Updates may be punted in whole or in part. The necessary folks are preoccupied.
  • The Session Manager UI was debated and will likely change for 4.1.
  • “We need guidelines for how we handle feature plugins. It’s been really haphazard, and it has affected our ability to get the features in front of a lot of people.”
  • There is skepticism that merge and Beta 1 will happen this week.


  • @markjaquith will do a merge request post for Focus on makemake A collection of P2 blogs at, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility)./coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress..
  • @jorbin will work up a patch that adds a “Sign out everywhere else” button along with killing all other sessions on password change and capturing data for a future UI.
  • @nacin will leave feedback on #29395
  • @drew will look at #21483

Links Mentioned!defect+(bug)&milestone=4.1&col=id&col=summary&col=status&col=owner&col=type&col=priority&col=milestone&order=priority


drew [15:10]
Seems like there’s more than a few Customizer-related enhancements. @celloexpressions: ya’ll have an idea about what could be close and what might need to be punted?

celloexpressions [15:10]
Most of the customizer stuff has been ready for/waiting for commit or further feedback for a while

celloexpressions [15:11]
A couple aren’t quite there, but we want to get in if we can because they enhance Twenty Fifteen

Hook Recursion

#17817: do_action/apply_filters/etc. recursion on same filterFilter Filters are one of the two types of Hooks They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. kills underlying call

drew [15:18]
This is quite likely 4.2-early, but could use eyes-on for unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. coverage and regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. testing,

jbrinley [15:19]
To _briefly_ answer (as well as I can), the three questions in the agenda:

jbrinley [15:19]
Is there enough unit test coverage?

I don’t know.

jbrinley [15:19]
Does it break plugins which interact with $wp_filter and $wp_actions directly (eg accessing the nested arrays)?

The patch doesn’t touch $wp_actions. $merged_filters is removed. The $wp_filter array will contain WP_Hook objects instead of nested arrays. Those objects can still be accessed as an array, albeit with some of the quirks that come with the ArrayAccess interface (e.g., you can’t indirectly set elements).

Does it “fix” any existing behavior which could be seen as a regression?

Currently, let’s say you have a callback at priority 10. In that, you set another callback with priority 1. The latter ends up running after the former. This patch would change that. Similarly, if you have something at priority 10 and something at priority 11, but the priority 10 callback end up calling the hook recursively, the priority 11 callback won’t run for the outer loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. This patch would change that.

nacin [15:20]
As this is definitely not 4.1 (sorry @jbrinley! though I know you know that), can we sit on this until after beta is out and then chat more later this month? This is a good briefing of things as it stands, and I hope a few of us can pick it up soon, but there are lots of other things on everyone’s plate at the moment.

drew [15:21]
yep, sounds good @nacin


drew [15:23]
@mark: Any update on posting the merge request update on make/core?

mark [15:23]
Got sidetracked yesterday. Will do that now.

Since it’s such a visual thing, I’m just gonna make a video that shows it off and talks through some of the decisions.

drew [15:24]
Great. Sounds like the patch is looking pretty good too.

azaozz [15:25]
yes, patch is good. May need some more around interactions with the old DFW

boren [15:25]
Has it been flow tested on mobile lately, to make sure it doesn’t break anything?

azaozz [15:26]
New DFW is pretty much disabled on mobile because of the screen size

janneke [15:26]
azaozz: Right, I work on that. Also maybe move the button out.

janneke [15:26]
Yeah, it’s disabled…

psoluch [15:26]
joined #core

ginsterbusch [15:27]
@drew + @mark Hope it doesnt break 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). (

janneke [15:27]
Don’t think so, but please test. :simple_smile:

boren [15:28]
A visual record of a mobile flow would demonstrate that it is indeed disabled for mobile.

mark [15:28]
We addressed keyboard 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). ( But please do advise if we missed something.

azaozz [15:28]
It doesn’t change anything for accessibility.

mark [15:28]
We addressed keyboard accessibility. But please do advise if we missed something.

azaozz [15:28]
It doesn’t change anything for accessibility.

azaozz [15:28]
For the UI outside of the editor

boren [15:29]
A feature plugin shouldn’t break mobile or accessibility the moment it lands.

boren [15:30]
I’m not too worried about mobile with Focus, but we don’t have a good record here and I’d like to improve it.

azaozz [15:31]
Ryan, right, DFW v2.0 is not loaded on mobile and on old browsers, IE < 9 (edited)

gokejnr [15:31]
joined #core

boren [15:31]
Someone tell me that with a visual record.

boren [15:31]

mark [15:31]
We just need to verify that for sure. Yup.

mark [15:32]
I learned you can tether an iPhone and record video on its screen, so I’ll try that.

boren [15:32]
Screenshots would probably be good enough for mobile in this case, but cool.

ginsterbusch [15:33]
@mark a11y is not just about keyboard. its also eg. about folks not being able to quickly shift *their* focus (viewing field) to something else. and reading through the ticketticket Created for both bug reports and feature development on the bug tracker. doesnt really indicate its an automated or a “click this button to”-feature right now.

janneke [15:33]
The button still needs to be removed I think, but I mentioned before I’ll redo that. :simple_smile:

Sessions UI

#30264: Users should have a UI for managing sessions

jorbin [15:41]
For #30264@johnbillion is supposed to be working up a patch. I’ll check with him and if he needs help, will take over. Otherwise I think the only piece we are waiting on is the APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. 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. that @nacin is still working on.

jorbin [15:42]
User testing of the feature at WCSF only identified some enhancments we can do to make it more mobile friendly, otherwise it was very well received. Note that it still works fine, but the experience on mobile can be made better (edited)

drew [15:43]
@jorbin: Were there still UI concerns with the single vs many sessions problem?

boren [15:43]
I know it is a small feature, but this thing wasn’t really a feature plugin. It’s not in the plugin dir, the slug collides with an existing plugin, and hearing “the experience on mobile can be made better” is a bit aggravating.

jorbin [15:44]
Not that I know of, but if there are it seems like something we can iron out in beta

boren [15:44]
Iron it out before merge.

boren [15:45]
Otherwise these aren’t feature plugins, they’re blobs of code on 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 are merged without criteria.

nacin [15:45]
I’m still kind of tempted to bring it in as a single “Sign out of other sessions” button with no extra UI for 4.1, and continue to play with it for 4.2.

nacin [15:45]
Identifying browsers and locations is no small thing.

jorbin [15:46]
I hate that idea. I think it adds a button without any context for people to understand “why”

mark [15:46]
Context could be added.

jorbin [15:46]
The context is the other sessions

nacin [15:46]
SlackSlack Slack is a Collaborative Group Chat Platform The WordPress community has its own Slack Channel at

  • Sign out all other sessions *

Lost your phone? Left yourself logged in on a public computer? Need a way to sign out everywhere except your current browser? This is for you.
[ Sign out all other sessions ]

mark [15:46]
Was going to point to Slack, yeah.

drew [15:47]
That’s also not say that you can’t just specify the number of other session without spitting out the fine-grained details.

mark [15:47]
And the context could additionally be “You are signed into this site in %d other locations.”

drew [15:47]

chriscct7 [15:47]
Yeah I like that idea

drew [15:48]
Either way, I agree with @nacin that continuing to flesh out the UI/plugin for a future releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. might be the smartest way to go. (edited)

nacin [15:48]
I think an actual number is possibly more confusing, because we can’t tell them context, and would consider just showing the Slack-like UI if it’s > 1.

jorbin [15:48]
That seems confusing to me. %d doesn’t really help me as nacin is pointing out

jorbin [15:48]
ok, so is the decision that we puntpunt Contributors sometimes use the verb "punt" when talking about a ticket. This means it is being pushed out to a future release. This typically occurs for lower priority tickets near the end of the release cycle that don't "make the cut." In this is colloquial usage of the word, it means to delay or equivocate. (It also describes a play in American football where a team essentially passes up on an opportunity, hoping to put themselves in a better position later to try again.)?

nacin [15:49]
I’m not advocating punting necessarily, I just saw an opening that would allow us to provide immediate user benefit and try to further improve the overall UXUX User experience and data we can provide.

mattheweppelsheimer [15:49]
+1 to a Slack-like explanation without %d sessions, in 4.1

drew [15:49]
I think punt is still up to @johnbillion, but as it is now, that would be my recommendation (in terms of the detailed UI)

georgestephanis [15:49]
I’d like to see some user testing sessions on the ux of it to see if / how much it is confusing to normal users.

stephdau [15:49]
on the +1 side too. Seems the friendliest, while addressing an immediate need.

nacin [15:50]
Also, I’d suggest: “If you think you were compromised, you should change your password. This will also sign you out everywhere.” (And on password change, I don’t know if we clear out all of their sessions, but we should, since they’re dead at that point.)

jorbin [15:50]
If we go that route, we should start capturing the UA string and other data in 4.1 so that we have less “unknowns” displayed

drew [15:50]
@jorbin: Can you possibly work on a patch for the alternate approach?

nacin [15:51]
As a replacement for %d, something like this, perhaps something like this, so as not to completely terrify them: `<small>You are signed into this site in %d other locations. This could be a different browser on your computer, your phone, or another computer.</small>”

nacin [15:51]
I’m not against capturing more data now.

boren [15:51]
This is the correct repo, yes?

Contribute to wp-session-manager development by creating an account on GitHub.

drew [15:51]
@boren yes

chriscct7 [15:51]
boren: yes

boren [15:51]
Last updated 23 days ago?

jorbin [15:51]
I can work up the alternate patch based on this discussion

georgestephanis [15:51]
@nacin: Or the same browser that had its cookies purged, even.

boren [15:51]
Not in the plugin repo.

boren [15:51]
Why are we even talking about it?

chriscct7 [15:51]
name conflictconflict A conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved. on it

chriscct7 [15:51]
its a feature plugin for 4.1

georgestephanis [15:51]
So let’s give it a different slug.

georgestephanis [15:52]
+lots to getting these things into the repo as early as possible.

georgestephanis [15:52]
Better discoverability for feature plugins would be super-handy.

mark [15:53]
We need guidelines for how we handle feature plugins. It’s been really haphazard, and it has affected our ability to get the features in front of a lot of people.

jorbin [15:55]
@johnbillion will need to make the final call, but it sounds like the decision is: Full UI will come later (and will be moved into a plugin in the plugin repositroy), I will work up a patch that adds a “Sign out everywhere else” button along with killing all other sessions on password change and capturing data for a future UI. Any objections to this plan?

sabreuse [15:55]
I’ve thought about session-by-session, and I agree that it feels plugin-like to me.

sabreuse [15:55]
But +1 for an easy “sign me out everywhere else”

drew [15:55]
@jorbin I think that sounds reasonable. If it’s not where we need it to be by Friday, we can wait.

mark [15:55]
If a feature plugin effort just results in a well-crafted plugin, that’s not a terrible outcome.

stephdau [15:55]
@mark @georgestephanis : we could at least use a standard prefix, to “ensure” slug uniqueness: wpf- or something

Shiny Updates

Smooth installation and updating of plugins and themes

drew [15:57]
It’s my understanding the decision was made at WCSF to go with shiny installs and leave shiny updates for later

nacin [15:57]
Correct. Updates can already be done in bulk, while installs cannot.
However, all of the people most familiar with the updates code are tied up right now. Beta 1 is unlikely for what we want.

It’s possible some stuff can be aligned by next week, and that’s up to John if he wants to accept some discrete changes.

drew [15:58]
@nacin: OK. So are you thinking punt for the whole thing?

nacin [15:59]
Right now, I’m not thinking about it. I may have a better idea come Friday.

FS Credentials Modal

#29820: Smooth installation and updating of plugins and themes

#29395: Site Language: Install translations on the fly

nacin [16:01]
FS credentials is tied into updates/installs more than language.

nacin [16:02]
While it’s nice-to-have for language, if language installs can only happen with ‘direct’, I’m not going to cry.

drew [16:02]
Can you leave some feedback to that effect on 29395?

nacin [16:05]
Sure. @ocean90 is it already good to land, otherwise?

ocean90 [16:06]
If we can ignore the FS credentials, yes

TaxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. Roadmap

#5809: Updating a term in one taxonomy affects the term in every taxonomy

boone [16:09]
I also created some new tickets and dug up some oldies to reflect next steps in the extended Taxonomy Journey

drew [16:09]
@boone: Is there a specific report where people can follow progress on that roadmap?

drew [16:09]16:09
Or just the Taxonomy component?

boone [16:09]
No. Taxonomy component is best for now.
In the next week I’ll write up a make/core post with some updates and some thoughts about the future

boone [16:10]
that’ll have links to relevant tickets

nacin [16:11]
some of the stuff that went into this had to do with properly handling DB replication lag and such, just to give you an idea.

mark [16:11]
Yes, this is the equivalent of us building a rocket to go to McDonalds and then disassembling it while in flight.

Twenty Fifteen

drew [16:14]
Apparently we’re looking pretty good as we approach beta.

iandstewart [16:14]
It’s looking pretty good
we have one milestoned bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. with expanding widgets that we’re still trying to figure out
and there are some template tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) and customizer enhancements that’d be nice to have solid
but it’s in good shape
@obenland: did you want to chime in on template tags?

obenland [16:16]
Sure. So there are only very few pieces left after a very productive few days at wcsf

obenland [16:17]
One is #29890 which @helen is looking at

#29890: Make menu descriptions available to be displayed on the front-end

obenland [16:17]
Then we have #29808 with two proposed patches

#29808: Post/paging navigation template tags

obenland [16:18] fixing some some bugs and simplifying bits, as well as changing the screen reader text to an h2 as requested by the a11y team (edited)

obenland [16:18]
And which would add parity between post and comment navigation template tags (edited)
Between 29808.9.diff and 29890 we could remove two callbacks from Twenty Fifteen
and have a nice set of theme api improvements in 4.1

iandstewart [16:22]
#29988 would also be a nice improvement that depends on a few other patches outside of the theme (edited)

#29988: Twenty Fifteen: Use JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors./postMessage to update the color scheme instead of triggering a page refresh

ocean90 [16:25]
For the record, 29988.patch will not land in. We have new tickets for this where some are already fixed. But still needs some work. Or a review by me. (edited)

westonruter [16:25]
That’s right. The existing patch on 29988 is a standalone proof of concept.

Bug Scrubs

drew [16:27]
We had kind of lackluster effort on the Friday bug scrubs the last couple of weeks due to WCSF/summit stuff.

As discussed a little bit ago, I’d like to do an enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. scrub tomorrow morning-ish to see if we can’t clear out some of those outstanding tickets. Any takers for probably 11:00 am EST tomorrow in here?

drew [16:29]
I guess 16:00 UTC

Open Mic

kraft [16:32]
Would still love to see feedback on this UI adjustment for default categories: :simple_smile:

#26268: Add UI to CategoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. page to indicate default category

drew [16:32]
I think @helen had some feedback on 26268 but she had to go. I’m not convinced that’s ready for primetime in terms of flow.

chriscct7 [16:34]
If a core committer has a couple minutes, got a running list of tickets that are ready to be committed here:

celloexpressions [16:35]
#21483 would also benefit from feedback. In addition to UI and code, could use docs help from @drew, has an audio/video issue for @wonderboymusic

#21483: Refactor Customizer Upload, Image, and Background Image controls to leverage the media library/modal

drew [16:37]
@celloexpressions: OK, I can take a look.