Ahead of WordCamp US last…

Ahead of WordCamp US last year, I held office hours that were open to the community which gave both me and the folks I met with (via video conference) an opportunity to connect directly. It was an enriching experience and I’d like to do the same at WordCamp Europe this year but this time in person.

I’ll hold these office hours between 11:00 am – 1:00 pm on Thursday and 9:00 am – 11:00 am on Friday and Saturday. In the spirit of speaking to as many people as possible, each time slot will be 15 minutes long with 5 minutes between each.

You can sign up using this link: https://calendly.com/mmullenweg/wceuofficehours

I’ll probably be joined by a colleague who will note any action items and/or follow-ups and who will also help to manage the meeting flow.

I’m excited to participate in WCEU again and am very much looking forward to these conversations, and of course looking forward to meeting as many folks as possible in the hallway, at the sessions, and of course at the always-fantastic WordCamp Europe social events.

REST API Chat Summary: June 13th

This post summarizes the weekly REST API chat meeting for June 13, 2019. (Slack transcript). Weekly REST API component office hours are held every Thursday at 18:00 UTC in the #core-restapi room in the Make WordPress Slack.

Menus Endpoint

@spacedmonkey has continued work on the menus endpoint. Initial feedback was provided on the PR. The majority of the feedback has been addressed or is currently being worked on. It was decided to merge this PR soon and continue iterating in follow-up issues for the remaining feedback and decisions.

@jorgefilipecosta clarified how the Gutenberg navigation project is storing data. The first versions are using block attributes to rapidly prototype the UX. However, everything is open and using the REST API is a possibility.

@spacedmonkey brought up menu permissions. Ideally, some menu data would be publicly accessible, but that might show data that users don’t want to be public. @timothybjacobs suggested that to start, only menus that were attached to a menu location that was specifically marked as public would be exposed. A Github issue was opened for further discussion.

Upcoming Meetings

#rest-api

WordPress 5.2.2 RC 2

WordPress 5.2.2 Release Candidate 2 (RC2) is now available for testing! So please do – every test helps the build get closer to final release!

You have two options for testing the WordPress 5.2.2 release candidate: try the WordPress Beta Tester plugin (you’ll want to select the point release nightlies option), or you can download the release candidate here (zip).

What’s in this release?

5.2.2 features 13 bug and regression fixes, with some improvements to the block editor, accessibility, i18n, media and administration. Plus, this release adds a little bit of polish to the Site Health feature that made its debut in 5.2.

Here’s the list:

  • #45094: Dashboard elements don’t always have clear focus states, tab order
  • #46289: RTL Bug: wrong navigation arrows in media modal
  • #46749: Extra border is displaying at bottom of Help section in Firefox (Responsive : 778 * 841)
  • #46881: Site Health: improve the header elements horizontal centering
  • #46957: Site Health: Make site health page access be filterable
  • #46960: Site Health: Table design issue in small devices(iphone 5/SE).
  • #46997: Theme update links show in Customizer and don’t work
  • #47070: Recovery Mode Exit button not visible in responsive view
  • #47158: Merge similar strings introduced in WP 5.2
  • #47227: i18n: Merge similar translation strings – site health tabs
  • #47429: Editor: Update packages for WordPress 5.2.2
  • #47457: Fix the mediaelements player controls bar sizing
  • #47475: I18n: Merge similar strings and fix typo

You can browse the full list of changes on Trac.

What’s next?

Committers: The dev-reviewed workflow (double-committer signoff) is now in effect. That means it takes two committers to approve any changes to the 5.2 branch.

Plus, we have a hard string freeze until the official 5.2.2 release, scheduled for Tuesday, June 18 at 17:00 UTC.

Happy testing!

#5-2, #releases

Dev Chat Summary: June 12, 2019

Announcements

@marybaum graciously offered to help lead Dev Chat next week. While many folks will be at WCEU, there are many others that will not. The meeting shall go on! Thanks Mary!

WordPress 5.2.2 Updates

5.2.2 co-lead @marybaum mentioned that tomorrow the RC2 process will begin and the time was agreed to be 15:00 UTC. The following dates are the updated schedule for releases:

Release Candidate 2: Thursday, June 13, 2019, 15:00 UTC
Final Release: Tuesday, June 18, 2019

WordPress 5.3 Updates

