The WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site for general updates, status reports, and the occasional code debate. There’s lots of ways to contribute:
Found a bugbugA 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.?Create a ticket in the bug tracker.
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.
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 CoreCoreCore 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.
This better integrates and builds upon existing WP Core components.
It should make maintenance easier, as well as better fitting with the ongoing development of the Dashboard.
This lead to some discussion about how we will handle notifications which are important but ephemeral – do we want to introduce some kind of toast component to the system?
Splitting the project
In Split this project between the API and Hub #339@dartiss proposed splitting the project, with the data model and APIAPIAn 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 PluginA 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 UIUIUser 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).
AccessibilityAccessibilityAccessibility (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 A11yAccessibilityAccessibility (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.
The WP Feature Notifications project will be at WordCampWordCampWordCamps 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 DayContributor 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 PluginA 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 PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 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
JavaScriptJavaScriptJavaScript 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 UIUIUser 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.
A pretty quiet week for the project, the key contributors have all been very busy.
@Sephsekla is working on a post for Make CoreCoreCore 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
Create an extensibleExtensibleThis is the ability to add additional functionality to the code. Plugins extend the WordPress core software. notification system with PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 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 APIAPIAn 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 JSJSJavaScript, 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.
@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 GutenbergGutenbergThe 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
We have an opportunity to work with the Gutenberg team on Phase 3 plans for the adminadmin(and super admin), we should make sure to have these conversations
Some good conversation around JS UIUIUser interface refactoring: As previously noted, there are a lot of custom components we could simplify by using existing components from @wordpress/icons and @wordpress/components.
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.
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 JavaScriptJavaScriptJavaScript 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 PluginA 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.
What originally started as a UX proof of concept has evolved into a more sophisticated JSJSJavaScript, 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 CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress., the team is looking for partnership from a core committercommitterA 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 PluginPluginA 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.
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 APIAPIAn 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.
GutenbergGutenbergThe 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, multisitemultisiteUsed 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 PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 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 WordCampWordCampWordCamps 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 DayContributor 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!
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 accessibilityAccessibilityAccessibility (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 APIAPIAn 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 coreCoreCore 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 SlackSlackSlack 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 PluginA 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 pluginPluginA 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.jsonJSONJSON, 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.
Then install the develop branchbranchA 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 commandcomposer 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:
On-page notifications – Similar to the current admin_notices hook, on-page notifications appear at the top of the Dashboard screen.
The Hub – A new “bell” notifications icon on the right-hand side of the admin bar will open the “hub”, a drawer of notifications.
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.
It has been approximately 2 and a half years since the WP Notify feature project was officially proposed. This post attempts to provide a high-level status update of the project.
Current resources
We have an official GitHubGitHubGitHub is a website that offers online implementation of git repositories that 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/repository that includes initial work done by @schlessera, open issues that have been worked on, and a few open PRs. It also includes a wiki, which contains all our current documentation, including the V1 requirements document and the initial designs.
Much of the current development has been focused on two areas.
Updating the APIAPIAn 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 make it ready to provide the desired endpoints to support the front end implementation.
Taking the initial designs and turning them into HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers./CSSCSSCascading Style Sheets. that can be sent out for feedback/review.
The progress of the latter item can be viewed on this open issue. Quite a bit of work has been done by @sephsekla, but there are still some things outstanding.
Meetings
Originally we met for a formal meeting with a meeting agenda at 2 pm UTC on Mondays in the #feature-notifications channel on SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.. However, due to a lack of available hosts, we moved towards an office hours approach. Sadly this has completely tapered off, as that time does not seem to benefit most interested contributors.
Where to from here
It would be great if we could get the open GitHub issue moved along, so that we have tangible designs that can be installed, reviewed, and feedback given. This will also allow developers to build the API to support the designs. If there are any front-end developers out there who would like to help, here is your opportunity.
I would also like to suggest that we move our office hours to another day in the week because I’m not able to make that time anymore. I am more than happy to continue hosting office hours from next week, at the same time, but on a different day of the week. My suggestion would be to move it to Wednesdays at 2 pm UTC.
The purpose of this meeting was to discuss and prepare any relevant information needed in order to post a project update for the next WordPress CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. dev-chat.
Meeting notes
It was generally agreed that the requirements document for phase 1 is complete, and any further calls for comment are closed at this time.
@psykro will update the requirements document with an item for translationtranslationThe process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization., that came out of an earlier PR discussion with @swissspidy.
@psykro will review the requirements document and cleanup/close any open comments, and move this document to the Github wiki for the project.
@raaaahman also asked for feedback on the project management aspect, and our use of the Github Projects tool
The meeting was ended on the hour by @psykro, with the team excited to share our progress with everyone at the next Core dev-chat.
We invite all designers, developers, documentation writers, project managers, testers, builders, butchers, bakers, candlestick makers, and any other interested parties to join us and help build the WP Notify notifications system for WordPress.
Anyone interested can get started by visiting the GitHub repository and following the relevant links to the wiki.
The purpose of this meeting will be to discuss and prepare any relevant information that might be needed, to be able to post a project update for the next WordPress CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. dev chat. Part of this update will be a call for developers, as we are at the stage where we would like to formally kick off the development phase of the project.
Meeting Agenda
Opening and welcome
Review of the project requirements document
Review of the design process outcomes
Review of the open GitHubGitHubGitHub is a website that offers online implementation of git repositories that 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/ issues
Open floor
By the end of this meeting, we hope to have a list (or action points to complete this list) of all relevant documents/issues/information that we would like to share with the core team during dev-chat, in order to allow interested parties to “hit the ground running”.
If there is anything specific you would like added to this agenda, please leave it in the comments section of this post.
You must be logged in to post a comment.