WP Feature Notifications: Request for Feedback on Admin Notices

In order to ensure our solution solves the right problems, and to and steer the future direction of the project, the WP Feature Notifications team is looking for feedback on the current system of notices within the WordPress dashboard.

While the scope of this project involves all forms of notifications (both adminadmin (and super admin) notices and emails), this survey will focus on the experience within the WordPress admin. The team would greatly value any input, both positive and negative.

Please complete the survey at https://forms.gle/XBh1U53MYLni4hsHA to make sure your views are heard.

If you’re interested in contributing, you can join the #feature-notifications channel in the Making WordPress Slack or find out more about the project at  https://github.com/WordPress/wp-feature-notifications.

Props @terragirl for developing the survey.

#feature-notifications

WP Feature Notifications Meeting Notes: 2023-06-14

Cross-posted from https://github.com/WordPress/wp-feature-notifications/discussions/351

Meeting agenda: #349
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/. discussion: https://wordpress.slack.com/archives/C2K1C71FE/p1686754838505239

WCEU debrief

Project visibility

  • There was some discussion during the meeting around visibility; several new contributors were not aware of the project before the Contributor Day. How can we address this as the project?
  • @Sephsekla to work to post more on the Make CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blogblog (versus network, site), with both meeting notes and other updates
  • How else can we promote the project? Potentially work with other media, e.g. news sites and podcasts.
  • Everyone is encouraged to spread awareness, this doesn’t need to be @Sephsekla‘s area only.
  • Hopefully the upcoming survey will spread awareness as well.

Notifications survey

  • At WCEU Contributor Day, @terragirl worked on a survey on the current notices/notifications experience within WordPress.
  • This can inform our direction/user stories.
  • It will also provide potential marketing stats, and raise awareness of the project.
  • Some concerns around data and GDPR, do we want to collect emails to follow up?
  • The consensus is that this should be removed, it’s largely unnecessary and adds unnecessary risk.

Redesign to integrate wordpress/components

Splitting the project

  • In Split this project between the API and Hub #339 @dartiss proposed splitting the project, with the data model and 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. in one feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. and the hub in another.
  • This would allow easier adoption of the new API without finalising the UIUI User interface for the dashboard
  • However there are some concerns about how to handle display if we don’t include the new UI by default
  • The hub could be the default solution, but pluggable and easily disabled, so any custom solution can take over with the same API calls (e.g. Calypso).

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) review planning

  • We have a number of 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) tickets open at present.
  • It would be good to have a full audit of the UI before we continue much further, to ensure we are fully accessible from launch.
  • This would be a good opportuniy to work with the Accessibility Team.

Reduction of repository/endpoint scope for 0.3.0 release

  • @bitmachina had previously recommended reducing the scope of the endpoints for our next release.
  • However with the addition of new contributors, this may no longer be necessary. @terragirl is now also working on the REST endpoints, so we will process on all of them and reevaluate as necessary.

#feature-notifications

WP Feature Notifications at WordCamp Europe Contributor Day

The WP Feature Notifications project will be at WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Europe 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/., led by @sephsekla. We are a small, focused team, and always on the lookout for new contributors, so we would encourage anyone to get involved!

WP Feature Notifications is a feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins., with a proposal to modernise the way in which WordPress handles emails, adminadmin (and super admin) notices and user notifications. We are working towards the MVPMinimum Viable Product "A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development." - WikiPedia version of a new, centralised system, with both PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher and REST-based APIs.

Contributing

The project has something for everyone, and all new contributors are very welcome!

For developers and other more technical contributors, we have several areas to focus on:

  • In-progress PHP work for the MVP
  • 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/. improvements to make better use of WordPress components
  • A provisional TypeScript rewrite of the JavaScript UIUI User interface

We also have a number of areas to cover which are less technically focused:

  • Testing and feedback on our current proof of concept (version 0.2.0)
  • Feedback and pain points on the current WordPress notices and emails
  • Discussion and ideas for future requirements

No setup ahead of the event or prior knowledge is needed to get involved, but for more technical work we would recommend bringing a laptop with Docker, npm and Composer installed.

Find out more

We look forward to seeing you at the event!

If you’re interested in the project, you can also join the #feature-notifications channel in the Making WordPress Slack or find out more about the project at  https://github.com/WordPress/wp-feature-notifications.

