JavaScript chat summary, February 12th, 2019

Below is a summary of the discussion from this week’s JavaScript chat (agenda, Slack Transcript)

Have a topic for discussion for the next meeting? Leave a suggested edit on next week’s agenda.

“React As UI Runtime” Article

@nerrad shared “React As UI Runtime” article by Dan Abramov. Its good resource for folks who are familiar with React and want to deep dive into internal working. It will give you insight into the various aspect of React how things work and why they work in a certain way.

Custom ESLint Rules

Two new ESLint rules have been implemented:

Icon Package

The design team is exploring improvements for the Dashicons project and proposed the following:

  • The current workflow for adding icons and updating the font is not ideal and doesn’t scale for a big number of icons.
  • Gutenberg requires a big number of icons to avoid duplicates, it relies on SVGs instead of fonts and an option being explored is to take Material Icons as a basis and extend it with WordPress specific icon sets.

Some ideas were explored but final decision pending, until some better ideas and direction by the design team is finalized:

  • Exposing icons to global script handle though that could be huge to load.
  • @nosolosw suggested:
    • Getting some inspiration from GridIcons.
    • wp_enqueue_icon a function to declare the icons for use and make them available under wp.icons.* (for the ones enqueued)?
  • @youknowriad suggested:
    • Bundling all the icons as a separate package one big set to choose from.
    • Using the build process and tree shaking to include icons in use.
    • Getting inspiration from FeatherIcons.
    • Lazy loading icons if feasible.

Open floor

  • @welcher shared a resource he put together for various slot-fill and filter.
  • @gziolo suggested to include them in the official handbook.

#meeting-notes, #core-js, #javascript

Dev Chat Summary: February 13

This post summarizes the weekly dev chat meeting from February 13th (agendaSlack archive).

5.1 updates

5.1 is currently on target for the Feb 21 release date.

RC1 went out last week. Two remaining bugs have been fixed (remaining open tickets can be tracked here). Right now, all that is left is the About page, which needs some design work and some minor bug fixes. @pento expects to release a small RC2 either late this week, or early next week.

The WordPress 5.1 Field guide is out, thanks to the hard work of @desrosj, @jeffpaul, and the many contributors who wrote individual dev notes for this release.

Since the meeting adjourned, 5.1 has been branched, and Trunk is open for 5.2–alpha enhancements.

5.2 and 5.1.x Logistics

Release target and cadence

Based on the desire to update the PHP requirements in April, @pento proposed targeting late April for a 5.2 release. That leaves about a month for alpha, a month for beta, and two weeks for RC.

@youknowraid proposed shortening the release cycles for WordPress to shorter, predictable cycles that are time-based instead of feature based. After some discussion, @chanthaboune suggested an official proposal be drafted on https://make.wordpress.org/core, and @desrosj volunteered to help draft the post.

Potential features for 5.2

While there are no firm commitments, a few ideas for 5.2 features include:

  • Gutenberg performance and UX improvements
  • Core widgets converted to blocks
  • PHP Fatal Recovery (WSOD)
  • Site Health Check

5.1.X Releases

Barring any major regressions in 5.1, the target for a 5.1.1 release will be 2 weeks after 5.1. With 5.2 targeted for April, 5.1.x releases will be limited to 5.1 regressions and important bug fixes that would be good to get out earlier, and exclude additional features or enhancements.

Updates from focus leads and component maintainers

An initial implementation of CODEOWNERS file in Gutenberg was merged, which is kind of a joint JavaScript and Gutenberg update.

From the Gutenberg desk: there is a lot from last week’s meeting, but there is a call for reviewers that’s worth taking a look at.

From Media: the team did a ticket triage and left excellent notes with calls for testing and patches.

From the JavaScript desk: There’s a request for feedback from @youknowriad on how to tackle selecting data over multiple stores.

General announcements and open floor

The Navigation block is currently being discussed and there are mockups in GitHub that would benefit from people’s feedback.

@afercia proposed an audit of the project’s components and maintainers soon to ensure the project is properly organized to maintain all parts of the codebase and increase participation where necessary.

Additionally, @afercia recommended that all components and teams use the correct headings level when authoring a post, and please refrain from using emojis or other extraneous content within the headings. This relates to an ongoing effort to improve the headings hierarchy across the .org network.

