Editor Chat Agenda: 17 June, 2020

Facilitator and notetaker: @annezazu

This is the agenda for the weekly editor chat scheduled for 2020-06-17 14: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/..

  • 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/ 8.3.0
  • Monthly Plan
  • Weekly Priorities
  • Task Coordination
  • Open Floor

Even if you can’t makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). the meeting, you’re encouraged to share anything relevant for the discussion:

  • If you have anything to share for the Task Coordination section, please leave it as a comment on this post.
  • If you have anything to propose for the agenda or other specific items related to those listed above, please leave a comment below.

#agenda, #coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.-editor, #core-editor-agenda, #gutenberg

Shipping Experimental Endpoints in Core: REST API Meeting Summary June 11, 2020

This post summarizes the #core-restapi meeting for Thursday June 11, 2020. The focus of this meeting was discussing the possibility of shipping __experimental REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. routes in WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Read the Slack archive, account required.

Background

Part of the REST API team’s role is to help ensure that enhancements to the REST API follow Core’s established patterns and that the interface is sufficiently forward compatible.

The Problem

WordPress 5.5 is shaping up to have a number of new and improved REST API endpoints to support the latest 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/ features: #40878 and #50244 for Navigation, #50321 and #48654 for the 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. Directory, #47620 for Block Registration, etc…

Another Gutenberg feature currently slated for 5.5 is Image Editing. This feature utilizes the REST API and existing WP_Image_Editor APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. to persist the image edits. This feature took the REST API team a bit off guard, and the team is worried about providing an adequate review of the feature in time for WordPress 5.5 given the other tickets in progress.

This feature is currently listed as a Gutenberg Experiment. The hope is to promote it from an experiment by the next Gutenberg releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software..

Potential Solution

While the current server side code supporting Image Editing requires changes, it is likely that the Editor and/or Media team will be able to resolve these issues in time for 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. 1. The question then becomes if the REST API team will have the bandwidth to do a review. Additionally, will the API have had a long enough soak time to reduce the possibility of a design error necessitating a breaking change.

In the weekly #core-editor meeting, the possibility of including the required REST API endpoints in the __experimental namespace was briefly discussed. This would allow us to ship the Image Editing feature in WordPress 5.5. If breaking API changes were necessitated those could be made when the endpoint is promoted to the wp/v2 endpoint.

Note: This is distinct from the feature being marked as an “experiment” in the Gutenberg settings page. The goal is to ship this as a feature in WordPress 5.5; the Gutenberg 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 would not be required to use the feature.

Experimental APIs

