Bug Scrub Schedule for 5.3

Now that 5.3 has been officially kicked off, bug scrubs will happen weekly all the way up to the final release. Keep an eye on this schedule – it will change often to reflect the latest information.

  1. 8/27/2019 18:00 UTC
  2. 9/5/2019 14:00 UTC
  3. 9/12/2019 05:00 UTC (APAC-Friendly)
  4. 9/18/2019 23:00 UTC
  5. 9/25/2019 17:00 UTC
  6. 10/2/2019 16:00 UTC
  7. 10/9/2019 17:00 UTC Led by @marybaum
  8. 10/17/2019 TBD (If Needed)
  9. 10/23/2019 TBD (If Needed)
  10. 10/30/2019 TBD (If Needed)

These scrubs are separate and in addition to the normal scrubbing and triage by individual components. Some of those sessions include:

Design Triage: Every Monday 16:30 UTC at #design
Gutenberg Design Triage: Every Tuesday 16:00 UTC at #design
Accessibility Scrub: Every Friday 14:00 UTC at #accessibility

Also, @pento recently announced a new, ongoing APAC-friendly #core bug scrub session every Thursday at 06:00 UTC.

As the release date nears, one-off, “flash” scrubs pop up for individual components. These are typically focused on a specific group of tickets or an individual feature. Some of these sessions include:

Twenty Twenty Theme Scrub: 9/20/2019 16:00 UTC at #core-themes
Media Accessibility Scrub: 9/23/2019 06:00 UTC at #core-media (APAC-Friendly)
Media Accessibility Scrub: 9/25/2019 14:00 UTC at #core-media
Accessibility Scrub: 10/1/2019 16:00 UTC at #accessibility

Finally, a reminder that anyone — Yes, you! — can host a bug scrub at anytime. You can work through any tickets you’re comfortable with. In fact, if you plan one that’s 5.3-focused, we’ll add it to the schedule here along with your name. Finally, you’ll get well deserved props in the weekly Dev Chat, as well as in the #props Slack channel!

All open tickets for 5.3, in order of priority, can be found here. Tickets that haven’t seen any love in a while are in particular need. Those can be found in this query.

If you’d like to lead a bug scrub or have any questions or concerns about the schedule, please leave a comment or reach out to me directly.

#5-3, #bug-scrub

Block Editor Theme-related updates in WordPress 5.3

WordPress 5.3 includes a lot of additions and refactoring to existing blocks in order to support new features. Some of this features require special care from theme authors in order to optimize the Block Editor theme integration.

The Group block

A Group block to act as an all-purpose container for other blocks has been introduce. If a theme does not support wide and full alignments, no CSS changes should be necessary. 

If a theme does support for wide and full alignments, some additional theme styles may be required to ensure child blocks appear as intended: depending on how your CSS is written, a theme’s usual alignwide and alignfull styles may not appear as intended when they’re applied inside of a Group block. 

The Group block contains an inner container (wp-block-group__inner-container) to help make styling easier. In many cases, that div can be used as a proxy for entry-content styles, allowing wide and full child blocks to appear as intended without modification. 

To illustrate this, here’s a simplified example of a common method for implementing wide and full block layout on the front end, using negative margins:

.entry-content {
	width: 60vw;
	margin: 0 auto;
}

.alignwide {
	margin-left: -10vw;
	width: 80vw;
}

.alignfull {
	margin-left: -20vw;
	width: 100vw;
}

In this scenario, only a few additional lines of code are necessary to implement Group block styles: 

// Apply entry-content styles to the group block’s inner container as well. 
.entry-content,
.wp-block-group__inner-container {
	width: 60vw;
	margin: 0 auto;
}

// When a group block has a wide alignment, make sure that its full-width children do not extend beyond the width of the container. 
.alignwide,
.wp-block-group.alignwide .alignfull {
	margin-left: -10vw;
	width: 80vw;
}

.alignfull {
	margin-left: -20vw;
	width: 100vw;
}

// Ensure wide and full-width children do not extend beyond the width of a standard-aligned Group block.
.wp-block-group:not(.alignwide):not(.alignfull) * {
	max-width: 100%;
	margin-left: 0;
}

Related PRs: 13964.

Reduced Block Styles specificity

In WordPress 5.3, the specificity of block editor CSS has been reduced. Specifically it changes how default block margins are applied, now targeting [data-block]. This should give more control to theme and plugin developers.

By default, all blocks will be born with a base margin. You can set that margin to zero in an editor-style:

