Dev Chat: 10/9/2019

@davidbaumwald served as facilitator and note taker for this week’s chat held in the #core SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel. To view the chat from the beginning, click on this Slack Archive.

Announcements

WordPress version 5.3 Beta 3 was released on Tuesday. Congratulations to everyone involved in inching 5.3 closer to the finish line.

5.3 Updates

With 5.3 BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 3 now release, focus turns to Release Candidaterelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). 1(RC1) is next on the schedule just a few days from now. A “soft string freeze” is now in effect.

@francina called for volunteers for next week’s RC1 release session. Both Mission Control(MC) and a CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Committercommitter A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component. will be required. @azaozz and @sergeybiryukov raised their hands.

@karmatosed provided a quick update on 5.3’s About page, saying that everything is on track and copy is being finalized.

@jeffpaul inquired about the progress on compilation of Dev Notesdev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include: a description of the change; the decision that led to this change a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. for 5.3. @justinahinon pointed to a Google Sheet that he’s using to organize them and coordinate volunteer authors.

This discussion led to a call for more volunteers and ticketticket Created for both bug reports and feature development on the bug tracker. owners to draft Dev Notes. @desrosj mentioned that he’s “… started a page for the handbook collecting the learnings from the last three releases for this.”

@ianbelanger brought a Twenty Twenty update to the group. A PR has been opened to address WPCSWordPress Coding Standards A collection of PHP_CodeSniffer rules (sniffs) to validate code developed for WordPress. It ensures code quality and adherence to coding conventions, especially the official standards for WordPress Core. violations in the Beta Twenty Twenty patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing., and a call for testing was announced. @karmatosed added that testing on mobile is a great help to the team.

Open Floor

@azaozz mentioned that there are, as of writing, only 37 open tickets in the 5.3 milestone, and everything should be closed out as RC1 is released. This was a great reminder of the tremendous work done by Core ContributorsCore Contributors Core contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org. during the course of the 5.3 cycle, as over 350 tickets were initially open when the cycle was kicked off!

These notes were drafted by @davidbaumwald and proofread by @justinahinon.

#5-3, #dev-chat, #summary

Introducing handling of big images in WordPress 5.3

The way WordPress handles large images has always been a topic of discussion for users and developers.

There are generally two types of images that are uploaded:

  • Images that have been edited or created in an image editing application.
  • Photos that are uploaded either directly from the camera or haven’t been edited.

In the first case, the images are usually “web-ready”. They may have been scaled down to an appropriate size and optimized.

In the second case, the images are usually much bigger than needed and are not optimized for web use. A photo taken with an average modern smartphone is easily over 5MB in file size. Photos taken with a good quality camera can be much larger.

WordPress 5.3 introduces a new way to manage these images by detecting big images and generating a “web-optimized maximum size” of them.

How does it work?

When a new image is uploaded, WordPress will detect if it is a “big” image by checking if its height or its width is above a big_image threshold. The default threshold value is 2560px, filterable with the new big_image_size_threshold filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output..

If an image height or width is above this threshold, it will be scaled down, with the threshold being used as max-height and max-width value. The scaled-down image will be used as the largest available size.

In this case, the original image file is stored in the uploads directory and its name is stored in another array key in the image metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. array: original_image. To be able to always get the path to an originally uploaded image a new function wp_get_original_image_path() was introduced.

Disabling the scaling

The scaling is controlled by the big_image_size_threshold filter. Returning false from the filter callback will disable it.

add_filter( 'big_image_size_threshold', '__return_false' );

For reference on this change, see TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. ticketticket Created for both bug reports and feature development on the bug tracker. #47873 and changesets [46076] and [46353].

#5-3, #core-media, #dev-notes

Editor chat summary: Wednesday, 9 October 2019

This post summarizes the weekly editor chat meeting on Wednesday, 9 October 2019, 14:00 WEST held in Slack.

Weekly Priorities

WordPress 5.3 is planned for next week, there are still some issues we need to fix before then:

Some of the priorities are being worked, but others are not taken yet. If you think you can help with some of these tasks, please leave a comment on the issue!

It is also essential to address some browser issues, namely on IE. People with a windows dev setup could be beneficial here.

We are getting close to the WordPress 5.3 release; testing is essential, namely on the mobile phone you use, given the wide variety of devices that exist.

Task coordination

Note: If you’re reading this summary outside of the meeting, please drop a comment if you can/want to help with something!

@youknowriad

  • Working on the Media Upload errors handling.
  • Working on a fix to the navigation mode.
  • Lots of reviews and coordination.
  • Exploring some improvements to BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. nesting selection with a new Block Breadcrumb.

@get_dave

  • Continues the work on DimensionControl https://github.com/WordPress/gutenberg/pull/16791, and ResponsiveBlockControls https://github.com/WordPress/gutenberg/pull/16790 PRs.
  • Started on the implementation of a potential new Link insert/edit interface as per https://github.com/WordPress/gutenberg/issues/17557

@gziolo

  • Helped @epiqueras to land the initial version of the Components Storybook.
  • Is focused on some optimizations related to eliminating dead code (mostly for experimental features) from WordPress 5.3 release.

@jorgefilipecosta

  • Worked on some changes to the custom gradient picker. Now, it is possible to move the control points using arrow keys, and the code was reorganized. It should be ready for a more in-depth review; a11yAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) feedback would also be valuable.
  • Focused on some 5.3 must-haves.
  • Helped (reviewed tested, or suggested commits) in navigation block (related PR’s), DimensionControl, ResponsiveBlockControl, and other smaller PR’s.
  • Will continue the work on must-haves, apply a refactor that makes media&text work on IE, and fix some generic block editor issues.

@karmatosed

