Dev Chat Agenda for March 29th (4.7.4 week 4)

Please note the changed start time of this dev chat to account for DST. This is the first meeting at this new time.

This is the agenda for the weekly dev meeting on March 29, 2017 at 20:00 UTC:

  • 4.7.4 planning (bug scrubs, release date)
  • Editor team (feature plugin work is continuing on GitHub)
  • REST API team
  • Community Summit Core team reps

If you have anything to propose to add to the agenda or specific items related to the above, please leave a comment below. See you there!

#4-7, #4-7-4, #agenda, #dev-chat

Source: WordPress Development Updates

Approaches for a complete sites endpoint and an expanded WP_Site_Query

Multisite office hours are held every Tuesday at 16:00 UTC in #core-multisite. The next will be Tuesday 16:00 UTC.

Creating a useful sites/ endpoint for the REST API and making WP_Site_Query more useful have been frequent topics over the last few weeks in #core-multisite. Quite a bit of discussion has been centered around the idea of a global wp_blogmeta table, whether it’s a good fit for core, and (if so) how to approach its introduction. See #37923 and the previous make/core post discussing a sites endpoint for additional background.

The intent of this post is to step back a bit and clarify the issues at hand to help identify the right solution(s).

The initial site information problem

A request to a global wp-json/wp/v2/sites/ endpoint on a network should return a set of site objects, similar to how wp-json/wp/v2/posts/ returns a set of post objects. A request to wp-json/wp/v2/sites/4 would return a single site object.

Written today each site object, represented as WP_Site in PHP, would provide at least this data:

  • ID
  • domain
  • path
  • registered
  • last_updated
  • public
  • archived
  • mature
  • spam
  • deleted
  • lang_id

The above fields all mirror what is available in the global wp_blogs database table installed with multisite. These are useful on their own, but additional data is frequently required.

Example: One piece of the admin that would be great to power with the REST API is the My Sites menu that multisite users see in the toolbar. To build this view, the home URL, admin URL, and site name are all necessary. In PHP, this data is made available through magic properties on the WP_Site object. When home, siteurl, blogname, or post_count is requested, the site uses switch_to_blog() and get_option() to populate the data from the individual site’s options table. If 25 sites are on the list, this generates 25 context switches and accesses 25 different tables.

There are at least a few approaches here:

  • Mirror the existing PHP experience and ensure properties are populated before the REST API response is returned. Possibly introduce a lighter weight switch_to_blog() option.
  • Provide a basic site object as well as an option to _embed other data in the response.
  • Migrate these properties into wp_blogs from wp_#_options as additional columns.
  • Migrate these properties into a global wp_blogmeta table.
  • Migrate these properties into another shared global space.

The querying sites problem

It’s currently possible to query for sites by the default fields listed above. This data is useful for querying, but it would also be nice to query by a site’s name, description, or other piece of data at a global level.

Example: In the list table that displays all the sites of a network, it’s possible to query by a site’s domain or path, but not by it’s actual name. In a large network, a user may find it difficult to find a site when many sites share similar domains or paths. The user may know the site’s title, but not the address itself.

There is no real workaround for this issue in core right now as each site’s name is stored individually in that site’s wp_#_options table and cannot be queried collectively.

Possible approaches:

  • Migrate these properties into wp_blogs() from wp_#_options as additional fields.
  • Migrate these properties into a global wp_blogmeta table.
  • Migrate these properties into another shared global space.

Feedback please

Please leave any thoughts you have on possible approaches to these 2 problems. It would be especially helpful to identify some use cases that may not yet be clear, or approaches that are not listed above. All feedback is welcome. 🙂

#multisite, #rest-api

Source: WordPress Development Updates

Dev Chat Summary: March 22nd (4.7.4 week 3)

This post summarizes the dev chat meeting from March 22nd (agendaSlack archive).

4.7.4 Planning

  • Moving dev chat back an hour to 20:00 UTC starting with next week’s chat (due to DST)
  • That makes next week’s meeting at Wednesday, March 29, 20:00 UTC
  • Bug scrub planned for Thursday, March 23, 15:00 UTC to review tickets in 4.7.4 milestone, likely tackling needs-patch tickets first
  • Tentatively aiming for first week of May for 4.7.4 release, but will adjust as bug scrubs determine what needs to / should land in 4.7.4

