JavaScript Chat Summary – June 19th

Below is a summary of the discussion from this week’s JavaScript chat (agenda, Slack transcript). Notes compiled by @youknowriad.

Participants: @aduth, @atimmer, @bpayton, @gziolo, @jorbin, Jorge Costa, @omarreiss, @welcher, @youknowriad

Documentation

A new post to track the work on the JS Docs effort has been published.

Gutenberg now includes a tool to generate documentation based on JSDoc. It’s being used to document the selectors and actions available in the data module.

Action items to follow-up on:

  • Have the Gutenberg docs automatically generated as part of the handbook build (@youknowriad, @pento)
  • Adapt WP-Parser to generate documentation for developer site from JSDoc ahead of 5.0 release (@herregroen)
  • Get the generated docs into the Gutenberg handbook even if build is not yet automated (@youknowriad)
  • To avoid the disparity between the JSDocs initiative and the docs generated in Gutenberg, coordinate with relevant teams as appropriate and try to schedule a joint meeting.

Polyfills

We discussed the best way to load JavaScript polyfills in WordPress for WordPress scripts and plugins while avoiding the duplicated code and reduce the bundle size as much as possible. There’s no clear path forward yet. An idea that’s being explored is to use the fact that browsers that support `modules` also support async/await, arrow functions, Set/Map, Promise, generators. This means we can generate two scripts once for browsers supporting “modules” (most recent browsers) and one for browsers that don’t (IE11) (See related blog post explaining the technique).

@bpayton proposed trying an alternative approach to target a base stub script  which includes all polyfills. This will be proposed in a Gutenberg pull request and evaluated next week.

Agendas and meeting nodes

@jorbin raised a concern about the availability of meeting notes and agendas for #core-js meetings. On previous chats, it has been decided to avoid those because of the effort required to prepare and compile those for #core-js chat leads.

To address this, a group to rotate on the responsibility of taking notes has been created: @aduth @atimmer @gziolo @nerrad @omarreiss @youknowriad all volunteered to do so. If you want to volunteer as well, please leave a comment.

Deprecation strategy for WordPress JavaScript code

Two separate issues were raised regarding the deprecation strategy:

Communication around the deprecations

It has been argued that deprecating code in JavaScript is a requirement. Unlike PHP, keeping old APIs forever is not an option because of bundle size and performance.

It has been raised that It’s important for us to keep the trust plugin authors have towards WordPress in maintaining stable APIs without breakage. A clear communication strategy with plugin authors and developers is important in keeping the level of trust developers have towards WordPress APIs.

@atimmer proposed a path towards a clear deprecation strategy

  1. Decide that a feature needs to be deleted (because of user reasons).
  2. Implement a strategy for users to be able to move to the alternative of the feature to serve the use-case the feature was serving.
  3. Deprecate the feature in a way that potential users are given notice that the feature will be removed. Highlight the strategies a user could take that we’ve implemented in step 2.
  4. Wait for a specified period.
  5. Remove the feature that has been deprecated.

It was argued that communicating the benefits of these deprecation is crucial instead of emphasizing on the potential breakage. We also discussed that raising awareness about this strategy to plugin authors is crucial to the trust factor.

Upgrade existing scripts (packages) without breaking existing versions.

@aduth proposed the introduction of versioned scripts and automatically wrapping scripts in closures to avoid conflicts between two different versions of the same script. (See demonstration)

Discussion on the deprecation strategy will continue in the next meetings.

Dev Chat Summary: June 13th (4.9.7 week 4)

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

4.9.7 planning

Updates from focus leads and component maintainers

  • The PHP team posted summaries from their last two meetings covering progress and decisions on #43986 and #44350 as well as the approach for #43987. Join them next week on Monday, June 18th at 15:00 UTC in #core-php as they continue the discussion on these two tickets.
  • The REST API team would like a core committer’s review on #38323, so if you’ve got some time then please help out there.
  • And a reminder for those heading to WCEU that Contributor Day is tomorrow, Thursday, June 14th. If you’re in town, then please consider attending… thanks!
  • No design lead for Customize focus while @melchoyce is on sabbatical until September 10th