Nearly all APIs in WordPress are “public” and backwards compatibility is maintained. Some APIs are explicitly marked as @access private, most notably the List Table API. Despite being private, when responsive list tables (#32395) were introduced, great lengths were made to ensure that the changes were backwards compatible with custom list tables.

Gutenberg introduced the idea of “experimental” and “unstable” APIs.

There is no support commitment for experimental and unstable APIs. They can and will be removed or changed without advance warning, including as part of a minor or 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. release. As an external consumer, you should avoid these APIs.

An experimental API is one which is planned for eventual public availability, but is subject to further experimentation, testing, and discussion.
An unstable API is one which serves as a means to an end. It is not desired to ever be converted into a public API.

The Gutenberg Coding Guidlines

The version of Gutenberg that ships with WordPress Core utilizes a number of __experimental and __unstable APIs. But so far this has been limited to only 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/. APIs.

REST API endpoints introduced in the Gutenberg plugin are currently introduced in the __experimental namespace, but are transitioned to wp/v2 before being merged to WordPress Core. Because the namespace changes, this process in itself is breaking, even if no other API changes were made.

Discussion

Editorial Note: Part of this discussion focused on the current state of the endpoint which has a number of functional and design issues. These have been flagged in the various issues and tickets and I won’t be summarizing these issues here. We would not ship an endpoint in WordPress Core, even as a proposed __experimental one, if it was broken.

@timothyblynjacobs main concern is that if there are security issues with the endpoint, or any other “fatal flaws” it being __experimental doesn’t protect us in anyway.

@spacedmonkey is concerned that once a feature is in Core, developers will start using it and it can never be removed. WordPress hasn’t shipped features in Core before they are ready and shipping an __experimental endpoint like this would break that pattern. If the feature isn’t ready, we should wait until 5.6.

@earnjam thinks that if it’s something useful, people will use it regardless of any flag/prefix applied. Then it’s a question of if we’re comfortable breaking stuff because we warned them.

To me the insistence on full backward compatibility is one of WP’s biggest assets. We’ve been drifting away from that to an extent in Gutenberg and I think it undermines a core element of what makes WordPress what it is. I think in core we had moved away from shipping private APIs for a while for this very reason, they’re going to get used whether we want them to or not. To me, that’s the whole point of doing feature plugins. It allows you to iterate and break things in the plugin, but not core. IMO the Gutenberg plugin is an experimental flag. Only the stuff that is truly ready should be brought over.

I’m ok with the experimental stuff in the Gutenberg plugin because that is opting in. I don’t know that I’m comfortable with it in core.

From @earnjam.

@jamesburke asked if the __experimental approach been a success with Gutenberg? If so, it’d be a useful pattern to implement (regardless of whether the editing endpoint is ready for this).

IMO, if you mark it as experimental, then break whatever needs to get broken. I’ve worked on production projects that heavily utilize Gutenberg experimental functionality, and it’s always nice to have early access to things. In my experience, the opportunity to use functionality in the wild and apply it to real world problems greatly outweighs the attention/effort needed to upgrade if/when something breaks on the experiment. 

From @jamesburke.

@carike points out that lot of non-technical users won’t even know that the feature exists and are not in the same position to mitigate the associated risks – particularly in use cases that are not traditional publishing, e.g. e-commerce.

@chrisvanpatten thinks that more experimentation is absolutely a good thing, but is not sure Core is the right venue for that. Gutenberg is able to play a bit fast and loose with backwards compatibility, but that has been isolated from Core to a degree. He tends to believe that __experimental APIs landing in Core has been a mistake, even as someone who has leveraged experimental JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. APIs before.

@ajlende thinks there have been good arguments for holding off too. When he pushed the initial image editing feature, the intention was for people to start trying it out to let people use it and adjust. If Core is looking for more stable things, then he’d agree it isn’t ready.

@joemcgill mentioned that if the API is shipping in Core, even as __experimental, it absolutely will get used, so backwards compatibility must be a consideration.

@sageshilling suggested offering a quick way to turn it off the feature for sites that don’t want the image editing options. @ajlende indicated that the current code is behind a feature flag. Supporting an opt-out if the feature was included in Core would therefore likely be possible.

Next Steps

@joemcgill is fully +1 on the existence of a REST API replacement to the AJAX callbacks currently in core which is used by the image editor in the media modal and is happy to help this if it’s a priority.

@mikeschroder is completely agreed that a REST API endpoint to replace the existing AJAX is awesome.

Tickets/Issues

#49096, #44405. GB-22959, GB-21024, GB-22579.

Questions

This post is a solicitation for feedback as much as a meeting summary. Some potential questions to ponder.

  1. Have experimental APIs been a success in Gutenberg? How often are __experimental APIs transitioned to stable APIs? Is this a fast process, or do the APIs stay as __experimental for a long time? What sort of changes are discovered that necessitate breaking changes?
  2. Should we be comfortable breaking backwards compatibility because developers were explicitly warned that the feature was an experiment?

The next REST API meeting is this Thursday June 18th at 18:00 UTC.

#5-5, #gutenberg, #rest-api

Editor chat summary: Wednesday, 10 June 2020

This post summarizes the latest weekly Editor meeting (agenda, slack transcript), held in the #core-editor 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, on Wednesday, June 10, 2020, 14:00 UTC.

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/ 8.3.0

Gutenberg 8.3.0 has been released. The team continues iterating on two big projects – Full Sitesite (versus network, blog) Editing and Navigation Screen- while improving other areas of the editor as well.

Includes some great features like padding support for cover blocks, color support for link, enhanced 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. toolbars. Check out the releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. note for more details.

Monthly Plan

The high-level items that Gutenberg contributors are focusing on for the month are available here

Weekly Priorities

There was limited discussion on the specifics.

Looking to land the Block Inserter for 5.5. Extra eyes are needed on this PR and @ellatrix is looking at reusing an existing endpoint for the front end images, but there could be the possibility an experimental APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. is shipped. The issue will be discussed by the REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. team.

Task Coordination

Note: Anyone reading this summary outside of the meeting, please drop a comment in the post summary, if you can/want to help with something.

@mkaz

  • Working on a new Create a Block tutorial based on the create-block and wp-scripts for developers new to block development.  

@michael-arestad

  • Working on Full Site Editing related items
  • The main priority being WP 5.5 would be reviewing anything related to it, especially issues/PR’s we want to get in, but are stalled or need design feedback.
  • I would appreciate pings on any issues for 5.5 that could use design eyes.

@annezazu

  • Working on some documentation and wrangling proper feedback tools for the Full Site Editing outreach program. This documentation will be specific to helping those in the program know how best to provide feedback, setup Gutenberg.

@zebulan

  • Working on adding a heading level checker. Design feedback to ensure an accessible UIUI User interface would be appreciated 22650.
  • As a follow-up to 22650, working on a PR that refactors PostSavedState to use hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.. (some technical questions that need addressing before I can progress)
  • PR to revise the Save draft and Preview buttons should be ready for final reviews now.
  • Custom HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. block polish PR needs reviews.
  • Table of Contents block PR is still stuck.
  • List block color controls PR is also stuck.
    A code quality PR to refactor ReusableBlockEditPanel to use hooks is ready for review.

@ellatrix

  • Mostly working on image editing refinements (since we’ll try to get it in 5.5) and experimenting with the light block API.

@youknowriad

  • Working essentially on the Inserter and helping with a few other things like Adminadmin (and super admin) Colors handling.

@itsjonq

  • Continue focus on the Cover block, have PRs/branches that enables:
    • positioning coordinates for Video backgrounds (+ improved positioning controls).
    • Extract dominant color from the Cover image
    • Apply background filters (e.g. saturation, contrast, etc… ) (works for video too!)
  • Continuing efforts to improve @wordpress/component components.
    The goal is to makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). them feature-rich so that the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress./3rd party has less overhead when using them. This includes improving internal state management, style rendering, cross-component integration, and built-in UXUX User experience features (e.g. drag to update).

@paaljoachim

  • Working with @mkaz on Create a Block tutorial
  • General Gutenberg design triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors..

@toro_unit

  • Working on getting rid of errors that occur in the console 23019, 22967.

@ntsekouras

  • Working on changing the layout of transform Block to a vertical list and changing a bit the Styles preview 23028.

@retrofox

  • Improvements in the MediaPlaceholder and MediaReplaceFlow, which in short allow us to control the uploading process a little bit more, knowing what are the files that are being uploaded by the user.

Open Floor