[data-block] {
	margin-top: 0;
	margin-bottom: 0;
}

Related PRs: 14407.

Using class names for text alignment

In the previous versions of WordPress, inline styles were used to change the text alignment for the following core blocks:

  • Heading
  • Paragraph
  • Quote
  • Verse

This produced high CSS specificity making it very hard for theme authors to customize the look of those blocks. WordPress 5.3 uses classnames for text alignment to address these issues:

  • has-text-align-right – when block’s text is aligned to the right
  • has-text-align-center – when block’s text is aligned to the center
  • has-text-align-left – when block’s text is aligned to the left

All previously published posts should work as before. The affected blocks will automatically get converted to use the corresponding class names as soon as they are opened and saved in the block editor.

Related PRs: 16035, 16777, 16779, 16794.

Columns block classnames

The columns block have been updated to support custom widths per column. This led to the removal of the has-x-columns classname. Themes could have potentially relied on this classname to set the width of the columns.

Related PRs: 16129.

Color support for the separator block

The separator block now supports custom colors, this may impact themes that defines the separator color manually in their stylesheets. Themes should assign default colors to the separator only if the user didn’t apply a color explicitly. You can check the fix that was applied to the Twenty Nineteen theme to see how to achieve this.
https://core.trac.wordpress.org/attachment/ticket/47811/47811.patch

Related PRs: 16784.

Table block markup update

The table block is now wrapped in a <figure> element, so that <table class="wp-block-table"> has been replaced by  <figure class="wp-block-table"><table>. This is to allow large tables to horizontally scroll within the figure container instead of forcing cell content to break and become unreadable on small screens.

Themes may be impacted by this change if they have used chained selectors like table.wp-block-table for styling. Themes should now instead use .wp-block-table to target the container, or .wp-block-table table to target the table element itself.

Related PRs: 16324.

Gallery block markup update

The gallery block is now wrapped in a <figure> element as well and may optionally contain a <figcaption> as a caption for the whole gallery.

Themes can style the caption using the classname .blocks-gallery-caption. The markup change will affect any themes using chained selectors such as ul.wp-block-gallery to style galleries. Themes should now instead use only .wp-block-gallery to style the container and the new .blocks-gallery-grid classname to style the ul element itself.

Related PRs: 17101.


Props to @kjellr, @joen, @gziolo, @assassinateur and @isabel_brison for helping with this dev note.

+make.wordpress.org/themes

#5-3, #core-editor, #core-themes, #dev-notes

Dev Chat summary: September 25

As our Release Coordinator @francina was not available yesterday, @mapk led this chat. Thanks to all the attendees.

Announcements and highlighted posts

First announcement was Beta 1 of WordPress 5.3 that went out earlier this week. Every one is invited to help test it and report bugs and unexpected behaviors. The Beta includes the first iteration of Twenty Twenty, the new default theme which development is ongoing on GitHub.

Here are some highlighted posts shared by @mapk:

@antpb also shared the Media component weekly report.

Upcoming Release Discussions

@mapk said Gutenberg team started a project board in the editor Github for the issues and pull requests that they’re hoping to get in or at least backport into 5.3.

Twenty Twenty lead @ianbelanger said the team is particularly looking for help on this issue.

@audrasjb made a post-Beta1 Accessibility update focus. 6 important tickets for the focus where committed just before the release. They are still 33 open tickets in the milestone. Everyone is invited to help tackle them and join the focus weekly bug scrub every Friday at 2 PM GMT+3.

@davidbaumwald remembered that there are dedicated bug scrubs for 5.3 with the schedule here which Beta 2 is scheduled for next Monday.

@desrosj noted that 5.3 Release Candidate 1 is scheduled for October 15, and that the list of remaining tickets in the milestone needs to be empty by this date.

Calls from component maintainers

@audrasjb pointed out the 15 ready to be committed tickets in 5.3 milestone and asked for available committers attention on them.

Open Floor was quiet yesterday. And the chat ended up under one hour at 9:40 PM.

#5-3, #devchat, #summary

Summary of Core Privacy Office Hours, Sept. 25th 2019

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

Agenda Item: 5.3 Bugs

The following tickets were flagged as bugs for 5.3 privacy component and focus;

  • #37782 – Duplicate Page Entry in View All Pages when generating a Menu
  • #43974 – Both personal data request processes should follow the same convention
  • #44038 – Change personal data export path stored in request meta to relative paths
  • #44314user_confirmed_action_email_content filter run on two different strings
  • #44669 – Privacy Notification doesn’t clear after dismissing notification_wp_privacy_send_erasure_fulfillment_notification.
  • #46829 – Denote the special pages in Customizer Menu editor
  • #47366 – Privacy Policy page dropdown needs a max-width