Devchat coordination

  • @jeffpaul will be offline most of July, so we’ll need someone to help coordinate/run devchats.
  • If you’re open to collecting agenda items and publishing an agenda, running the actual devchat meeting, and/or publishing a devchat summary then please comment here or ping @jeffpaul if you’re able to help out… thanks!

Next meeting

The next meeting will take place on June 20, 2018 at 20:00 UTC in the #core Slack channel. Please feel free to drop in with any updates or questions. If you have items to discuss but cannot make the meeting, please leave a comment on this post so that we can take them into account.

#4-9-7, #core, #core-customize, #core-restapi, #dev-chat, #summary

Dev Chat Summary: June 6th (4.9.7 week 3)

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

4.9.7 planning

  • Leads nominated so far: @sergeybiryukov able to help as deputy (e.g., committing, backporting); @danieltj, @desrosj, @tristangemus, @pbiron open to help contribute during 4.9.7
  • Waiting until after WCEU to confirm release leads and any potential focus for 4.9.7
  • Aiming to get someone who hasn’t lead a recent release and (who has prior experience contributing or has institutional backing to contribute to a release) to be nominated to lead or co-lead 4.9.7. Pairing that with assuming we’d get a more precise focus for 4.9.7 would mean we’d try and confirm leads in ~two weeks.
  • Working to communicate with other team reps and component maintainers to increase diversity in release leads by asking for nominations or suggestions in their next meeting/update, please share any ideas you have on this… thanks!

Updates from focus leads and component maintainers

WCEU preparation

  • Asking everyone to keep their eyes out for tickets that would be worth tackling at WCEU Contributor Day, please add good-first-bug keyword in Trac
  • Also looking for issues that need testing as that can provide another option for introduction to contributing
  • Code reviewing Gutenberg PRs, even just parts of PRs, could be a good chance for folks to wade into contributing
  • When reviewing a PR or Trac ticket, even leaving a comment like “I don’t understand what’s happening here, can you add documentation?” would be tremendously valuable
  • If there are patches that need refreshing, those can be useful to new contributors (if the refresh is easy) because it familiarizes them with the workflow of creating/submitting patches
  • Fixing coding standards issues are another good option for new contributors to learn coding standards while fixing them
  • Contact @flixos90 or @antpb if you have more pressing tickets that should be worked on during WCEU
  • Reminder to document any discussions about big changes (such as to coding standards) in a Make/Core post to share with everyone as not everyone can travel to WCEU

General announcements

  • @jeffpaul will be offline most of July, so we’ll need someone to help coordinate/run devchats. Please comment here or ping @jeffpaul if you’re able to help out… thanks!

Next meeting

The next meeting will take place on June 13, 2018 at 20:00 UTC / June 13, 2018 at 20:00 UTC in the #core Slack channel. Please feel free to drop in with any updates or questions. If you have items to discuss but cannot make the meeting, please leave a comment on this post so that we can take them into account.

#4-9-7, #core, #core-php, #dev-chat, #gutenberg, #summary

Dev Chat Summary: May 30th (4.9.7 week 2)

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

4.9.7 planning

  • No pressing need for quick 4.9.7 release, so aiming for ~6-8 week release cycle for 4.9.7
  • Leads nominated so far: @sergeybiryukov able to help as deputy (e.g., committing, backporting); @danieltj, @desrosj, and @tristangemus open to help contribute during 4.9.7
  • Please comment on this post, ping @jeffpaul, or comment during the next dev chat for nominations (self or otherwise) for release leads on 4.9.7

Updates from focus leads and component maintainers

  • The PHP team posted a summary from their meeting last week covering the “Upgrade PHP” page and possible Gutenberg blocks. Please join them this coming Monday, June 4th at 15:00 UTC in #core-php
  • The GDPR Compliance team met earlier today and of note will be changing the Slack channel and post tags to Core Privacy this Friday, June 1st. Please join them next Wednesday, June 6th at 15:00 UTC in #core-privacy