Finally, @chanthaboune published a post titled, Strengths and Challenges: Follow Up, earlier this week. Everyone should read it, as it applies to all teams. Additionally, she is working on the first “Scrum of Scrums/Weekly Digest/Wayfinding” post, which she expects to publish later this week.

#5-1, #core, #dev-chat

Editor chat summary: February 13th

This post summarizes the latest weekly Editor meeting, held in the #core-editor Slack channel, on Wednesday, February 13, 2019, 14:00 UTC.

Call For Self -Triage

In recent triage, lots of outdated and duplicated issues have been noticed. If you have created/submitted issues you can help with self-triage.

  • Close issue(s) which are no longer relevant.
  • Make issue(s) actionable if it’s still relevant.
  • Consolidate similar issues.

Tasks Coordination

For the next week, this is what everyone is working on:

  • @nerrad to continue refactoring effects to actions + controls.
  • @jorgefilipecosta to continue on the calendar block.
  • @nosolosw to continue on the automated docs generation (help with reviews if possible).
  • @youknowriad and @aduth to continue on the generic block editor module.
  • @ajitbohra to continue on the latest posts block iterations.

Navigation Issues

Navigation menu in the block is one of the major focus for phase 2. Implementation needs lots of exploration and discussion, relevant issues can be tracked here to follow the discussion and provide feedback.

Open floor

  • @aduth raised
    • People adjust themselves to CODEOWNER workflow (add and remove) as they feel their workload and experience permits.
    • Probot app to automate workflow, further details can be tracked here.
  • Channel topic updated to direct all help request to support forum and StackOverflow.

The meeting archive is here.

The agenda for the next meeting is here, please add anything you want to discuss.

#meeting-notes, #core-editor, #editor, #gutenberg

REST API Chat Summaries: Jan 31, Feb 7

This post summarizes the weekly REST API chat meetings on January 31, 2019 and February 7, 2019. (agenda/notes, Jan 31 Slack transcript, Feb 7 Slack transcript). Weekly REST API component office hours are held every Thursday at 18:00 UTC in the #core-restapi room in the Make WordPress Slack.

February 14 meeting agenda

Have a topic for discussion for today’s meeting on February 14 2019 18:00 UTC? Leave a suggested edit on the agenda document.

5.1: Dev Note needs?

  • The new rest_post_search_query filter could be called out in Other Changes.
  • changeset 44625 (update wp_die() to handle JSON contexts) could also be called out in Other Changes.

5.2 Tickets: Owners Needed

Gutenberg Widgets Endpoint

  • WordPress/gutenberg#13511: POC for a legacy widget block. @jorgefilipecosta requests input from REST API contributors.
    • Feedback provided around endpoint structure and parameter access
    • @kadamwhite proposes that user stories or use-cases for how these widgets will be consumed and displayed in the editor and rendered posts should be written for new endpoints, to inform implementation.