@cvoell

  • The Gutenberg-Mobile + Gutenberg Web “Monorepo” effort seems to be approaching final PR Reviews in the next 1-2 weeks, so we wanted to give everyone here a heads up about that.
  • Final PR should go from Draft to Ready for review in the next 2-3 days.
  • Changes that web devs might see are summarized here.
  • For now, would like to highlight
    • We added 4 new CI jobs (as GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ actions) which will run on each PR for e2e testing of the mobile demo app.
    • Three new packages: reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/.-native-aztec, react-native-bridge and react-native-editor
    • A new npm command npm run native to run native scripts in packages/react-native-editor/package.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.
    • After Monorepo changes are merged, you will be able to try the demo app by running npm run native start:reset followed by npm run android (or npm run ios) in a new terminal.
    • You will need either the Android SDK or XCode installed on your machine (a docker based script should come later).

@mkaz

Documentation versioning

  • It was discussed yesterday to switch Gutenberg docs publishing to DevHub back to off the master tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.), and then figure out how to publish sets of versioned docs based off wp version tags. I’m not sure what the next steps should be. I can modify scripts and process and work on it, but don’t know who/where/what/how
  • The problem of using a master is that things change that aren’t in core. So the idea was a version switcher, for a complete set of docs Or somehow version on a per-function/feature, which is how Codex/Reference works in Core.
  • @youknowriad A version switcher would be great. I’d suggest you should ask in #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. or try to find a developer familiar with the meta repo to help here.
  • I’ll check with them and see what we can work out

#meeting-notes, #core-editor, #editor, #gutenberg

What’s new in Gutenberg (11 June)

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/ 8.3 has been released. The team continues iterating on two big projects -Full Sitesite (versus network, blog) Editing and Navigation Screen- while improving other areas of the editor as well.

Design Tools

This releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. features a few additions to the design tools for the blocks.

A new padding control was added to the cover 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.. This is an opt-in feature that themes have to declare support for via add_theme_support('experimental-custom-spacing').

Also a new link color control was added to the paragraph, heading, group, columns, and media&text blocks. It’s opt-in as well, via add_theme_support('experimental-link-color').

WCEU Contributor DayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/.

As part of the Contributor Day at WCEU 2020, the editor team hosted an online session to help people get started with Gutenberg. It was recorded and you can watch at:

As a result, a good number of Pull Requests were created and are part of this release! If you missed it or you want to start contributing, take a look at the Getting Started guidelines, and grab one of the Good First Issues and/or Good First Pull Requests.

And more

In addition to the above, this release consolidates a new organization of block categories that groups blocks into text, media, design, widgets, and embeds.

The block toolbar also got an upgrade and it now comes with a parent selector to improve navigation in nested contexts:

8.3 🇪🇺

Features

  • New padding control to cover block. (21492, 23041)
  • New link color control to paragraph, heading, group, columns, and media-text blocks. (22722, 23025, 23049)
  • Updated default block categories. (19279)
  • New parent block selector to child blocks. (21056)

Enhancements

  • Blocks:
    • SiteTitle: add alignment and tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) level support. (22843)
    • Heading: use toolbar for heading level control. (20246)
    • LatestPost: add the ability to 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. by author. (16169)
    • Add caption split at end to all caption blocks. (22934)
    • Add transforms between the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. widgets that have equivalent blocks. (22644)
  • Interface package:
    • Add block areas tabbed 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. to the widgets screen. (22467)
    • Use isActiveByDefault prop and local storage to determine whether it is active or not. (22381)
    • Add a mechanism to render them on edit site. (21430)
    • Sidebar reacts to screen size and refactor to use interface package. (22565)
  • Add a heading to the block inserter tips and to the block inserter groups (22898, 22903)
  • Move between nesting levels with arrow keys in navigate mode. (22614)
  • Add icons for image tools, other, and update list icons. (22593)
  • Block Navigator: Use default block appender. (22590)
  • Adds a default text label to the block appender when it can only insert a single block type (22293)
  • Makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). ToolbarButton APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. consistent. (22961)
  • Implement roving tab index on the Image block. (22696)
  • Block Editor: Allow control over drop cap feature with useEditorFeature helper. (22291)
  • REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.:
    • Add block styles register mechanism. (22680)
    • Update default values for fields in the block type schema. (22695)

New APIs

  • Add new package @wordpress/lazy-import for lazily installed packages. (22684)
  • Added _experimental/block-types endpoint to expose all registered blocks. (REST API 21065, register core blocks in the server 22491).

Experimental

  • Added experimental version of rich image editing tools. (21024, 22870)
  • Full Site Editing
    • New template creation flow for EditSite. (22586)
    • Edit Site: Avoid dirtying un-customized templates on first load. (22876)
    • Edit Site: Refactor business logic into store. (22844)
    • Global Styles: make theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. shape consistent with local styles shape. (22744) and take block supports from block.json. (22698)
    • Edit Site: fixes to template lookup and template parts auto-drafts (22954, 23050)
  • Navigation screen
    • Use a panel for navigation structure on small screens only. (22828)
    • Disable the navigator toolbar button. (22792)
    • Atomic save using customizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. API endpoint. (22603)
    • Retain block IDs on save. (22739)
    • Separate concerns in useNavigationBlocks. (22825)
    • Fetch all menus for display in select menu. (22591)
    • Fix keyboard navigation in Navigation block. (22885)
    • Rename EllipsisMenu to BlockNavigationBlockSettings. (22630)
    • Remove BlockNavigationEditor from navigation-link/edit.js. (22629)
  • Block directory:
    • Update the state to store the installing status per block id. (22881)
    • Use semantic element for block directory download heading. (22713)
    • Add the list of installed blocks to the pre-publish sidebar. (22752)
    • Store refactor. (22388)