Guidelines for fixing coding standard violations

  • Now that r42343 has landed, Core is accepting patches to fix coding standards (CS) violations. The meeting attendees agreed on the following guidelines:
    • Patches for any CS fixes are welcome, as long as they’re not so extensive that it would require refreshing an unreasonable amount of regular patches.
    • In order to avoid wasting time, patches for violations which cannot be automatically fixed by `phpcbf` should be given preference over ones that can be automatically fixed.
    • Regardless of many files are touched in a CS patch, the corresponding commits should be limited to fixing a single file in each commit.
    • CS patches should be treated just like any other patch, and reviewed critically before being committed. That also applies to any changes made by `phpcbf`.
    • Commits for new features, bug fixes, and other “logic” changes should not include unrelated CS fixes. Coding standards fixes should be done in a separate commit. If a line is already being changed to fix a bug, etc, then it should have CS violations fixed at the same time. If fixing the violation for that line would introduce changes beyond that line, though, then the CS fixes should be done in a separate commit.
  • Does anyone strongly object to those, before they’re added to Handbook?

General announcements

Next meeting

The next meeting will take place on June 6, 2018 at 20:00 UTC / June 6, 2018 at 20:00 UTC in the #core Slack channel. Please feel free to drop in with any updates or questions. If you have items to discuss but cannot make the meeting, please leave a comment on this post so that we can take them into account.

#4-9-7, #core, #core-php, #core-privacy, #dev-chat, #gdpr-compliance, #summary, #wpcs

Dev Chat Summary: May 23rd (4.9.7 week 1)

This post summarizes the dev chat meeting from May 23rd (agenda, Slack archive).