#contributor-day, #feature-notifications

WP Feature Notifications Meeting Notes: 2023-05-17

Cross-posted from https://github.com/WordPress/wp-feature-notifications/discussions/329

Meeting agenda: #319
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/. discussion: https://wordpress.slack.com/archives/C2K1C71FE/p1684335622715959

Personal updates

  • A pretty quiet week for the project, the key contributors have all been very busy.
  • @Sephsekla is working on a post for Make CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. around user stories and the problems this should solve, aiming to have that out by the next meeting.
  • @erikyo and @bitmachina are working on the MVPMinimum Viable Product "A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development." - WikiPedia and switch to TypeScript, no major change

Review of project goals and priorities

@erikyo and @Sephsekla discussed high level goals and current priorities for the project

Project goals

@Sephsekla:

  • Create an extensibleExtensible This is the ability to add additional functionality to the code. Plugins extend the WordPress core software. notification system with PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher and REST APIs in WordPress
  • Improve the admin_notices experience by standardising notices through the new system, making things more accessible
  • Create an easier and more robust way for plugins/core to notify users by email, replacing the traditional use of wp_mail
  • Give both users and developers more choice of how notifications are delivered
  • Discussed the use case of improving email notifications:
    • This was always a stated goal early on, but we’ve been more focused on dashboard notifications recently
    • Once the PHP 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 in place, it should be straightforward to add this as a connector for notification channels – this will be a good test case for adding additional implementations

Current priorities

  • Communication and community engagement, e.g. Make Core post re: user stories
  • Complete in-progress MVP work (functional database, PHP API, hooked up to REST endpoints)
  • Complete TypeScript rewrite (since the JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. codebase is fully typed already, this shouldn’t run into issues)
  • Plan for upcoming events

Upcoming events discussions: WCEU and WCUS

  • It’s unclear whether we will have MVP ready for WCEU/WCUS. We’ll evaluate at our next meeting.
  • WCEU is probably too close to have 0.3.0 ready, but WCUS may be doable.
  • @Sephsekla will be running a 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/. table at WCEU (hoping to be able to do the same at WCUS). What are plans for new contributors?
    • @erikyo: Unlikely that we can onboard new contributors onto the project to work on the MVP, can we find more granular work?
    • If we can have PHP API ready, contributors could test building integrations for notification channels (e.g. email, SMS)
    • Lots of opportunities outside code contribution:
    • Design discussion
    • Get feedback on existing prototype
    • Follow up on user stories work: talk to people about their pain points, suggestions
    • Collaborate with 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/ Team on Phase 3 work

Any other business

A TBC agenda for next week’s meeting can be found at https://github.com/WordPress/wp-feature-notifications/discussions/328. If you’d like to suggest a topic, or upvote an existing topic, the team would welcome any input from new contributors! Alternatively, feel free to suggest topics to cover in the comments.

#feature-notifications

WP Feature Notifications: 2023 Status Update

The WP Feature Notifications (formerly WP Notify) project was first proposed in 2019 in order to improve and modernise the way in which WordPress handles user notifications.

In the last few months we’ve had a good amount of progress, as well as a number of changes, which have led to the recent publication of prerelease 0.2.0.

0.2.0 – A robust 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/. system

You can test out the current state of the feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. by downloading the latest release at https://github.com/WordPress/wp-feature-notifications/releases/latest. Please note that you will need to be using WordPress 6.2 or above.

Alternatively, if you’d like to get involved in development, you can clone and build the repo at https://github.com/WordPress/wp-feature-notifications, which includes ongoing work for the 0.3.0 milestone.

What originally started as a UX proof of concept has evolved into a more sophisticated JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.-based system for displaying notifications based on serialised data. At the moment this uses static dummy data, however in a future update this will interface with the upcoming REST controllers to display persistent data.

Props to @codekraft and @bitmachina for some exceptional work here, which has really progressed the project.

Leadership, planning and the team

After extensive work as project lead, @psykro has decided to step down from the role. On behalf of the whole team, I’d like to thank him for the massive contributions he’s made, and the time and effort he’s put into the project over the last few years. @sephsekla has taken over project leadership in his stead.

In addition to our weekly office hours (15:00 UTC on Wednesday), @sephsekla, @codekraft, @bitmachina and @jason_the_adams have started a monthly planning call, in order to better scope out the future of the projects

