Make WordPress Core

Updates from September, 2016 Toggle Comment Threads | Keyboard Shortcuts

  • Jeff Paul 8:06 pm on September 22, 2016 Permalink |
    Tags: , ,   

    Dev Chat Summary: September 21 (4.7 week 5) 

    This post summarizes the dev chat meeting from September 21st (agenda, Slack archive).


    • Schedule: As of this meeting, we are 4 weeks from the final chance to merge in major features. This includes Twenty Seventeen.

    Bug Scrubs

    Components & Features

    • Twenty Seventeen (@davidakennedy, @melchoyce)
      • Announcement post, latest update
      • Maintainers are out travelling today, but #core-themes is active and they will be holding a meeting on Friday at 18:00 UTC
    • REST API (@krogsgard, @kadamwhite )
      • Latest update
      • API discussion is at 7 am Pacific on Mondays
      • Settings endpoints and meta support both have first-passes on them, which need internal review and some more testing before we ship
      • We have a path forward for passworded posts (password in the query string, eww, but only viable option), there really isn’t a way we can see to avoid sending them as a query param
      • Meeting tomorrow in #core-restapi at 21:00 UTC to go through open issues around non-trivial, conceptual issues in WordPress. REST API team will prepare summary of issues for component maintainers and/or lead devs to review, question, and help guide discussion towards consensus.
    • Media (@mikeschroder, @joemcgill)
      • Latest update
      • Moving our weekly meetings up to Fridays at 17:00 UTC starting this week
      • Unexpected change to media title behavior in WP 4.6.1 (#37989) – The main issue here was resolved, but there seems to still be some odd behavior affecting words being chopped off filenames with international characters. Could use extra eyes from anyone (along with @sergey) more versed in i18n. Regression on the attachment titles that we generate on upload all became URL encoded instead of reading like a normal title.
      • Media search doesn’t include file name (#22744) – Committed earlier this week. Please report any issues that come as a result.
      • Next step in improving the organization of the media library is to assess both the infrastructure and UI improvements that need to be made here. Prefer to include #design early in this process, rather than asking for UI feedback on development driven decisions, hope to be part of the #design chat agenda tomorrow
    • Customize (@westonruter, @celloexpressions)
      • Latest update
      • In this week’s meeting we developed a schedule for publishing make/core feature proposals/dev notes for the remaining primary 4.7 customize projects, working backward from anticipated time to commit after the proposal and current readiness:
        • Week of 9/19: Improving sliding panels UI (34391, @delawski)
        • Week of 9/26: A new experience for themes in the customizer (37661, @celloexpressions). Please review soon for any requested changes in direction or design.
          • Summary: The existing themes section in the customizer is replaced with a full-screen theme browser and installer… The UI is nearly identical to wp-admin/theme-install.php… The .org-based theme-install previewer is not accessible here because it is likely to cause confusion with its customizer-like interface and the resulting need to switch contexts back and forth… An overarching goal is to avoid switching in and out of the admin/frontend/customize contexts during theme installation and previewing, instead staying in the hybrid customizer context that provides a combination of frontend plus controls… On the technical side, this heavily leverages JS-templated customizer controls and scales nicely to hundreds of themes.
          • Visual:
          • Please comment on the ticket with your feedback as soon as possible, preferably with specific concerns/ideas and reasons.
          • @celloexpressions to check in with @karmatosed on user testing ahead of posting final feature proposal
        • Week of 9/26: Customize transactions (30937, @westonruter evaluating this week and might punt again)
        • Week of 10/3: Code-editing gateways, via CSS (35395, @johnregan3/@celloexpressions). Awaiting approval/feedback on the acceptability/ability to bundle the two proposed libraries in core, with feedback particularly needed from committers and anyone familiar with the Jetpack fork of CSSTidy.
        • Week of 10/10: Customizer browser history (28536, @westonruter)
    • I18n (@swissspidy)
      • User Admin Language (#29783) – almost ready, another review this week and will commit if no blocker pops up
      • Introduce a locale-switching function (#26511) – @ocean90 to do some benchmarking
      • Introduce some JavaScript i18n functions (#20491) – GlotPress side has a solid plugin for exporting translations as JSON files (assistance on testing would be helpful). Still tinkering with the WordPress side and would love to get some additional feedback there.
    • Editor (@azaozz, @iseulde)
      • No updates, but would love to figure out a way to get more user feedback that helps us set direction for the editor. Will look to add some Core questions to annual survey on WordPress.org. Otherwise will start with something in the beta tester plugin, biased audience but it’s one that exists, is more likely to opt-in, and will be more flexible.
    • HTTPS (@johnbillion)

    Open Floor

    • @pbearne on Add filters to wp_new_user_notification and wp_password_change_notification (#38068) – added a set of filters to allow us to override email messages send by the wp_new_user_notification and wp_password_change_notification functions. @johnbillion to review as it relates to work on notifications.
    • @danieliser checking for interest for core in a set of reusable templates, models & functionality for forms, tabs & modals
    • @ericlewis on Bulk actions: Reactivate bulk actions hook + add hander hook for all admin screens (#16031) – could use a review of the latest patch, looking to commit sometime in the next week
    • @dshanske still working through the Pings and Trackbacks component
  • Andrew Rockwell 11:14 am on September 22, 2016 Permalink |  

    Week in Core, September 7 – 20, 2016 

    Welcome back the latest issue of Week in Core, covering changes [38571-38636]. Here are the highlights:

    • 66 commits
    • 61 contributors
    • 171 tickets created
    • 15 tickets reopened
    • 106 tickets closed

    Ticket numbers based on trac timeline for the period above. The following is a summary of commits, organized by component.

    Code Changes



    • Docs: Use a third-person singular verb for wp_doing_ajax filter added in [38334]. [38607] #25669
    • Bootstrap: Use dirname() when loading class-wp-hook.php from plugin.php. [38589] #37707


    • Database: Fall back to utf8 when utf8mb4 isn’t supported. [38580] #37982


    • Add wp-util as a dependency for customize-controls. [38628] #38107
    • Remove IE8 access to customizer to discontinue support. [38627] #38021
    • Let static_front_page section be contextually active based on whether there are any published pages. [38624] #34923, #38013
    • Ensure nav menu items lacking a label use the title from the original object. [38618] #38015
    • CBetter hover/focus state for section titles and available widgets. [38602] #29158
    • Implement previewing of form submissions which use the GET method. [38587] #20714
    • Prevent widget previewing logic from building invalid jQuery selectors when sidebars are registered without a class name in before_widget. [38577] #37993


    • Normalise index names in dbDelta(). [38591] #34874
    • Increase the size of wp_posts.post_password to 255 characters. [38590] #881


    • Docs: Use a third-person singular verb for smilies filter added in [38504]. [38608] #35905
    • Update autop() to match wpautop(). [38594] #4857, #4857
    • Docs: Fix an outdated comment. [38593] #4857
    • Add an extra line break before block elements in wpautop(). [38592] #4857
    • Don’t send an HTTP status code in wp_send_json() by default. This avoids clobbering an HTTP status code that may have been set prior to calling this function. [38576] #35666



    • Correct context for Next/Previous strings in get_the_posts_pagination(). [38611] #37952



    Networks and Sites

    • Multisite: Show always domain and path when deleting a site. [38633] #37309
    • Multisite: Use get_networks() in get_main_network_id(). [38632] #37218
    • Multisite: Provide $join as a possible SQL clause to the sites_clauses filter. [38631] #37922
    • Multisite: Add annotations for extended WP_Site properties. [38630] #37932
    • Docs: Synchronize docblocks for WP_Site_Query::__construct() and get_sites() after the changes in [37735], [38008], [38103], and [38336]. [38596] #38039
    • Docs: Correct description for domain and path arguments in WP_Network_Query::__construct(). [38595] #32504

    Options, Meta APIs

    • Options: Build out register_setting like register_meta. [38635] #37885


    • Ensure Pending Review Posts permalink posts link to the draft [38572] #37423


    • Style the primary action link in the non-js “Installing Plugin” page. [38617] #36430
    • Tests: Use add_filter() when it’s available. [38582] #17817
    • Docs: Fix minor formatting for inline docs in WP_Hook following its introduction in [38571]. [38573] #17817
    • Hooks: Add the new class WP_Hook, and modify hook handling to make use of it. [38571] #17817

    Posts, Post Types




    • Docs: Correct the description of {$taxonomy}_term_new_form_tag hook, making it more consistent with other *_form_tag hooks. [38629] #38104
    • Pass taxonomy name to actions in term-relationship CRUD functions. [38621] #38006
    • Query: Eliminate unnecessary wp_list_filter() call in get_queried_object(). [38586] #37962
    • Query: Avoid PHP notice in get_queried_object() when query contains NOT EXISTS tax query. [38585] #37962


    • Docs: Correct two references to plugins in the $args parameter description for themes_api(). [38623] #37939
    • Docs: Use a third-person singular verb for {$type}_template_hierarchy filter added in [38385]. [38609] #14310
    • Docs: Use a third-person singular verb in the DocBlock summary for get_theme_file_uri(), get_parent_theme_file_uri(), get_theme_file_path(), and get_parent_theme_file_path(), introduced in [38578]. [38606] #18302
    • Docs: Use a third-person singular verb for theme_file_uri, parent_theme_file_uri, theme_file_path, and parent_theme_file_path filters added in [38578]. [38605] #18302
    • Add the non-encoded form of the queried item slug to the template hierarchy when the slug contains non-ASCII characters. [38583] #37655
    • Taxonomy: Revert accidental changes introduced in [38578]. [38579] #18302
    • Improve child theme file inheritance by introducing functions for locating and fetching the URL or path to files within child and parent themes. [38578] #18302


    • Add a ‘View Posts’ link to the toolbar when on the post listing screen. [38634] #34113


    • Docs: Correct a comment and @return entry in WP_Upgrader::create_lock(). [38622] #38089
    • Automatically log users in after installation. [38619] #34084


    • Avoid a PHP notice in ::pingback_ping() if page title was not found. [38620] #36727
    • Check the minimum number of arguments in ::wp_getUsersBlogs() and ::blogger_getUsersBlogs(). [38600] #29750

    Thanks to @aaroncampbell, @adamsilverstein, @afercia, @akibjorklund, @DMing, @BjornW, @boonebgorges, @celloexpressions, @curdin, @danielpietrasik, @dd32, @DrewAPicture, @eliorivero, @enshrined, @ericlewis, @FlorianBrinkmann, @folletto, @georgestephanis, @gma992, @helen, @hideokamoto, @hugobaeta, @ian.edington, @iandunn, @jbrinley, @jeremyfelt, @joehoyle, @joemcgill, @johnbillion, @johnjamesjacoby, @jorbin, @karmatosed, @kitchin, @knutsp, @markshep, @MaximeCulea, @melchoyce, @monikarao, @nacin, @nazgul, @obenland, @ocean90, @paulwilde, @pento, @peterwilsoncc, @RedSand, @rmccue, @rnoakes3rd, @rommelxcastro, @ryankienstra, @ryanplas, @SergeyBiryukov, @skippy, @spacedmonkey, @swissspidy, @Takahashi_Fumiki, @websupporter, @welcher, @westonrute, @westonruter, and @wonderboymusic for their contributions!

  • Grant Palin 6:19 am on September 9, 2016 Permalink |
    Tags: ,   

    Week in Core, August 31 – September 7, 2016 

    Welcome back the latest issue of Week in Core, covering changes [38456-38570]. Here are the highlights:

    Ticket numbers based on trac timeline for the period above. The following is a summary of commits, organized by component.

    Code Changes






    • Fix php warning due to WP_Customize_Manager::prepare_setting_validity_for_js() incorrectly assuming that WP_Error will only ever have arrays in its $error_data. [38513] #37890
    • Introduce paneVisible state and ensure pane is visible when a construct is expanded (or focused). Fixes #36678. [38492] #27403, #36678
    • Fix i18n by re-using the add_new_item post type label instead of using a post type name in a generic string. [38479] #34923, #37895
    • Use new $status_code parameter for wp_send_json_error() instead of calling status_header() separately. [38478] #35666, #37897
    • Improve handling of active state for dynamically-created controls/sections/panels. [38464] #37270


    • Find the correct table names in DELETE queries with table aliases [38507] #37660


    • Update the $message parameter for _default_wp_die_handler() to notate that it can also accept a WP_Error object. [38518] #37770
    • Correct @since entry for the smilies filter added in [38504]. [38505] #35905
    • Move term_description() reference from filter docblock to get_the_archive_description() function docblock. [38495] #37259


    • fix jumpiness on pressing backspace and delete in the Text editor. Merge of [38426] to the 4.6 branch. [38487] #37690


    • Clarify some assertion failure messages and correct a test URL for Twitter timelines. [38514] #32360
    • Update the oEmbed provider test suite. [38512] #32360



    • Handle an edgecase within the URI parsing library included in Requests, where if a double slash exists at the start of the path the URL is passed to cURL malformed. Merge of [38429] to the 4.6 branch. [38485] #37733
    • Accept non-string values in cookies, fixing a regression since 4.5. Merges [38430] to the 4.6 branch. [38461] #37768


    • Revert changes to wp_parse_url() while PHP 5.2 errors are investigated. [38456] #36356


    • revert [38386], functions.php was probably too tempting for some people to not load by itself. [38469] #36335
    • revert [38467], wp_is_IE() should not exist. [38468] #37699
    • use a new function, wp_is_IE(), instead of the $is_IE global in a number of places. [38467] #37699
    • use get_bloginfo( 'version' ) instead of global $wp_version in several locations – excluding those locations which reload version.php mid-flight. [38459] #37699


    • Remove an outdated help sentence on “My Sites” screen. [38474] #37896


    • Add translator comments for XML-RPC strings with placeholders. [38510] #37792

    Login and Registration

    • Change login label to Username or Email Address for clarity. [38477] #37871


    • Sanitize upload filename. [38538] #



    • Deprecate wp_get_network(). [38515] #37553
    • use get_current_site() instead of $GLOBALS['current_site'] (stop yelling!) in a few remaining spots. [38458] #37699
    • use get_current_blog_id() where applicable, in lieu of plucking the $blog_id global from outer space. [38457] #37699

    Post Thumbnails

    • Prevent post thumbnail previews from spilling into other images. Merge of [38433] to the 4.6 branch. [38476] #37697

    Press This

    • don’t check for already-hoisted global in press-this.php. [38466] #37699
    • in wp_ajax_press_this_save_post() and wp_ajax_press_this_add_category(), don’t check for a global instance. WP_Press_This is a Controller, but not really a Singleton. This also keeps it from being a pluggable class, which it is right now. [38465] #37699
    • in get_shortcut_link(), just check a class constant on WP_Press_This instead of instantiating the object and reading an instance prop. [38462] #37699


    • ‘orderby=include’ should support comma-separated lists. [30052] assumed that ‘include’ would be an array. [38500] #37904
    • Use AND in a SQL query rather than &&. [38491] #37903
    • r38356, you were not long for this world. [38471] #37830
    • in wp_old_slug_redirect(), use get_query_var() instead of importing and touching the global $wp_query directly. [38463] #37699


    Script Loader




    • Introduce some taxonomy capability tests in preparation for introducing more fine grained capabilities for terms. [38516] #35614
    • Introduce wp_insert_term_data and wp_update_term_data filters for altering term data before it is inserted/updated in the database. [38484] #22293
    • Correct the function description for wp_ajax_add_link_category(). [38490] #37770
    • Update various docs for parameters which are now WP_Term objects. See #14162 [38489] #37770, #14162


    • After [38486], actually use the $description variable in get_the_archive_description(). [38493] #37259
    • In get_the_archive_description(), add support for author archives. [38486] #37259

    Text Changes

    • Improve Error messages in XML-RPC [38509] #37792
    • Improve the timezone setting description in General Settings. Makes more clear users can set either a city or a UTC timezone offset. [38483] #34789


    • fix toolbars alignment in RTL. Merge of [38349] to the 4.6 branch. [38488] #37760
    • change the default font for the vi locale to the same stack as he_IL. Merge of [38427] to the 4.6 branch. [38472] #37755



    • After [37687], fix the number of params passed to the upgrade hooks. Merge of [38415] to the 4.6 branch. [38475] #37731
    • Sanitize file name in File_Upload_Upgrader. [38524] #



    • After [33766], don’t reset the password when clicking “Show Password” and then “Cancel” on Add New User screen. [38494] #37902, #33419

    Pass $profileuser parameter to user_profile_picture_description filter on “Edit User” screen. [38481] #37379


    • Make the Delete/Remove links red. For consistency and accessibility, all the UI controls that perform destructive actions should be red. [38536] #35622, #37016

    ## Props

    Thanks to @afercia, @Akeif, @akibjorklund, @andrewp, @atimmer, @azaozz, @batmoo, @boonebgorges, @celloexpressions, @Chaos, @curdin, @dd32, @deremohan, @dlh, @DrewAPicture, @Engine, @flixos90, @Frank, @fronaldaraujo, @GaryJ, @geminorum, @gitlost, @GrantDerepas, @henrywright, @ibachal, @ideag, @ionutst, @jeremyfelt, @joemcgill, @johnbillion, @johnjamesjacoby, @johnpgreen, @jorbin, @Klein, @lukecavanagh, @monikarao, @mte90, @netweb, @nmt90, @patilswapnilv, @pento, @peterwilsoncc, @PieWP, @Presskopp, @ramiy, @Rarst, @sayedwp, @scrappy@…, @SergeyBiryukov, @smerriman, @swissspidy, @TimothyBlynJacobs, @turtlepod, @westonruter, and @wonderboymusic for their contributions!

  • Brian Krogsgard 9:25 pm on September 8, 2016 Permalink |
    Tags: ,   

    WordPress REST API update 


    There’s a renewed push going on right now to try and get what is being termed “content endpoints” into WordPress core with the 4.7 release.

    In the first core development meeting of the 4.7 cycle, @helen identified a series of tasks that would need to be analyzed and acted upon to be able to make a new proposal for core inclusion, including identifying existing blockers. There is a team of people actively working on these items, and your participation is wanted!

    New meeting times

    Regular meetings have been changed to take place at 14:00 UTC Mondays, with bug scrubs at 14:00 UTC Thursdays — all in #core-restapi. So the next meeting is Monday, September 12th, 14:00 UTC.

    Fuller story and action items

    If you are not caught up on the state of the WordPress REST API, the infrastructure for the API went into WordPress 4.4. Since that time, several prominent plugins are using the infrastructure to create their own REST APIs.And now the feature project (not in core) consists of core endpoints and authentication mechanisms. The four primary types of resources that have been developed are for: posts (and other post types), users, comments, and terms. There is also a Google spreadsheet where you can list sites you know of running V2 of the REST API plugin in production.

    The proposal, if the various criteria are met, would request core inclusion for what we’re calling “content endpoints”, and “management endpoints” would be part of a subsequent release cycle. With the content endpoints, website developers would have tools at their disposal to build websites in whatever programming language they choose, using data from WordPress. Additionally, certain types of applications would also be able to create experiences for managing WordPress content — though not complete WordPress site management the way you can from the WordPress admin.

    The primary focus areas for core inclusion of the WordPress REST API — as initially defined by Helen, and then expanded on in the core dev chat meeting — are as follows:

    1. Rigorously test 4.6 and trunk compatibility and resolve any issues that may be found.
      1. Includes reviews by current component maintainers for existing endpoints.
      2. For example: WP_Post_Types and other new objects, need compatibility.
    2. Identify and resolve some of the final “quirky” issues (e.g. password-protected posts).
    3. Create support for meta.
      1. By “meta support” in the API, we refer to meta values that have been registered by a developer. Ideally via register_meta( ...., array( 'show_in_rest' ) ). For clarity, this excludes arbitrary meta storing (i.e. a client arbitrarily using the WordPress database)
    4. Create support for options – this is not “content” per say, but imagine an app where you can’t change your site title and tagline.
      1. Needs significant clarification, definition of what should be achieved
      2. Repo for site endpoints: https://github.com/WP-API/wp-api-site-endpoints
        1. Discuss architecture for how this would work (like, site endpoints w/ object of settings) https://github.com/WP-API/WP-API/issues/816
    5. Establish a forward compatibility plan, particularly around how to avoid/minimize plugin and theme conflicts. IE: namespacing and documentation / protected stuff. Relate to current general WP best practices (IE: custom field named “likes” – possible vs good idea). Need document to outline our views.
    6. Dedicated reviews from developers with deep experience in security and REST APIs, ideally including some of the non-WP PHP community.
      1. Identify and request reviews by specific developers & subjects.
        1. Security
        2. Core compatibility
        3. Integration
        4. Consumption
        5. Non-WP developers / fresh eyes
    7. Identify current authentication options, and their viability for inclusion in 4.7. Document flows of implementing and using each.
      1. Cookie auth
      2. Basic auth
      3. oAuth 1
      4. oAuth 2
    8. Establish and document data with performance comparisons – speed, bandwidth, etc – against admin-ajax, XML-RPC, etc. (Might just require education, as really all these are pretty similar). Identify and address performance related issues on project GitHub repo.
    9. Recruit and assign new / excited contributors
    10. Align existing docs with primary project. Outline documentation needs, and create them.
      1. Get volunteers to take on specific tasks
      2. Decide where these docs go, both now and in the future

    Specific initiatives

    There are several more specific initiatives to work on, many of which we’ve tasked out and assigned, but plenty that could use more input.

    Docs Initiatives

    • Inline docs will eventually be merged into core inline docs, so any prep there should be roadmapped along with the rest of the 4.7 planning
    • User docs on consuming the API (e.g. doing things with the routes it provides from external systems, like uploading media) are needed and should live in the docs-v2 repo for now. See issues list for current user-facing documentation needs.
    • User docs on extending within the context of the API plugin (how to add routes, how to lock down access to auth’d users) are needed and should live in the docs-v2 repo for now
    • Docs on making endpoints with the infrastructure currently in core should live within the developer handbook

    Task Assignments

    • Ping component maintainers to see what testing they’ve done w/ API (@krogsgard)
    • Password game plan: relies on #16483: Blank content, rendered string, title however it is done in core now, 401 for individual posts, content to include protected:truein return object, and (maybe) give users that can edit posts access to content in response, consider Authorization header options. (@rmccue)
    • A pass at registered settings. @joehoyle has tackled this with a first draft, along with #37885.
    • Document feature detection as it works today (http://v2.wp-api.org/guide/discovery/). Establish best practice for extending with new endpoints. Establish best practice for modifying existing objects.
    • Documentation needed: compare register_rest_field() vs register_meta() and document best practice for when register_rest_field() may still be preferable. But generally encourage usage of register_meta()
    • Consideration: With register_rest_field, maybe force a namespace a la register_rest_route
    • Contact implementors from @joehoyle‘s API-in-use list to get feedback on their experience with the API (@krogsgard)
    • Document that name, description, url and home are the options already available in index as read-only. Consider change of this with global options endpoint.
    • Develop personas for user groups that interact with the API (@jorbin)
    • Interface testing for cookie and oauth1 implementations. Recruit UI/Design help. (@krogsgard and @kadamwhite)
    • Determine auth_callback (needs different name, has a conflict right now) necessity within register_meta(), as someone may want meta exposed, but only for authenticated users, and there is no cap system for read_meta.>
    • Review https://github.com/WP-API/WP-API/issues/2558 for performance gain.
    • Review https://github.com/WP-API/WP-API/issues/1625 for awkward data handling w/ client-js

    Bug scrubs

    The first bug scrub of this cycle took place today, and we were able to go through all open issues on GitHub that do not have a label, and label them, plus add at least some level of context. Our priority for future meetings will be to ensure that we have assigned bugs to appropriate people, and go back through and ensure we have milestones assigned to various tickets. We’ll have an open floor period during each regular meeting to discuss particular issues.

    Get involved

    If you have any interest in the API, your help and insights are wanted! You can join Chat.WordPress.org in the #core-restapi room to sit in and watch, or jump in to various discussions. Also, if you just want to play with the plugin and report back your experience, that’d also be super helpful.

    One group of core contributors we really need feedback from are component maintainers. The team working on the REST API would like your input on how well the API currently interacts with your component, how it can improve, and to identify trouble areas that would need to be addressed both for initial core inclusion of the API, and down the road.

    Thanks for listening!

  • Jeff Paul 1:02 am on September 2, 2016 Permalink |
    Tags: , ,   

    Dev Chat Summary: August 31 (4.7 week 2) 

    This post summarizes the dev chat meeting from August 31st (agenda, Slack archive).

    Holidays & Scheduling

    • Reminder to announce meeting moves or cancellations (e.g., Monday is US Labor Day holiday, Monday after is Eid al Adha)

    Update on 4.6.1

    #36335: Autoloader and #37699: Globals

    • Discussion framing: see these as being feature projects in their own right, examples of when features can’t be actual plugins and why it’s better to think of them as projects. How can these be worked on effectively?
    • Discussion:
      • New project on GitHub that’s a clone of the WP Git repo
      • grunt patch allows you to use GitHub PR URLs, which can help facilitate testing for people that prefer using SVN or are using SVN for their trunk installs.
      • Trac + SVN workflow seems to work best when we’re dealing with patches and discussion leading to an individual commit; is probably a pretty poor option without some additional tools.
      • Creating feature branches for wide-ranging work seems to be a better fit and allows for less churn of the code in trunk at the same time as other major work.
      • Nice to review & collaborate on a big feature on a GitHub feature branch as opposed to wrangling conflicting and amending patches on Trac
    • Suggestion to @wonderboymusic: fork @jorbin‘s GitHub mirror, use GH issues and develop in various branches as makes sense (or even separate forks entirely if issues become unwieldy across very different projects), and use PRs to run existing CI setup. PRs can then be used as patches in grunt patch
      • If treated as a feature project, all of that project’s management happens wherever the lead feels best serves that project. There should also be weekly meetings with updates posted on Make/Core. @wonderboymusic to determine a meeting time and post about it next week.
      • @wonderboymusic@helen in agreement on approach; GitHub repo created
    • Related question: How do we determine what sort of tasks should be feature projects? Who decides that? And when?
      • Some things to think about – is it a lot of churn? Does it need to span multiple releases and/or is it a “done when it’s done” process? Is there a lot of design and user testing involved? They exist whenever somebody has a thing they believe belongs in core and wants to run with it in that way. Getting feedback is an evolving process.

    4.7 Project/Feature Proposals

    • Goal: come out of this with the start of a list of projects and a point person for that project, to be fleshed out with more participants and meeting times over the next week.
    • @johnbillion – HTTPS
    • @celloexpressions – Customize component project & owner
      • Create page-based nav menus without leaving live preview – #34923@celloexpressions (follow up tickets forthcoming)
      • A new experience for themes in the customizer – #37661@celloexpressions
      • Code-editing gateways, via CSS – #35395@johnregan3
      • Customizer browser history – #28536@westonruter
      • Refactoring sliding panels UI – #34391@delawski
      • (maybe) Customize transactions (with no UI) – #30937@westonruter
      • will track all of the Customize projects with the weekly Customize component meetings and Make/Core posts usually posted on Thursdays starting this week
    • @krogsgard – REST API
      • had a productive start on Monday and will have a summary up shortly
    • @boonebgorges – #20875
      • work with cache drop-in authors so that we can start leveraging across WP
    • @davidakennedy – #19627
    • @helen – there needs to be a dedicated theming API/support team because there will be a Twenty Seventeen; actual details on that next week. There will need to be really robust teams on both the theme and theme support pieces, likely with subteams even.
      • @karmatosed: splitting core themes as a bucket for all theme into, core themes and theme functionality
      • @helen: noting that theme functionality will spill over into other components (media seems incredibly likely)
      • @themiked: interested in theming work, on the API/support side if that’s whats needed
    • @joemcgill – Media focus candidate & owner; will shepherd these through regular #core-images meetings
    • @azaozz – will publish “4.7 editor wishlist” by the end of the week
      • to include Nonce refresh/saving without page reload, and few others
    • @sc0ttkclark – Fields API

    Ways YOU Can Help!

    • Please comment below if there are things that didn’t get mentioned that you’d like to lead.
    • Design help and user test coordination (alongside @karmatosed) desired on #37661 by @celloexpressions, please respond if you’re open to help on this.
  • Aaron Jorbin 8:02 pm on August 25, 2016 Permalink |
    Tags: ,   

    Bug Scrubs for 4.7 

    Ensuring tickets move towards a resolution is one of the most important things we can work on as a project. Bug Scrubs serve as one of the ways to make this happen. For 4.7, I would like to invite you to run a WordPress bug scrub. Bug Scrubs can have a general focus, focus on a specific component, or focus on a specific report (such as ancient tickets). Want to learn more? Here is a list of “Potentially Asked Questions”. Have an unanswered question? Ask it in the comments.

    (More …)

  • Jeff Paul 4:39 pm on August 25, 2016 Permalink |
    Tags: , ,   

    Dev Chat Summary: August 24, 2016 

    This post summarizes the dev chat meeting from August 24th (agenda, Slack archive).

    4.6.1 Schedule

    4.7 Personnel and Schedule

    • @jorbin (engineering/development focus) & @jbpaul17 (PM focus) will be release deputies for 4.7
    • Full release schedule can be found at https://make.wordpress.org/core/version-4-6-project-schedule/
    • The scheduled release date is December 6.
    • Due to WCUS & US Thanksgiving holiday, we will have to treat RC as a true Release Candidate
    • There is no “merge window”, testing & feedback should be continuous before merge consideration

    Potential Focus Areas

    • Many wishlist comments are specific developer-facing features as well as better media findability/organization, easier plugin management, and the initial theme setup experience
    • New default theme (aka Twenty Seventeen) likely, but to be confirmed within the next week or two
    • REST API content endpoints (posts, terms, comment, users, and their associated meta) to get defined roadmap for 4.7 delivery plus future roadmap to full management and admin API coverage (potential approach)
      • the next meeting will be August 29 at 23:00 UTC, where this will be further discussed
      • @krogsgard aiming to write spec for each item in the list by next meeting, open to acting as PM for this focus area
      • looking for a few committers with knowledge around the API to guide the process with a permanent or lead as their buddy
      • looking for review from outside WP community
      • will require documentation coverage for builders and consumers
      • Core endpoints will need to be reviewed by their respective component maintainers

    Open Forum on Focus Areas

    • “find your media more effectively” (#22744)
    • taxonomy (aka media tagging) UX+UI work for assignment and filtering mechanisms
    • “find an accessible multi-select/autocomplete/tagging helper”
    • “smarter defaults”
    • Eliminating usability dead-ends in the customizer (#34923, #35395, #37661)
    • further refinements to the updates flow continuing from 4.6
    • low-fi mockup and testing of metabox for different publishing possibilities (including existing examples)
    • resolve some ancient annoying issues (e.g., #17817)
    • Content Authorship in Menus, with Live Preview
    • dashicons as svg sprite (Make/Core Post)
    • document dynamic hook aliases in core (finally) + adding DevHub support
    • initial theme setup experience

    Teams and Weekly Updates

    • Teams are the contributor groups that form around components and major work items (e.g. features and big API changes)
    • Will continue to identify those Teams and a “spokesperson” for each
    • Teams should have a weekly scheduled meeting and a weekly update posted to Make/Core
    • @helen to continue the tradition of weekly jump start posts, so there will be a reminder of Team meetings each week

    Wishlist Items

    Bug Scrubs

    • Everyone is empowered to run a bug scrub (can be component based, or based on any other ticket report)
    • A post with information on how to run a bug scrub and who is empowered to do it (hint: it’s you) will be published on make/core soon
    • Bug Scrubs are a great experience in running a meeting, writing good responses, and building confidence in making those do-or-punt decisions
    • You do not need to be a dev to run a bug scrub, @hugobaeta and the design team has done some great scrubs
    • You don’t need to be a committer to run them, @chriscct7 has done some incredible scrubs on ancient tickets
    • “If 5 new people that have never run a bug scrub or other core meeting before, run one this release: I will write and record a parody of “No Scrubs” by TLC, but about Bug Scrubs.” — @jorbin Π
  • Grant Palin 7:00 am on August 25, 2016 Permalink |
    Tags: ,   

    Week in Core, August 16 – 23, 2016 

    Welcome back the latest issue of Week in Core, covering changes [38274-38345]. Here are the highlights:

    • 72 commits
    • 40 contributors
    • 100 tickets created
    • 9 tickets reopened
    • 96 tickets closed

    Ticket numbers based on trac timeline for the period above. The following is a summary of commits, organized by component.

    Code Changes


    • Allow for .nav-tab-wrapper class to be used on elements other than h3 to increase flexibility for custom settings pages. [38306] #37257


    • add a new function, wp_doing_ajax(), which can replace… (wait for it…) DOING_AJAX checks via the constant. [38334] #25669



    • in WP_Object_Cache, $cache_misses is public, but $cache_hits is private. They should both be public, because they’re useful for debugging purposes. [38335] #37726


    • in wp_handle_comment_submission(), $_wp_unfiltered_html_comment is passed as part of $comment_data, but is not used locally. [38313] #37771
    • in WP_Comment_Query::fill_descendants(), continue if there is an empty array in the loop. [38298] #37416
    • in WP_Comment_Query::fill_descendants(), compute count() in the first for expression so that it does not run on each iteration. [38297] #37416


    • Ensure a newly-added custom link nav menu item has the appropriate CSS class names. [38301] #37575


    • WP_Network, WP_Network_Query, and WP_Site_Query call wpdb::_escape(), thus requiring it to be public. It previously had no access modifier. _ at the beginning of a method, believe it or not, does not enforce visibility constraints. [38314] #37771


    • Update jsdoc in customize-nav-menus.js to remove references to Menu Customizer plugin. Also fix @param for updateAssignedLocationsInSectionTitle. [38300] #37520
    • Update outdated phpdoc for WP_Customize_Manager::validate_setting_values() to reflect changes in [37942]. [38299] #37247, #37759
    • Correct usage examples for wpdb::prepare(), which should not be called statically. [38289] #37744
    • Fix typo in load_plugin_textdomain() parameter description. [38284] #37318


    • In get_oembed_endpoint_url(), avoid inadvertent stomping of the $format parameter passed to oembed_endpoint_url filter. [38321] #37751

    External Libraries


    • remove variable set needlessly in wp_check_jsonp_callback(). [38308] #37771


    • Standardize naming of dynamic hooks to use interpolation vs concatenation. [38307] #37748


    • in WP_HTTP_Response, the @param declarations for $status and $headers were swapped. Let us correct this. [38315] #37771


    • Add translator comments for strings in wp-includes/functions.wp-scripts.php. [38345] #37803
    • Add translator comments for strings in wp-includes/functions.php. [38344] #37802
    • Add translator comments for strings in wp-includes/deprecated.php. [38343] #37797
    • Add translator comments for strings in wp-includes/class-walker-comment.php. [38342] #37796
    • Add translator comments for strings in wp-includes/author-template.php. [38341] #37795
    • Add translator comments for strings in wp-includes/admin-bar.php. [38340] #37794
    • Remove unnecessary context for two strings on “Add New User” screen. [38329] #37784
    • Remove unnecessary context in wp_post_revision_title_expanded(). [38327] #37781
    • Use a consistent context for “Add New” submenu strings in admin bar (Toolbar). [38326] #37780
    • Allow for WordPress Plugin/Theme Directory URLs to be localized. [38325] #37501
    • Replace unnecessary context with translator comments in wp_post_revision_title() and wp_post_revision_title_expanded(). [38324] #37778
    • Replace unnecessary context with a translator comment for %s Sites string in network_step1(). [38323] #37777
    • Replace unnecessary context with a translator comment for %s KB string on Network Settings screen. [38322] #37496
    • Add translator comments for Edit Site: %s string in network admin. [38320] #37776



    • retrieve_password() does not need to import 2 globals that it does not use. [38304] #37699


    • If post-by-email functionality is disabled, wp-mail.php should return a 403 Forbidden status code instead if 500 Internal Server Error. [38332] #37572
    • Don’t set Sender field when setting From. Merges [38286] to the 4.6 branch. [38287] #37736
    • Don’t set Sender field when setting From. [38286] #37736


    • remove function_exists() call for ini_get() in _load_image_to_edit_path(). [38333] #37681
    • remove unnecessary variable assignment in gallery_shortcode(). [38309] #37771
    • add a function, wp_get_additional_image_sizes(), that wraps the retrieval of the global $_wp_additional_image_sizes. Removes 6 global imports. [38303] #37699
    • fix unit test after [38296].
    • use wp_get_attachment_metadata() instead of get_post_meta() where appropriate. [38296] #36246
    • wp_get_attachment_link() fails to output text for non-images if the attachment post doesn’t have a title and $text (argument #5) was not passed to the func. In this case, use the filename. [38295] #5, #37343
    • when calling pathinfo(), also pass a PATHINFO_* constant to avoid array notices for unset keys. [38294] #37608
    • Add some docs to media-gallery.js RIP. [38293] #37717


    • Fix copy/paste issue in id attribute for a dismissible message on Sites screen. [38305] #37764

    Nav Menus

    • remove unnecessary variable assignment in wp_nav_menu_item_post_type_meta_box(). [38311] #37771


    • use correct description in the docblock for $number in WP_Comment_Query, WP_Network_Query, and WP_Site_Query. [38336] #37621
    • Non-scalar and negative values for ‘p’ should always result in a 404. [38288] #33372
    • use composition for $db in WP_Date_Query, removes need to import global $wpdb in multiple methods. [38280] #37699
    • use composition for $db in WP_Query, removes need to import global $wpdb in multiple methods. [38279] #37699
    • add a protected field, $db, (composition, as it were) to WP_*_Query classes to hold the value for the database abstraction, instead of importing the global $wpdb into every method that uses it. Reduces the number of global imports by 32. [38275] #37699


    • remove unnecessary variable assignments in rest_handle_options_request(). [38310] #37771


    • in get_terms(), do not assume that legacy args are being passed when the only params are top-level meta_* values. Add keys in WP_Term_Query::__construct(). Adds unit tests. [38337] #37568
    • remove unnecessary break in WP_Term::__get(). [38312] #37771
    • In is_object_in_term(), return error object rather than caching it. [38277] #32044, #36814, #37721
    • Allow attachment taxonomies to be fetched as objects. [38292] #37368


    • Fix incorrect variable name from [38330]. [38331] #37630
    • Attachment create() method should match signature of other create() methods. Legacy argument format continues to be accepted. [38330] #37630
    • Move some utility classes to their own files. [38285] #37523
    • skip checking the value in Tests_User:test_user_properties for db. Casting to array is not the most elegant thing here, and various versions of PHP key protected/private fields differently when objects are cast. [38278] #37699
    • Introduce tests for get_attachment_taxonomies(). [38291] #37368
    • Introduce tests for get_object_taxonomies(). [38290] #37368
    • Add wordpress-importer tests demonstrating slashed data behavior. [38283] #21007


    • make sure the temporary id is removed when using the default image dialog and inserting an external image. [38328] #37467


    • after [38317], use a @property annotation, instead of a public field. [38319] #37771
    • $user_level has been publicly-accessed on instances of WP_User since version 2.0, but is has never been declared. [38317] #37771


    • $option_name and $alt_option_name have been used as members ever since WP_Widget became an object in 2.8, but never declared. [38318] #37771


    Thanks to @afercia, @Akeif, @azaozz, @bcole808, @boonebgorges, @Clorith, @codemovementpk, @danhgilmore, @danielbachhuber, @dd32, @deremohan, @dlh, @DrewAPicture, @flixos90, @fomenkoandrey, @Frank, @gma992, @henrywright, @iandunn, @imath, @JaworskiMatt, @jipmoors, @Jonnyauk, @jorbin, @JorritSchippers, @Klein, @kouratoras, @Mte90, @Presskopp, @ramiy, @rpayne7264, @sebastianpisula, @SergeyBiryukov, @swissspidy, @tivnet, @TJNowell, @tomdxw, @vishalkakadiya, @westonruter, and @wonderboymusic for their contributions!

  • Eric Binnion 4:21 am on August 18, 2016 Permalink |
    Tags: ,   

    Week in Core, August 9 – 16, 2016 

    Welcome back the latest issue of Week in Core, covering changes [38239-38274]. Here are the highlights:

    • 35 commits
    • 38 contributors
    • 73 tickets created
    • 7 tickets reopened
    • 52 tickets closed
    • WordPress 4.6 released 🎉

    Ticket numbers based on trac timeline for the period above. The following is a summary of commits, organized by component.

    Code Changes


    Build/Test Tools

    • Build/Test Tools: Ensure PHP 7.1 is tested on Travis.[38273] #37625


    External Libraries




    • Update/Install error messages: do not escape from the template, escape the error message string before inserting it. [38240] [38241] #37623
    • Correct the documentation for the get_sample_permalink filter, and improve the documentation for the get_sample_permalink() function. [38272] #37682

    Post Thumbnails,Post Thumbnails,Post Thumbnails

    Script Loader

    • Fix protocol-relative URLs for the preconnect relation type. Props azaozz for review. [38255] #37652



    Thanks to @afragen, @azaozz, @azaozz for testing and second sign off, @Clorith, @dd32, @dd32 for review, @dimadin, @DrewAPicture, @DrewAPicture for review, @flixos90, @helen, @hugobaeta, @ipstenu, @ipstenu for research, @jeremyfelt, @JerrySarcastic, @JerrySarcastic, @joemcgill, @johnbillion, @johnpgreen, @jorbin, @macmanx, @MattyRob, @ocean90, @pento for review, @peterwilsoncc, @petya, @Presskopp, @RoseAppleMedia, @rosso99, @sebastian.pisula for the original patc, @SergeyBiryukov, @stephenharris, @swissspidy, @theMikeD for the initial patch, @voldemortensen, @westi for investigation, and @wonderboymusic for their contributions!

  • Helen Hou-Sandi 9:42 pm on August 17, 2016 Permalink |

    WordPress 4.7: The Jump Off 

    WordPress 4.7 will formally kick off at next week’s dev chat on August 24, with an anticipated release date of December 6. Please take a look at the schedule on the release overview page, which has some other notes (including a hopeful goal from me) and schedule caveats.

    On the personnel front, I’m excited to introduce Jeff Paul (@jbpaul17) and Aaron Jorbin (@jorbin) as release deputies. Jeff is a team lead at XWP and comes highly recommended with lots of project management experience. I look forward to his help on that front and learning from him in an area that’s not my strength, and am really excited about doing some cross-agency collaboration on core. Jorbin is familiar to many of you, and will be helping on more of a technical/engineering management front, such as with bug scrubs. Having two release deputies serves a few purposes: it evens out availability, is a much better balance for including and mentoring somebody newer to contributing, and it’s a representation of the kind of skill diversity I want to see more of in core and in WordPress at large.

    In the run up to kick off, get your wishlist items in and don’t forget to fill out this survey if you systematically dedicate time to working on WordPress core. Looking forward to what we make together! 4️⃣⏺7️⃣

compose new post
next post/next comment
previous post/previous comment
show/hide comments
go to top
go to login
show/hide help
shift + esc
Skip to toolbar