#37782 is ready to commit if any committers can provide a final review.

Agenda Item: Privacy Data Request Form

Feature Plugin Proposal – https://make.wordpress.org/core/2019/09/04/feature-plugin-proposal-privacy-data-request-form/

We (@audrasjb & @garrett-eclipse) will be joining a future #meta chat to propose adding the plugin to the Feature plugins list.

Agenda Item: Consent and Logging Mechanism for User Privacy

Feature Plugin Discussion – https://make.wordpress.org/core/2019/08/07/feature-plugin-discussion-a-consent-and-logging-mechanism-for-user-privacy/

@idea15 mentioned there was some great comments on the thread many of which support the idea and proposal.

Next steps were discussed and @williampatton offered to review and start on the momentum for the work required.

@idea15 mentioned it would be nice to have the work ready to roll at least 60 days before the CCPA deadline believed to be on July 1st.

Agenda Item: WP User/Pro Survey

@idea15 flagged some earlier discussions on the survey with several questions put forth regarding user needs for privacy;
https://make.wordpress.org/updates/2019/06/28/updates-to-the-wordpress-user-developer-survey/

We also touched on that in the consent and logging proposal  https://make.wordpress.org/core/2019/08/07/feature-plugin-discussion-a-consent-and-logging-mechanism-for-user-privacy/#comment-36281 

The consensus was that like other teams, we need data on what users and contributors actually need from us – what their concerns are, what their business needs are, what resources they expect from us, what tools they need us to build.

In this week’s post on the survey (above), which links to the full set of questions https://docs.google.com/document/d/171KgbxvNukyuuHwLiY14yhqfbs7X5KBkw6hvbEcQZ9k/edit

There are no questions about user needs there, for us or for any other team.

It feels like all the feedback about what should go on the survey was ignored.

So, this is worrisome that the once-a-year opportunity to gain critical information to support our work is at risk of being lost.

So, let’s all take a day or two to review both posts and the draft script, with a goal to feedback with a team comment on Friday.