To support the project’s long-term goal of becoming part of WP CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., the team is looking for partnership from a core committercommitter A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component., who can provide guidance on strategy as well as potential barriers to entry.

Core Feature vs Canonical 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

Matt’s post around Canonical Plugins late last year sparked some discussion as to whether this should be an option to consider for the future of the project. While this is a valuable concept, and indeed the approach taken for development, the team are in strong agreement that the update to notifications should be merged when ready, and not kept as a separate plugin.

To quote the original project proposal by @psykro and @schlessera:

WordPress is currently lacking a fundamental mechanism: sending notifications to users to give them feedback about state changes in the system.

Notification functionality is indeed fundamental, and already in constant use via the admin_notices hook, a workaround that has major issues of standardisation and accessibility. The new 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. needs to be universal, and available by default, otherwise admin_notices will remain the de facto option.

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/ Phase 3

The team was excited to see the upcoming evolution of the adminadmin (and super admin) experience, which was recently detailed in https://make.wordpress.org/core/2023/03/24/phase-3-collaboration/. As the WordPress dashboard continues to modernise, we are keen to play our part in improving the current admin_notices experience. It’s crucial to ensure that our designs and functionality mesh with the work being done here.

Roadmap and Next steps

The team has recently picked up momentum, but there is still much to be done in order to achieve the project’s goals. Currently the focus is on refining scope and transforming the demo into a minimum viable productMinimum Viable Product "A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development." - WikiPedia (MVPMinimum Viable Product "A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development." - WikiPedia). The upcoming 0.3.0 prerelease is planned to be a minimal, but functional notification system, with all demo content removed.

The next (and largest) piece of the puzzle is persistent database storage of notification data. We’re working on finalising the proposed schema, as well as discussing other issues such as retention, translations, 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 and more.

As we move on to this major phase, the team would greatly welcome additional contributors onto the project, particularly developers specialising in PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher and SQL.

Expect a consultation and call for feedback on how we approach this database architecture soon!

Get involved

The project is always on the lookout for new contributors. If you would like to contribute to the project, we invite you to join the #feature-notifications channel in the Making WordPress Slack for our weekly office hours, every Wednesday at 15:00 UTC.

We will have a presence at the WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Europe 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/., where we would love to see some new contributors. Regardless of skill set or expertise, Developers, designers, users or any other interested parties are very welcome!

Props to @erikyo and @bitmachina for their collaboration writing this post, and and @bacoords and @psykro for reviewing.

#feature-notifications

Call for Testing: Plugin Dependencies UX

We are seeking basic workflow feedback for the Plugin Dependencies feature. Testing should be very straightforward.

The testing 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 was chosen because it fulfilled the following criteria:

  • Plugin is in the plugin repository.
  • Plugin has the required Requires Plugins headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. for Plugin Dependencies.

How to Test

  1. Install and activate the Plugin Dependencies feature plugin.
  2. Install and activate The Events Calendar CategoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. Colors plugin.

The goal is to see how intuitive the process is or might become.

Feedback

  • What did you do?
  • Did you get stuck? Where?
    • Were you able to figure out the path forward?
    • What did you do?
  • Did the experience feel “natural” to WordPress?

Thanks for testing. Testing should last for 3 weeks.

Please add your feedback in the comments.

+make.wordpress.org/test/

#call-for-testing, #feature-plugins

Call for Testing: Plugin Dependencies

The Plugin Dependencies feature plugin is available for testing.

This feature allows 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 authors to identify which other plugins must be installed so that their plugin functions as expected. This is done by adding a “Requires Plugins” headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. to the docblockdocblock (phpdoc, xref, inline docs) of the main plugin file which contains a comma-separated list of slugs for the required plugins.

The feature is not intended to work with Must-Use plugins, nor does it impact them.

You can find out more about this feature project in the original Make post.

Test Setup

  • Install and activate the Plugin Dependencies feature plugin.
  • Delete the Hello Dolly plugin, a single file plugin cannot be a dependency
  • Copy the three test plugin files from /plugins/wp-plugin-dependencies/test-plugins to the /plugins directory.
  • Navigate to Plugins > Installed Plugins.