Core team reps

  • Still looking for nominations for a Core team rep
  • Core team reps need to plan to be at the Community Summit and can take on organizing topics and people
  • @logankipp planning to be at the summit, open to helping; will tag him as Core team rep, but would like to find one more person to help
  • Please comment or contact @jbpaul17 directly if you’re planning to attend the summit and can help organize topics/people for Core

Editor team

  • Moving into feature plugin phase with Gutenberg, looking for and greatly appreciate contributions and feedback to the GitHub repo
  • Lots of discussion ongoing in the GitHub repo (e.g., Plugin: Implement block registering API), so please follow along and chime in
  • Will proceed on Gutenberg without support for older browsers
  • Will start surfacing things that may need broader discussion in how we use JS, what tools we develop, etc.

#4-7, #4-7-4, #community-summit, #core, #core-customize, #core-editor, #core-restapi, #dev-chat, #summary

Source: WordPress Development Updates

Dev Chat Agenda for March 22nd (4.7.4 week 3)

This is the agenda for the weekly dev meeting on March 22, 2017 at 21:00 UTC:

  • 4.7.4 planning (DST, bug scrub, release date)
  • Confirmation on Core team reps
  • Editor team (Gutenberg moving to feature plugin phase)
  • General announcements

If you have anything to propose to add to the agenda or specific items related to the above, please leave a comment below. See you there!

#4-7, #4-7-4, #agenda, #dev-chat

Source: WordPress Development Updates

jQuery 3.2.1 Is Now Available, With Some Hotfixes

jQuery 3.2.1 is now available! This release comes with some hotfixes for regressions that were introduced in the 3.2.0 build four days ago. We wanted to release this patch as quickly as possible to squash any bugs you may have experienced when upgrading. The most significant one had to do with retrieving width or height on an inline element with no explicitly-set dimensions. This should now work as expected. A full list of changes is available below. Also see the 3.2.0 blog post for the bug fixes and improvements that still apply if upgrading from jQuery 3.1.1.

There should be no compatibility issues if upgrading from jQuery 3.0+. If you haven’t yet upgraded to jQuery 3+, please have a look at the 3.0 Upgrade Guide. The jQuery Migrate 3.0 plugin will help you to identify compatibility issues in your code.

Please try out this new release and let us know about any issues you experienced.

Changes