@idea15 started a gDoc (https://docs.google.com/document/d/1ZXfT-Mvvfxa-ZjD9cSQG9BKvtTAhXuZb0QS5lK47BGY/edit?usp=sharing) in order to collaborate on some suggested questions for privacy.


#core-privacy, #privacy

Privacy Office Hours Agenda: Wednesday September 25th, 2019

The following is the agenda for the privacy weekly office hours meeting. The meeting is held every Wednesday at 19:00 UTC in the #core-privacy room of the Making WordPress Slack.

  • Announcements / Housekeeping
  • Upcoming Release (5.3) Planning
    Note: We have 7 bugs (5 in Privacy component and 2 in privacy focus) pending for 5.3, they will need to be committed or punted by the Release Candidate scheduled for Oct. 15th, 2019.
    • #37782 – Duplicate Page Entry in View All Pages when generating a Menu
    • #43974 – Both personal data request processes should follow the same convention
    • #44038 – Change personal data export path stored in request meta to relative paths
    • #44314user_confirmed_action_email_content filter run on two different strings
    • #44669 – Privacy Notification doesn’t clear after dismissing notification
    • #46829 – Denote the special pages in Customizer Menu editor
    • #47366 – Privacy Policy page dropdown needs a max-width
  • Feature Plugin Proposal: Privacy Data Request Form
  • Feature Plugin Discussion: Consent and Logging Mechanism for User Privacy
  • Discussion / Open Floor

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

#core-privacy, #privacy

Editor chat summary: 25 September 2019

This post summarizes the weekly editor chat meeting on Wednesday, 25 September 2019 at 1300 UTC held in Slack.

The agenda can be found here.

News

  • WordPress 5.3 beta 1 is out

Weekly Priorities

  • Weekly Priorities are the remaining important issues and tasks needed for WordPress 5.3: https://github.com/WordPress/gutenberg/projects/34?fullscreen=true
    • still considering the Block content areas related work as a priority for the project

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!

  • @andraganescu
    • refactored the MediaFlow component to be a drop in component nstead of a HoC. it looks kind of ready https://github.com/WordPress/gutenberg/pull/16200
    • the PR implementing a smarter block appender could use a new review https://github.com/WordPress/gutenberg/pull/16708
  • @youknowriad
    • works on the WP 5.3 board above,
    • also working on dev notes,
    • Trying to help fix bugs
    • Reviewing Block Content areas work as time allows.
  • @mapk
    • I’m watching the project board like a hawk.
    • Testing @getdave’s responsive spacing PR: https://github.com/WordPress/gutenberg/pull/16790
    • Helping with the Inserter Panel Previews. https://github.com/WordPress/gutenberg/pull/17493
    • Keeping movement on the Block Patterns: https://github.com/WordPress/gutenberg/issues/17335
  • @brentswisher
    • will be back to his PRs
  • @getdave
    • works on the DimensionControl component and needs feedback https://github.com/WordPress/gutenberg/pull/16791
    • needs feedback on ResponsiveBlockControl too https://github.com/WordPress/gutenberg/pull/16790
  • @jorgefilipecosta
    • implements the first version of custom Gradient picker
    • needs review on https://github.com/WordPress/gutenberg/pull/17154
    • also working on compiling WordPress 5.3 Gutenprops. If you have not yet associated your GitHub to your WP.org profile, please do so, to make the props work easier and to make sure props are attributed!
  • @mcsf
    • focusing back on improving remote vs. local autosaves

Open floor

  • @paaljoachim raised some issues for discussion
    • there was a discussion on an option to use text link instead of auto embed ended with needing to clarify more on the issue
    • there was a discussion on the social block features needed for it to make it in WP 5.3 resulted in not having a light version because of the risk that we’d introduce breaking changes in core
  • @desaiuditd and @youknowriad discussed about https://github.com/WordPress/gutenberg/pull/17311

The next meeting is on 02 October 2019 at 13:00 UTC.

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

Dev Chat Agenda for September 25th 2019 (5.3 week 6)

Here is the agenda for the weekly meeting happening later today: Wednesday, September 26, 2019, 11:00 PM GMT+3. 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

What’s new in Site Health for WordPress 5.3

The Site Health component of WordPress covers both the new self-service area under Tools > Site Health, and the error protection which provides means to access a site while it is experiencing technical difficulties.

For WordPress 5.3, a handful of enhancements have been made to both these parts of the component, as well as multiple minor improvements to provide the best possible experience. Let’s cover the more notable changes and features that are now available.

Changes to the grading indicator

Following ticket #47046, modifications have been made to the site grading shown when Site Health Checks are run.

The modified Site Health header with the new grading indicator

The previous iteration included only an indicator and a percentage. This was meant to indicate how many tests were passing, not how perfect a site was. There was also no clear indication that the Site Health checks had not yet completed. The grading circle would pulse, but this was not obvious, nor was a good solution for those who may have a difficulty discerning this subtle change.

To address this, the numbers were removed in favor of two simple states: Should be improved, and Good. As for the indicator while work is being done, the pulsing animation is still there, but the status is shown as Results are still loading… to better relay what is happening on the page.

Observations of how developers extended the page also lead to changes in how the grading is weighted. This means that the existence of a critical issue will always lead to a recommendation of needing improvements. To offset the amount of checks some may add, the recommended results now carry less weight, making them have a lower impact on the overall outcome.

The indicator itself was kept as it is a visual nudge for many users, with the removal of the percentage it no longer has the same negative association, and now serves more as a reminder that work can be done, but the text associated with it lets the user know that it also doesn’t need to happen right this instance, hopefully leading to less mental anguish.

Recovery email enhancements

If a site failure occurs, an attempt to send a recovery email is made, although already a useful tool, if problems persisted, or you as a user had a hard time understanding what was happening, it might be difficult to get help.

To address this, the recovery email now also includes the bare essentials that is useful for debugging a problem if reaching out to any kind of support, added in ticket #48090.

The debug information provided can be modified using the new recovery_email_debug_info filter, the information is provided as an associated array, and by default contains the following information:

  • WordPress version
  • PHP version
  • Current theme and version
  • If a plugin caused the issue: The plugin name and version

A quick example of extending this would be a host wanting to declare which server the error occurred on, in the event that it’s an extension causing issues:

<?php
add_filter( 'recovery_email_debug_info', 'myhost_debug_node_name' );
function myhost_debug_node_name( $debug_array ) {
	$debug_array['node_name'] => 'Node: host01-rack03-box11';
	
	return $debug_array;
}

Filters for completed Site Health status tests

When a Site Health test has completed, it is now exposed to the new site_status_test_result filter, introduced with ticket #47864.

This is a particularly interesting filter, as it exists both in PHP, for direct tests, and as an identical JavaScript implementation for the asynchronous ones.

In keeping with the host-related examples, consider a site checking for HTTPS, if it isn’t set up, the host can add an action link to their control panel for enabling the feature:

<?php
add_filter( 'site_status_test_result', 'myhost_site_health_https_link' );
function myhost_site_health_https_link( $site_health_check ) {
	// If the filtered test is not the `https_status` one, return the original result.
	if ( 'https_status' !== $site_health_check['test'] ) {
		return $site_health_check;
	}

	// Only add our action if the check did not pass.
	if ( 'good' !== $site_health_check['status'] ) {
		$site_health_check['actions'] .= sprintf(
			'<a href="%s">%s</a>',
			esc_attr( 'https://panel.myhost.test' ),
			__( 'Enable HTTPs in MyHost Control Panel', 'myhost' )
		);
	}

	return $site_health_check;
}

For a full list of changes to the Site Health component in WordPress 5.3, check the full list on trac.

#5-3, #dev-notes

Editor Chat Agenda: September 25th

Note taker: @andraganescu.

This is the agenda for the weekly editor chat scheduled for September 25, 2019 at 1300 UTC.

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

  • WordPress 5.3
  • 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

New Block APIs in WordPress 5.3

In addition to a number of improvements and features for the block editor, WordPress 5.3 comes with new Block-related APIs for developers.

Server-side block style variations API

It includes server-side helpers that simplify registering and unregistering block styles.

Previously, in order to register block styles, one was required to write a JavaScript script performing the registration and ensure that the script was enqueued properly. With WordPress 5.3, you can use the register_block_style and unregister_block_style PHP helpers for the whole process.

register_block_style

The register_block_style function receives the name of the block as the first argument and an array describing properties of the style as the second argument.

The properties of the style array must include name and label:

  • name: The identifier of the style used to compute a CSS class.
  • label: A human-readable label for the style.

Besides the two mandatory properties, the styles properties array should also include an inline_style or a style_handle property:

  • inline_style: Contains inline CSS code that registers the CSS class required for the style.
  • style_handle: Contains the handle to an already registered style that should be enqueued in places where block styles are needed.

The following code sample registers a style for the quote block named “Blue Quote”, and provides an inline style that makes quote blocks with the “Blue Quote” style have blue color:

register_block_style(
    'core/quote',
    array(
        'name'         => 'blue-quote',
        'label'        => __( 'Blue Quote' ),
        'inline_style' => '.wp-block-quote.is-style-blue-quote { color: blue; }',
    )
);

Alternatively, if a stylesheet was already registered containing the CSS for the style variation, it is possible to just pass the stylesheet’s handle so register_block_style function will make sure it is enqueued properly.

wp_register_style( 'myguten-style', get_template_directory_uri() . '/custom-style.css' );

register_block_style(
    'core/quote',
    array(
        'name'         => 'fancy-quote',
        'label'        => 'Fancy Quote',
        'style_handle' => 'myguten-style',
    )
);

unregister_block_style

unregister_block_style allows unregistering a block style previously registered on the server using register_block_style.

The function’s first argument is the registered name of the block, and the name of the style as the second argument.

The following code sample unregisteres the style named ‘fancy-quote’ from the quote block:

unregister_block_style( 'core/quote', 'fancy-quote' );

Important: The function unregister_block_style only unregisters styles that were registered on the server using register_block_style. The function does not unregister a style registered using client-side code.

Related PRs: 16356.

Block Example API

WordPress 5.3 also includes the ability to preview blocks from the library before inserting them. This can help users figure out at a glance which block they want to insert.

To support this feature in your custom blocks, make sure to define the example property in your block settings.

 const blockSettings = {
  // ... other settings

  example: {
      attributes: { 
          content: __( 'Content of the block' )
      },
      innerBlocks: []
  }

}

registerBlockType( name, settings );

Related PRs: 17124.

Props to @jorgefilipecosta for helping with this dev note.

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

Twenty Twenty Weekly Meeting Agenda

This is the agenda for the weekly Twenty Twenty meeting. We’ll try to keep it within 30 minutes this time. It will be held on 19:00 UTC in the #core-themes channel.

  • Housekeeping
  • Discussion topics
    • Upcoming Bug Scrub dates/times
    • Beta 2 Prep
  • Open Floor

If there is anything you would like to see added to the agenda, please leave a comment in the thread!

#agenda, #meeting, #twentytwenty