Last Week in WordPress Core

Howdy! This is Last Week in WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. for the week of February 24—March 2! Lots of activity for the past week, which is great as we head into our last few days of alpha. Please join us for daily triage at 1900 UTC to help work through the remaining enhancements scheduled for 3.9.

As a quick note, if you work with our tools in ‘develop’, and are receiving a SELF_SIGNED_CERT_IN_CHAIN error, you can resolve it by running npm config set ca="". For details, check out this npm blog post.

If you want to skim, each section is roughly ordered by an important and/or interesting factor.

Editor

  • Add the ability to drag and drop files directly onto the editor. Upon drop, the media manager will open, and file will begin to upload. [27343] #19845
  • Throttle scrolling of the main window when the editor is active and is being scrolled with the mouse wheel or a trackpad. [27368]. Expect some major tweaks here, though; see #27013.

Templating

  • Introduce HTML5 gallery support. When a theme supports HTML5 galleries via add_theme_support( 'html5', 'gallery' ), figure, and figcaption will be used instead of definition list markup. [27302] #26697
  • Add a filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/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. to remove or rename page templates for a theme. This does not yet handle adding page templates. [27297] #13265
  • Move comment-reply.js to the footer. While it can function before the page is loaded, it works by moving the comment form, which is usually toward the bottom of the page. Please report any contraindications on the ticketticket Created for both bug reports and feature development on the bug tracker.. [27303] #12641
  • Return 404 when querying author’s posts who is not a member and has no posts on the site. [27290] #20601
  • Make get_adjacent_post() wrap a new WP_Adjacent_Post object that uses WP_Query. [27285] [27286] #26937
  • Add exclude and include arguments to wp_list_authors(). [27274] #9902

Internals

  • Multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site: Introduce get_site_by_path() and further rewrite the site detection process for multisite. This makes it so that a sunrise 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 WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party could do much of its work by adding filters, if those are even needed. [27359] #27003
  • Database: Use MySQLi for WordPress development versions, regardless of PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher version, to increase testing footprint. There’s also a constant for testing purposes. [27257] [27278] #21663
  • Plugin 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.: Introduce doing_filter() and doing_action() to identify hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. in progress. You can also use this with to identify a hook that has completed. For more, see [27294] #14994.
  • Formatting: Strip backslashes, not just forward slashes, from untrailingslashit(). trailingslashit() will now remove any forward or backslashes from the end of a string before appending a forward slash. [27344] #22267
  • Date/Time: Allow current_time() to accept a date format string, adding to timestamp and mysql. [27259] #21653
  • Updates: During core upgrade, copy wp-includes/version.php over last, to avoid an installation failing with the new version.php in place. [27336] #25860
  • Rewrite API: Allow rewrite endpoints to specify a query variable name. [27327] #20905
  • Cache API: Revert [27115] and let cache backends handle the stripping of spaces in cache keys as necessary. microtime() returns greater precision than microtime(true). [27300] #27000, #23448, #26903, #14485
  • Query: Add a $default argument to get_query_var() and WP_Query::get(). Helpful when working with endpoints. [27304] #16471
  • Comment Query: Allow user_id to be an array of IDs in WP_Comment_Query. [27258] #27064
  • Users: Make the user arguments for get_edit_profile_url() and get_dashboard_url() optional, defaulting to the current user. [27260] [27265] #16686

External Libraries

  • Update the Masonry JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. library to version 3. [27271] #25351
    • The new script handle is masonry. The old jquery-masonry handle is the official shiv that sits on top of the v3 library to be backwards compatible with v2 usage. While v3 no longer depends on jQuery, a theme or plugin may have been implicitly loading jQuery though Masonry, rather than additionally declaring it as a dependency for themselves.
    • Themes should switch to masonry and declare jQuery as a dependency on their own if they need it.
    • Upgrade guide on Masonry’s site, with the exception that, for core, we continue to include imagesLoaded.
  • Upgrade Plupload to 2.x (2.1.1) [27316] #25663
  • Update the Root Certificate bundle used for SSLSSL Secure Sockets Layer. Provides a secure means of sending data over the internet. Used for authenticated and private actions. communication by WP_HTTP from the latest Mozilla release NSS. [27307] #27017

Developer Tools

  • Add grunt-patch-wordpress for applying patches directly from TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.. Mapped to grunt patch, which declares usage. Requires npm install to install. [27299] #27023
  • Add JSHint to Travis CI config. [27267] #26446