Test Instructions / Key Features

  • Confirm that a new adminadmin (and super admin) notice is displayed if there are additional plugins that must be installed if dependencies are missing.
  • Confirm that individual plugins with dependency relationships on Plugins > Installed Plugins display Requires or Required by: under the version information.
  • Add (install/activate) needed dependencies.
  • Confirm that admin notice goes away once all the dependencies have been installed. Dependencies don’t need to be activated for the admin notice to be satisfied and go away.
  • After installing all dependencies, confirm that the new admin notice disappears.
  • Confirm that the Deactivate link and checkbox are not available for plugins that are dependencies with active dependent plugins.
  • Once all dependent plugins are deactivated, confirm that plugin dependencies can then be deactivated and deleted.
  • Confirm that the Add Plugins > Dependencies page lists correct plugins, including non-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/ plugins that are and aren’t supported.

Other Things to Test

  • In a test plugin, try to add a dependency using a plugin’s full name (not slug).
    • No dependency should be noted
  • Add a dependency for a non-wordpress.org plugin slug that is installed/active.
  • Hook the Plugins 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 register a non-wordpress.org plugin.
    • This is done with the GitGit Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. Most modern plugin and theme development is being done with this version control system. https://git-scm.com/. Updater plugin
  • Test adding “Requires Plugins” to the DocBlock of a plugin in mu-plugins.
    • Nothing should happen as mu-plugins are not supported for this feature.

What’s New?

In the main plugin file’s docblock:

  • A Requires Plugins header has been introduced.
  • List the slugs of the dependencies in a comma separated string. For example:

Requires Plugins: hello-dolly, akismet, wp-plugin-dependencies

On the Plugins admin page:

  • An admin notice informs site owners if there are additional plugins that must be installed. It will display as long as there are uninstalled dependencies.
  • Each plugin that requires other plugins has a new line in the plugin description. For example:

Requires: <dependency-1>, <dependency-2>, <dependency-3>

Required plugins that are available on wordpress.org are linked to their plugin page.

  • Each plugin required by other plugins has a new line in the plugin description. For example:

Required by: <dependent-1>, <dependent-2>, <dependent-3>

  • Each plugin that is a dependency, and is also dependent on other plugins, has both lines above.
  • If all the dependencies of a plugin have not been installed and activated then the dependent plugin will not be able to be activated.
Plugins page

On the Plugins > Add New > Dependencies tab:

  • The above Requires and Required by data will display in the plugin card.
  • This tab shows a card for each plugin that is required for other plugins to work.
  • Familiar Install Now, Activate and Active buttons are provided so that site owners can manage these plugins.
  • If a dependency is not available on wordpress.org and does not integrate with the Plugin Dependencies feature, it will not be possible to install or activate via this tab. The plugin will display in a generic card.
  • It is possible to integrate a dependency that is not available on wordpress.org with the Plugin Dependencies feature. This requires hooking into the plugins_api_request 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. and returning a valid plugins_api() response. This type of code was added to the feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. as a composer dependency with afragen/add-plugin-dependency-api, and a filter to the endpoint returning valid plugins_api() response for the Git Updater plugin. 
Plugin > Add New page

Instructions for Reporting Issues

Please leave feedback in the comments below this post.

If you find an issue:

Thanks for testing! Testing should be completed by December 1, 2022.

Thanks @costdev and @ironprogrammer for assistance.

+make.wordpress.org/test/

#call-for-testing, #core, #feature-plugins, #feature-projects

Dev chat summary, July 27, 2022

[Update: links to TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets mentioned added]

1. Welcome

@marybaum and @webcommsat led the meeting on this agenda. If you’re interested, you can also check out the summary from the July 20 meeting.

@marybaum welcomed new people and observers.

2. Announcements

WordPress 6.1 has a schedule and a squad!

3. Blogblog (versus network, site) posts

@webcommsat posted these links of note:

@audrasjb published A week in Core for July 25

@audrasjb reports in with A week in Core.

Core Editor improvement: deeper customization with more template options, from @greenshady

@critterverse proposes A new kind of default theme.

@pbearne proposes adding a dominant color background for images.

@bacoords would like feedback on this proof of concept: feature notifications.

In case you missed it last week, @bph shares what’s new in Gutenberg 13.7.

And @chanthaboune opened a conversation about renaming FSE.

@jeffpaul introduced @pbearne and invited the group to ask questions about his post on dominant-color image backgrounds. @pbearne kicked off a discussion on the Core Slack.

4. Upcoming releases