@chanthaboune discussed timing for the release saying, “Folks with suggested major focuses have all gotten their best timing estimates to me and it’s shaping up to look pretty good. The focuses seem land-able by late Sept/early Oct, which leaves about a month before WCUS.”

Scope of 5.3 as it relates to the 9 Projects for the Year

@jeffpaul asked “Is the hope that 5.3 includes the final portions of release-related projects from Matt’s list of 9 projects for the year? Asked differently, what remains from that list that we should be aiming to include alongside 5.3?”

@chanthaboune mentioned that the block directory is currently awaiting design feedback. Next steps are to be determined and will be mentioned in a 5.3 update post.

@earnjam said the content registration features for themes seems a bit nebulous. In particular:

Porting all existing widgets to blocks.

Upgrading the widgets-editing areas in wp-admin/widgets.php and the Customizer to support blocks.

@aduth provided a very handy link on the current status of these features on the roadmap: https://github.com/WordPress/gutenberg/blob/master/docs/roadmap.md

Jeff asked a follow up question “Is of the remaining projects that are incomplete which (1) are near completion and just need some assistance or (2) are of the upmost priority to try and complete by the end of the year. Knowing the answers to those could help show folks the best places to swarm and help get projects to completion?” @chanthaboune offered to address this and the other roadmap items in a 5.3 update post after WCEU.

@clorith asked “Will this be the final release of the year, and how does that align with our plans to (possibly, depending on how 5.2 rolls along) update minimum requirements to PHP 7.x ?” This will also be addressed in the 5.3 update post Josepha offered to tackle after WCEU. @jorbin shared some great stats on the current state of PHP versions finding that “We are under 20% for below 5.6” which is a massive improvement!

Updates from component maintainers

Call for new maintainers of components:

There are a handful of components that are in need of a maintainer to watch over and nurture them:

@azaozz offered to be a maintainer of Script Loader and everyone cheered! Thank you Ozz! Discussion also took place on the collective noun for multiple Ozz, as it would be greatly appreciated to have more of them to help maintain some of the above components. 🙂

Please comment below this post if you are interested in any of the above components, or feel free to reach out to @chanthaboune if you’d rather volunteer privately.

General Announcements and Open Floor

Jonny Harris is working on a feature plugin that gives REST endpoints for menus. This is in preparation for upcoming navigation blocks, but it also serves as an excellent way of exposing menus to headless applications using WordPress. He would like some feedback on the plugin and would appreciate thoughts on considering this in the scope of 5.3. Please leave on this PR: https://github.com/WP-API/wp-api-menus-widgets-endpoints/pull/22

@presskopp mentioned a commented made here on the 5.3 call for tickets post. @chanthaboune mentioned that there is agreement and it is wrapped into the triage work from the 9 projects mentioned earlier in notes.

@bph asked, “There is a big knowledge gap that there is actually user documentation available for Gutenberg. Where would a discussion be placed best design/core-editor to surface the document within the block editor?” @aduth said that it was mentioned in a recent #core-editor chat and linked some action items from that chat here: https://wordpress.slack.com/archives/C02QB2JS7/p1558532425222200 Andrew proceeded to offer to help in creating a GitHub issues for this. @bph offered to make a post to discuss this further. More to come soon!

These notes were taken by @antpb and proofread by @chanthaboune.

#5-2-2, #5-3#devchat#summary

#5-2

Editor chat summary: 12 June 2019

This post summarizes for the weekly editor chat meeting on Wednesday, 12th June 2019, 13:00 UTC held in Slack.

Gutenberg 5.9

The release of Gutenberg 5.9, piloted by @nerrad, landed this morning. Over 40 individuals contributed, six of whom were first timers!! Some of the new features include:

  • SnackBar Notices, brief messages that disappear after a short delay,
  • the grouping/ungrouping feature that allows for grouping a number of blocks in a container, and
  • new useDispatch and useSelect APIs were added to the data module.

There were also plenty of enhancements and bug fixes, all of which were summarized in this post.

Updates

WordCamp Europe will take place next week in Berlin, Germany. As many from the group will be traveling to the event during meeting time, it was decided to skip next week’s meeting and regroup in 2 week’s time.