Core

  • Ensure jQuery.holdReady is in the right place (#3573, fcc9a9ec)

Dimensions

  • Ensure we get proper values for width and height on elements with display “inline” (#3571, 473d2ea7)

Event

  • Ensure trigger data is passed to radio click event handlers (#3579, a6b07052)
  • Revert: Trigger checkbox and radio click events identically (35785a32).
  • Revert: Add radio click triggering tests (4d6b4536).

GitHub changelog: Issues fixed in 3.2.1 | All changes

Download

You can get the files from the jQuery CDN, or link to them directly:

https://code.jquery.com/jquery-3.2.1.js

https://code.jquery.com/jquery-3.2.1.min.js

You can also get this release from npm:

npm install jquery@3.2.1

Slim build

Sometimes you don’t need ajax, or you prefer to use one of the many standalone libraries that focus on ajax requests. And often it is simpler to use a combination of CSS and class manipulation for all your web animations. Along with the regular version of jQuery that includes the ajax and effects modules, we’ve released a “slim” version that excludes these modules. The size of jQuery is very rarely a load performance concern these days, but the slim build is about 6k gzipped bytes smaller than the regular version – 23.6k vs 30k. These files are also available in the npm package and on the CDN:

https://code.jquery.com/jquery-3.2.1.slim.js
https://code.jquery.com/jquery-3.2.1.slim.min.js

These updates are already available as the current versions on npm and Bower. Information on all the ways to get jQuery is available at https://jquery.com/download/. Public CDNs receive their copies today, please give them a few days to post the files. If you’re anxious to get a quick start, use the files on our CDN until they have a chance to update.

Thanks

Many thanks to all of you who participated in this release by testing, reporting bugs, or submitting patches, including Steve Mao and the whole jQuery team.

Source: jQuery

Dev Chat Summary: March 15th (4.7.4 week 2)

This post summarizes the dev chat meeting from March 15th (agendaSlack archive).

4.7.4 Planning

Browser support

  • Additional dev chat earlier today on topic of Browser support (Slack archive)
  • After some discussion, we arrived at the following strategy.
    • A “text” editor available to everyone is the best fallback – the new visual editor will leave old browsers behind.
    • Some form of the current version of the editor can be packaged into a plugin. Sites with users requiring a more advanced editor experience for older browsers can install this plugin.
    • The WordPress admin screen will display a notice of some sort to users with older browsers explaining the changes and how they can install the plugin for the experience they were used to (possibly utilizing BrowseHappy).
    • The editor team will use their research for the new editor to determine which buttons need to remain in the “text” editor with support for older browsers.
    • A more general discussion about browser support policies is slated to be had at the Community Summit before WordCamp EU. But this discussion can start before that (@jorbin is working on a Make post to start that conversation).
  • Any additional feedback from anyone who could not attend then is welcomed!

Core team reps

  • Last week we had nominations for @jorbin and @afercia.
  • Core team reps need to plan to be at the Community Summit and can take on organizing topics and people
  • @afercia not currently scheduled to be at summit, but would like to
  • Please comment or contact @jbpaul17 directly if you’re planning to attend the summit and can help organize topics/people for Core

Customize team

REST API team

  • Day of REST event was successful, but delayed continuing bug triage, will pick back up on 4.7.4 to make sure we keep solving the critical pieces
  • @jnylen0 & others resolved issue with tests & daylight savings time
  • due to bandwidth the existing REST API contributor group is fully occupied with the API itself
  • existing REST API contributor group have neither the bandwidth nor the domain expertise to also be leading the WP Admin implementations that will consume the REST API
  • @adamsilverstein lead the charge with Quick Draft, and work has begun in several parallel channels, but as of right now there’s nothing that appears to have momentum
  • We need help to drive adoption of the REST API within WP Admin, please come chat in #core-restapi any time
  • We need more explicit awareness of how the other feature teams want to use the REST API, or volunteers to lead separate implementations to move away from admin-ajax where it introduces inconsistency
  • If you’re not able to lead the separate implementations, then please chime in on component tickets as they’re opened to help us triage the pain points

General announcements

  • PHPunit tests (#39265: Missing @covers and @uses in the comments block in phpunt test for wordpress)
    • @pbearne: I am trying to do is get support to have @cover and @uses required for PHPunint tests
    • @pbearne: Willing to work through the old tests to add the missing comments
    • @pbearne: I would like to propose that we require for all new / updated tests and that the code committers commit updates with these added ASAP
    • How would we use that information going forward?
    • @pbearne: add to WordPress.org as way of show code quality and tell how well we are doing
    • What would be a realistic number we’d want to achieve?
    • @pbearne: anything over 80%
  • If you use the editor, please look to complete the Editor Experience Survey.

#4-7, #4-7-4, #community-summit, #core, #core-customize, #core-editor, #dev-chat, #summary

Source: WordPress Development Updates

jQuery 3.2.0 Is Out!

jQuery 3.2.0 has been released!

This release includes some bug fixes, improvements, and some deprecations. There should be no compatibility issues if upgrading from jQuery 3.0+.

If you haven’t yet upgraded to jQuery 3+, please have a look at the 3.0 Upgrade Guide. The jQuery Migrate 3.0 plugin will help you to identify compatibility issues in your code.

Please try out this new release and let us know about any issues you experienced.

Notable Updates

  • Added support for custom CSS properties (#3144).
  • Deprecated jQuery.holdReady (#3288).
  • Deprecated jQuery.nodeName (#3475).
  • Deprecated jQuery.isArray (#2961).
  • Fixed a bug in .width(), .height(), and related methods where CSS transforms were included in the calculations. For instance, an element with the style transform: scale(2x) should not have its width and height values doubled (#3193).
  • Added support for <template> elements to the .contents() method (#3436).
  • Added back the deprecated module to the slim build. This change is largely insignificant given the module’s small size. We believe it makes more sense to remove deprecated pieces from the slim build at the same time as the main jQuery build (#3237).

Download

You can get the files from the jQuery CDN, or link to them directly:

https://code.jquery.com/jquery-3.2.0.js

https://code.jquery.com/jquery-3.2.0.min.js

You can also get this release from npm:

npm install jquery@3.2.0

Slim build

Sometimes you don’t need ajax, or you prefer to use one of the many standalone libraries that focus on ajax requests. And often it is simpler to use a combination of CSS and class manipulation for all your web animations. Along with the regular version of jQuery that includes the ajax and effects modules, we’ve released a “slim” version that excludes these modules. The size of jQuery is very rarely a load performance concern these days, but the slim build is about 6k gzipped bytes smaller than the regular version – 23.6k vs 30k. These files are also available in the npm package and on the CDN:

https://code.jquery.com/jquery-3.2.0.slim.js
https://code.jquery.com/jquery-3.2.0.slim.min.js

These updates are already available as the current versions on npm and Bower. Information on all the ways to get jQuery is available at https://jquery.com/download/. Public CDNs receive their copies today, please give them a few days to post the files. If you’re anxious to get a quick start, use the files on our CDN until they have a chance to update.

Thanks

Many thanks to all of you who participated in this release by testing, reporting bugs, or submitting patches, including Connor Atherton, Jason Bedard, David Broder-Rodgers, Oleg Gaidarenko, Michał Gołębiowski, Richard Gibson, karan-96, Manoj Kumar, Alexander Lisianoi, Alex Louden, Alex Padilla, and the whole jQuery team.

GitHub changelog: Issues fixed in 3.2.0 | All changes

Full changelog

Callbacks

  • Prevent add() from unlocking with-memory lists (#3469, 9d822bc1)

Core

CSS

Deferred

  • Stop inventing jQuery.when() resolution values (#3442, 5d79c646)

Dimensions

  • Ignore transforms when retrieving width/height (#3193, c920ff6e)

Docs

  • Remove supported jQuery versions from ISSUE_TEMPLATE.md (fedc1aa6)
  • Correct typo in issue template (a8816caf)

Effects

Event

  • Trigger checkbox and radio click events identically (#3423, b442abac)
  • Add radio click triggering tests (5f35b5b4)

Manipulation

Offset

Tests

  • Skip CSS custom properties tests in non-supporting browsers (bcec54ee)
  • Update the loader so test pages always get jQuery (14b393d0)
  • Added tests for symbol-separated tag names (#2006, bd9145fa)
  • Clean up after the CSS Custom Properties support test (fc34dbc2)

Traversing

Build

  • Run tests on Node.js 7 (7bb62bb3)
  • Stop testing on Node.js 0.10 (5b4cb0d3)
  • jQuery Foundation -> JS Foundation (7fbab881)
  • Make the @CODE-replacing regex more robust (4e509677)
  • ESLint setup improvements (cbc8638c)
  • Drop jscs.json from .npmignore (b3e0a560)
  • Add most of the dist folder to .eslintignore (1754e315)
  • Use valid ecmaVersion (8cb4cd71)
  • Drop support for building on Node.js 0.12 (d10ac0e5)
  • Fix tests in AMD mode (56136897)
  • Fix markerPattern and ticketPattern regexes in package.json (25c6a0a2)
  • Keep deprecated module in slim (#3237, 0588d0ce)

Source: jQuery

Week in Core, March 8th – 14th, 2017

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

  • 53 commits
  • 22 contributors
  • 101 tickets created
  • 12 tickets reopened
  • 48 tickets closed

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

Code Changes

Administration

Build/Test Tools

  • Tests: Use https URLs for wordpress.com assets in Tests_HTTP_Functions and Tests_Image_Functions. [40289] #31091
  • Update .travis.yml to include latest improvements from trunk. [40288] #35105, #40100, #30755, #36291, #36490
  • Switch to Node 0.12.18 when testing the 4.2 branch. [40285] #35105
  • Allow Travis CI to cache the node_modules directory. [40280-40281] #36291, #36490
  • Build/Test tools: Get Travis builds working on HHVM again. [40274] #40100
  • Build/Test tools: Don’t install PHPUnit on the travis:js builds. Saves a couple of minutes of build time. [40273] #40100
  • Build/Test tools: Switch to Node 4.7.2 when testing the 4.5 branch. [40266] #35105
  • Build/Test tools: Don’t override the wp_set_auth_cookie() and wp_clear_auth_cookie() functions. [40265] #39367
  • Docs: Remove the duplicate hook documentation for the newly introduced send_auth_cookies filter. [40264] #39367
  • On Travis CI install and use the node version which is specified in package.json. [40258] #35105
  • Build/Test tools: Account for PHP 5.2 when using Composer to install PHPUnit. [40257] #39822, #40086
  • Build/Test tools: Explicitly use PHPUnit 5.7 for the PHP 7 builds on Travis. [40255] #39822, #40086
  • Build/Test tools: Remove the unnecessary clone of the twentysixteen repo. [40253] #31550, #40066
  • Build/Test tools: Revert [40239] due to unrelated changes. [40240] #39486

Bundled Theme

  • Twenty Seventeen: Correct grammar in ‘Page Layout’ control description. [40270] #40107

Canonical

Date/Time

  • Docs: Correct @return type for calendar_week_mod(). [40254] #40077

Media

  • Improve wording of the AYS warning when permanently deleting uploads, tags, posts. [40283] #39712

Misc

  • Build/Test tools: Don’t attempt to report PHP’s extensions when running HHVM jobs on Travis. It doesn’t work. [40267] #
  • Build/test tools: Add some more debugging to Travis and bring the format of the Xdebug fix inline with branches. [40259] #
  • Updates for 4.6. Merge of and to the 4.6 branch.

Query

  • Tests: Use assertSame() for WP_Query ‘orderby’ tests. [40278] #38034

REST API

Taxonomy

  • Fix the formatting of $taxonomies parameter of 'wp_get_object_terms' filter. [40290] #40154
  • Don’t run ‘get_terms’ filter when querying for terms within get_term_by(). [40275] #21760

Themes

  • Docs: Correct the description for wp.updates.deleteTheme. [40279] #40110

Widgets

  • Customize: Show title input placeholders for widgets that have default titles when rendered. [40251] #39909

Thanks to @afercia, @azaozz, @boonebgorges, @bor0, @dingo_bastard, @dlh, @dllh, @gma992, @ig_communitysites, @jnylen0, @johnbillion, @joostdevalk, @jorbi, @lancewillett, @laurelfulford, @MattyRob, @netwe, @netweb, @ocean90, @SergeyBiryukov, @westonruter, and @zoonini for their contributions!

Source: WordPress Development Updates

Editor Experience Survey

As you’re well aware, a project is underway with the focus on redesigning the editing experience in the wp-admin. As the project moves forward, a better understanding of how WordPress users actually feel about the editing experience is needed. Please take a few minutes to fill out this survey and help influence the future of your favorite CMS, WordPress.

Survey Link:

http://wordpressdotorg.polldaddy.com/s/editor-survey

+make.wordpress.org/design

 

#core-editor, #design, #survey

Source: WordPress Development Updates

Dev Chat Agenda for March 15th (4.7.4 week 2)

This is the agenda for the weekly dev meeting on March 15, 2017 at 15:00 CST:

  • 4.7.4 planning
  • Browser support (note discussion just prior at March 15, 2017 at 12:00 EDT)
  • Confirmation on Core team reps
  • Customize team update (media widgets & call for testing)
  • REST API team (call for help on JS Leadership for WP Admin implementations)
  • General announcements

If you have anything to propose to add to the agenda or specific items related to the above, please leave a comment below. See you there!

#4-7, #4-7-4, #agenda, #dev-chat

Source: WordPress Development Updates