Again, WordPress 6.1 is under way. @costdev invited release leads and squad members to pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” him if they need extra eyes on tickets or help with anything else.

@annezazu volunteered to, as she put it, “shake things loose” to get the next minor, 6.0.2, moving.

5. Open floor

@afragen asked for testing help on two fronts: the rollback feature he has been working on with @costdev and @pbiron, and the feature plugin that’s all about plugin dependencies.

@sergeybiryukov reported on his components. In particular, he called out tickets #55652 and #45329.

@costdev asked for eyes on #54582.

And @marybaum reported a successful test of the 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. on #50886. Her co-maintainer on Help/About, @webcommsat, asked for further tests on the patch.

Finally, @webcommsat highlighted a request from the Marketing team: please keep sharing 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/ social posts related to releases! That single act really helps keep the project in users’ hearts and minds.

Thanks to @webcommsat for cohosting the chat and for reviewing this summary.

[Request for feedback] Feature Notifications Proof of Concept

The goal of the WP Feature Notifications project is to create a new and better way to manage and deliver notifications to the relevant audience. The admin_notices hook has served WordPress well and will continue to do so for the foreseeable future. This project is focused on building a new framework for notifications from the ground up, and potentially providing a tool that encourages consistency in presentation, follows best practices in standards and 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), and discourages spammy or disruptive interactions in the WordPress adminadmin (and super admin) screens.

The end result will be a RESTful model and 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 be utilized by coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. but would also enable third-party developers to further extend the functionality. Possibilities could range from pulling in updates from relevant SaaS integrations and hosting platforms, to enabling mobile push or 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/. notifications outward from your WordPress website.

After approximately three years of discussion, scaffolding, and design, the WordPress Notifications feature project is ready to begin collecting feedback on a static demo of the previously reviewed designs. We’re inviting users to install the feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. on a test environment, view the static mockups, and provide feedback to the team. 

How To Install

The 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 zip file can be downloaded from the Releases page of the Github repository, and installed like any other WordPress plugin.

Alternatively, it can be installed via Composer:

First add the repository to your composer.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.

{
    "type": "vcs",
    "url": "https://github.com/WordPress/wp-feature-notifications"
}

Then install the develop branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch". using the command composer require wordpress/wp-feature-notifications:dev-develop.

How To Test

Once installed and activated, the plugin will display three demo user interface elements for review:

  1. On-page notifications – Similar to the current admin_notices hook, on-page notifications appear at the top of the Dashboard screen.
  2. The Hub – A new “bell” notifications icon on the right-hand side of the admin bar will open the “hub”, a drawer of notifications.
  3. Notification Settings – Users can visit Settings > Notifications or click the link at the bottom of the Hub to see a preliminary draft of a settings table for managing notifications.

It is important to note that this is a static, front-end demo, and the team is mainly looking for overall feedback about the initial direction of these components. For more context on the project, we recommend reviewing the Project Requirements and reviewing the initial Project designs

Looking Ahead

We look forward to collecting your feedback in the comments below or in our Github issues. If you would like to contribute to the project, we invite you to join the #feature-notifications channel in the Making WordPress Slack for our weekly office hours every Wednesday at 14:00 UTC and are happy to welcome new contributors to the project.

Props @psykro for editing and proofreading and @codekraft and @sephsekla for providing content.

#feature-notifications

What’s new in Gutenberg 13.6? (6 July)

“What’s new in 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/…” posts (labeled with the #gutenberg-new 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.)) are posted following every Gutenberg release on a biweekly basis, discovering new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Full Site Editing project.


The Gutenberg 13.6 release comes with four major highlighted features, many smaller enhancements, a number of accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) improvements, and twenty-six 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 make developing with Gutenberg easier, a number of refactors to the codebase occurred for typescript rewrites. Work around improving performance continues with many changes shipped in this release expected to lead to noticeable results when the broader efforts are completed in future releases. Finally, the Style Engine work has progressed with the option for extenders to use these features with the correct 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 for now and more options in the Styles UIUI User interface planned for future releases.

Table of Contents

Provide patterns to select from when creating any post type

In WordPress 6.0, an 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. was introduced that allows patterns to appear in a modal every time a user creates a new page so that, instead of starting from scratch, a user starts with content to work from. For example, this means a user could choose between patterns for a contact page or an about page and then just fill in the details that are unique to their site.