Bugfixes

  • Blocks
    • Skip null values returned from the server during registration. (22849)
    • LatestPost: fix to display author. (22937)
    • Legacy Widgets: widgets with special chars on classname did not load. (22841)
    • Group: clean up block padding rules. (22746)
    • Gallery: fix initial creation via media library. (22659)
    • Cover: fix height reset on unit change. (22642)
    • Navigation: fix submenu keyboard 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) in IE. (22546)
    • Buttons: fix invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. property value for margin-right. (22211)
  • CustomSelectControl:
    • Use default cursor style (22926)
    • Fix arrow spacing. (22925)
  • Fix Drag and Drop in Safari by upgrading Reakit. (22960)
  • Font size picker reset button: make it visible in all languages. (22896)
  • Components: ToolbarButton use forwardRef. (22970)
  • Remove aria-label from iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. resizers. (22868)
  • LinkControl: avoid showing “Recently updated” when there are no recently updated Pages from the API. (22856)
  • CopyHandler: Fix unintended Copy override when copying from input or textarea elements. (22793)
  • Customizer complementary area should not include the block areas. (22756)
  • Icons: Fix package references. (22702)
  • Fix missing parentheses in usePrevious hook. (22608)
  • Fix presets in themes that use the default color & gradient palettes. (22526)
  • Fix dark menus in canvas, not in top toolbar. (22516)

Performance

  • Remove ifBlockEditSelected internal higher-order component. (22905)
  • Remove withBlockEditContext internal higher-order component. (22942)

Documentation

  • Handbook
    • Fix links for dynamic blocks page. (22945)
    • theme.json specification: document link color feature (22929) and features integration. (22622)
    • Block Registration: document use of innerBlocks in example property. (22633)
    • Initial documentation for architecture decisions. (22751)
    • Reusable blocks: initial improvement to documentation. (21843)
    • Default to ESNext syntax in MetaBoxMetabox A post metabox is a draggable box shown on the post editing screen. Its purpose is to allow the user to select or enter information in addition to the main post content. This information should be related to the post in some way. & Block tutorials. (22748, 22973)
    • Block Tutorial: fixed typo in the wp_register_script function. (22755)
  • JSDoc comments:
  • Contributor docs:
    • Add code examples section. (22974)
    • Update triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. to include release instructions. (22335)
    • Update repository management with proposed guidelines. (22679)
  • Env:
    • Reference destroy command. (22643)
    • Fix use of backticks. (22980)
  • Improve e2e-test README. (22661, 22654)
  • Move BlockDropZone reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. hook and update documentation. (22619)
  • Update PULL_REQUEST_TEMPLATE.md to include PR documentation nudge. (22681)

Code Quality

  • Refactor some components to use hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.:
  • Polish ImageSizeControl. (22917)
  • Latest Posts Block: add key to categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. select box. (22904)
  • Rename the navigation mode BlockBreadcrumb component to BlockSelectionButton. (22882)
  • Extract inserter state into reusable hooks. (22710)
  • Replace function expressions with named function or arrow expression. (22647)
  • Remove unused isDraggable prop from BlockList. (22615)
  • Remove form control resets and include the styles in the components. (22596)
  • Project Management Automation: reorganize folder structure. (22574)
  • Dependency Extraction Webpack 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: add types. (22498)
  • Blocks: Avoid separate host matching constant for embeds. (13755)

Breaking Change

  • Scripts: Remove legacy env command. (22953)
  • ESLint Plugin/Scripts: Update ESLint and related deps to 7.1.0. (22771)

Build Tooling

  • Env package:
    • Add support for interactive run commands (like bash). (22611)
    • Ensure correct port setting on related wp-config params. (22559)
    • Update Source type to WPSource. (22785)
    • Fix ssh-auth nodegit + better snap pack detection. (22649)
    • Correct multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site support. (22613)
    • Update copy-dir dependency to version 1.3.0. (22682)
  • Create Block:
    • Integrate CSSCSS Cascading Style Sheets. import in JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. with esnext template. (22727)
    • Enhancements for the upcoming npm release. (22978)
  • Scripts:
    • Add support for postcss.config.js. (22735)
    • Support split Jest configuration for test commands. (22477)
    • Split webpack loader rules for CSS and Sass files. (22786)
  • Release tool: warn about open issues in milestone before starting release. (22764)
  • Changelog tool: Enhance entry normalizations. (22601)
  • Performance tool: fixes to run across branches. (22676)

Various

  • Use Card instead of Panel for the block editor. (22827)
  • Revert add selectionStart and selectionEnd to transientEdits. (22933)
  • BlockEditor: fix readme syntax. (22809)
  • Trigger additional widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. setup actions. (22807)
  • Align navigator icon and buttons to top. (22790)
  • Set default selection to the root navigation block. (22737)
  • end-to-end tests:
    • Disable inconsistent test for gallery. (22726)
    • Specify icon for block context test blocks. (22811)
    • Configure Axe to ignore media modal markup. (22719)
    • Define end-to-end test experimental features utility as lifecycle helper. (22712)
  • CODEOWNERS updates. (22725)
  • Add data-handle to all script tags in the adminadmin (and super admin). (22721)
  • Add onDeleteBlock to the extra data to re-render when it has changes. (22716)
  • Add support for page=1 and perPage=-1 to getMergedItemIds. (22707)
  • Replace three experimental flags (ellipsis menu w/ min level, navigator slots) with just __experimentalFeatures. (22670)
  • Add require headers to plugin and readme (php 5.6). (22669)
  • Update package-lock.json so that CI tests pass. (22667)
  • Framework: Upgrade to wp-prettier@2.x. (22610)
  • Remove the multi-block type check to make __experimentalConvert more useful. (22577)
  • Mousetrap: Update to latest stable version. (22548)

