Dev Chat Summary, February 4th


Chat Archive

Decisions, Announcements

  • @drew will lead a NUX working group during the 4.2 cycle. The first chat will be held in #coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.-flow next Tuesday at 19:00UTC / 2:00 pm EST.
  • @ryan (hey, that’s me) will attempt to be UXUX User experience lead for 2015. 🙂


Links Mentioned

Screen Shot

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. Theme Switcher

drew [15:07]

Nick isn’t going to be here today or really this week, but I have an update he sent me last night:

“Lot’s of general bugfixes and fixes for the comprehensive 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). ( feedback we got from the accessibility team. A couple more accessibility things pending for when I get back, but the rest of this week is basically our last chance for pre-merge testing and feedback. I’ve asked @mark to try to do a full code review of the 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 this week as well so that issues can be fixed this weekend and early next week. It shouldn’t take _too_ much time to come up with a merge 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. early next week and the goal is to have a first-pass core merge pass done by the beginning of the merge window to allow for any further iterations.”

We’re heading into the start of feature merge window next week for those who have been following along with the release schedule.

mark [15:08]
I’ll gather my feedback while he’s away.

drew [15:09]
Works for me.

Press This

michaelarestad [15:09]
Press This update: TinyMCE is in. oEmbed is in. Bunches of bugs squashed. Unused code is being removed. An improved install flow is being worked on. (edited)

drew [15:10]
@michaelarestad: Are there any specific areas you could use some help on between now and when the merge window opens next week?

michaelarestad [15:11]
Not that I can think of. We’re on track to make the deadline.

drew [15:11]

michaelarestad [15:11]
Unless you all want to install and mess with it.

drew [15:11]
I think *everyone* should install and mess with it :simple_smile:

danielbachhuber [15:12]
will it be replacing old Press This entirely, or will the two co-exist?

michaelarestad [15:12]
The plan is to replace the old one.

mark [15:12]
So the old bookmarklets will continue to work.

mark [15:12]
(with the new code)

danielbachhuber [15:12]
are you planning for feature parity?

michaelarestad [15:12]
I think @stephdau did some magic to make them work or encourage an update.

pento [15:13]
@michaelarestad: Where would you like feedback?

michaelarestad [15:13]
@pento or in #feature-pressthis (edited)

pento [15:13]

sam [15:14]
Has it had an 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). ( review yet?

stephdau [15:14]
@mark: yup, I wrote the new one to also handle the previous core query string arguments

michaelarestad [15:14]
> are you planning for feature parity?

Not total feature parity. (edited)

stephdau [15:14]
and it will suggest you upgrade to the new version of the bookmarklet

danielbachhuber [15:14]
@michaelarestad: it would be nice to communicate, in advance, which features you’re planning to drop. I’m a regular old skool Press This user, and I can’t use the new one yet

michaelarestad [15:15]
At least not for the 4.2.

michaelarestad [15:15]
Basically, all the metaboxes will be dropped.

michaelarestad [15:15]

nacin [15:15]
@danielbachhuber: why can’t you use the new one yet? In terms of testing it?

danielbachhuber [15:15]
it doesn’t work for my workflow

danielbachhuber [15:15]
I’ve opened some tickets

danielbachhuber [15:15]
and am now defaulting to it

danielbachhuber [15:16]
we don’t need to discuss in-depth here

danielbachhuber [15:16]
I’d just suggest we be up-front about it, so it doesn’t become another DFW

drew [15:17]
@michaelarestad: Your next feature chat is Thursday, correct?

nacin [15:17]
(I love the idea of simplifying features and dropping sub-features, fwiw. “Another DFW” is an excellent thing in my mind.)

azaozz [15:17]
Yeah, best to discuss in the PT chat tomorrow.

michaelarestad [15:17]

michaelarestad [15:17]
@danielbachhuber: Mind if I pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” you and ask you a few questions later?

danielbachhuber [15:17]

stephdau [15:18]
@danielbachhuber: “feature parity”, “my workflow”, etc are quite relative term when rethinking a product from scratch. Give @michaelarestad more details, it’ll be helpful.

azaozz [15:18]
(Or just head on to #feature-pressthis :simple_smile:

stephdau [15:18]
and thx for the GH issues, we’re tackling them

michaelarestad [15:18]
Or that ^

drew [15:18]
Yeah, I’d say get your questions together and join the feature chat tomorrow in #feature-pressthis. 17:00 UTC I believe.

michaelarestad [15:18]

Shiny Updates

pento [15:19]
The current status of #29820 is that @eric has done some great work cleaning up the current patch, there are a few more bits to take care of, then it can be committed. After that, it’s a free for all.

WordPress TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. [15:19]
#29820: Smooth installation and updating of plugins and themes

pento [15:19]
@lgladdy has started experimenting with post-install actions, which are looking promising. We need to discuss (in the ticketticket Created for both bug reports and feature development on the bug tracker.) how it’ll be handled for the wide range of plugins that have post-install configuration to do. Input from the plugins who have post-install config (the bbPressbbPress Free, open source software built on top of WordPress for easily creating forums on sites., BuddyPress and Jetpack to start with, perhaps) would be helpful.

pento [15:19]
I’ll post a TODO list to the ticket once the commit happens. All things going swimmingly, that’ll be today. Things going poorly, tomorrow. We’ll be doing a bit of trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision. dev, but it shouldn’t be too terrible.

helen [15:20]
trunk dev sounds like a fine choice for this work.

boone [15:20]
@pento: Feel free to ping me directly about BuddyPress

jjj [15:20]

lgladdy [15:20]
Could someone who looks after the plugin api look at how viable #12696 would be? That could give us some nice new functionality too :simple_smile:

WordPress Trac [15:20]
#12696: Add ordering support to plugins_api() when filtered on 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.) or search term

drew [15:20]
I agree with @helen. @pento: What kind of timeline are you looking at in terms of being feature-complete in core?

tellyworth [15:21]
@lgladdy: I’ll take a look at that.

stephdau [15:21]
heheh, I stopped at “tellyworth is typing”

pento [15:21]
I found that each screen took a few hours to get working, and there’s ~5 screens left to tackle.

mark [15:22]
I have some concerns about post-install actions. Where’s most of that discussion happening?

pento [15:22]
On the ticket.

eric [15:22]

lgladdy [15:23]
Thanks @tellyworth :simple_smile:

Customizer Transactions

westonruter [15:26]
A prerequisite patch in #30988 was committed by @ocean90 which fixed/improved some low-level Customizer plumbing (fixed `WP_Customize_Setting::value()` and enabled access to all post data via `WP_Customize_Manager::unsanitized_post_values()`); this also added the first PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher unit tests for the Customizer (for `WP_Customize_Manager` and `WP_Customize_Setting`). Next up is the merge of my patch for #30936 which adds an actual 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. for registering dynamically-created settings, fixing some ugliness in the WidgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. Customizer implementation (and will facilitate Menu Customizer); this also adds first unit tests for `WP_Customize_Widgets`. After this patch is committed, I want to write another subset patch to specifically clean up some of the deficient PHP coding styles in the Customizer classes. And then after this, I’ll submit the remaining patch from my pull request which actually adds Customizer Transactions (#30937): this patch will include unit tests, but I’ve been holding off until I can get more feedback and validation on the approach thus far. I welcome comments at and I *especially* welcome line comments on the PR itself:

Make WordPress Core
Proposal: Customizer Transactions
You may be familiar with transactions in a database context. The idea is simple: once you start a transaction, any change made to the database in the current session will not be applied to other da…

GitHubGitHub GitHub is a website that offers online implementation of git repositories that 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.
Customize Transactions by westonruter · Pull Request #61 · xwp/wordpress-develop · GitHub
README: Customizer Transactions Proposal Next steps: Merge in #62 after committed to Core Merge in #67 after committed to Core Break out phpDocPHPDoc (docblock, inline docs) and code style improvements into separate patch Trac tickets addressed by (or related to) this PR: #30937: Add Customizer transactions. Read writeup here. #30028: Load Customizer preview iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. with natural URLURL A specific web address of a website or web page on the Internet, such as a website’s URL #30936: Dynamically create WP_Customize_Settings for settings created on JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. client #27355: Customizer: Add framework for partial preview…

WordPress Trac [15:26]
#30988: Setting’s default value doesn’t apply on preview window

#30936: Dynamically create WP_Customize_Settings for settings created on JS client

#30937: Add Customizer transactions

westonruter [15:26]
sorry for the noise

stephdau [15:27]
that was strangely well structured, actually :simple_smile:

nacin [15:27]
Yeah, that was great

drew [15:28]
@westonruter: Thanks for the update. Were you looking for help/testing in any specific areas other than code review?

westonruter [15:29]
Code review primarily.

nacin [15:29]
@westonruter: Happy to glance at anything that you feel is particularly sticky.

westonruter [15:30]
@nacin: the user caps for the `wp_transaction` post type please

nacin [15:31]
Is that post type set? Is it designed to cover more than just customize transactions?

nacin [15:31]
(I am curious.)

westonruter [15:31]
it uses the Customizer API to manage the updating of the transaction data

and when the transaction is applied, it uses the Customizer’s settings for handling the persisting of the data in WP

westonruter [15:32]
e.g. an `option` setting gets saved into an `option`, a `theme_mod` setting gets saved into a `theme_mod`, etc

westonruter [15:33]
custom setting types can be added to handle anything else, of course

westonruter [15:33]
so in this way anything can be added to a transaction, since anything can be added to the Customizer

knutsp [15:34]
Is it wise to use a post type for non content data?

drew [15:34]
@westonruter: @nacin: If you don’t mind, I’d kind of like to keep the agenda moving. Maybe you could continue over in #core-customize after devchat?

nacin [15:34]
Yep. I just wanted the quick hit.

westonruter [15:35]
@knutsp: it is content data (the values of the settings)

Weekly Hit-List Recap: Accessibility

Instead of listing out all of the tickets on these lists, I’d like to simply recap where we are since Monday.

drew [15:36]
*— Accessibility*

drew [15:37]
Seems like 30486 needs a patch that still covers removing title attributes per @ocean90‘s earlier comment.

obenland [15:37]
26600 also needs a patch

drew [15:38]

drew [15:38]
I think @azaozz followed up on the commit candidate, and the other two are still being worked by the accessibility teams.

drew [15:39]
@afercia: You had two tickets you wanted to toss out for ui-feedback, correct?

azaozz [15:39]
Yeah, need to clear up some minor details then commit (edited)

drew [15:39]

afercia [15:40]
yup thanks @drew about 30486 my bad, I think I posted a new comment but forgot to upload the updated patch :simple_smile:

afercia [15:41]
hello everyone. first of all we would like to say a big thanks to @celloexpressions not only he already fixed many of the issues we’ve found, he’s also a lovely guy and he’s been very very patient with us :simple_smile:

afercia [15:42]
that’s about the Customizer Theme Switcher of course

drew [15:42]
For the uninitiated, @afercia represents the Accessibility team at devchat :simple_smile:

afercia [15:42]
we still have to test Press This and Shiny Updates waiting for them to be in a stable state

afercia [15:43]
thanks :simple_smile:

afercia [15:43]
and yep we have 2 tickets we need feedback about, we’re blocked right now

drew [15:44]
Thanks for the update @afercia.

afercia [15:44]
first one is more about an official decision: yea/nay
#28599 – Better visual focus indication in Adminadmin (and super admin) Menu

WordPress Trac [15:44]
#28599: Better Visual Focus Indication in Admin Menu

afercia [15:45]
we would like to know if the general idea is officially accepted or not, so we can move on, refine the patch, do whatever change we wiil be asked to do or just drop itould like to know if the general idea is officially accepted or not, so we can move on, refine the patch, do whatever change we wiil be asked to do or just drop it

afercia [15:45]
second one #26504 – Semantic elements for non-link links (see comment 11) we need UIUI User interface feedback

WordPress Trac [15:45]

#26504: Semantic elements for non-link links

afercia [15:45]
that’s it, thanks very much :simple_smile:

drew [15:46]
@helen: Can you possibly take a look at that and follow up on the ticket?

afercia [15:46]
copy pasting issues

helen [15:48]
@drew: to which? the non-link links one was closed, awaiting specific tickets to be opened.

sam [15:49]
I think 28599 is the one that needs the attention.

drew [15:49]
Yeah, sorry @helen.

helen [15:49]
we talked about it earlier, but yes, will come back to it.

Weekly Hit-List Recap: Mobile

drew [15:46]
*— Mobile*

drew [15:47]
We’ve already made some good progress on the mobile hit-list this week. One ticket closed fixed, another unfortunately maybelater. The two remaining ones, 29906 & 29989 could both use patches updated from feedback.

Community Initiative

drew [15:50]
*3. 4.2 Community Initiative*

drew [15:50]
I wanted to take an opportunity to mention that I’ll be leading a NUX working group during the 4.2 cycle.

We’ll be largely focusing on improving the new user experience in the WP admin.

drew [15:52]
We already have buy-in from a number of individuals in the wider WP community as well as the training team.

mikehansenme [15:52]
@drew I can help with that

drew [15:53]
@mikehansenme: Excellent.

johnbillion [15:53]
What does the new user experience cover? Everything from install to writing a first post? Just install?

johnbillion [15:53]

drew [15:53]
Pretty much everything, though I think we’ll likely be pretty focused on post-install.

The primary goal of the working group will be to identify common pain points and make recommendations about possible solutions.

drew [15:55]
I’ll be posting something on make/core a little bit later today with information about how that’s going to work. But our first chat will be held in #core-flow next Tuesday at 19:00UTC / 2:00 pm EST.

jerrysarcastic [15:56]

liljimmi [15:56]
I’m going to have 25 new users in a class on Saturday, will your post have guidelines on how to report on a pain point?

drew [15:56]
@liljimmi: Absolutely.

liljimmi [15:56]

drew [15:57]
The idea is to (re)start the conversation about improving new user experiences in WordPress. There are many areas we can define actionable goals and I look forward to whatever progress we can make.

drew [15:57]
We’re making pretty good time today.

Open Floor

obenland [15:58]

29079 and 30589 are pretty much ready for commit

If a committercommitter A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component. could look those over that would be great

#29079: themes_api_result 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. should use original arguments

#30589: Comments navigation template tags

drew [16:01]
@dd32: Maybe you could glance at 29079?

obenland [16:01]
I’ve also prepared a make/core post to notify plugin authors about this change

drew [16:02]
@obenland: Which change specifically?

obenland [16:02]
the filter arguments in 29079

dd32 [16:02]
Will do

afercia [16:04]
@drew @helen about 26504 – non-link links – please consider that new specific tickets were not created yet, so that’s still the reference ticket and the only place were we can post comments at the moment. Maybe should be reopened.

trishasalas [16:04]
#21616 is ready to go and #18946 is ready pending final review. It would be awesome if a committer could look them over.

WordPress Trac [16:04]
#21616: add-textdomain doesn’t conform to WP coding standards

#18946: Too long tags make the cross not moving anymore.
ipstenu [16:04]
@obenland: All the plugins listed in that ticket have already been directly notified.

obenland [16:04]

drew [16:05]
@nacin: Could you review 21616?

drew [16:05]
And @azaozz could you review 18946?

azaozz [16:05]
yeah, looking

nacin [16:07]
@drew: sure.


nacin [16:11]
Many years ago, Matt added Ryan as a lead developer. Matt and Ryan added Mark. Matt, Ryan, and Mark added Peter. Matt, Ryan, Mark, and Peter added Andrew. Those five added me. The current group added Helen and Dion, as of yesterday.

nacin [16:11]
(Yay Dion and Helen. I saw the :fireworks: earlier.)

nacin [16:12]
I just posted something new:

Make WordPress Core
New chapters for Ryan and Westi
WordPress lead developers Ryan Boren (@ryan) and Peter Westwood (@westi) started contributing to WordPress more than a decade ago. Ryan and Peter, along with Mark and Matt, served as the foundation…

@boren and @westi are stepping back and letting new folk take more of the reins.

nacin [16:13]
In particular:
> Peter will be moving to a dormant/inactive/emeritus status. We hope to have him back when his life and work allows. In the meantime, you may see him committing a 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. fix here and there, as he is wont to do.

And, a bit of a buried lede here:
> Ryan has been focusing all of his energy on improving UX for more than a year, especially for mobile and touch devices, and especially for workflows like media management. So I’m pleased to say he’ll continue to do that: *Ryan will be spearheading UX for WordPress in 2015.* It’s been a while since we’ve had someone truly focusing on just UX, so this is really exciting.