Dev Chat Summary: March 13

This post summarizes the weekly devchat meeting from March 13th, 2019 (agendaSlack archive).

  • Announcements
  • 5.2 updates
    • There’s a call for testing on the Block Manager (for languages specifically).
    • There’s a call for feedback/testing for PHP compatibility with plugin updates and activation.
    • There’s a call for copyediting on Site Health Check.
    • Devnotes have a target publish date of April 10. Flag any features that still need notes.
      • It was noted that these are published to make.wordpress.org/core, and there are publishing guidelines to get people started.
  • Calls from component maintainers
    • There are a few requests for feedback and testing from various components and focuses.
      • Open invitation to come learn more about Theme reviews! Ping @williampatton in Slack for more info.
      • Testing/review: https://core.trac.wordpress.org/ticket/44005
      • Testing (w/ Input Method Editor converters): https://core.trac.wordpress.org/ticket/45371
      • Review: https://core.trac.wordpress.org/ticket/41074
    • @chanthaboune noted that @jeffpaul is completing a fresh audit of the existing component maintainers.
  • Open Floor
    • Timing: Media has moved their meeting to13:00-14:00 UTC on Thursdays.
    • Timing: Devchat will move after European Daylight Saving Time begins (so, our Apr 3 meeting)

These meetings are held in the #core channel in the Making WordPress Slack.

#5-2 #devchat #summary

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

JavaScript chat summary, January 22nd, 2019

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

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

Agenda: NPM Scripts

Slack Conversation

A few new commands have been proposed for addition to the @wordpress/scripts module:

  • build and start: https://github.com/WordPress/gutenberg/pull/12837
  • format: https://github.com/WordPress/gutenberg/pull/13394

The discussion around build and start focused mostly on the question how to approach default configuration for plugins and themes. We’re considering to extract parts of the Webpack config as npm package to simplify setup for plugin developers. This would also allow to provide a default config for @wordpress/scripts and proposed scripts. To provide flexibility, it was raised that an eventual Webpack config package could have 3 types of exports:

  • A full webpack config with a simple preset entries map for simple starter plugins ( front.js, admin.js, blocks.js or something like that ) to provide a simple zero-config option
  • A function that takes an entries map and outputs the full webpack config with recommended values.
  • Each part of the recommended config as their own keys.

The discussion provided good input for further iteration. Next, progress was shared on the format command, which aims to provide autoformatting functionality using Prettier and Eslint autofixers. It is still in an experimental state, but would provide a powerful tool for developers to more easily adhere to coding standards.

Agenda: Linting

Slack Conversation

We discussed the lack of ES2015+ rules in the WordPress JavaScript coding standards. A pull request was proposed on Gutenberg which makes using Object shorthand notation required for Gutenberg JavaScript. We agreed this was a desirable standard to have for ES2015+ code. For now, we decided to include the rule in the Gutenberg coding guidelines until a formal proposal to include ES2015+ rules in the WordPress JavaScript coding standards is drafted.

Agenda: E2E tests in core

Slack Conversation

Progress is being made on making Gutenberg’s e2e test functionality reusable for WordPress core and beyond. @gziolo gave the following status update:

  • Added package for Axe API integration with Jest and Puppeteer: https://github.com/WordPress/gutenberg/pull/13241. This is set of tools for accessibility static analysis which we want to integrate with e2e tests to ensure that we can catch regressions early on.
  • Extracted test utils to their own @wordpress/e2e-test-utils package: https://github.com/WordPress/gutenberg/pull/13228. It will allow some code reuse for those who would like to start writing e2e tests for their WordPress sites, plugins or themes.
  • Moved tests to their own @worpress/e2e-tests package: https://github.com/WordPress/gutenberg/pull/12465. There are now located in packages/e2e-tests/specs folder.

@gziolo plans to continue working on enabling a11y support to e2e tests in Gutenberg next. In order to start reusing the e2e setup in WordPress core, quite some configuration is still needed in WordPress core. This is tracked in https://core.trac.wordpress.org/ticket/45165. @adamsilverstein agreed to explore this further.