@brentswisher

  • Hoping to revisit displaying a notice of some kind in the inserter when there are disabled blocks (https://github.com/WordPress/gutenberg/pull/17338).
  • Help out with any 5.3 issues that he can.
  • Will try to help get through some of the new issues, label them, and get additional attention to them if he thinks they are WordPress 5.3 must-haves.

Open floor

@jeffreycarandang asked for an updated to PR https://github.com/WordPress/gutenberg/pull/17617 and to issue https://github.com/WordPress/gutenberg/issues/17809.

Regarding PR https://github.com/WordPress/gutenberg/pull/17617 @youknowriad and @jorgefilipecosta both had some comments on the problem the PR faces. The basic idea is that when a format is applied to a rich text, the focus goes back to the rich text (e.g., when we press a “bold button” it is expected I can continue typing) this behavior was always present. Some time ago, mainly because of accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) reasons, a change was applied to popovers that automatically closes them when the focus is outside. The two previous behaviors together have some impact on formats that are applied in a popover (the popover may close in an unexpected situation). This is a high priority very complex problem, and a solution is being worked.

Regarding issue https://github.com/WordPress/gutenberg/issues/17809, @youknowriad pointed $wp_version variable as a possible solution and provided a way to make it available in JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/..

@welcher asked more detailed feedback on https://github.com/WordPress/gutenberg/pull/16384 which adds a priority mechanism to the Slot&Fill pattern.

@mcsf and @youknowriad shared strong reservations.

It seems that priority and order are very visually focused, in stark contrast with how GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ has tried to use SlotFill so far.

In Gutenberg, we talk about advanced settingsinspector, etc., instead of the visual element sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. Coming back to priority, what does it mean for SlotFill as far as selective rendering goes? how is a sequence determined semantically? etc.Why does this matter? Well, the bridging of different platforms and environments under Gutenberg is an important factor. If a codebase needs to work transparently across Web and Mobile, for example, its semantics needs to be clear and independent of a particular visual expression (e.g. Web on Desktop)

@mcsf

@mkaz had a docs related question:

How do y’ll feel about ES5 support in documentation? Most of the code and package docs are ESNext, but we show ES5 examples first in docs. I don’t have a proposal together yet, but I feel we should move people quicker to ESNext since it is what they most likely will experience everywhere.

People agreed that the default docs should be ESNext but ES5 examples should still be present.

#core-editor, #editor-chat, #meeting, #summary

Dev Chat Agenda for October 9 2019 (5.3 week 8)

Here is the agenda for the weekly meeting happening later today: Wednesday, October 9, 2019, 20:00 PM UTC. Please share any items you’d like to include in the comments below!

  • Announcements and highlighted posts
  • Upcoming Release Discussions
  • Calls from component maintainers
  • 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. To join the meeting, you’ll need an account on the Making WordPress Slack.

#5-3, #agenda, #dev-chat

WP 5.3: Introducing the spread operator

In WordPress 5.3, the PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 5.6 spread operator has been introduced to WordPress in a number of places.

Using the spread operator allowed for simplifying the code and improves performance – both in speed as well as memory use -, especially as it has been introduced in a number of functions which are used a multitude of times during every single pageload, such as current_user_can() and add_query_arg().

For full details, see Trac ticket #47678.

Impact on plugins/themes

Most plugins and themes should see no impact of these patches, other than the improved performance.

However, if your pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party/theme is one of the limited number of plugins and themes which extends one of the below listed classes and overloads any of the listed methods, you will need to take action.

What to do if your plugin/theme is affected

In nearly all cases, WP 5.3 has added a new parameter to the function signature using the spread operator. This allows for an easy transition as you can adjust the function signature of the method overloading it to do the same.
You may also want to adjust the code within the overloaded method to get the same performance benefits as the parent method.

See the relevant patches linked below for the full details of the change to each method and for inspiration.

Adding the extra argument will allow your plugin/theme to be compatible with both WP 5.3 and older WP versions, though it does raise the minimum PHP requirement for your plugin/theme to PHP 5.6.
Make sure you annotate this in the readme.txt!

In only one case – wpdb::prepare() -, WP 5.3 has changed an existing parameter.
In the exceptional situation that you would be overloading that method, you will need to make a choice whether you want to continue supporting older WP versions or to set the minimum WP version to WP 5.3.
If you set the minimum WP version to WP 5.3, you need to change the function signature of the overloading method to match the new function signature in WP 5.3 and you may also want to simplify some code in your method too.
If you want to continue to support older WP versions, you will need two versions of the class overload and an if/else toggle to load the correct one depending on the WP version being used.
Note: this really only applies to overloaded wpdb::prepare() methods. There is no need to do this if you overload any of the other affected methods.

What will break if I don’t make the change to my plugin/theme

Nothing. The world will keep turning as it did before.

You may get some complaints from end-users that they are seeing PHP warnings about a mismatched function signature in their PHP error logs, but other than that, all should still work as before.

This is not to say that you shouldn’t update your plugins/themes… You should.
It is just that if you don’t have time to do it right away, you don’t need to worry that your plugin/theme will be bringing sites down.

List of affected classes:

List of affected test classes:

#fortheloveofcode, #modernizewp, #5-3, #dev-notes, #php

Editor Chat Agenda: October 9th

Note taker: @jorgefilipecosta

This is the agenda for the weekly editor chat scheduled for Wednesday, 9th October 2019, 13:00 UTC.

This meeting is held in the #core-editor channel in the Making WordPress SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..

  • Weekly Priorities
  • Task Coordination
  • Open Floor

If you have anything to share for the Task Coordination section, please leave it as a comment on this post.

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

#agenda, #core-editor, #editor-chat