Performance Benchmark

The following benchmark compares performance for a particularly sizeable post (~ 36 000 words, ~ 1 000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.

Version Loading Time KeyPess Event (typing)
Gutenberg 8.3 11.94s 47,75ms
Gutenberg 8.2 11.43s 47.95ms
WordPress 5.4 13.79s 39.32ms

Kudos for all the contributors that helped with the release. 👏

#core-editor, #editor, #gutenberg-new

Editor Chat Agenda: 10 June, 2020

Facilitator and notetaker: @ajitbohra

This is the agenda for the weekly editor chat scheduled for Wednesday, 10 June 2020, 19:30 GMT+5:30.

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/..

  • 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/ 8.3.0
  • Monthly Plan
  • 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.

If you have anything to propose for the agenda or other specific items related to those listed

#agenda, #core-editor, #core-editor-agenda, #gutenberg

What’s next in Gutenberg? (June)

This is a monthly update containing the high-level items that 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/ contributors are focusing on for the next month. Please join us in our efforts and let us know in the comments if anything is blocking you from doing so. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Full Sitesite (versus network, blog) Editing project. 

Full Site Editing (FSE)

Work on this major focus is ongoing and is expected to continue iterating over the next months. Right now, we’re wrapping up the major work needed to build the technical foundation of this project and are soon moving towards expanding the UX & UI:

We’re watching the Theme Experiments repo as well to see how themers are attempting to build 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.-based themes. Thank you to everyone participating there as it’s a super useful way for us to determine prioritization. 

Follow along:

The high level, important tasks have been split into sections and highlighted on this overview issue.

Global Styles

As a reminder, Global Styles refers to the system that defines and manages global aesthetics allowing overall site styles, theme styles, and blocks to work well together. The Global Styles work remains a major focus for this month. The important tasks for the month are:

Follow along:

You can follow the progress of this focus in this overview issue.

Navigation Screen

The new Navigation Menu screen and Navigation block will continue to be iterated on and polished. In particular, work is being done to create a true drag and drop experience and to explore improving the selection/focus experience (feedback welcome). In an effort to expand the functionality allowed within navigation, work is being done to explore adding different kinds of blocks other than links.

Follow along:

You can follow the progress of this project on this project board.

Refining the interface

The previous releases saw a big UI update for the editor canvas and the inserter. The team will continue to iterate based on the remaining tasks and the user feedback. The remaining tasks here include:

Follow along:

You can follow the progress of this focus in this overview issue

WidgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. Screen

As part of expanding the block editor to other screens in the adminadmin (and super admin), work continues to improve the widget screen including finding bugs in the legacy widget block, ensuring synchronization, and more. Depending on the work done here, the screen should be ready to leave the experimental state and receive additional feedback soon. 

Follow along:

You can follow the progress of this focus by reviewing issues with the [Feature] Widgets label.

Areas to be aware of:

Block & 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 Developers

@aduth just merged this pull request to update default block categories which should be available in next week’s plugin releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software.. This could be particularly impactful for block implementers, since the default categories have changed. For now, please review this drafted devnotedev 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. here as a point of reference for this change. 

Theme Developers

@epiqueras recently broke down all template tags alongside their block equivalent in order to lay the groundwork for Full Site Editing: 

“The idea is for everyone in the community, especially those very familiar with traditional theme development, to contribute to this list. There might be things we are missing. There might be things we could lose.”

Please check out this overall issue and share what might be missing. 

Ways to Help:

While the above items are our focuses, don’t forget that you can always help with triage, needs testing issues, good first issues and reviewing PRs. If there’s anything we can do to makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). contributing easier, let us know in the comments or in #core-editor chats. While we can’t promise to fix everything, we’d appreciate being aware of any blockers.

#core-editor #gutenberg-next

Editor Chat Agenda: 3 June, 2020

Facilitator and notetaker: @ajitbohra

This is the agenda for the weekly editor chat scheduled for 2020-06-03 14: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/..

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

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

#agenda, #core-editor, #core-editor-agenda, #gutenberg

Editor Chat Summary: 27th May, 2020

This post summarizes the latest weekly Editor meeting (agendaslack transcript). This meeting was held in the #core-editor 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 on Wednesday, May 27, 2020,14:00 UTC and was moderated by @itsjusteileen.

Quick Announcements

WordPress 5.5 Upcoming ReleaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. 

The planning roundup for 5.5 can be found here. There are several features that are under an experimental flag in Gutenberg, and to have a chance to makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). it for 5.5 they’d need to be out of experimental by July 7th. This led to a quick discussion that the widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. screen can soon leave the experimental state!

@matveb chimed in to share the following later on to highlight that there’s plenty to do beyond the main projects that are underway if people want to/can help:

I wanted to mention that while many groups are focused on larger pieces of work (FSE, global styles, navigation, etc) 5.5 will require some focus on ensuring what exists right now is in good shape. That includes shipping the new design, patterns, the new inserter with new categories, new APIs and deprecations, etc.

Gutenberg version 8.2

Gutenberg RC candidate 8.2.0 was released this week with the stable release launched just after this meeting ended. Update your sites and check out what’s new.

Monthly Plan

There was limited discussion on the specifics of the current monthly priorities.

Task Coordination

Note: Anyone reading this summary outside of the meeting, please drop a comment in the post summary, if you can/want to help with something.