For the complete list of commits to 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., check out the log on Trac. Interested in joining in? Write or test a patch for 3.9.

Thanks to @adamsilverstein, @andy, @avryl, @bassgang, @bootsz, @chrisscott, @danielbachhuber, @DrewAPicture, @enej, @ericlewis, @ericmann, @ethitter, @evarlese, @garyc40, @GaryJ, @gcorne, @georgestephanis, @GregLone, @helen, @iamfriendly, @Ipstenu, @jackreichert, @jeremyfelt, @johnjamesjacoby, @jorbin, @knutsp, @kovshenin, @kpdesign, @leewillis77, @markjaquith, @mattheu, @mboynes, @mitchoyoshitaka, @mjbanks, @mordauk, @morganestes, @nacin, @nicolealleyinteractivecom, @obenland, @ocean90, @patricknami, @pento, @pross, @rickalee, @salcode, @scribu, @SergeyBiryukov, @shelob9, @siobhyb, @solarissmoke, @xsonic, @stephcook22, @theorboman, @tivnet, @TobiasBg, @willmot, @wonderboymusic, @xknown, and @yoavf for their help this week!

#3-9, #week-in-core

Last Week in WordPress Core

Howdy! This is Last Week in WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. for the week of February 17th-February 23rd. A few commits to highlight this week, but before we get to that, a quick update from the trac sprint last friday.

Friday TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. Sprint

Thanks to everyone who participated! Great progress was made during the trac sprint last friday, triaging and replying to the tickets that need a response. Working together, we brought the number of tickets down by 200! But, we’re not done yet! Minus the 50 tickets created by committers/gardners, there are 191 left. If you’re interested in helping out, check out @nacin‘s notes on providing feedback. As always, feel free to ask for help in #wordpress-dev if you run into any questions.

Internals & Backbone.js

  • Added support for ext/mysqli, which will be used by default in PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 5.5 or greater. Please test this, as it’s quite possible it will cause issues. r27250 #21663
  • Updated Backbone.js to version 1.1.2. r27233 #27182
  • Added an abstraction for groups of media in media-editor.js called wp.media.collection and refactored galleries to use them. r27212 r27213 r27214 r27215 r27238 #26631
  • Added boolean return values to require_if_theme_supports(). r27217 #26716
  • Declared and documented $wpdb->base_prefix. r27249 #16762

Media

  • First pass of a/v playlist support. Please test, and note on the bug if you notice anything amiss! A few details from the commits: ( r27239 r27242 r27243 r27244 r27245 #26631 )
    • Playlists operate like galleries in the adminadmin (and super admin).
    • Provides default UIUI User interface and JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. support in themes using MediaElement and Backbone.
    • The shortcodes are clickable, editable, and configurable using the media modal.
    • Playlists support images for each item, whether or not the current theme supports images for attachment:audio and attachment:video
    • Playlists respond to $content_width and resize videos accordingly.
    • All playlist data is included inline, using a script 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.) with type="application/json", allowing anyone to unenqueue the WP playlist JS and roll their own.
    • Playlist styles are minimal and work out of the box in the last 5 default themes. They inherit and adapt to the current theme’s font styles, and their rules are easily overrideable.

Dev/Build Tools

  • First pass in adding an .editorconfig file, to aid contributors in following the WordPress coding standards. r27198 #26429
  • Re-split wp-admin.css, using @import in src, and using grunt and cssmin as build tools to combine them for build/. Re-tool CSSCSS Cascading Style Sheets. inclusion methods to match. r27195 #26669 r27199 r27200 r27203 r27204 #12506 #20729
  • Updated version of grunt-autoprefixer. Now supports the ms-touch-action prop for IE10. Run grunt autoprefixer:core to re-add the missing props in media-view.css. r27236 #27078

For the complete list of commits to 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., check out the log on Trac. Want to help out this week? Write or test a patch for 3.9.

Thanks to aaroncampbell, avryl, azaozz, bcworkz, brasofilo, corvannoorloos, danielbachhuber, dougwollison, DrewAPicture, ericlewis, gcorne, helen, ipstenu, jeffsebring, jorbin, juliobox, kovshenin, kpdesign, MattyRob, meloniq, nacin, netweb, ocean90, OriginalEXE, pento, scribu, SergeyBiryukov, shelob9, theorboman, TobiasBg, wonderboymusic, and everyone who helped out with the ticketticket Created for both bug reports and feature development on the bug tracker. triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. last Friday for their efforts this week!