Thanks to feedback from the community, this release expands this feature to allow the same modal to be presented to a user on other post types. For example, if a user has a book post type, they could now be presented with different ways to show the book based on patterns in a modal (book cover on the left, description on the right, book cover in the center with description below, etc).

In order to take advantage of this new API powering the current experience, you need to include core/post-content in the blockTypes for your pattern and include the postTypes where you want the modal to show in the postTypes array. If postTypes are not provided the modal just appears on the page.

Create more template types in the editor

Expanding the types of templates that can be created from within the Site Editor continues to be a high priority to open up more creative options for folks to control every aspect of their site. With Gutenberg 13.6, it’s now possible to create a template for all of the posts of a specific post type (ex: single-$postType) and, to get more granular, a template for a specific post (ex: single-$postSlug). This is all handled with a very simple UI and doesn’t require needing to know post types identifiers or post slugs, making it easy to work with.

Other Notable Highlights

Gutenberg 13.6 includes several, more general enhancements and accessibility improvements.

Clearer layout controls

For example, the “Inherit Default Layout” controls have been updated to a more understandable toggle to help users and themers alike make the design decisions they want:

More keyboard shortcuts

Two keyboard shortcuts (Strikethrough or Inline Code) have been added and a previously missing keyboard shortcut to link to a post is now properly documented in the shortcuts modal:

Simplified post scheduler

The post scheduler UI has been updated to use “Today” and “Tomorrow” when possible to make the experience more readily understandable at a glance.

New template selection UI

Previously, the template selection options took up a lot of space in the 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 allow you to pick and choose what you wanted. With Gutenberg 13.6, this experience has switched to being a popover allowing it to take up far less space and blend in better experience-wise with other post details.

Explore the expanding theme.json engine

Gutenberg 13.6 builds on previous work to expand theme.json to allow you to create a cohesive design across blocks by allowing you to change the styles of all buttons. This relies on targeting elements which are pieces of the UI that appear in multiple blocks and whose style you should be able to change across all implementations. With this work, it means you can control a button’s style across your site in everything from the general Buttons 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. to the Search block.

For anyone building third-party blocks with buttons, this same feature can be used to interact with your block assuming the block you create provides the correct markup. Keep in mind that there’s a difference between changing the styles of an individual block on a page, which will just impact that block, and changing the style at the element level, which impacts all button blocks.

Alongside the button element, captions have also been included so you can control the style of captions across all blocks with captions, from an Image block to a Video block. That element controls the styles of captions across all the blocks. For now, captions can only be controlled using theme.json but, in the future, there will be a way to manage this in the UI.

Keep in mind that this work around targeting elements will be fairly contained as it only impacts items that can’t be codified as blocks (links, captions, buttons, etc). Because these new features are in the early stages of development, please test your themes and blocks and report any issues you might find. It all helps as development continues.

Accessibility continues to be a focus and this release has some improvements to focus management and adding in previously missing aria labels.

Changelog

Enhancements

UI

  • Increase fade intensity during spotlight mode. (40454)
  • Improvements to “inherit default layout” toggle. (41893)
  • Make it easier to select “Edit visually” when in “Edit as HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.. (41516)
  • Abbreviate post schedule date when possible. (41738)

Global Styles

  • Add support for caption elements. (41140)
  • Add UI for button elements (41659) and fix the button element selectors. (41822)
  • Support pseudo selectors on elements in theme json. (41786)
  • Add the ability to unset duotone in themes with default duotone set. (39564)
  • Allow references to values in other locations in the tree. (41696)
  • Lower specificity of elements block css. (41931)
  • Add border to frontend style engine. (41803)
  • Add schema support for styles.filter.duotone. (41920)
  • Add an API to make it easier to get class names. (41753)
  • Update Theme JSON $schema to account for pseudo-selector support. (41936)

Patterns

  • Add the ability to use creation patterns for other post types besides page. (41791)

Block Library

  • Columns: Change the title of one third/two thirds column variation to 66/33. (41734)
  • Navigation:
    • Adjust mobile close button position when adminadmin (and super admin) bar is visible. (41664)
    • Make additional top margin specific to open modal. (41949)
    • Move block CSSCSS Cascading Style Sheets. to JSON. (41898)
  • Post Comments Form: Add button that enables commenting to warning. (41603)
  • Cover:
    • Strip whitespaces in render_block_core_cover. (40859)
    • Implement axial top bottom margin. (41963)
  • Image: Set Default state to media library for library button in image block. (41678)
  • Classic: Remove CSS properties with vendor prefixes. (41995)
  • Embed: Add Pocket Casts embed block variation. (41006)

