Dev Chat Summary: February 7th (4.9.5 week 1)

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

4.9.3 + 4.9.4 update

  • 4.9.3 went out on Monday, 4.9.4 went out on Tuesday; note technical details behind 4.9.4
  • Note final paragraph from the 4.9.4 technical details post:
    • What we’re doing to prevent this happening again We’ll be making a follow up post after we’ve been able to determine how to ensure that this never happens again. We don’t like bugs in WordPress any more than you do, and we’ll be taking steps to both increase automated coverage of our updates and improve tools to aid in the detection of similar bugs before they become an issue in the future.
  • If you have ideas, solutions, or are able to support increasing “automated coverage of our updates” and improving “tools to aid in the detection of similar bugs” then please gather those and add them to the pending post on this topic.
  • @jbpaul17 to see if any process-related changes might help
  • @sergey also asked for ideas on how we can improve the quality and consistency of our code reviews
  • @helen spoke with @dd32 and will look into a way to test auto-updates
  • @desrosj noted that automating some parts of the release process might help

Updates from focus leads and component maintainers

General announcements

  • Comment thread from today’s agenda post on topic of security not able to be addressed as no one from the Security team was present, but @aaroncampbell provided a response ahead of time:
    • Okay, so this is the DoS issue with load-scripts.php and load-styles.php: Basically, the best mitigation for this is at the network level. Hosts and WAFs can rate limit this in a way that makes a lot more sense than anything WordPress can do. Caching would also be extremely useful in this case. Something that we _could_ do is limit the number of scripts that could be loaded at once with those, but the problem with that is all it does is reduce the load by some relatively marginal amount.
  • @leemon asks for review on #43226; @drewapicture to take a look
  • @binarymoon asks for review on #38545; looking for someone to give feedback and get to an agreement so this ticket can move forward
  • @joyously asked whether New Contributor meeting was still occurring; @desrosj to speak with other facilitators and get the meetings re-started
  • @williampatton shared insights into his experience being a deputy release lead on 4.9.3; encourages others to contribute as leads, noting core commit access is not required, recommends pairing with experienced lead; highlighted permissions issues that should be resolved; thankful for support from others during the release process; will help elaborate on minor release handbook page
  • @chanthaboune highlighted the need to “lessen that cognitive load for new/learning release leads”, need to call out contingencies and what’s time-specific; in general how can we make the contribution process easier

Next meeting

The next meeting will take place on February 14, 2018 at 21:00 UTC / February 14, 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, #4-9-4, #4-9-5, #core, #core-editor, #core-media, #dev-chat, #security, #summary

Dev Chat Summary: January 31st (4.9.3 week 3)

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

4.9.3 update

Updates from focus leads and component maintainers

Servehappy

  • Question from @azaozz in latest meeting: What if the PHP education page (codename "servehappy") was not on any .org-related website, but inside of core?
  • We'd like to ask for feedback on this, what are all your initial feelings on that? Note that this is separate from the prompt for the user to switch the PHP version in their hosting account.
  • Some considerations:
    • The main condition for this to happen is to have the entire content powered by the .org API. The content will be highly dynamic and may need adjustments regularly, so we must not be dependent on core releases to change it.
    • A new API endpoint would need to be built for that purpose that should send the content of all sections of the page, to some degree targeted to the current request. Parameters like the PHP version active, plugin slug (in case the user is sent to the page because a plugin requires a higher PHP version), data about the host (if available), would be part of the request. This would allow the content to target the user's problem as well as possible.
    • All content that endpoint returns should not be hard-coded, but easily manageable through a backend (maybe a special section in make.wordpress.org/core/?).
    • How is it possible to change the .org API? Who has access? We'd need to figure out how the process of working on that could be streamlined.
    • Summary of thoughts from PHP meeting recap
  • Next step is for the Servehappy team (including @azaozz) to discuss this during the next PHP meeting (on Monday 16:00 UTC) and come back with a recommendation

General announcements

  • @afercia uncertain about what can go in a minor release, specifically about fixes or small enhancements that require a dev note given that minor releases auto-update
    • Changes that require a dev note in a minor release, with such a short notice, don’t give plugin and theme authors the time to update.
    • As further changes to the minor release policy, best to have recommendation prepared for upcoming devchat

Next meeting

The next meeting will take place on February 7, 2018 at 21:00 UTC / February 7, 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, #core-editor, #core-php, #dev-chat, #documentation, #js, #minor-releases, #servehappy, #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

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

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

Dev Chat Summary: December 20th (4.9.2 week 3)

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

4.9.2 planning

  • @sergey to be release lead, @williampatton to be deputy release lead
  • @desrosj able to help with bug scrubs
  • Tentative release timing of 1/16 for beta, 1/23 for RC, and 1/30 for release

Confirm definition of "minor release"

  • Confirmed definition: Bugfixes and enhancements that do not add new deployed files and are at the discretion of the release lead with suggestions/input from component maintainers and committers.
  • @jbpaul17 added that definition to the handbook for future reference (see here, here, and here)

Updates from focus leads and component maintainers

  • Team Editor (Gutenberg): They have no more meetings until January 3rd in #core-editor. The channel is of course open all the time, but meetings will resume then. They also have a request for assistance on video processing of the usability videos from WCUS. Please check the post if you’re available / have interest.
  • Teams Customize and REST API are both on hiatus through the holidays and have no updates this week.
  • Multisite published a post about their roadmap