#3-9, #week-in-core

Last Week in WordPress Core

Hello there! This is Last Week in WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. for the week of February 10th-February 16th. Let’s start out by highlighting JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. library updates, then changes to how we build CSSCSS Cascading Style Sheets. for core, finally touching on TinyMCE, internals, and multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site.

Backbone.js and Underscore.js

  • Backbone was updated from 1.0 to 1.1, and Underscore to 1.6. If you have 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 WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party that is built on the backbone-based libraries in core, you’ll want to test for compatibility and update accordingly. We’ll be working with the plugins group to notify as many authors as possible. r27170 #26799
    • Collection set/add/remove/reset methods now return models, not this, so they can no longer be chained.
  • Updated media-views and wp.Backbone.View for Backbone 1.1. r27171 #26799
    • Options passed to Backbone.View‘s constructor are no longer attached automatically. wp.Backbone.View now handles this.

Dev/Build Tools:

  • Use grunt-autoprefixer for CSS vendor prefixes. As a first step, add prefixes we were missing to core CSS, and remove prefixes that we no longer need, including all from colors CSS. r27174 #27078 The plan is the following:
    • Core CSS files will keep prefixes. grunt autoprefixer:core will update files directly in src/ as a pre-commit step, rather than doing it on build.
    • Color CSS files will receive prefixes when they are built.
  • Add grunt precommit for running front-end dev and test tasks before commit. This includes autoprefixer, imagemin, jshint, and qunit. r27176 #27121 #25169 #27078
  • Add grunt imagemin:core task for optimizing images pre-commit. Adds grunt-contrib-imagemin, so an npm install will be required. r27172 #25169
  • Optimize 69 images (of 127) using the new Grunt task. r27173 #25169
  • Rename the old media.css file, used for the pre-3.5 media library, to deprecated-media.css. r27181 #26669

TinyMCE:

  • Add image based placeholders for audio and video shortcodes. r27169 #27016
  • Add support for audio and video shortcodes without closing. r27177 #27016
  • Incremental changes in TinyMCE’s new charmap popup, including allowing multiple-character insert. r27179 r27165 #27107

Internals & Multisite:

  • Detect and handle symlinking of plugins in plugin_basename(). (Yay!) r27158 #16953
  • Add get_network_by_path() and wp_get_network() to begin cleanup of multisite load. Likely to continue to change throughout 3.9 r27178 #27003
  • Rather than removing the 3rd argument in WP_Object_Cache::delete(), mark it as $deprecated. See r27064. r27162 #22478
  • Partially revert r27101, r27102, r27141, and r27142, removing new cache synchronization functions in favor of a simpler solution that alters existing internals. r27163 #14485 #22526

Thanks to azaozz, bpetty, DrewAPicture, gcorne, georgestephanis, jdgrimes, jeremyfelt, jorbin, kovshenin, mikemanger, MikeSchinkel, nacin, ocean90, pavelevap, rmccue, SergeyBiryukov, and wonderboymusic for their help this week!

For the complete list of commits to 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., check out the log on Trac.

It’s important that we reduce the amount of tickets slated for 3.9, as we work towards 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. on March 5th. Want to help out this week? Write or test a patch for 3.9.

#3-9, #week-in-core

Last Week in WordPress Core

Howdy, everyone! It’s time for Last Week In WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., for the week of February 3–February 9. Let’s start out with a couple of discussion points, then commit highlights, and close with housekeeping.

CSSCSS Cascading Style Sheets. autoprefixer?

@ocean90 has a proposal up on trac to use Autoprefixer to handle vendor prefixing. This is an neat idea, but has potential complications as to when we should run the Grunt task, since it’d be optimal for core.svn and develop.svn to continue to be as usable for development as possible. Have an opinion? Please join the discussion on #27078.

MySQLi

There is fresh discussion on how to handle the MySQLi transition. The current consensus seems to be that everyone would like a driver-style WPDB in the future. However, exactly what that will look like, and when it will happen is not yet agreed upon. Since there is an apparent need to move on this, in order to ease this in for 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 WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party authors, for 3.9 @nacin suggests we start to use use mysqli but only when PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 5.5+. Details on the ticketticket Created for both bug reports and feature development on the bug tracker..