Agenda: PropTypes and React Doc Generation

Slack Conversation

@ajitbohra proposed to add PropTypes to components in Gutenberg, in order to allow automated documentation generating and have type checking for components.

There was interest in the idea but also some concerns were raised:

  • There is some uncertainty of PropTypes’ future, considering that Facebook doesn’t use them and there exist other type systems which supersede them (Flow, TypeScript). PropTypes seems like a good solution for what we need right now, but in terms of type system, there might be better solutions available.
  • If they’re added, we need to make sure they are added as part of a proposal which also includes how they are going to be used, ie. for auto-documentation.

For now, we decided to avoid to add complexity without clearly understanding the merit. More exploration is needed on auto-documentation and the benefits of strong typing.

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

Media Meeting Recap – January 17, 2019

Overview

This post is a summary of the latest weekly Media component meeting, which took place in the #core-media Slack channel, on Thursday, January 17, 2019 at 21:00 UTC. The purpose of these meetings are to move priority tasks forward, provide feedback on issues of interest, and review media focused issues.

Attendees: @joemcgill @mikeschroder @karmatosed @desrosj @antpb @aaroncampbell @designsimply

Transcript: Read on Slack

5.1.0 Triage

Earlier in the day, @aaroncampbell, @mikeschroder, and @desrosj cleared the list of tickets reported against trunk awaiting review.

During the meeting, attendees scrubbed the remaining Media tickets in the 5.1.0 milestone.

  • #40590: wp_video_shortcode always adds controls=”controls”: The team wasn’t confident in the current approach. Punted to future release.
  • #45407: Add block attributes to wp_calculate_image_sizes to allow for proper handling of sizes attribute: This doesn’t seem to be ready for 5.1 but @joemcgill will make a final determination this week.
  • #40175: Upload Validation / MIME Handling: @joemcgill uploaded a patch this week. @pento reviewed and this will likely fall out of 5.1 and be marked for early 5.2. Testing/feedback is appreciated.
  • #44563: WordPress 4.9.7 Media delete changes break plugins deleting media via stream wrappers: No movement this week, punted to future release.
  • #44760: Media library module dates filter doesn’t fully display: @mikeschroder is owning and will either commit or punt.
  • #44836: Uploaded plugin installation page: There is an extra tag messing with a link: No movement. Punted to future release.
  • #45633: finfo_file() returns text/plain for json file instead of application/json: This is punted to future release, pending #40175.
  • #43826: get_post_galleries() should return gallery blocks: This remains a blessed task for now.
  • #45707: Add parameter $real_mime to wp_check_filetype_and_ext: This might land as a relief while #40175 is pending, as long as it doesn’t introduce future compatibility challenges.

Recent Trac Bulk Edit

The team discussed how we should handle the recent bulk edit closing of tickets. Of the tickets closed, 163 are Media component tickets. The general consensus is that we shouldn’t leave them as wontfix but no final decisions were made. Next steps are for everyone to leave feedback on the original P2 about how to handle this project wide, and we will plan to make a decision about Media tickets next week.

Next meeting

The next #core-media meeting is set for Thursday, January 24, 2019, 21:00 UTC. Leave any agenda suggestions in the comments of this post. See you there!

#media, #summary

Media Meeting Recap – January 3, 2019

Overview

This post is a summary of the latest weekly Media component meeting, which took place in the #core-media Slack channel, on Thursday, January 3, 2019 at 21:00 UTC. The purpose of these meetings are to move priority tasks forward, provide feedback on issues of interest, and review media focused issues.

Attendees: @joemcgill @mikeschroder @karmatosed @desrosj @paaljoachim @tellyworth

Transcript: Read on Slack