4.9.6 feedback

  • 4.9.6 was released on Thursday, May 17th thanks to the leadership from @desrosj and @allendav, heavy assists from @sergeybiryukov, @azaozz, and everyone over in #gdpr-compliance 🎉
  • Important developer and site owner topics included in 4.9.6 (New PHP Polyfills and Changes that Affect Theme Authors) all included within the 4.9.6 Update Guide
  • Auto updates were initially left off for 4.9.6 for about one day to evaluate incoming support requests and make sure there were no issues with the more than “normal” amount of code introduced
  • Initially some reports of users seeing a white screen on their sites, tracked to a small handful of plugins that were hooking into one of the new Privacy features using `init` instead of `admin_init`, and this was causing a very edgy edge case on some installs (see #44142)
  • Thus, auto updates have remained off for 4.9.6 to avoid more potential issues, documentation in the Plugin Handbook was updated with a notice describing that using `init` would potentially introduce problems on sites, and @ipstenu reached out to each plugin that was using this hook to inform them of the issue
  • Currently no plugins in the .org directory that implement the new privacy features incorrectly
  • As of devchat, auto updates have not been enabled and we need to plan when 4.9.7 should be released, and what it should contain
  • @matt reiterated that we’re going to put enhancements, new features, notices, and anything else we need into 4.9.x while we work on Gutenberg
  • Discussion on enabling auto-updates lead to agreement to do so; note that @pento enabled auto-updates ~4 hours after devchat

4.9.7 planning

  • Potential focuses: GDPR fixes, TinyMCE update
  • Leads: @sergeybiryukov able to help as deputy (e.g., committing, backporting); @danieltj, @desrosj, and @tristangemus open to help contribute during 4.9.7
  • Please comment on this post, ping @jeffpaul, or comment during the next dev chat for nominations (self or otherwise) for release leads on 4.9.7

Updates from focus leads and component maintainers

  • The Gutenberg team continues to iterate and shipped v2.9 on Friday, May 18th; check the release post for more details
  • The PHP team posted a summary from their meeting last week and welcome everyone to join their next meeting on Monday at 15:00 UTC when they’ll discuss whether there’s updates on the “Upgrade PHP” design review and discuss “Requires PHP” enforcement details

General announcements

  • @clorith: When making changes to twenty-themes we should note somewhere that we made changes to them in a release. Not everyone was happy about a theme update in 4.9.6 as well that added output to their footers. (related #44202)
  • @danieltj has also begun a proposal draft for Dark Mode on GitHub and is open to help, so please review if you’re interested/available

Next meeting

The next meeting will take place on May 30, 2018 at 20:00 UTC / May 30, 2018 at 20:00 UTC in the #core Slack channel. Please feel free to drop in with any updates or questions. If you have items to discuss but cannot make the meeting, please leave a comment on this post so that we can take them into account.

#4-9-6, #4-9-7, #core, #core-php, #core-themes, #dev-chat, #gdpr-compliance, #gutenberg, #summary, #tinymce

Dev Chat Summary: May 16th (4.9.6 week 7)

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

4.9.6 planning

Updates from focus leads and component maintainers

  • The REST API team has an update on their progress on closing the gap in the Gutenberg merge proposal milestone as well as notes from their office hours last week. Join them Thursdays at 17:00 UTC if you’d like to chat through any questions you have, they especially want input from long-time contributors and leads on the register_meta changes (see #38323).
  • The JavaScript I18N team posted notes from their meeting last week and discussion around extracting strings from JavaScript and loading the actual translations in a way that makes sense. Join them on Tuesday, May 29th at 15:00 UTC to further discuss how to handle translation loading.
  • @omarreiss posted about adding JavaScript build step and folder reorganization as the first part on preparing for WordPress’ JavaScript future. Please give that a review and provide feedback or help as you have time/interest.
  • @rianrietveld posted about Pair programming on the contributors day to join accessibility experts and Gutenberg developers and work to close the 11 remaining issues in the accessibility merge proposal milestone for Gutenberg. If you are a developer that knows your way around the Gutenberg code and are going to WordCamp Europe in Belgrade, then please ping @rianrietveld… thanks!

General announcements

  • @danieltj working on merge proposal for Dark Mode (see #41928), currently working on review for the WP Coding Standards and an a11y review
  • @presskopp looking for UI feedback on #35288, especially if “Search Engine Visibility” be reflected under Settings >> Privacy

Next meeting

The next meeting will take place on May 23, 2018 at 20:00 UTC / May 23, 2018 at 20:00 UTC in the #core Slack channel. Please feel free to drop in with any updates or questions. If you have items to discuss but cannot make the meeting, please leave a comment on this post so that we can take them into account.

#4-9-6, #core, #core-i18n, #core-js, #core-restapi, #dev-chat, #gdpr-compliance, #gutenberg, #summary

REST API Meeting Summary: May 10

This post summarizes the REST API component team meeting from May 10 in the #core-restapi channel.

Gutenberg Priorities

Following up on this blog post outlining priority REST API issues affecting Gutenberg, we discussed ongoing work to address these questions. If you’re interested in helping with these projects, review the linked blog post and tickets in the Gutenberg “Merge Proposal: REST API” milestone; all assistance is welcome!

register_meta improvements

The remainder of the meeting was focused on ongoing discussion about upcoming changes to register_meta. Per the summary posted last week, we are introducing the ability to limit meta registration to a specific “object subtype” (e.g. specify meta for a single post type, rather than forcing registration for all post types equally). We will also be introducing wrapper functions such as register_post_meta() to encourage use of the new subtype argument. See ticket #38323 for the latest patch.

The REST API team requests review from committers and any developers with prior history around meta. There’s some great discussion going on but these changes will have a strong impact on how we do data-modeling in the REST API, so we want to make sure that all interested parties are involved. See in particular this comment on trac for a summary of the latest patch, and some remaining open questions:

  • Meta-registration wrapper functions are being introduced for term and post object subtypes; should we introduce wrapper functions for comment and user meta objects, which do not currently support the concept of object subtypes?
  • Are “object type” and “object subtype” the best names for these parameters? Are they good enough?

Please check out the ticket (#38323) for further discussion.

Dev Chat Summary: May 9th (4.9.6 week 6)

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

4.9.6 planning

  • Thanks to all the contributors working on 4.9.6 so far, everyone has been doing a great job!
  • Planning on a final bug scrub tomorrow (May 10th) at 14:30 UTC then packaging the release candidate at 20:00 UTC
  • There are still 13 open bugs that need final testing and feedback. The delay was a difficult decision, but it is giving us the amount of time needed to fix all of these little bugs.
  • Majority of bug tickets actively being worked on in #gdpr-compliance
  • @allendav and proof reading volunteers are working on handbook content to help devs work with the new privacy tools. Those will be supplemented by dev notes ASAP.
  • Beta is still available for testing, any and all feedback is welcomed
  • Reminder that the release is scheduled for Thursday, May 17th

Updates from focus leads and component maintainers

  • The REST API team posted a summary from their last meeting covering decisions around `register_meta()` and documentation. Decisions are being made so if lead devs or component maintainers have input then please take the time to review and join the discussion. Many thanks to those who’ve joined the component lately, some important stuff has been getting closed out. #43998 is a priority and current needs a patch.
  • The Gutenberg team released v2.8, continue to iterate on regular releases, and thank everyone involved.
  • The PHP team posted recaps from their last two meetings covering Servehappy, PHP version requirements for plugins & themes, and the PHP upgrade page.

General announcements

  • @mikeschinkel: looking for input on #12955, its 8 years old but has recent discussions that could use feedback so those interested in contributing take the best approach

Next meeting

The next meeting will take place on May 16, 2018 at 20:00 UTC / May 16, 2018 at 20:00 UTC in the #core Slack channel. Please feel free to drop in with any updates or questions. If you have items to discuss but cannot make the meeting, please leave a comment on this post so that we can take them into account.

#4-9-6, #core, #dev-chat, #summary

PHP Meeting Recap – May 7th, 2018

This recap is a summary of our previous PHP meeting. It highlights the ideas and decisions which came up during that meeting, both as a means of documenting and to provide a quick overview for those who were unable to attend.

You can find this meeting’s chat log here.

Chat Summary

At this meeting there was some continued conversation around plugins & theme php version requirements (see parent ticket here)

  • @sergey has made some progress on technical restrictions
  • #design feedback will be needed as a part of implementing how restrictions are communicated to the user.
  • Initial goal for this is block installation of plugins in environments that don’t match php requirements for the plugin.
  • @flixos90 is going to get in touch with the design team regarding feedback on the mockups.

Also on the agenda was continued conversation around design/layout work for the PHP upgrade page. We took a look at this mockup that was done by @jaymanpandya, however for the most part we felt that in order to progress on this, the feedback needs to come from the #design team itself and those involved in the design of the overall WordPress.org site. To that end, @flixos90 has created a ticket in meta for tracking this and this is a callout to anyone involved in #design (and particularly with regards to the overall design of WordPress.org and how this would fit in with that) to review the current mockup and add comments.

Next Meeting

Next meeting will take place on Monday May 14, 15:00 UTC in #core-php

Agenda:

  • Followup on php requirement restrictions for plugins/themes (hopefully with some design feedback).
  • Followup on PHP upgrade page design feedback (if there is any).

Dev Chat Summary: May 2nd (4.9.6 week 5)

This post summarizes the dev chat meeting from May 2nd (agenda, Slack archive).

4.9.6 planning

  • Decision to push beta back two days gave us enough time to backport all the things (thanks to @sergey for all the work there)
  • 25 tickets left in the milestone, aiming to get to 10 for beta, will likely punt non-GDPR tickets
  • Bug scrub tomorrow will be at 15:00 UTC instead of 17:00 UTC
  • @azaozz lined up to help package up the beta in Mission Control, process to begin at 20:00 UTC
  • Heavy discussion on where to introduce new menu items as part of #43873, four options outlined:
    • 1) All three under the Tools menu (currently how it is in trunk).
    • 2) The settings page under the Settings menu labeled Privacy, and the tools under Tools
    • 3) A new top level menu item for Privacy.
    • 4) Listing the erasure and export tools under Users, and the settings page under Settings.
  • Summary of decision:
    • Export and erase tools remain under tools
    • A settings page for Privacy Notice is added to the bottom of the Settings menu.
    • @melchoyce to follow up with feedback on that settings page.
    • @desrosj to create a ticket for the pointers needed for this work
  • Reminder that after beta ships tomorrow, RC will be up next on Tuesday, May 8th (see: 4.9.6 schedule)
  • Please feel free to drop into #gdpr-compliance to continue discussions or if you have some time available to help out before beta.

Updates from focus leads and component maintainers

Next meeting

The next meeting will take place on May 9, 2018 at 20:00 UTC / May 9, 2018 at 20:00 UTC in the #core Slack channel. Please feel free to drop in with any updates or questions. If you have items to discuss but cannot make the meeting, please leave a comment on this post so that we can take them into account.

#4-9-6, #core, #dev-chat, #summary