Gutenberg topics loom large for WCEU. In addition to a big number of sessions related to the block editor, @gziolo is leading the editor contributor table. Please stop by. The goal of the Gutenberg Triage table is to make it easier to contribute to Gutenberg. There are several tasks we can accomplish throughout the day:

  • onboard a few new contributors, collect the feedback and work on documentation improvements to make the process smoother
  • go through the list of open issues trying to identify tasks which would be an excellent fit for new contributors
  • explore how we could automate the detection of pull requests sent by new contributors to ensure they get enough support from others
  • triage issues looking for those which can be closed because they are no longer relevant, are duplicates or should be moved somewhere else

Task Coordination

  • @nerrad is refactoring a data component for editor initialization and also looking to picking up this issue.
  • @joen is working on a PR to fix quote style.
  • @jorgefilipecosta has been working on bug fixes and plans to help review @aduth PR’s related to reusable blocks refactor and use that work to solve biggest UI problems of the widget screen.
  • @aduth working through a few columns improvements
  • @mapk working to make disabled buttons in Gutenberg match Core in color and contrast
  • @gziolo updated Block Registration API RFC waiting for final approval.
  • @xyfi no follow functionality in Gutenberg.
  • @youknowriad will be publishing packages to npm and also working on bringing motion to the block reordering, refactoring to the way we handle “post-meta” attributes and the `re-resizable` dependency to support “snaps” when resizing images

Open Floor

  • @garrett-eclipse raised a question around capitalization standards.
  • @mapk created the Issue to gain greater exposure, consensus, and acceptance of capitalization conventions.

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

See you all in WCEU and for the others, rendez-vous in two weeks for the next editor chat.

Please Note: the agenda for the next meeting, two weeks hence, 26 June 2019 13:00 UTC is here, please add anything you want to discuss.

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

REST API Chat Summary: June 6, 2019

This post summarizes the weekly REST API chat meeting for June 6, 2019. (Slack transcript). Weekly REST API component office hours are held every Thursday at 18:00 UTC in the #core-restapi room in the Make WordPress Slack.

Supporting object & array types in register_meta()

Currently, register_meta() only supports the string, number, integer, and boolean types. #43392 proposes adding support for object and array types as well. This is particularly useful for Gutenberg blocks that save to post meta.