TinyMCE and Autosave

  • Incorporate the TinyMCE tests into our JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. tests, #27014.
  • In TinyMCE, don’t replace <i> and <b> with <em> and <strong>, and don’t remove them when empty. Helpful when using an icon font. #24067, #23037.
  • @azaozz is weighing whether we need backcompat for plugins that had overridden or blocked autosaves (such as by overriding window.autosave). Feedback welcome on #25272.
  • Make it easy when using wp_editor() which editor (visual or text) is loaded first. #20822
  • Don’t scroll the main window when trying to scroll the editor content with a mouse wheel or trackpad. [27095], [27110]. This is still being tweaked, #27013.

Media and Embeds

  • Add imgur and meetup.com oEmbed support. #21632, #23171.
  • Introduce maybe_regenerate_attachment_metadata(), which generates metadata if an attachment is lacking it entirely. #26825
  • Introduce has_image_size() and remove_image_size(), [27128], [27129], #26951, #26768.
  • When a video shortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. has content in its body, append it as inner HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. in the resulting <video>. This aids with including content such as subtitles. #26628

Administration related

  • Merge colors.css into wp-admin.css, resulting in 1,065 fewer lines. #18380. The next step in the wp-admin.css cleanup project is #26669.
  • In the revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. browser, the back button now returns you to the post you were editing, #26997.
  • Properly run wp_auth_check on every Heartbeat tick, #27081.
  • Properly remove post/page items from nav menus when the post/page is deleted, #26795. Fixes a 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. that first appeared in 3.7.

Twenty Fourteen

  • Fix gap from appearing above static pages, #26694.
  • Delete the featured_content_ids transient on theme switch to make sure child themes can override the Featured Content quantity value. Also remove quantity parameter so child themes can change the amount of featured posts with $max_posts, #26660.
  • Fix unreachable links when the content area is shorter than the sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. in smaller viewpoints, #26782.
  • Make sure featured 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.) is hidden on front-end views as expected, #26732.
  • Translate the featured tag slug used to link to specific tags in Posts editor, #26526.
  • Avoid showing full post in Ephemera 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. when displayed in single post or page, #26961.
  • Use the display filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/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. for get_bloginfo('name') attached to the wp_title filter, #26811. Also applies to Twenty Twelve and Twenty Thirteen.

TaxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. and Caching

  • Regenerate the term hierarchy caches and object term caches when we can detect are stale. Work in #14485 and #22526 is ongoing; possibly with an alternative approach.
  • In  top-level term without first including its children, and recurse through entire depth in hierarchy. #26903.
  • In get_terms(), don’t automatically set hierarchical to false when parent => 0 is passed. The default value for parent is an empty string, #26903. Also required a fix in _get_term_children(), see [27108].
  • Other caching changes: #27000, #25545.

Housekeeping

In make/core land, @nacin posted notes from last week’s team meeting that I’d suggest checking out if you weren’t able to make it. In other housekeeping notes, fine-grained ticket notifications and settings are now live, and if you haven’t yet signed up to be a Google Summer of Code mentor (and would like to), check out this post from @jenmylo.

For the complete list of commits to 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., check out the log on Trac. There were a bunch of great inline docsinline docs (phpdoc, docblock, xref) updates not covered here.

Almost forty contributors helped out last week! Awesome! Want to help out this week? Write or test a patch for 3.9.

Thanks for efforts from _jameslee, adamsilverstein, Ajay, andykeith, antorome, avryl, azaozz, bradparbs, celloexpressions, DrewAPicture, drozdz, frank-klein, gcorne, helen, jdgrimes, jorbin, kitchin, kovshenin, kpdesign, lancewillett, markoheijnen, michelwppi, mor10, mordauk, nacin, NikV, nprasath002, obenland, philiparthurmoore, ruudjoyo, sennza, SergeyBiryukov, ShinichiN, TobiasBg, UmeshSingla, VarunAgw, and wonderboymusic.

#3-9, #week-in-core

Here’s a quick summary of yesterday’s meeting as…

Here’s a quick summary of yesterday’s meeting (IRC log), as a status report on WordPress 3.9:

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 will now be the week of March 3, a week later. The rest of the schedule is unchanged. I felt the extra week of alpha would be helpful given all of forward momentum right now, and others seemed to agree.

It was decided to green-light the widget customizer plugin for merge. If all goes well, it’ll be in 3.9 final. There’s still a lot to do: some UIUI User interface polishing, deeper code review, etc. — and surely it will get a lot of testing.