@poena

  • Flagged this issue as needing a decision about the dynamic content with @matveb chiming in to say that there needs to be closer parity with the current theme experience as a start.

@paaljoachim

@nosolosw

  • Focusing on a new iteration of theme.json and early documentation for it.
  • Helping with reviews and other PRs, mainly in the areas of styles & 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. registration.

@michael-arestad

  • Dropping a new figma prototype very shortly on inserting saved (and new) template parts that deviates from previous designs and the current implementation. 
  • Planning to create a new issue with designs/discussion around a vertical grid for template building (and general layout things).
  • Planning to update the end to end full site editing prototype (i4).

@sageshilling

  • Working with coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.-media data flow, design gallery, image block, gallery patterns.

@mapk

  • Working on the widgets screen with @jorgefilipecosta.
  • Updating UIUI User interface issues/PRs with Figma label.
  • Providing feedback on FSE work.
  • Redesign of spotlight mode with @youknowriad.

@karmatosed

  • Focusing deeply on navigation with a side order of triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors..

@andraganescu

  • Various work on the navigation screen
  • Added new suggestion types to LinkControl
  • Continued the work on adding delete to Entities

@nrqsnchz

  • working with @michael-arestad on inserting saved (and new) template parts (FSE).

@zebulan

  • Add RichText split-at-end/merge/remove behavior.
  • Add usePrevious hook to @wordpress/compose package.
  • Use toolbar exclusively for heading level controls in Heading Block
  • PR to replace instances of Lodash.includes with native JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. [].includes in the block-editor package is awaiting reviews.
  • PR to refactor ReusableBlockEditPanel to use ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. is awaiting reviews.
  • PR for the Table of Contents Block needs technical help/feedback in order to progress along with 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) feedback.
  • PR for the Reusable Block edit component has made progress thanks to feedback/help but has one remaining behavior issue that’s blocking it.
  • Polish Custom HTML block PR is ready to go, assuming the stylistic changes are okay. Please provide design feedback.
  • Started a PR to update the Quote Block to use a light block wrapper but got stuck and need technical help to move forward. Solving this will help other blocks use light block wrappers.
  • Started a PR to add color controls to the List block but running into problems with style conflicts on most default WordPress themes.
  • Started a PR to add a heading level checker to the Heading block, based on prior efforts in this issue.

@itsjonq

  • Adding Padding controls
  • Working on video Background position controls
  • Working on cover image auto dominant colour detection

Open Floor

@youknowriad shared helpful guidelines for folks creating PRs to make the changelog easier to automatically compile.

  • When working on experimental screens and features, apply the [Type] Experimental label instead of Feature, Enhancement, etc.
  • When working on new features to technical packages (scripts, create-block, adding  react hooks, etc), apply the [Type] New API label instead of Feature, Enhancement, etc.
  • When fixing a bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. or making an enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. to an internal tool used in the project, apply the [Type] Build Tooling instead of Bugs, Enhancement, etc.
  • In PR titles, instead of describing the code change done to fix an issue, consider referring to the actual bug being fixed instead. For example: instead of saying “Check for nullable object in component”, it would be preferable to say “Fix editor breakage when clicking the copy block button”.
  • Take the time to choose the right [Type] label for your PRs. With some updates to the changelog command (type priorities), we should be able to support multiple types on a PR for some of the examples above.

Next step: @annezazu will look into updating both triage documentation and contributor documentation as appropriate.

Will core-editor participate in Contributor Day and should this be mentioned to participants? Raised by @itsjusteileen.

Yes! @youknowriad is planning to do a quick zoom chat to help people setup a Gutenberg environment at the beginning of the day. To come prepared, please have “Docker” + Latest node.JS LTS setup. This is also mentioned above under announcements.

Listing names in the code owners document to better understand who can be pinged for help/a review. Raised by @paaljoachim.

Paal encouraged everyone to review this document and keep it up to date. @karmatosed mentioned that relying on solid labeling alongside bringing in specific people from that list will likely help more for getting everyone to see issues appropriately.

#meeting-notes, #core-editor, #editor, #gutenberg, #core-editor-summary

What’s new in Gutenberg? (27 May)

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/ 8.2 is released. The team continues to heavily iterate on the two big projects: Full Sitesite (versus network, blog) Editing and the navigation screen.

The releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. also includes a number of improvements, features, bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes to the post editor.

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. Patterns

After the introduction of the search support, the Block Patterns UIUI User interface and APIs continue to improve with the introduction of the block pattern categories. In addition to that, a viewportWidth property has been made available to allow tweaking the width used on the block patterns preview. This is especially useful for large block patterns.

Cover Block content alignment

The Cover block saw the introduction of the new content alignment feature which opens up more design possibilities.

Editing flow

The editing flow is a constant priority for the project, and Gutenberg 8.2 introduces several enhancements to improve the writing experience. Copying, cutting, and pasting single blocks is now much easier. You can also split out of captions and button blocks using “Enter” to continue your writing.

8.2 🇮🇹

Features

  • Cover block: Support customizing the content alignment. (21091) (22322)
  • Add Block Pattern Categories Support. (22164) (22410)
  • Copy the whole block if no text is selected. (22186)