Authentication

  • All present agree we have a strong need for a core authentication solution. Existing plugins like the OAuth2 or JWT-Auth plugins work and are used on numerous sites, but need UX improvements and more documentation / example clients to be truly broadly applicable. OAuth2 in particular is seen as too complex / difficult to implement as a client developer.
  • Discussion on core auth since WCUS has centered on supporting basic authentication (only over SSL) (#42790), as the simplest path forward.
    • The main weakness of basic auth is that it ties all authorized applications to the user’s account name and password, so apps cannot be individually authorized or disconnected without creating new site accounts (not workable for e.g. the core mobile applications).
  • @koke thinks a JWT-based solution could be workable from the mobile applications.
  • The way CGI environments mutate authorization headers complicates any core-wide solution. A custom header may be necessary.
  • @espellcaste has volunteered to reach out to authors of existing plugin directory REST API auth solutions to get their input on what is best for core.

Upcoming Meetings

What can the REST API do for you? Join an upcoming meeting to help shape the future of this component!

#core-restapi, #meeting-notes, #rest-api

Dev Chat Agenda: February 13

Below is the agenda for the weekly devchat meeting on Wednesday, February 13, 2019 at 21:00 UTC:

  • 5.1 updates:
    • Schedule update
  • Updates from focus leads and component maintainers
    • The Navigation block is proving to be complex, and simplifying it requires breaking it down into smaller issues that need your feedback.
  • Open Floor

If you have anything to propose for the agenda or specific items related to those listed above, please leave a comment below.

This meeting is held in the #core channel in the Making WordPress Slack.

#5-1#agenda#core#dev-chat

Editor Chat Agenda: February 13th

This is the agenda for the weekly editor chat meeting on Wednesday, 13th February 2019, 14:00 GMT.

  • Housekeeping
  • Tasks Coordination
  • Navigation issues: @mapk would like raise some issues for discussion.
  • Open Floor

If you have anything to propose to suggest for the agenda or specific items related to those listed above, please leave a comment below.

This meeting is held in the #core-editor channel in the Making WordPress Slack.

#agenda#editor-chat

JavaScript chat summary, February 5th, 2019

Below is a summary of the discussion from last week’s JavaScript chat (agendaSlack Transcript) Please excuse the delay!

Have a topic for discussion for the next meeting? Leave a suggested edit on this week’s agenda.

Agenda: Changelogs

Slack Conversation

In a previous discussion a need surfaced to improve Semver for JS packages and better understand the changes we are syncing into WordPress core when we update the JS packages. For this, better changelogs are needed. @aduth has been working on a PR to enforce better changelog management. It explores adding a pre-commit githook which verifies that the contents of the pending commit include a CHANGELOG.md revision if applicable.

Some concerns were raised about the potential unwanted friction a githook could give and false positives that could occur when ie. committing typo fixes. A possible alternative is to make the check part of the Travis build for PR’s. On the other hand, the direct feedback gotten through the githook contains higher educational value and minimizes loss of context.

We agreed the current githook proposal was worth exploring further in order to see if false positives can be prevented.

Agenda: Code owners

Slack Conversation

A pull request which adds an initial implementation of a CODEOWNERS file in Gutenberg was merged.

You can use a CODEOWNERS file to define individuals or teams that are responsible for code in a repository.

Github Help

Contributors are invited to PR the file if they feel they would like to be added as a code owner for specific paths in the Gutenberg repository. When accepted, they will receive pull request notifications and review requests for these parts of the codebase.

The main goal is to alleviate some review pressure for the Gutenberg team and help distribute notifications and help requests better over more contributors. It was argued it could be good to have some guidelines for approving / merging PRs in order to allow new contributors and code owners to review with more confidence. The use is expected to further evolve and be evaluated in the coming weeks.

Agenda: Registry selectors

Slack Conversation

For a while now we’ve had the option to register multiple stores across multiple registries using the core/data package. But how can we create selectors which derive data across multiple stores / registries? A PR to tackle selecting data over multiple stores has been created by @youknowriad. Input and feedback is requested.

An effort that depends on this is a PR which tries to make the editor module more generic so it can be reused outside of WordPress. We need to be able to respect backwards-compatibility while moving selectors and action dispatchers from one module to another. See also: https://github.com/WordPress/gutenberg/pull/13088

Open floor: React hooks

Slack Conversation

React hooks has been included in the latest release of React. There is a PR on Gutenberg which explores the possible advantages of this new API: https://github.com/WordPress/gutenberg/pull/11161. Since Gutenberg relies heavily on React, it could be worthwile checking out the API and the ways it could be leveraged in Gutenberg.

#core-js, #javascript, #meeting-notes

WordPress 5.1 Field Guide

WordPress 5.1 is officially the best WordPress 2019 has seen yet! Users will see block editor improvements while developers will see PHP version upgrade notices and will be able to take advantage of 165 enhancements and features added.  Let’s look at the many improvements coming in 5.1…

Site Health 💻🏥

WordPress 5.1 includes portions of the Servehappy and Site Health projects. Notices will start being displayed to administrators of sites that run on long outdated PHP versions. WordPress will also start honoring plugin PHP version requirements.

Block Editor Goodies 🧱🏗️

The block editor continued its rapid iteration since WordPress 5.0 and now has version 4.8 of the Gutenberg plugin bundled with WordPress 5.1. Most significantly, this includes performance improvements within the editor, a Getting Started with JavaScript tutorial, improvements to the design guidelines to build blocks, and high-quality README files for the UI components.

Multisite Metadata 🏘️🗂️

5.1 brings with it a new database table to store metadata associated with sites, which allows for the storage of arbitrary site data relevant in a multisite / network context.

Cron API 🔁🔂

WordPress 5.1 includes a change in behavior for cron spawning on servers running FastCGI and PHP versions 7.0.16 and above. It also includes a change to the Cron API that updates the return values for functions used to modify scheduled tasks, it includes two new functions to assist with returning data (one to retrieve cron jobs ready to be run and another to retrieve a scheduled event), and it includes new filters for modifying cron storage.

New JS Build Process 🇯🇸🏭

The JavaScript code reorganization has been in `trunk since April 2018 and the new JavaScript build process will ship with WordPress 5.1.

Updated Styles and Strings 🔗🧵

Read below to learn about how the admin table pagination links have had their CSS styling modified to improve accessibility and how Locale Managers with commit access on the /dist repository will need to manually translate and deploy changes to files that cannot use gettext.

Other Developer ❤️

There are even more goodies in 5.1 like updates to values allowed for the WP_DEBUG_LOG constant, new test config file constant in the test suite, new plugin action hooks, short circuit filters for wp_unique_post_slug() and WP_User_Query and count_users(), a new human_readable_duration function, improved taxonomy metabox sanitization, limited LIKE support for meta keys when using WP_Meta_Query, a new “doing it wrong” notice when registering REST API endpoints, and more!

There are also a few additional changes that will receive a dev note shortly:

  • Object Caching can now degrade gracefully (#22661)
  • New parameter for the wp_check_filetype_and_ext filter (#45707)
  • New filter for filtering and overriding block attributes (#45451)

But Wait, There is More!

Over 303 bugs, 156 enhancements, 9 feature requests, and 23 blessed tasks have been marked as fixed in WordPress 5.1. Some additional ones to highlight include:

  • Bootstrap/Load: WSODs protection returns incorrect content type for JSON Requests (#45933)
  • Cache API: Allow object caches to degrade gracefully (#22661)
  • Customize: Improve browser compatibility of X-Frame-Options and Content-Security-Policy headers for window in preview iframe (#40020)
  • Customize: Use iframe sandbox attribute to restrict browsing in Customizer preview instead of attempting to rely on JS to intercept top navigation (#42341)
  • Customize: Fix counting of sections for widget sidebars, allowing non-sidebar sections to not interfere (#43556)
  • Customize: Prevent wp_targeted_link_rel() from corrupting Customizer changeset data (#45292)
  • Media: Parse the creation date out of uploaded audio files (#42017)
  • Media: No placeholder for ico file in list view of Media Library (#43458)
  • Media: media_handle_sideload() may unexpectedly return 0 on error (#44303)
  • Menus: Improve headings and instructions for better accessibility (#43397)
  • Menus: Show an appropriate message when no menus exist (#45155)
  • Networks and Sites: Improve site creation in multisite (#40364)
  • Networks and Sites: Introduce ms-site.php and ms-network.php files (#40647)
  • Networks and Sites: Implement wp_initialize_site() and wp_uninitialize_site() (#41333)
  • Plugins: Disable “Install Plugin” button for PHP required version mismatch (#43986)
  • Privacy: Show the comment / awaiting moderation message even without opt-in (#43857)
  • Query: post__in orderby not working when passed in an array to orderby (#38034)
  • REST API: Allow to filter the query in the search controller (#45454)
  • Taxonomy: Add un|registered_taxonomy_for_object_type action (#44733)
  • Users: New filter to short circuit WP_User_Query results (#44169)
  • Widgets: Make the Widgets screen “Enable accessibility mode” link more discoverable (#42778)
  • Widgets: Fix Gallery Widget preview after an image is deleted (#43139)
  • Widgets: Fix custom HTML widget editor content not updating after save (#43657)

Please, test your code. Fixing issues helps you and helps millions of WordPress sites.

Props @desrosj for contributing to this guide.

#5-1, #field-guide

Media Meeting Recap – February 7, 2019

Overview

The following is a summary of the weekly media component meeting that occurred on Thursday, February 7, 2019. Weekly media meetings are held every Thursday at 21:00 UTC. A full transcript can be found here in the #core-media room in the Make WordPress Slack.

Attendees: @antpb, @aaroncampbell, @mikeschroder, @designsimply, @sergeybiryukov, @pbiron, @swinterroth, @dave_navarro

Triage

The agenda today was extended ticket triage for this list.

  • #41753: _wp_get_attachment_relative_path uses hardcoded uploads directory path: noted that it affects multisite and needs testing.
  • #41816: attachment_url_to_postid() should find post_id for URLs of intermediate size images: patch was previously abandoned because the heuristic wasn’t reliable, @pbiron will dig up the gist and leave a comment. In summary: #44095 and #42437 need to be fixed before moving forward with a revised patch for #41816.
  • #41922: Gallery hard to open for edit – rtl (hebrew) version: @antpb will test and leave feedback in the ticket.
  • #42063: Media: Indicate if image is used as a site option: @mikeschroder will leave a reply. It’s already future release.
  • #42487: Avoid redundant crops for all Customizer media controls: moved to future release.
  • #42751: Can we please enqueue media-views independently? @antpb offered to move the question about how mediaelement CSS is loaded to a separate issue. No consensus on the original question, left in awaiting review.

Next meeting

The next weekly media meeting will be held on Thursday, February 14, 2019, at 21:00 UTC in the #core-media room in the Make WordPress Slack.

#media, #summary

Editor chat summary: February 06

This post summarizes the latest weekly Editor meeting, held in the #core-editor Slack channel, on Wednesday, February 6, 2019, 14:00 UTC. These meetings coordinate collaboration in the development evolution of the Gutenberg project.

Gutenberg Release

Gutenberg 5.0 was released today. See the release post for details.

@aduth outlined that part of the 5.0 release (and continuing in the next) Gutenberg plugin is deprecating many of the PHP functions provided by core (e.g. gutenberg_render_block deprecated in favor of render_block).

  • Any plugin relying on these functions should update to the new one provided by core.

Porting Widgets to Blocks

A lot of progress have been made to port the remaining widgets to blocks. A project status update has been published.

Call for Collaboration (RESET API and Media)

Part of phase 2 involve new REST API endpoints and media flows improvements. Core Editor meeting are welcome to join the REST API and Media teams in their respective channels and meeting.

Weekly Tasks Coordination

  • @sheri is continuing to work on Help Request and Issue Triage.
  • @nerrad is proposing to consolidate our Data module usage instead of effects.
  • @nosolosw is working on the JavaScript code documentation generation.
  • @notnownikki is working on improvements to the embed block (first click).
  • @notnownikki would like to help out on `docs` and `block-library`.
  • @ajitbohra to continue on the latest posts block improvements.
  • @aduth to continue on the duplicated PHP code removal (needs some reviews there).
  • @aduth Following on about function deprecations, the process is still ongoing and I’d appreciate whatever help I can get to push it to the finish line.
  • @youknowriad to continue on the block registration RFC and the generic block editor component.
  • @chrisvanpatten to continue the docs reviews and explore with font sizes improvements.
  • @gziolo would like to thank everyone for being patient and willing to refresh their PRs, despite the fact we missed them in WordPress 5.0 release rush.
  • @jorgefilipecosta to work on the calendar and classic widgets blocks.
  • @joen tying up loose ends and overall tightening up of things like:
    • bringing movers to floats
    • making separator clickable
    • adding animation to a few elements
    • improve notices and make them push down content instead of overlap

Note: Anyone reading this summary outside of the meeting, please drop a comment in the post summary, if you can/want to help with something.

Open Floor

Support requests in the Slack

A concern about ignored help requests and unmet expectations have been shared. The discussion outlined that:

  • The team is still in a transition period.
  • Help requests can be answered slack during the transition but being explicit and redirecting people to the correct locations for future questions is recommended.
  • Follow-up issues/PRs for lacking documentation is encouraged.

Feedback on the Call for Reviewers

As a result to the call for reviewers, the Github repository has know dedicated code owners for specific packages.

  • Pull requests to add/remove people from this list are encouraged.
  • It is still early to evaluate this experiment.

Various

  • @aduth — worth noting that almost anything on GitHub can be restored / continued after some initial closure, so no need to feel bad about closing.
  • @sheri — let’s not forget that some people cannot see previews of edits to previously published posts.
  • @youknowriad — React hooks is a thing!! We’ll probably wait some time (native support) to include officially but it’s a good time to start exploring.

The meeting archive is here.

The agenda for the next meeting is here, please add anything you want to discuss.#meeting-notes, #core-editor, #editor, #gutenberg