A preliminary patch has been added. There are a number of open questions. The main point of discussion was around how strict the REST API should be about ensuring that the current meta value is valid according to its registered schema. This is enforced in the Settings controller (which supports object and array types, but is not currently in the Meta Fields controllers.

It was decided to explore adding this validation to the Meta Fields controller. However, more feedback and comments would be appreciated. In particular from Gutenberg block authors who want to persist data to post meta.

Menus Route

@wpscholar and @spacedmonkey have been working on a menus REST API route. This is being tracked in #40878 and actively developed in the WP-API Github organization.

Scheduling a time to chat with the Gutenberg team working on Navigation would be highly valuable to explore how Gutenberg could make use of the route.

Bug Scrub

There are a number of tickets without a reply in the component. We’d like to schedule a scrub to go through this list next week. Previous secondary team meetings occurred on Tuesdays at 18:00 UTC. The next team meeting is on Thursday, June 13 at 18:00 UT where a final date and time will be decided.

#rest-api

JavaScript Chat Summary, June 11, 2019

Below is a summary of the discussion from this week’s JavaScript chat (agendaSlack Transcript)

Have a topic for discussion for the next meeting? Leave a suggested edit on next week’s agenda.

Component Props Documentation

Slack Conversation

Question: How can we eliminate human error from components documentation?

Context: @dsifford‘s recent pull requests can sort of speak for themselves so far as demonstrating the current inaccuracies in components documentation. He’s discovered them while working on type definitions added to DefinitelyTyped for @wordpress/* packages and he’s tracking progress on Trello board. If anyone is interested in helping the effort let us know.

Options discussed:

  • Improve current JSDoc documentation.
  • Add support for React.PropTypes.
  • Introduce TypeScript.

Action items:

Open Floor

Slack Conversation

Some of us are traveling to WordCamp Europe next week, so we agreed to cancel the meeting planned for next Tuesday and pick up again on June, 25th.

#core-js, #design, #javascript

What’s new in Gutenberg? (12th June)

More than 40 contributors participated in this Gutenberg release. 6 of them submitted their first PR to the repository.

Some very important improvements to the Block Editor UI landed in this release. A new type of notices called Snackbars has been introduced.

A Snackbar displays a succinct message that is cleared out after a small delay. It can also offer the user options, like viewing a published post but these options should also be available elsewhere in the UI.

For a distraction-free experience, all the notices used in the editor to inform about the post saving/publishing, reusable blocks creation and updates have been updated to use this new type of notices.

Snackbar Notices

This release also adds the grouping/ungrouping feature that makes it easy to select a number of blocks and group them inside a container block.

An important usability change has been made to how nested blocks are selected. Now you click through each layer to reach the deepest nesting level, making it easy to configure each block along the way.

From a developer perspective, this version introduces useDispatch and useSelect APIs to the data module. If you’re building custom plugins relying on the data module, make sure to check out the dedicated post.

5.9

Features

Enhancements

Bug Fixes

Various

Documentation

Mobile

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 5.9.0 4.9s 66.3ms
Gutenberg 5.8.0 4.8s 62.8ms
Gutenberg 5.3 (WordPress 5.2) 5s 58.4ms
Gutenberg 4.8 (WordPress 5.1) 7.6s 147.9ms

👏 Kudos to all the contributors. Thank you.

#core-editor, #editor, #gutenberg

XML Sitemaps Feature Project Proposal

While web crawlers usually discover pages from links within the site and from other sites, sitemaps supplement this approach by allowing crawlers to pick up all URLs included in the sitemap and learn about those URLs using the associated metadata.

Today, WordPress core does not generate XML Sitemaps by default, affecting a high number of WordPress websites search engine discoverability. 4 out of the top 15 plugins on WordPress plugin repository currently ship with their own implementation of XML sitemaps, pointing to a universal need for this feature and a great potential to join forces.

This post proposes integration of XML Sitemaps to WordPress Core as a feature project. The proposal was created as a collaboration between Yoast*, Google** and various contributors.

Proposed Solution

In a nutshell, the goal of the proposal is to integrate basic XML Sitemaps in WordPress Core and introduce an XML Sitemaps API to make it fully extendable. Below is a diagram of the proposed XML Sitemaps structure:

XML Sitemaps will be enabled by default making the following content types indexable

  • Homepage
  • Posts page
  • Core Post Types (Pages and Posts)
  • Custom Post Types
  • Core Taxonomies (Tags and Categories)
  • Custom Taxonomies
  • Users (Authors)

Additionally, the robots.txt file exposed by WordPress will reference the sitemap index.

Developers

An XML Sitemaps API will be introduced as part of the integration allowing extensibility. At a high level, below is a list of the ways the XML Sitemaps may be manipulated via the API:

  • Add extra sitemaps and sitemap entries
  • Add extra attributes to sitemap entries
  • Provide a custom XML Stylesheet
  • Exclude a specific post type from the sitemap
  • Exclude a specific post from the sitemap
  • Exclude a specific taxonomy from the sitemap
  • Exclude a specific term from the sitemap
  • Exclude a specific author from the sitemap
  • Exclude a specific authors with a specific role from the sitemap

Non Goals

While the initial XML Sitemaps integration will fulfill search engines minimum requirements and cover most WordPress content types, below is a list of features which will not be included in the initial integration:

  • Image sitemaps
  • Video sitemaps
  • News sitemaps
  • User-facing changes like UI controls to exclude individual posts or pages from the sitemap
  • XML Sitemaps caching mechanisms

i18n

The XML Sitemaps will leverage standard internationalization functionality provided by WordPress core.

Since there are plans by WordPress leadership to officially support multilingual websites in WordPress, the XML Sitemaps will be flexible enough to list localized content in the future as per web development best practices.

What’s next?

Your thoughts on this proposal would be greatly valued. Please share your feedback, questions or interest in collaboration by commenting on this post. After that we can decide on how to best proceed with this proposed project and set up a meeting on Slack to kick things off.

* @joostdevalk, @omarreiss, @jonoalderson, @herregroen

** @swissspidy @albertomedina @westonruter @flixos90 @tweetythierry

#feature-plugins, #feature-projects, #proposal, #seo

Dev Chat Agenda: June 12

Here is the agenda for the weekly devchat meeting on Wednesday, June 12, 2019, 2000 UTC.

  • Announcements
  • Upcoming Releases Discussion
    • Point release
    • Major release
  • Calls from component maintainers
  • Open Floor

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

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

#agenda, #devchat