Enhancements

  • Limit the most used blocks in the inserter to 6 elements. (22521)
  • Allow split out of caption on Enter. (22290)
  • Buttons block: Allow split and merge. (22436)
  • Improve video backgrounds for the Cover block in iOSiOS The operating system used on iPhones and iPads.. (22346)
  • Combine Calendar Help and Close buttons in the date and time picker. (22176)
  • wordpress/env: Better run command errors. (22475)
  • Add support for named orientations and literal colors on custom gradients. (22239)
  • Use theme color as focus color. (22261)
  • Refine the specificity of the embed block styles. (21599)
  • Change inserter search placeholder text color. (22444)
  • Improve interactions and add unit parsing to the unit selector used in Cover block. (22329)
  • Use smaller spacer and cover block step values. (22320)
  • 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): Add explanatory text before the a11y.speak aria-live regions. (22112)
  • Add Animoto, Dailymotion block embed icons. (21882)
  • Group block: Match frontend markup in the editor. (21867)
  • Iterations on the welcome guide. (21847)
  • Don’t show protocol in link suggestions. (20350)
  • New Block Patterns:
    • Hero and two columns. (21130)
    • Features or Services. (20898)

New APIs

  • ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. HooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.:
    • Add new React hook UseCopyOnClick as an alternative to the ClipboardButton component. (22224)
    • Add usePrevious hook to wordpress/compose package. (22540) (22597)
  • wordpress/env:
    • Granular volume mappings. (22256)
    • Add command to display Docker container logs. (21737)
    • Add a destroy command. (21529)
    • Add phpunit support. (20090)
  • wordpress/scripts:
    • Add CSSCSS Cascading Style Sheets. support to start and build scripts. (21730)
    • Support enabling/disabling dev tools, bundle analyzer and externals for build and start scripts. (22310) (22426)
  • Support preloading APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. requests using the fetchAllMiddleware middleware. (22510)
  • Support controlled InnerBlocks. (21368) (22366)
  • Add Close button 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.. (22323)
  • Block API: Allow block registration without categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging.. (22280)
  • Support customizing the viewportWidth for block patterns. (22216)

Bug Fixes

  • Fix theme CSS bleed in the Button component. (22460) (22522)
  • Fix CSS validation error on Button block styles. (22583)
  • Fix editor crash potentially happening when hovering style variations. (22490)
  • wordpress/env: Start database service before running tasks. (22486)
  • Fix editor crash when zooming. (22408)
  • Fix Button border radius set as 0. (22393)
  • Fix Cover block resizing. (22349)
  • Writing Flow: Fix reverse block selection after block deletion from rich text. (22292)
  • A11y: Include reusable blocks in announced inserter search results. (22279)
  • Remove the previous style CSS class when the default style variation is chosen. (22266)
  • Show the global inserter in container blocks nested inside locked templates. (22115)
  • Prevent the Page Break block from showing up as the first block in the inserter. (22523)
  • Polish code editor and fix iOS scrolling issue. (22021)
  • LinkControl component: Fix search result focus state border. (22553)
  • Prevent contributors for accessing the Media Modal. (22306)

Performance

  • Adds a command to run performance tests across branches. (22418)
  • useMovingAnimation: Avoid initial transform animation. (22536)
  • Optimize resizable preview hooks. (22511)
  • Short-circuit validation for identical markup. (22506)
  • More accurate dependency list for useGenericPreviewBlock hook. (22355)
  • Add missing side-effect declarations. (22300)

Experimental

  • Full Site Editing and Site Editor screen:
    • Add page-based navigation. (22368)
    • Page and Template switchers improvements. (22449)
    • Add Query block. (22199) (22364)
    • Use the inserter panel. (22413)
    • Add basic “tools” menu. (22539)
    • Implement post switcher and integrate with “navigate to link”. (22543)
    • Add focus mode and top toolbar modes. (22537)
    • Add entity editor to post content block. (22473)
    • Add ‘Review changes’ button for multi entity saving flow. (22450)
    • Fix Post Author block render issues. (22397)
    • Refactor Post Author block to use block context. (22359)
    • Templates Endpoint: Add resolved query arg to return only relevant templates. (21981)
  • Navigation Block and Screen:
    • Add block movers to the block navigator. (18014)
    • Add ellipsis menu to block navigator. (22427) (22517)
    • Add standard notices to nav menu page. (22374)
    • Implement the creation of menus on the edit navigation screen. (22309)
    • Add menu location management. (21351)
    • Navigation Link block: Add RichText split-at-end/merge/remove behavior. (21764)
    • Fix navigation block placeholder overlap. (22407)
    • Adds orientation class on frontend for the navigation block. (22272)
    • Refactor block navigation block contents. (22487)
    • Fix navigation screen crash with no menu items. (22342)
    • Adds save and failure notices to the navigation screen. (22326)
    • Display the block appender only for the currently active menu. (22311)
    • Allow editing of new menu items from the block inspector. (22210)
    • Submenu nesting and saving new nested items. (21671)
  • Block-based Widgets screen and CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. tab:
    • Use interface package on widgets screen 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.. (22304)
    • Use single block editor in the widgets screen. (22140) (22459)
    • Use the mobile view for the Customizer. (22533)
    • Add legacy widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. to calendar transform. (14586)
  • Global Styles and theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.:
    • Implement Managed CSS for Global Styles. (20290)
    • Support theme.json in Post editor. (22520)
  • Block Directory:
    • Activate deactivated blocks if already installed . (22286)
    • Only support an array of assets when injecting assets. (22289)
    • Remove the author rating when none exist. (22184)
    • Update layout for smaller inserter width. (22124)
    • Add error messages inline. (20001)

Documentation

  • Document experimental theme.json. (22518)
  • Fix duplicate grammar docs. (22466)
  • Document the performance testing commands. (22464)
  • Docs: Update note for extraProps filter. (22419)
  • Recommend adding an API docs section. (22415)
  • Add side effect documentation. (22379)
  • Update block editor docs to incorporate the block-toolbar Popover Slot. (22308)
  • Adds a README to MediaReplaceFlow. (22268)
  • Typos and tweaks: (22254) (21968) (21695) (22554)

