WordPress 4.9.3 Beta

As mentioned in the last dev chat, WordPress 4.9.3 maintenance release is scheduled for January 30th.

The beta package for 4.9.3 is now ready for testing. Please help us by testing this beta to ensure 4.9.3 fixes the reported issues and doesn’t introduce any new ones.

JSHint Removal

One of the important changes is the removal of JSHint from code editor due to its GPL-incompatible license. If your code relies upon JSHint from core, you should update it to include a copy of JSHint. See ticket #42850 for more details.

Other Changes

Other notable fixes and enhancements include:

Canonical

  • #15397 redirect_guess_404_permalink() doesn’t guess posts with updated dates

Customize

  • #42646 Customizer cropper settings don’t respect flex-width=false and flex-height=false
  • #42686 Default selected changeset status should not be ‘publish’ when current user does not have publish capability
  • #42975 Customize: Previewing a changeset locks the changeset

Database

  • #43109 RegEx in parse_db_host() can cause notices and headers sent too early

Emoji

  • #42862 Update Twemoji to v2.4.0

Media

  • #42643 No download link if a FLV file cannot be rendered

Query

  • #42860 PHP 7.2 warning in WP_Query::set_found_posts()

REST API

  • #42597 “Term already exists” error no longer returns term ID

Role/Capability

  • #42697 Missing Translations update section

TinyMCE

  • #42503 Visual mode does not work in Internet Explorer 11
  • #42722 TinyMCE JS error preventing plugins from loading
  • #42908 Additional markup inserted when editing shortcodes and switching between Visual/Text tabs
  • #43090 Extra dots in in TinyMCE toolbar dropdowns in Microsoft Edge

Upgrade/Install

  • #42693 WordPress sends an “admin email address was changed” message to you@example.com on new install
  • #43103 Reduce plugin/theme API calls during core release windows

Widgets

  • #42740 Image Widget does not support relative links
  • #42802 Custom HTML widget validation does not allow single-quoted attributes
  • #43003 HTML5 “required” attribute in Widget form() fails in ajax-actions.php during save
  • #43125 Deregistering WP_Widget_Media_Image breaks Text widget’s “Add Media” button

See the full list of closed tickets in Trac.

#4-9-3

Dev Chat Summary: January 24th (4.9.3 week 2)

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

4.9.3 planning

  • 4.9.3 beta was supposed to be built on Tuesday, but some tickets were still actively being worked on, so it will be done after dev chat
  • @sergey to post on Make/Core with notable fixes, things to test, and link to JSHint dev note
  • RC and release are still planned for 29th and 30th, respectively
  • Note: 4.9.3-beta1 is out, post is still pending

JSDoc initiative

  • @atimmer prepared a Make/Core post to announce the JSDoc initiative
  • Feedback on the draft is welcomed, send Slack DM to @atimmer with updates
  • It looks a lot like the inline hook documentation and the setup is the same: file by file, everyone can claim a file, at the end all files will be documented
  • @kadamwhite to publish post when its ready

General announcements

Next meeting

The next meeting will take place on January 31, 2018 at 21:00 UTC / January 31, 2018 at 21: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-3, #core, #dev-chat, #documentation, #js, #jshint, #summary

What’s new in Gutenberg? (25th January)

This release iterates further on some design and writing flow details — lighter up/down movers, engaging the UI-less focus mode more often, etc. It also brings many extensibility API improvements, exposing internal editor state through selectors, enhancements to the meta-box handling, and implements the "Copy All" button as if it was a plugin as an example of how to leverage native hooks.

2.1 🦔

  • Iterate on the design of up/down arrows and how focus is managed. This seeks to further reduce the visual and cognitive weight of the up/down movers.
  • Show immediate visual feedback when dragging and dropping images into the editor. (Expands on the previous release work.)
  • Expose state through data module using selectors. This is an important piece of the extensibility puzzle.
  • New button outline and focus styles.
  • Show original block icon after converting to reusable block. Also hides the generic reusable block from inserters. This moves data logic out of the inserter.
  • Introduce a migration function for block versioning.
  • Add HTML handler to dropzone. Allows drag and dropping images from other web pages directly.
  • Trigger typing mode when ENTER or BACKSPACE are pressed. This improves the writing flow but engaging the UI-less mode more frequently.