Meeting hiatus over holidays

  • There will be a two week hiatus for devchat, final meeting for 2017 is today (December 20th). First meeting for 2018 will be January 10th.

General announcements

  • @presskopp looking for advice on getting patches reviewed. Advice given is to ping component maintainers, mention it during devchat's General announcements section, or mention it during a bug scrub.
  • @schlessera looking for advice on getting something on the devchat agenda for January 10th. Advice given is to ping @jbpaul17, mention it during devchat's General announcements section, or add it as a comment to the agenda post. Also noted that Make/Core posts can be a good idea for things that need some discussion and can happen at any time.
  • @schlessera to work on a Make/Core post around the topic of "Servehappy project – current status and how to proceed to have the effort blessed"

#4-9-2, #core, #core-multisite, #dev-chat, #gutenberg, #summary

What’s new in Gutenberg? (11th December)

Gutenberg is back to a regular schedule after a great WCUS in Nashville which included many conversations and exchanges of ideas. If you missed it, checkout Matt’s State of the Word presentation for an overview of how the year has gone and what lies ahead for Gutenberg. (It also includes a demo of the plugin in action.) It was great to have new people helping at contributor day and submitting pull requests. Thanks!


This release introduces global reusable blocks as the main highlight, but there are also improvements to templates (ability to lock them down), versioning block attributes so markup can be migrated, and many extensibility additions as well as bug fixes.

1.9 🐆

  • Introducing reusable global blocks. (Stored in a wp_blocks post type.)
  • Add ability to lock down the editor when using templates so edits can happen but blocks can't be removed, moved, nor added.
  • Handle and upgrade deprecated blocks. This allows to migrate attributes without invalidating blocks and an important part of the block API.
  • Drag and drop upload support to gallery block.
  • Extensibility:
    • Expose packages/hooks public API under wp.hooks.
    • Introduces withFilters higher-order component to make component filtering easier.
    • Introduces getWrapperDisplayName helper function to make debugging React tree easier.
    • Introduces compose function to unify composing higher-order components.
    • Exposes hook for Block component.

Other changes

From 1.8.1

  • Add ability to switch published post back to draft.
  • Fix issue when changing column count in "text columns" block.
  • Prioritize common items in the autocomplete inserter.
  • Avoid changing publish/update button label when saving draft.
  • Add bottom padding to the editor container to improve experience of writing long posts.
  • Adjust the Classic block toolbar so it doesn't jump.
  • Colorize the little arrow on the left of the admin menu to white to match body content.
  • Update autocomplete suggestions colors to have a sufficient color contrast ratio.
  • Abort focus update when editor is not yet initialized.

#core-editor, #editor, #gutenberg

What’s new in Gutenberg? (28th November)

1.8 🐝

This release introduces several under the hood improvements to support more plugin opportunities — extending existing blocks, limiting blocks available, preventing a given meta-box from appearing in Gutenberg, etc — as well as allowing developers to specify templates, a list of predefined blocks. It also includes design iterations, mobile improvements, and initial work on a more rewarding publishing flow.

  • Introduce block-templates as a list of blocks specification. Allows a custom post type to define a pre-configured set of blocks to be render upon creation of a new item.
  • New tools menu design, preparing the way for more extensibility options.
  • Block API change: use simpler JS object notation for declaring attribute sources.
  • Add function to allow filtering allowed block types.
  • Show popovers full screen on mobile, improving several mobile interactions.
  • Began work on publishing flow improvements with an indication of publishing (or updating a published post) action by introducing a button state and label updates.
  • Made toolbar-by-block the default after different rounds of feedback and testing. Both options are still present.

Other changes


Example for how to provide a template in a CPT:

function register_book_type() {
	$args = array(
		'public' => true,
		'label'  => 'Books',
		'show_in_rest' => true,
		'template' => array(
			array( 'core/image' ),
			array( 'core/heading', array(
				'placeholder' => 'Author...',
			) ),
			array( 'core/paragraph', array(
				'placeholder' => 'Add book description...',
			) ),
		),
	);
	register_post_type( 'book', $args );
}
add_action( 'init', 'register_book_type' );

Coming to a WP-CLI near you

Soon you'll be able to quickly create a block using a command like wp scaffold block my-block --theme with WP-CLI. It'll setup a new block registration with the passed slug and theme (or plugin) as the namespace. This will all be added to the handbook.

#core-editor, #editor, #gutenberg

What’s New in Gutenberg? (15th November)

This next release includes several features and improvements on many levels. We are adding a way to switch between the header toolbar and toolbars attached to the block by opening the toggle menu at the top right and choosing the behaviour. There has been convincing arguments for both approaches so we want to make it easier to test both easily. Other notable features include the ability to transform multiple blocks of the same type into other blocks (like many images into a gallery). There are improvements to meta-boxes (dropping iframes), foundational work for nested blocks and global blocks, many design updates, and initial integration with JS hooks.

1.7 🐴

Other Changes

#core-editor, #editor, #gutenberg

Core editor meeting time change

As Daylight Saving Time ended for all countries it applied to (finally) this Sunday, November 5th, we will shift the time for the #core-editor chat starting this week on Wednesday, November 8, 2017 at 18:00 UTC / Wednesday, November 8, 2017,18:00 UTC. See you then!