Code Quality

  • Avoid circular dependency issue in AutoBlockPreview. (22425)
  • Remove opinionated label color from CustomSelectControl component. (22594)
  • Image block:
    • Use hooks. (22499) (22277)
    • Remove extra div wrapper in the editor. (22585)
  • Remove redundant condition from setting default grouping. (22563)
  • Testing: Replace require.requireActual with jest.requireActual. (22370)
  • Use a light block DOM for the Cover block to map frontend markup. (22348)
  • Rename a complementary area component property. (22336)
  • Block API: WP_Block: Document attributes class property. (22222)
  • Polish block wrapper elements file. (21304)
  • Move supports to block.json files for coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks. (22422)
  • Create Block: Simplify the process of defining a config for templates. (22235)
  • Block Edit: Use hooks. (22433)
  • Add BlockContext component to type-checking. (22353)

Build Tooling

  • ESLint 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: Fix dependency group checking for CommonJS. (22230)
  • Restore Playground GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ Pages deployDeploy Launching code from a local development environment to the production web server, so that it's available to visitors.. (22443)
  • Fix API Docs generation for filenames with spaces. (22513)
  • Fix check-latest-npm.js failure on Windows. (22485)
  • Refactor the changelog script as a release tool command. (22380)
  • Enable import/no-unresolved ESLint rule for Gutenberg. (20905)
  • Only allow ECMAScript stage 4 features. (22083)
  • Storybook: Use a consistent port number. (22552)
  • Add 0BSD to GPLv2 compatible licenses. (22391)
  • Refactor the release tool and split it into several command files. (22003)
  • Replace wp-scripts env usage with wp-env in CI. (20280)

Various

  • Update: ResizableBox makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). showHandle true by default. (22360)
  • Fix dirty state end-to-end test intermittent failuire. (22532)
  • Fix dirty state end-to-end test. (22448)
  • Add a simple block patterns end-to-end tests and a test utility. (22414) (22495)
  • Remove insert block delay from end-to-end tests. (22377)
  • Add an end to end test to verify cover can be resized with drag & drop. (22369)
  • Upgrade Reakit to stable v1.0.0. (22352)
  • Use alternate display for the popover in alignment matrix. (22351)
  • Fix deprecated version used for register_pattern. (22341)
  • API Fetch: Remove deprecated useApiFetch. (22333)
  • Framework: Pin nvmrc to specific current LTS. (22236)

Performance Benchmark

The following benchmark compares performance for a particularly sizeable post (~ 36000 words, ~ 1000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.

Version Loading Time KeyPress event (typing)
Gutenberg 8.2.0 7.4s 29.7ms
Gutenberg 8.1.0 8.6s 29.7ms
WordPress 5.4 9.2s 26.8ms

Kudos for all the contributors that helped with the release. 👏

#core-editor, #editor, #gutenberg-new

Ways to keep up with Full Site Editing (FSE)

As work on Full Sitesite (versus network, blog) Editing continues, it’s important that communication around the project is made explicit so everyone can follow along appropriately. Each person will have their own unique needs in keeping up with a project of this scale so what follows is more of a catalogue of ways to keep up rather than a recommendation for how to do so. 

Yearly:

The WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ Roadmap with Four Phases of 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/ updated by @chanthaboune and/or @matt. This is the highest level overview of the changes coming to WordPress.

Quarterly: 

Quarterly Updates from Contribution Teams, coordinated by @chanthaboune. These updates give an overview on what each team is working on, struggling with, and how to get involved.

Monthly: 

“What’s Next In Gutenberg?” posts. These updates are wrangled by the CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Editor team and highlight what’s planned for the coming month of work on Gutenberg. 

Block Based Themes Chat. These chats are currently wrangled by @kjellreigstad in the #themereview 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 and are dedicated to sharing FSE changes that will specifically impact themes. Agendas and summaries are shared on the make/themes blog

Biweekly: 

“What’s New In Gutenberg?” posts. These updates are wrangled by the Core Editor team and focus on what’s been released in each biweekly Gutenberg releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software.. Currently, they tend to mimic a changelog.

Weekly: 

Core Editor chats. These chats are wrangled by volunteer members in the #core-editor Slack channel. Agendas and summaries are shared on the make/core blog. They focus on task coordination and relevant discussions around Gutenberg releases. There is an Open Floor period in each chat where people can suggest topics to discuss.

Weekly Gutenberg Design Updates wrangled by @mapk. These posts capture the big discussions and work being done in the design of Full Site Editing and Gutenberg in general.

Weekly Theme Related Gutenberg Updates (new initiative) wrangled by @kjellr. These posts are focused on themes, including everything from current discussions to recent changes, as well as helpful resources for theme authors. 

Daily:

Checking in on FSE PRs and FSE issues on GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/. This will give you a nearly real-time understanding of what’s being worked on by the developers and designers. 


Each of these are reliable ways of keeping up with the ongoing work on the new Full Site Editing feature coming to WordPress. A big thank you to everyone helping with these various initiatives!

Feedback welcome

What kinds of updates or communication might be missing? What might makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). these current updates and chats easier to follow? Share your ideas and feedback in the comments below! A next step to this work will be refining these communication pathways based on the feedback collected here and elsewhere.

Thank you to @itsjusteileen @andreamiddleton @paaljoachim @mapk for giving me feedback on this post.

#full-site-editing, #gutenberg