Other changes:

What's next?

As we approach the final stages of features, we are looking at finalizing the nested blocks interface (with its own Columns component), some remaining important extensibility hooks for plugins, and adding drag-drop functionality for moving and inserting blocks. ⛰

#core-editor, #editor, #gutenberg

JSHint removed from CodeMirror in 4.9.3

CodeMirror was introduced to WordPress 4.9 for an improved code editing experience. For JavaScript linting, CodeMirror uses JSHint which unfortunately includes some code that isn't compatible with the GPL. Therefore, in WordPress 4.9.3, we are removing JSHint and replacing it with esprima and a custom wrapper to provide some basic linting for JavaScript. This allows the code editor to show compilation errors, but not errors in formatting. 

If your code relies upon JSHint from core, you should update that code to include a copy of JSHint.  Please note that as JSHint isn't currently GPL compatible, it can not be distributed in the WordPress Plugin Repository. 

For more info, please see #42850.

#4-9, #4-9-3, #codemirror, #dev-notes, #jshint

Dev Chat Agenda: January 24th (4.9.3 week 2)

This is the agenda for the weekly dev meeting on January 24, 2018 at 21:00 UTC / January 24, 2018 at 21:00 UTC:

  • 4.9.3 planning
  • Updates from focus leads and component maintainers
  • JSDoc initiative
  • General announcements

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

#4-9-3, #agenda, #core, #dev-chat

Dev Chat Summary: January 17th (4.9.3 week 1)

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

4.9.2 release

  • 4.9.2 was released yesterday.
  • This is a security and maintenance release for all versions since WordPress 3.7. We strongly encourage you to update your sites immediately.

4.9.3 planning

  • Updated timeline is 4.9.3-beta1 on Tuesday, January 23rd; RC on Monday, January 29th; and still aim for Tuesday, January 30th for release.
  • Currently no major bugs, so planning for a regular maintenance release.
  • Bug scrub times will be announced on Make/Core.
  • 4.9.3 beta will get a Make/Core post to help get people's attention on it.

Updates from focus leads and component maintainers

  • The Editor team recently released Gutenberg v2.0 and will begin regular Gutenberg bug scrubs at 17:00 UTC on Thursdays separately from their weekly meeting. Please ping @jbpaul17 (@jeffpaul on Slack) if you have interest in assisting with bug scrubs.
  • The REST API team wants to get dev opinions on a register_meta change proposal that will becoming to a Make/Core post soon.

General announcements

  • @jorbin: Reminder that breaking changes (even if they are only breaking code that was publicly released for a few months) should always have a Dev Note published on Make/Core.
    • 4.8 and 4.9 had shorter beta/RC windows. It would be interesting to analyze and see how that affected bugs reported during those windows and in the near term after release. It would also be interesting to see how that affected the number of reverts. That data might show longer beta/RC windows are necessary, but we should not rush a decision without numbers backing up the analysis.
    • Note that @jbpaul17 added a step to check for dev notes to the Releasing Minor Versions handbook page.

Next meeting

The next meeting will take place on January 24, 2018 at 21:00 UTC / January 24, 2018 at 21: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-2, #4-9-3, #core, #core-editor, #core-restapi, #dev-chat, #gutenberg, #summary

Auto-formatting of author bios reverted in 4.9.2

In WordPress 4.9.2 auto-formatting of author bios via get_the_author_description was removed after being introduced in WordPress 4.9.

Introducing auto-formatting broke a number of themes. Unfortunately, reverting it in 4.9.2 potentially breaks themes that had implemented a fix for this

For background, formatting was introduced in #40040 and reverted in #42578.

Maintaining auto-formatting

Theme authors wishing to maintain auto-formatting of author bios can add the following code to their theme's functions.php file.

add_filter( 'get_the_author_description', 'wptexturize' );
add_filter( 'get_the_author_description', 'convert_chars' );
add_filter( 'get_the_author_description', 'wpautop' );
add_filter( 'get_the_author_description', 'shortcode_unautop' );

#4-9, #4-9-2, #dev-notes

PHP Meeting Recap – January 15th

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