5.0.3 Triage

  • #43826: get_post_galleries() should return gallery blocks – Patch needs refresh, @desrosj to coordinate with @tellyworth about landing this.
  • #44563: WordPress 4.9.7 Media delete changes break plugins deleting media via stream wrappers – Also needs a refresh, @joemcgill to try and validate and make a decision unless @mikeschroder beats him to it. Lower priority though, so might punt.
  • #45407: Add block attributes to wp_calculate_image_sizes to allow for proper handling of sizes attribute – Unsure if this patch is ready to land. @joemcgill to investigate and make a decision. – #45615: CSV Mime Type fails upload – @joemcgill and @tellyworth continue working on a fix for this. Might try for a small fix for 5.0.3 and a larger refactor for 5.1.
  • #45633: finfo_file() returns text/plain for json file instead of application/json – Related to the above issue. @joemcgill to investigate.

Ongoing Cruft removal

On December 21, we discussed identifying potential places to clean up cruft that has built up over the years. So far, that post includes the following possibilities:

  • Fully supporting or deprecating playlist functionality
  • Removing infinite scroll in the media library.
  • Auditing/updating supported upload file types.
  • Removing old Thickbox code (#10955).
  • Functionality deprecated when WP_Image_Editor landed.
  • Auditing oEmbed providers.

Upcoming 5.1 ticket scrub

As of the time of this meeting, there were 38 open Media tickets on the 5.1 milestone. Of those, 16 are enhancements or feature requests that would need to land before next Thursday when 5.1 hits beta in order to be included. We’ll plan to do a scrub of this list in #core-media on Slack next Tuesday, January 8, 2019 at 20:00 UTC to assign/punt as much as possible. Feel free to come join in the fun!

Next meeting

The next #core-media meeting is set for Thursday, January 10, 2019, 21:00 UTC. This next meeting will be focused on triage and 5.1 priorities. See you there!

#media, #summary

Dev Chat Summary: December 19

Dev Chat Scheduling

Here’s a reminder that the normal meeting won’t be happening on December 26, though there are likely to core folks around to answer questions for an open floor session. We’ll resume normal dev chats on January 2.

5.0.2 Update

WordPress 5.0.2 has just been released! Thank you to everyone who contributed.

5.0.3 Schedule and Scope

The following timeline has been proposed for WordPress 5.0.3:

  • Release Candidate: January 7, 2019.
  • General Release: January 9, 2019.

There have been some bugs reported in the MIME type handling changes in 5.0.1, these would be good to fix in 5.0.3. Additionally, there are bug fixes in the block editor which could also land.

5.0.3 will need a release lead: if you’re able to help out, please comment on this post, or reach out directly.

5.1 Schedule and Scope

Feedback on the proposed WordPress 5.1 schedule has all been positive, so let’s lock it in!

Milestone Dates

  • Beta 1: January 10, 2019
  • Release Candidate 1: February 7, 2019
  • General Release: February 21, 2019

The primary feature focuses for 5.1 will be the PHP upgrade notice and plugin error protection, and block editor enhancements.

There have been some minor features already merged into trunk, but nothing that will need to be reverted.

#dev-chat #summary

PHP Meeting Recap – December 17th

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

  • The meeting focused on the individual pieces that are left to complete so that the most essential Servehappy parts can become part of the WordPress 5.1 release (planned schedule has first Beta set at January 10th).
  • For the fatal error recovery mechanism (see #44458 or GitHub PR for development) the following steps are needed:
    • Add support for recovering errors by the theme by pausing it. It was determined before that the admin can work without an active theme, so implementation of this should be straightforward based on the existing code that already handles this for plugins.
    • In addition to displaying a note in the frontend when an error occurs (customizable via a php-error.php drop in), an email with the same message should be sent to the admin email address.
    • @schlessera will take care of implementing these two remaining tasks.
    • The multisite team will furthermore have an additional look at the existing implementation of multisite support.
  • A few updates are required for the Update PHP page:
    • Instead of having the content coming from the editor, it should be hardcoded and displayed via a template so that translation of the content is more streamlined and can happen via GlotPress. Furthermore it makes it a quicker process to add visual assets to the page later. @flixos90 is taking care of this.
    • The page slug needs to be changed from upgrade-php to update-php, as previously discussed, including a redirect. @sergeybiryukov has already completed this work.
  • For the actual notice in core itself, a few tweaks need to be added.
    • The version numbers need to be updated for WordPress 5.1.
    • The link URL to the page needs to be updated to account for the slug change.
    • The link URL needs to be customizable via both an environment variable (to be set by hosting providers) and a filter (for later adjustments in the codebase).
    • @flixos90 is working on these updates as part of #45686.
  • In the Servehappy API endpoint, the recommended PHP version should be set to 7.3, and the lowest acceptable version should be set to 5.6 to account for the future version bump. On any version below that, WordPress users will see a warning. Furthermore the information on official PHP version support needs to be updated as both PHP 5.6 and 7.0 are no longer support (or will be in very few days). This update has as of now been committed already as well.
  • During the work on the Meta changes in the aftermath of the meeting, it came up that adjusting version numbers exposed by wordpress.org should become a more straightforward process that can happen in a central location. This part is not crucial to have prior to WordPress 5.1, but is a minor tweak to make maintenance simpler in the future.
  • Still left is enhancing the page content with visual assets. It was agreed that these should not contain any language-dependent text. Among the suggestions were:
    • a diagram of how the server hardware, PHP, and WordPress relate to each other
    • a timeline of PHP version history
  • None of the attendees felt capable or had availability to work on such visual assets. If you can help with this over the next couple weeks, please let us know in the comments or the #core-php channel on Slack.
  • Due to the holidays in many parts of the world, the meetings in the next two weeks are cancelled. Finishing the features for WordPress 5.1 is a high priority though, and communication should continue asynchronously as needed. The next official meeting will take place only a few days before the intended 5.1 Beta release, so at that point everything should preferably be good to be merged.

Next week’s meeting

  • Next meeting will take place on Monday, January 7th, 2019 at 16:00 UTC in #core-php.
  • Agenda: Finalize remaining WordPress 5.1 work in order to be ready in time for the first Beta (Janurary 10th).
  • If you have suggestions about this but cannot make the meeting, please leave a comment on this post so that we can take them into account.

#php, #servehappy, #summary

JavaScript Chat Summary – December 18th

Below is a of the discussion from this week’s JavaScript chat (agendaSlack transcript).

Have a topic for discussion for the next meeting? Leave a suggested edit on next agenda (January 8th).

Next meeting

This is the last meeting of the year. The next meeting will be held on January 8.

WordCamp US contributor day

A lot of fruitful contributions and discussions happened during the WCUS contributor day:

  • @herregroen made some progress toward improvements in how JSDoc are extracted and surfaced to developer documentation. More info in this slack thread and core ticket.
  • A Pull Request bringing aXe accessibility e2e testing in the Gutenberg repository has been created. The folks at Deque published a blog post about their takeaways.

Node 10.x LTS

The new versions of Gutenberg packages now require Node 10 or newer. This is to align with our stated support to follow the LTS release cycle of Node.

ESlint Package

The first version of the @wordpress/eslint-plugin package including recommended WordPress ESLint configuration has been published. A post detailing all the guidelines bundled in this package has been shared.

Action items:

  • Clarify in the docs and the package.json that the package requires eslint-plugin-react, eslint-plugin-jsx-a11y and eslint as peer dependencies.

JavaScript Documentation effort

There is an agreement that we need a bigger documentation effort to clarify some misunderstanding about the internals of Gutenberg.

Related:

  • If you have some technical knowledge and are interested in helping the documentation efforts, please have a look at this call for contributors.
  • Yoast is working on some extensibility APIs docs.

Documentation will be discussed further on the next meeting.

Open floor

#core-js, #javascript #summary

PHP Meeting Recap – December 3rd

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

  • @drewapicture announced that he’d start working on a proposal to add modern PHP best practices to the core handbook at WCUS contributor day.
  • The discussion about feature flags from the previous week was picked up again, particularly regarding the trade-offs of relying on a (network) option vs relying on a constant or environment variable.
    • Since some of the processes to be tested are executed very early in the WordPress bootstrap process, a variable that can be set in wp-config.php or earlier should be used. There possibly could be a wrapper function to access that value, including a filter that would allow adjusting the constant value dynamically by code that would run later.
    • WP-CLI could also be used to “more dynamically” set the constants.
    • It was mostly agreed that the Beta Tester plugin should somehow incorporate the feature flags functionality, in favor of core, at least initially.
    • Eventually, it was summarized that the topic should get picked up again later, as the WSOD protection mechanism (see #44458) is not blocked by this and should move forward.
  • Further conversations on the current state of the project will happen at WCUS, with the results being published in a recap. The meeting on December 10th is cancelled because of WCUS and related travel.

Post-WCUS Update

  • As mentioned during the State of the Word, WordPress core aims to raise the minimum required PHP version to 5.6 by April 2019, and to 7 by end of 2019 – a great success for the ecosystem and the Servehappy initiative.
  • A conversation between members of the core, community and hosting teams happened during contributor day, planning the steps ahead for both Servehappy and the overall Site Health project that it is part of. A detailed summary of this will be published separately.
  • The goal for the initial parts of Servehappy is to release them ahead of the PHP version bump, likely as part of WordPress 5.1. Due to the intended version bump, the core notice should be displayed on all PHP versions below 5.6, contrary to the originally intended idea of only targeting 5.2 initially.

Next week’s meeting

#core-php, #php, #servehappy, #summary

Dev Chat Summary: December 12th

Dev Chat Scheduling

As many folks will be away over the Christmas/New Year period, the next few meetings will be as follows:

  • December 19: Normal meeting.
  • December 26: Normal meeting will not be happening. There are likely to be core folks around to answer questions for an open floor session.
  • January 2: Normal meeting.

5.0.2 Schedule and Scope

Please note that WordPress 5.0.1 has just been released, so any previous mentions of scope or schedule for WordPress 5.0.1 should now be read as applying to WordPress 5.0.2.

WordPress 5.0.2 is intended to be released two weeks after WordPress 5.0, which would make the release date December 20. To give a little more space before the Christmas/New Year holiday period, I’ve proposed that it be released December 19.

Milestone Dates

  • Release Candidate 1: December 14, 2018
  • Release Candidate 2 (if needed): December 17, 2018.
  • General Release: December 19, 2018.

The following items are in scope for the 5.0.2 release:

  • Gutenberg 4.7 was released today, the fixes in this plugin release will also be in WordPress 5.0.2.
  • Twenty Nineteen bugs and visual issues.
  • There are a few PHP 7.3 compatibility fixes to be made.

Any other tickets currently milestoned for 5.0.2 will be considered on a case-by-case basis, priority will be given to tickets with patches, testing, screenshots, and any other relevant information to show that they’re ready to land immediately.

5.1 Schedule and Scope

As there are already over 200 tickets fixed in WordPress 5.1, I’d like to propose that WordPress 5.1 has a relatively short release cycle.

Milestone Dates

  • Beta 1: January 10, 2019
  • Release Candidate 1: February 7, 2019
  • General Release: February 21, 2019

A key point from the WordPress 5.0 cycle was that it demonstrated the value of having a hard feature freeze at beta 1, as well as string freezes and strict bug fixing policies during the release candidate phase. With that in mind, I’d like to propose that we retain these policies for the WordPress 5.1 cycle.

The tickets already fixed in WordPress 5.1 need to be reviewed, to ensure they’re all stable for release in this cycle.

Apart from that, the PHP upgrade warnings and the White Screen of Death protection from the Site Health Check project are currently the only uncommitted features scheduled for WordPress 5.1. The PHP upgrade warnings are currently soft warnings, ahead of the minimum PHP version bump proposed for April 2019.

@matt will be continuing his role as release lead into WordPress 5.1. Any other feature proposals will need to be approved by him.

Please leave feedback on this post, so the scope and schedule can be confirmed in the next day or two.

Focus and Component Updates

REST API

The REST API group will be re-opening discussion around authentication solutions. They’ll be posting further information about this project on make/core.

Core JS

The Core JS group didn’t meet this week, due to many folks travelling home from WCUS. They’ll be resuming normal meetings next week.

Core Themes

The current themes focus is on triaging Twenty Nineteen issues for 5.0.2, as well as preparing to move activity from GitHub into Trac. This move will likely happen immediately after 5.0.2.

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