Quick hits raised in the meeting:

  • Settings review is in the ideas/sketch/wireframe stage. They have a meeting today. (@jenmylo, @melchoyce)
  • Lots of audio/video changes landed. Needs review on #27026 and UI feedback on #26631. (@wonderboymusic)
  • Work continues bringing the image editor into the media manager. #21811. (@gcorne, @tomauger)
  • TinyMCE/editor: modals are getting redesigned. #26952. (@melchoyce, @avryl) QUnit tests are being added. #27014. (@azaozz) @gcorne also sunk some time into MCE views, for gallery rendering.
  • THX 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 WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party is being revived to take a crack at the theme install screen. If it works out, these patches could land in 3.9. (@matveb)
  • A Grunt 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. tool needs testing. #27023. (@jorbin)
  • Some refactoring of the multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site bootstrap will begin this week. #27003. (@jeremyfelt)
  • Volunteer(s) wanted: If anyone wants to work on expanding autocomplete in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., there is some work in that area to be done. @helen will help shepherd.

We have a few more weeks of alpha, so it’s a great time to help with writing or testing a patch for WordPress 3.9. We’ll be keeping the tempo quick. Expect lots of changes.

#3-9

Please suggest agenda items for the weekly developer…

Please suggest agenda items for the weekly developer meeting, Wednesday, February 5, 21:00 UTC.

If there’s a task or ticketticket Created for both bug reports and feature development on the bug tracker. we need to work through, or need volunteers for, let’s get those spelled out now. Maybe we can even work through some of them pre-meeting.

I’ll again be asking for a sentence or two (or more, if necessary of course) from each person/team working on a 3.9 task. You can also post those here if you’d like — please cross-reference any relevant tickets or discussions. Worked out great last week. For the state of things as of last week, see Mike’s weekly roundup.

#3-9, #agenda

Last week in WordPress core

Welcome back to Last Week In WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., for the week of January 27-February 2. Big list this time! First, a summary of the major changes; then a roundup from the various 3.9 teams:

Enhancements and hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.

  • The first run for a refreshed “Edit Image” modal inside TinyMCE landed, which includes a “replace image” function. Work continues on #24409, if you’d like to help out!
  • Previews of different posts now open in different windows/tabs! #20233
  • Allow chromeless embedding of YouTube videos with video shortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site.. #24764
  • Autocomplete for the “new site” adminadmin (and super admin) e-mail address in multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site. #25348
  • Arguments are now included when filtering wp_dropdown_categories() with wp_dropdown_cats. #24103
  • New Hook, resetpass_form, in wp-login.php #21044
  • Add wp_install and wp_upgrade hooks to the respective functions. #25762

Database changes

  • Initial patch to reconnect when the MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. server “goes away” has landed, with a request for feedback on how to make the solution more fool-proof on #5932.
  • Improved Compatibility with MySQL 5.6, which has stricter default SQL modes.
    Disables NO_ZERO_DATE, ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, STRICT_ALL_TABLES, TRADITIONAL. Introduces filterable wpdb::set_sql_mode(), with incompatible_sql_modes filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/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. for plugins. #26847
  • We now throw a notice when wpdb::prepare() is called without a placeholder. #25604
  • In wpdb::db_connect(), allow the loading of a translatable custom database error template. #25703

Miscellaneous, including library updates

  • Properly invalidate the cache for wp_count_posts() on insert, trashTrash Trash in WordPress is like the Recycle Bin on your PC or Trash in your Macintosh computer. Users with the proper permission level (administrators and editors) have the ability to delete a post, page, and/or comments. When you delete the item, it is moved to the trash folder where it will remain for 30 days., or when transitioning post_status. #21879
  • $force argument removed from WP_Object_Cache::delete(), which was internal-only. #22478
  • TinyMCE updated to 4.0.16. #24067
  • Dashicons updated to latest. Adds line break, paragraph, code, and bbPressbbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.org.. #26936
  • MediaElement.js updated to 2.13.2. #26954
  • Update the versions of several devDependencies in package.json. Run npm install to receive updates for node_modules in the project root. #26073

3.9 status reports

Here are roughly where each of the 3.9 teams/tasks stood as of last week’s meeting:

Media/editor related:

  • Media Modal: “Initial version of the single image editor landed, which includes the ability to replace the image and update the main set of attributes (e.g. caption, alt, alignment, link).” (@gcorne) (#21811)
  • Image Editor: “have a proof-of-concept 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 WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party ready awaiting input on how to modularize the Editor and make it extensibleExtensible This is the ability to add additional functionality to the code. Plugins extend the WordPress core software. and flexible. Working on 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 introduces a few well-placed hooks.” (@tomauger) (#21811)
  • Rendering in the editor: “Going to dig into rendering galleries in the visual editor using a wpview and building on some of the work that i did in https://github.com/gcorne/gallery-editor.” (@gcorne) (#26628, #26959)
  • TinyMCE: All looks good on this front, #24067. “We’ve also started looking at restyling TinyMCE modals to match the admin, #26952“(@azaozz, @melchoyce)
  • Audio/Video: There’s an update post by @wonderboymusic.

Other UIUI User interface work:

  • 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. 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.: “We’re running more users tests; Working on 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). (https://en.wikipedia.org/wiki/Accessibility) features; Trying to figure out support for wide widgets; Asked for some code review/notes; And digesting feedback from our recent p2 post.” (@shaunandrews)
  • Settings screens: “We had a meeting yesterday to divvy up the redux. I’m looking at reordering of information across screens, @melchoyce is experimenting with UI approaches, and @Ipstenu is looking at cleaning up the multisite ‘edit site/settings’ view. We hope to be posting sketches/wireframes [this] week.” Also, they’re again looking at lifting post by email from core. (@jenmylo)
  • Accessibility: we are testing 3.8.1 admin screens for keyboard accessibility. (@joedolson)
  • Autocomplete: After the new site email address autocomplete landed (#25348), now looking into other areas — users (#19867) and pages (#9864). (@helen)
  • CSSCSS Cascading Style Sheets.: Work continues on the colors.css merge to prep for splitting up wp-admin.css. (@helen, #18380, #26669).

Fun with internals:

  • Multisite: “Our tickets are focused. [As in, reorganized into the ‘multisite’ focus.] I’ve been digging through ms-load.php, ms-settings.php, etc in prep for some fun domain routing work. Would like to compare thoughts on approach soon and get moving on that.” (@jeremyfelt)
  • New Grunt-based Patching Tool: “I’ve been using it locally and haven’t run into any issues. Will be opening a ticketticket Created for both bug reports and feature development on the bug tracker. on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. with a patch and instructions in the next few days.” (@jorbin)
  • TaxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies.: Hope to start with the first few tickets on the roadmap this week. (@nacin)

Housekeeping items last week included a call for GSoC participation from @jenmylo, and trac component reorganization proposal from @nacin. The reorganization was approved during the chat on Wednesday and is well under way. Additionally, there’s now a new Trac reports overlay and Trac’s navigation got overhauled.

For the complete changelog commits to 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., check out the log on Trac.

More than three dozen contributors had a hand in last week’s efforts. Want to help out this week? Write or test a patch for 3.9.

Thanks for contributions this week from atimmer, aubreypwd, azaozz, c3mdigital, cmmarslender, coffee2code, Denis-de-Bernardy, DrewAPicture, empireoflight, gcornehelen, ippetkov, jeremyfelt, joehoyle, johnjamesjacoby, JoshuaAbenazer, kovshenin, kpdesign, kraftbj, mark8barnes, markjaquith, MattyRob, mdbitz, melchoyce, nacin, neoxx, nofearinc, ocean90, olivM, oso96_2000, ounziw, pento, romaimperator, sbruner, SergeyBiryukov, soulseekah, TobiasBg, toszcze, wonderboymusic, and yoavf!

#3-9, #week-in-core

Please propose agenda items for the development meeting…

Please propose agenda items for the development meeting today at 21:00 UTC. Let’s try to keep it to under an hour, like last week’s.

Some to start us off:

  • Consider the Widgets Customizer plugin for 3.9 merge. If you haven’t looked at it yet, please spend some time today before the meeting. Obviously, we all like the idea, but we need to study the implementation and provide feedback. Please comment on that post if you haven’t already.
  • I’d like to propose an initiative for cleaning up a group of 556 tickets during the 3.9 cycle. (It has details, will explain in the meeting.)
  • Quick situation reports for various 3.9 tasks. If you’re working on something, please come armed with a sentence so we can do these rapid-fire — or post it in the comments thread. Some things are moving forward quickly, some aren’t. Where can we help? Here’s a list of what was proposed for 3.9 (see also the comments, which were updated after the last meeting). We need to take the “proposed” label off soon…
  • I’d like to get moving on the TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. component re-organization; I’ll see if there are any questions. We will need some help to move around tickets (ideally adding feedback to them along the way), so I’ll be looking for volunteers and talking about what is needed.

Aren’t familiar with how these meetings work? They’re especially good for breaking logjams — whether that means talking through a major sticking point, finding volunteers to help with something. We also use them to plan out schedules and tasks, make sure everyone is on the same page, and do release post-mortems to see how things went. (As 3.8.1 was released on Thursday, could be good to discuss this and 3.8.2, for example.)

The meeting takes place in IRCIRC Internet Relay Chat, a network where users can have conversations online. IRC channels are used widely by open source projects, and by WordPress. The primary WordPress channels are #wordpress and #wordpress-dev, on irc.freenode.net. on chat.freenode.net in the #wordpress-dev channel. See you then!

#3-9, #agenda

Last week in WordPress core

And now, for the first in a series of synopsis posts outlining what’s going on in WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. The idea behind these posts is to highlight technical changes in WordPress 3.9 as it progresses, with the hope of keeping the community informed. If you have suggestions for content you’d like to see, please comment below!

Last week, we kicked off 3.9, and released 3.8.1 (yay!). There were a lot of changes that occurred in 3.8.1, and @nacin provided an overview. These were all added to 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. and will be in 3.9.

Here are a few highlights from last week’s commits:

@nacin also added a small enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. to TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. to point users in the right direction when they end up on a ticketticket Created for both bug reports and feature development on the bug tracker. that was fixed in a released version of WordPress:
This ticket was closed on a completed milestone. If you have a bug or enhancement to report, please open a new ticket.

Other housekeeping items included new Trac “focuses”.

For the complete list of 51 commits to trunk, here’s the changelog. Thirty contributors had a hand in last week’s efforts. Want to jump in this week? Write or test a patch for 3.9.

Thanks for efforts from yurivictor, cojennin, iammattthomas, mdbitz, kraftbj, dd32, c3mdigital, jorbin, adamsilverstein, Otto42, JayCC, johnbillion, nacin, xknown, mattheu, nbachiyski, undergroundnetwork, morganestes, matveb, SergeyBiryukov, azaozz, joedolson, alex-ye, ciantic, MikeHansenMe, batmoo, Corphi, Marventus, ocean90, and DrewAPicture.

#3-8-1, #3-9, #week-in-core

Possible tasks for WP 3.9

During last week’s dev chat, we decided on a schedule. We also chatted about a major focus in 3.9 on improving workflow for new and current contributors alike. If there are further suggestions on changes we can make to workflow to make coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. easier to contribute to, let us know.

Below is a rundown of what features/enhancements/ideas were discussed as possible for 3.9, including potential volunteers to take point on different tasks. This is all tentative. Thanks @DH-Shredder for compiling this.

In today’s chat, let’s continue to build this out. If you have something you’d love to work on during the release, join us!

Widgets

There are two 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.-related feature plugins to review: Better Widgets and Widget Customizer. Decisions on what we’re merging should come by next week, per the schedule. Expect a post from @shaunandrews soon explaining both and requesting help reviewing them.

TinyMCE improvements (@azaozz, @gcorne, @lgladdy)

  • TinyMCE 4 inclusion and troubleshooting
  • Improving editing/positioning images after insertion into the editor

Editor-related media improvements

  • Bringing the image editor into the media manager (@melchoyce, @johnbillion)
  • Allow a user to drop an item for upload on the post screen. This would then open the media modal (as an initial first step).

A better themes experience, part 2 (@matveb)

  • Taking our new experience to the theme installer (this may be started as 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 WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party)
  • Supporting multiple screenshots, left out of 3.8
  • Backbone routing and subview backend improvements

Improved audio/video support (@wonderboymusic) (see this post)

  • Playlists, subtitles, metadata generation
  • Media manager documentation

JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. and CSSCSS Cascading Style Sheets.

  • wp-admin.css split (@jorbin, @helen) (see this post)
  • Merging colors.css into other CSS files (@helen)
  • Grunt tool for patches (@jorbin)
  • Inline JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. documentation using JSDoc (@jorbin)

Miscellaneous

  • Adminadmin (and super admin) settings audit (@jenmylo, @melchoyce)
  • Various multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site improvements TBD (@jeremyfelt)
  • Start the taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. roadmap (@nacin, @wonderboymusic) (see this post)

#3-9