After Servehappy had been officially approved as a feature project for WordPress in the past week's dev chat, the agenda of the meeting was to plan how to proceed further for the information and education page, which will be the first milestone of the project. Here are the discussion results:

  • It is still unclear whether the page will be a subpage of some existing wordpress.org page or whether it will be a completely separate site with distinct domain. However, in terms of layout and design, it will not need to integrate with the common wordpress.org look, to have most flexibility in terms of UX.
  • The core admin notice will initially only be put into the latest WordPress release, but it may be worth backporting it so that users of older versions are also informed.
  • Regarding the .org infrastructure integration and branding, it was decided to go with a completely separate design for the page. It should somehow indicate that it is an official WordPress project, but very subtly, for example with a link at the bottom of the page. The idea is that the page may at some point evolve to a collaborative project that may be helpful for other OSS on the web as well.
  • The rest of the discussion revolved around layout and design brainstorming (read more below).

Call for Designers

As we have a full draft of the page content in place, the primary goal at this point is to come up with a solid layout and design. Some initial thoughts were discussed during this meeting, but eventually, none of the team members is a designer or has significant UX experience. We would like to ask the #design team for help on this invite you to join our meeting next Monday to proceed with a more sophisticated discussion. @karmatosed furthermore plans to have a segment on the topic in tomorrow's design team meeting. We'd be happy to have you onboard!

To get started, here are some of the thoughts and questions we came up with:

  • An initial mockup can be found in the project's roadmap post.
  • Are accordion elements the right UI component to use? No clear opinion on that, but there was agreement on that at least the initial one should be open.
  • Would having a floating sidebar with the headings and inline navigation be useful? We generally didn't think so since we considered it something that devs are mostly used to, while are audience are non-technical users, and it may overwhelm users when they immediately see the amount of content there is regarding this topic. But it's still a possibility worth thinking through.
  • Instead of an actual sidebar, there could be small asides displayed here and there, with some of the content in the draft text already being designated for such.
  • An alternative idea was some kind of slideshow, with one slide per section. There could be a heading and one or two brief catchy sentences to arouse interest, and then a toggle to expand more details. A click on a button or scrolling could lead to the next slide / section. This approach may easily have accessibility issues though if not done right. It would also need to be considered how to access specific sections quickly without being required to run through the previous slides first.
  • Maybe experimenting with different versions and doing user testing would work. This could happen at WordCamps and other events, although we need to be careful to keep in mind that the target audience are non-technical site owners, many of which probably do not attend such events.
  • The most significant question for us seemed to be whether the page should display all content at once or rather break it down into smaller pieces one by one.

We are hoping to get some more solid results in collaboration with the design team. If you think these ideas are terrible, please throw them away. All of us are developers, and that is why we need your help!

Next Meeting

The next meeting will take place on Monday, January 22nd, 2018, 16:00 UTC as always in #core-php.  The agenda will be to further discuss layout and design, hopefully with some members of the design team presents or maybe already results from their meeting. See you next week!

Dev Chat Agenda: January 17th (4.9.2 week 7)

This is the agenda for the weekly dev meeting on January 17, 2018 at 21:00 UTC / January 17, 2018 at 21:00 UTC:

  • 4.9.2 planning
  • Updates from focus leads and component maintainers
  • General announcements

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

#4-9-2, #agenda, #core, #dev-chat

What’s new in Gutenberg? (12th January)

Hope everyone has had some good time! We are resuming the releases of Gutenberg for this new year. The first one — 2.0 — is rather big, with updates across the board. The highlights cover several pasting improvements, a more polished publish flow, block API tweaks and extensibility additions, various accessibility improvements, block library updates (like new querying by category in latest posts), etc.

2.0 🦕

Design and editing experience

Components

Accessibility

Mobile

  • Render toolbar always by the block on mobile.
  • Improve performance of responsive calculations using matchMedia.
  • Avoid shifts around toolbar and scrolling issues on mobile.
  • Improve how the fixed-to-block toolbar looks on mobile. Change how the fixed position toolbars behave, making them sticky.
  • Prevent Mobile Safari from zooming the entire page when you open the inserter.

Block API and Misc.

Bug Fixes

#core-editor, #editor, #gutenberg