Site and Template Editor

  • Turn Template settings panel into a Template popover. (41925)
  • Expand the template types that can be added – single custom post typeCustom Post Type WordPress can hold and display many different types of content. A single item of such a content is generally called a post, although post is also a specific post type. Custom Post Types gives your site the ability to have templated posts, to simplify the concept. and specific posts templates. (41189)
  • Add clear customizations to the template card. (41743)

Accessibility

  • Make the site editor headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. toolbar use the ARIA toolbar pattern. (41902)
  • Allow defining an aria-label in group blocks. (41744)
  • Add keyboard shortcut for Strikethrough (41910) and inline code (41816) in the format library.
  • Navigation submenus: Allow Escape key to close the submenu and focus trigger. (41774)
  • Show the link completer shortcut on the help modals. (41872)

Bug Fixes

  • Fix incorrect ‘_n’ usage in the block Editor. (41886)
  • BlockPreview: Fix ‘Infinity’ is 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. ‘minHeight’ value warning. (41766)
  • Compare against default categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. in the settings instead of hardcoded slug. (41956)
  • Fix PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.1 deprecation in the gallery block. (41193)
  • Add ‘application/zip’ accept header. (41602)
  • [Block Editor]: Fix content loss from replaceInnerBlocks with controlled blocks. (41948)
  • Fix action button spacing on 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. editor. (41915)
  • Render duotone presets in pattern preview. (41249)

Block Library

  • List v2:
    • Fix impossible to outdent multiple list items. (41713)
    • Set selection to created block after split with Enter. (41899)
    • Transforms don’t take into account nested blocks. (41741)
  • Comments: Fix issue with custom font sizes and links color. (41627)
  • Navigation: Fix permissions warning. (41862)
  • Post Template: Ensure layout classnames are not attached to inner li elements. (41827)
  • Image block: Preserve alt text from media library. (41839)
  • Search block: Remove double spaces. (41746)
  • Fix issue of background min-height. (41693)
  • Only use the post-title if the featured imageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. is a link. (41775)
  • Always load block CSS from __experimentalStyle on global styles output. (42005)

Components

  • Border Controls/Color Palette: Ensure popovers remain within small viewports. (41930)
  • ColorPicker: Remove horizontal scrollbar when using HSL or RGB color input types. (41646)
  • DatePicker: Respect site’s ‘Week Starts On’ setting. (41648)
  • BlockSettingsMenuControls: Fix ‘showLockButton’ check. (41788)
  • Color Controls: Allow popovers to remain within smaller viewports. (41929)

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

  • Fix retrieving autosaves when using a custom rest_namespace. (41542)
  • Remove hardcoded references to rest namespace. (41950), (41951).

Performance

  • Continued the work refactor away from lodash usages in order to reduce the build size.
  • Remove Unrequired regex search on duotone supports. (42020)
  • Ensure only the main query is modified when resolving template for new posts. (40799)
  • Avoid calculating HTML block styles in useSelect. (42026)
  • Fix performance regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. pasting due to removeWindowsFragments. (41907)

Documentation

  • Add an explanation of how to set up the environment to run the performance test. (41883)
  • Add local dev notesdev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and 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. to aid when doing work on schemas. (41968)
  • Fix Minor documentation inconsistencies on block attributes. (41468)
  • Add an example for the end-to-end tests snapshot update. (41999)
  • Fix documentation of Flex component to no longer be experimental. (41926)
  • Fix link to “Good First Review” issues in README. (41754)
  • Fix link to Flex component in FlexItem Readme. (41928)
  • Fix some small inconsistencies in the block editor documentation. (41861)
  • Update terminology and documentation of Style engine. (41964)
  • Update skip serialization documentation to reflect ability to target specific properties. (41277)
  • Add supports to basic sample code documentation. (41589)
  • Update nested-blocks-inner-blocks.md. (41962)
  • Document fontFace and it’s values in theme.json schema for the Webfonts API. (41844)

Code Quality

  • Fix: Double condition on or on block editor reducer. (42019)
  • Remove WP 6.0 WP_REST_Block_Patterns_Controller class. (41914)
  • Remove leftovers of legacy query-loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. block. (41891)
  • Remove startBlankComponent from __experimentalBlockPatternSetup. (41721)
  • Move setting registration into WP 6.0 compat. (41985)
  • Add __experimentalUseResourcePermissions to make code simpler. (38785)
    ))
  • Remove Unnecessary ‘&& check’ as ‘optional chaining (authorDetails?.avatar_urls) check’ is already used in the AvatarAvatar An avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name. Block. (41779)
  • Refactor NavigationItem component to pass exhaustive-deps. (41639)
  • Move generation of layout util classes to existing method to avoid adding global public method WP. (41885)

Tooling

Static analysis

  • ESLint: Enable ignoreRestSiblings option for no-unused-vars rule. (41897)
  • Fix a prettier error. (41916)
  • SerializeBlock fix ESLint warning. (41763)

Testing

  • Test migrations toPlaywright:
  • InputControl: Add tests and update to use @testing-library/user-event. (41421)
  • Skip flaky navigation end-to-end test. (41829)
  • Fix the image rotating flaky test. (41808)

Storybook

  • Add 40px size variant to NumberControl. (41997)
  • Convert knobs to controls in NumberControl. (41849)
  • Convert knobs to controls in the spacer. (41851)

IDEIDE Integrated Development Environment. A software package that provides a full suite of functionality to software developers/programmers. Normally an IDE includes a source code editor, code-build tools and debugging functionality.’s integrations

  • Autocompletion support for useSelect (via jsDoc annotations). (41596)

Migrations to typescript

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.

Post Editor

VersionTime to the first blockKeyPress Event (typing)
Gutenberg 13.64.51s41.02ms
Gutenberg 13.54.34s38.81ms
WordPress 6.04.66s37.70ms

Site Editor

VersionTime to the first blockKeyPress Event (typing)
Gutenberg 13.65.22s32.30 ms
Gutenberg 13.55.05s32.59 ms
WordPress 6.04.82s31.07 ms

Contributor Props

The following PRs were merged by first-time contributors – thank you and congrats!

  • @adambasa-dp#30930 – Make it easier to select “Edit visually” when in “Edit as HTML. (41516)
  • @arturgrabo: Change case. (41792)
  • @hz-tyfoon: Block Library (Avatar Block): Remove Unnecessary ‘&& check’ as ‘optional chaining (authorDetails?.avatar_urls) check’ is already used. (41779)
  • @inc2734: Add supports to basic sample code. (41589)
  • @kbrown9: [RN Mobile] RichText: Return early when content has changed in onSelectionChangeFromAztec. (41682)
  • @mcliwanow: Fix link to “Good First Review” issues in README. (41754)
  • @navigatrum: Strip whitespaces in render_block_core_cover. (40859)
  • @pavanpatil1: Migrate rtl test case to it’s playwright version. (41495)
  • @petitphp#40675: Ensure only the main query is modified when resolving template for new posts. (40799)
  • @phcp: Add Pocket Casts embed block variation. (41006)
  • @vasartam: Block attributes docs: Minor documentation inconsistencies. (41468)
  • @xylocone: Update nested-blocks-inner-blocks.md. (41962)
  • @zaerl: Fix: Add ‘application/zip’ accept header. (41602)

The following contributors merged PRs in this release:

@aaronrobertshaw @adambasa-dp @adamziel @afercia @ajlende @alexstine @andrewserong @aristath @arturgrabo @chad1008 @ciampo @dcalhoun @derekblank @fabiankaegy @fluiddot @georgeh @getdave @glendaviesnz @grappler @hz-tyfoon @inc2734 @jorgefilipecosta @kbrown9 @kevin940726 @MaggieCabrera @Mamaduka @matiasbenedetto @mcliwanow @mcsf @mikachan @miminari @mirka @mtias @navigatrum @noisysocks @ntsekouras @ockham @opr @pavanpatil1 @petitphp @phcp @pooja-muchandikar @ramonjd @scruffian @SiobhyB @spacedmonkey @stokesman @sunil25393 @t-hamano @talldan @tellthemachines @tomjn @tyxla @vasartam @walbo @xylocone @zaerl

Thank you to all who helped make this release happen.

#gutenberg, #gutenberg-new