What’s new in Gutenberg? (June 23rd)

Released version 0.1.0 in the plugin directory last week. 🎉

Releasing version 0.2.0 today, which includes all the following changes:

We welcome all your feedback and contributions on the project repository, or ping us in #core-editor. Check the “gutenberg” tag for past updates.

#core-editor, #editor, #gutenberg

Dev Chat Summary: June 21st (4.8.1 week 1)

This post summarizes the dev chat meeting from June 21st (agendaSlack archive).

4.9 ideas and brainstorm

  • No immediate 4.9 timeframe, but the planned timing for 4.9 will come shortly after we confirm the major focuses of 4.9 and will be closer to 3 months than 9 months in duration
  • @jorbin: Scheduled customizer changesets going live could be a big win
  • @westonruter: adding statuses for changesets: being able to draft a changeset to come back to later, and then to be able to schedule it to go live.
  • @youknowriad: We have some REST API needs in Gutenberg:
    • Retrieving The permalink using the API (making more things available from wp-json/wp/v2/settings)
    • An API endpoint to save/get random settings (we’d use it to save some layout options)
  • @androb: Expanding link boundary behavior in TinyMCE to other inline elements
  • @androb: TinyMCE has a new mobile-optimized UX that will also result in a responsive toolbar, this should land in the 4.9 time frame
  • @androd: tweak the TinyMCE UI to be closer to Gutenberg (e.g. toolbar color, default font) to get users used to the Gutenberg UI before releasing that in WordPress 5.0
  • @saracannon: look at customizer revisions in a way that we might want to look at Gutenberg revisions in the future from a visual standpoint and start making progress there (@melchoyce: see mockup for customizer revisions on #21666)
  • @melchoyce: code editing improvements across core — CSS editing, the plugin/theme code editor, etc. Making it better to use and harder to mess up and break your site (see #31779)
    • @clorith: As soon as we do this, we need to handle the issue of lacking forked plugins, lacking child theming etc
    • @westonruter: add a warning to encourage people to be aware of the dangers of editing code without version control (see #41078)
  • @melchoyce: evisions for everything – Customizer revisions, page/post revisions, code editor revisions…
  • @hugobaeta: reduce the amount of declared colors (namely shades of gray) in the admin, more info on codepen and a little backstory on this flash talk at WCUS last year
  • @melchoyce: some in-progress tickets for improving theme switching: #39692, #39693
  • @melchoyce: also Customizer menu improvement – #40104
  • @melchoyce: automated testing in place for theme switching (@netweb to work on this)
  • @melchoyce: making “page on front” less confusing (again)
    • @westonruter: harmonizing with menus and page hierarchies. Merging those concepts together
  • @melchoyce: finish the gallery widget (@m1tk00 to work on this)

4.8.1 agenda

  • @westonruter: resolve text widget removing code issue (see #40951) alongside implementing HTML code widget (see #40907), three options proposed, one recommended
  • a11y bug-scrub will happen next Monday, will focus on 4.8.1 milestoned tickets
  • approaching 4.8.1 tickets as more traditional regression types of issues
  • Tentative timeline for 4.8.1 last week of July

#4-8, #4-8-1, #4-9, #core, #dev-chat, #summary

WCEU & Weekly Multisite Chat Summaries

During lunch at WordCamp Europe, there was an informal discussion with some contributors who have an interest in multisite. This post is meant to summarize those discussions and create a plan for organizing and improving the multisite component moving forward.

Present for discussions: @flixos90 @stephdau @spacemonkey @desrosj

Weekly Component Dev Chats

Because all contributors cannot be present every week, there have been a few instances where deep discussions have reoccurred in consecutive weeks due to a different set of people being present. This has slowed progress, and also limited feedback to only those who can attend.

The meeting discussions sometimes veer off course to items that are not necessarily a part of the current component goals. Weekly bug scrubs have also on occasion turned into detailed discussions (more on this later).

For these reasons the following items were proposed:

  • Post a meeting agenda weekly at least one full day prior to scheduled dev chats.
  • Post a meeting summary after the meeting.

The meeting agendas will help keep the conversations on target and ensure they are productive. They will also help contributors decide which meetings they want and need to attend. If someone has anything that they would like to contribute but is unable to attend, they can post a comment on the agenda post.

The meeting summaries will help inform all who were unable to attend by communicating what was discussed. It will also help prevent discussions from reoccurring in consecutive weeks when a different set of contributors are present. Anyone can also comment on the meeting summary with any additional feedback. If there is a lot of feedback on the summary, the topic can be slated for more discussion during the following week’s dev chat.

These two things have proven effective for both the Core and JavaScript chats, and should also help the multisite component.

Multisite Roadmap

In an ongoing effort that will continue through the next couple weeks, a component roadmap is being discussed. Roadmaps are great for identifying the current problems that should be solved in a general order and establishing a direction. The roadmap should also describe why each problem needs solving with examples, and what steps potentially could be taken to reach a solution.

By listing out the goals and needs of the component in the rough order they should be tackled, dev chats can be more targetted and the component can progress more effectively.

Currently, the primary goals of the multisite component are implementing a REST API endpoint for sites and improving the user endpoint to support all multisite functionality. It is also likely that a networks API endpoint will be introduced, although that is a lower priority than the other two. Sites and networks are the only WordPress core component without a REST API endpoint.

Information Sharing

Since WordPress.com has had a Sites endpoint for quite a while now, @stephdau shared some links after the meeting with the other attendees. He emphasized that nothing there is secret and there is a desire to share information and collaborate. He also stated that much of the code is actually packaged in Jetpack.

Ticket Gardening

As of this being published, there are 160 bug tickets for the multisite component in Trac. It would be great to decrease this. As mentioned above, weekly bug scrubs occasionally turn into continuation discussions of the previous dev chat. Having specific ticket lists to work through on a given day may help more effectively manage tickets belonging to the component, gardening them into the appropriate milestones.

@johnbillion also mentioned in a separate discussion that he has an offline list of multisite bugs that he has noticed. He will be going through Trac at some point to ensure each issue has a Trac ticket (although most already do).

Follow Up

As a follow-up to this meeting, @flixos90 created a Google Doc to help collect thoughts and serve as an organizational document for the multisite component.

Weekly Office Hours

The meeting’s chat log

Attendees: @jeremyfelt @flixos90 @johnjamesjacoby @desrosj @sergey @spacedmonkey @saracannon @stephdau @earnjam

This week’s office hours were used to recap the discussions above and gather further input. @flixos90 shared the Google Doc linked above, and then discussions were had to determine if the policies roughly outlined are viable for common procedures in multisite. Eventually, after the necessary tweaks are made to the document, it will be posted on this blog and on the Networks and Sites component page. This will ensure more permanent visibility and also allow other components to possibly follow some of the ideas for their workflows as well.

Key points summarized from the document by those who were at WCEU:

  • Not repeating ourselves week to week is important. Meeting recaps will inform people who cannot attend office hours. Agendas will keep meetings focused.
  • Responsibility for creating agenda and recap posts (especially the recaps as they’re more work) should rotate between multiple contributors. This is a great way to help onboard new contributors and foster interest in the component.
  • There should be more targeted ticket lists to focus on during bug scrubs. Try to tackle the ones that relate to our roadmap goals and properly prioritize.

At times, the component does get a little slow. Even during these times, an agenda should still be posted. It was also decided that there should be one agenda post (stating the agenda for both the week’s upcoming bug scrub and office hours), and one summary per week. Having consistent agendas will help us stay on target. Establishing a roadmap as needed will also help. “The multisite group is currently focusing on these 3 things from X date to X date” could be a useful way to clearly state the current goals. This would fit well on the component page.

It was decided to change “bug scrub” to “ticket scrub” as it is not limited to discussing bugs. Also discussed was having people who can focus only on bug fixes without needing to worry about when new features will land around them. This would be very helpful to the component. Current contributors each have different strengths and utilizing these strengths effectively should be a priority.

Increased documentation around why decisions are made needs to happen. This will help future contributors understand why specific actions are taken, and why certain features are implemented how they are.

Better utilizing Trac’s “good first bug” was discussed. These tickets are very helpful for picking up new contributors and giving them a positive experience contributing to the component. Ensuring that good first bugs are in fact easy to fix is important. Good first bug tickets should not remain open for multiple releases though. Otherwise, there is a risk for a negative experience when the contribution is not immediately accepted. There was, however, some disagreement on this. Leaving easy fix tickets could be counter-productive.

There was also some post-meeting discussion about making multisite contributions to core easier. Currently, VVV does not allow a multisite install to be created using trunk. This would make writing and testing patches much easier.

Next week, @flixos90 will run office hours. @spacedmonkey will run office hours the week after that. The rough plan for office hours the next three weeks is:

  • Continued discussion on component organization and, afterward, on the sites API
  • Site meta
  • Network meta

Next week’s ticket scrub will focus on tickets without a response followed by tickets awaiting review.

To conclude the meeting, @spacedmonkey was officially approved as a component maintainer. Congratulations!

If you’re interested, please come to our meetings or leave a comment on this post with your thoughts. Multisite office hours are held every Tuesday at 16:00 UTC, while our ticket scrub is held every Monday at 17:00 UTC, both in #core-multisite. The next ticket scrub will be Monday 17:00 UTC and the next office hours will be Tuesday 16:00 UTC.

#multisite, #networks-sites

JavaScript Chat Summary for June 20th

Below is a summary of the discussion from today’s JavaScript chat (agenda, Slack transcript):

WordCamp Europe Summary

  • Contributor day drew 500 attendees and included two JavaScript-focused sessions
  • Sessions overflowing-packed, indicating huge and growing interest in using JavaScript in WordPress
  • Anyone involved in JavaScript is encouraged to consider giving a WordCamp talk to share your experience
  • During community summit, recap of framework discussion and review of recent core chats
  • Notes from Community Summit will be posted soon, including a decision surrounding the recent framework selection discussions and the rationale leading to it

Increasing JavaScript contributions in core

  • Observed very small number of contributors
  • Introduction of a new #core-js Slack channel toward goal of engaging new contributors looking to become involved in WordPress JavaScript (link to 300 open tickets)
  • Question: What factors increase developer involvement and how can we increase involvement?
  • Contributor experience: Workflow of using Trac and exchanging patches not welcoming to new generation of (JavaScript) developers using Git and GitHub
  • Gutenberg as as an example of a WordPress project being built in GitHub, easy way to become involved
  • Previous efforts relating to GitHub pull request integration with Trac (#34694, rmccue/github-to-patch)
  • Increase involvement by sharing generic modules in a WordPress modules monorepo, drawing awareness from developers engaging in these ecosystems (npm, etc)
  • In-progress side project from @atimmer to parse and publish documentation to DevHub using documentation.js
  • Lack of documentation cited as pain point for new contributors. Should improve overview-type developer guides for using and extending core JavaScript.
  • New contributors would like quick start tasks to work on. “Good First Bugs / Tasks” exist in Gutenberg and in Trac (filtered to JavaScript focus)
  • Contributions are slow to be reviewed or committed, perhaps discouraging new contributors
  • Yoast has started efforts to improve documentation for media library. We might consider moving these discussions into Trac to surface and organize them as core issues.
  • Is WordPress’s image in JavaScript communities as “old” (or otherwise undesirable) as being a deterrent? Possible solutions: Blogging about innovations, sharing useful utilities in broader JavaScript community, evolving foundation for JavaScript with efforts like Gutenberg, highlighting JavaScript improvements in release notes
  • New contributors might consider simply reviewing existing tickets, testing whether they’re still valid, taking screenshots, and commenting

Administrative

  • Weekly meeting agendas will become more minimal over time with focuses on bug scrubs and deciding larger item tickets (dates, hooks, etc)

#javascript, #summary

Dev Chat Agenda for June 21st (4.8.1 week 1)

This is the agenda for the weekly dev meeting on June 21, 2017 at 20:00 UTC:

  • 4.9 ideas and brainstorm
  • 4.8.1 agenda
  • Dev chat coordination
  • General announcements

If you have anything to propose to add to the agenda or specific items related to the above, please leave a comment below. See you there!

#4-8, #4-8-1, #4-9, #agenda, #dev-chat

JavaScript Chat Agenda for June 20th

Please join us for our weekly JavaScript Chat on June 20, 2017 at 13:00 UTC, where we will discuss:

  • WordCamp Europe recap. JavaScript was a popular topic during the events surrounding WordCamp Europe, notably last week’s Community Summit and Contributor Day. Let’s recap these discussions and the action items set forth.
  • Increasing JavaScript contributions in core. How do we increase contributor involvement in core JavaScript and the number of contributors? This is an extension of an identical discussion which had taken place during WordCamp Europe’s Community Summit.

Important! All JavaScript chats will now take place in the newly-created #core-js Slack channel. Please join us there tomorrow.

If you have anything to propose to add to the agenda or specific items related to the above, please leave a comment below. See you there!

#agenda, #core-js, #javascript

4.9 and Gutenberg

I am really happy with the 4.8 release: the potential impact on new users and community event attendance is big, and the entire community really pulled together to make it a success.

I’m sure many people are curious and anxious about the Gutenberg editor. You can of course follow along and participate on GitHub, and we’re hoping that a plugin for easy install and usage will be available soon.

I’d like to give Gutenberg some extra gestation time as a plugin, ideally getting it to 100k active sites over the next month or two, before we merge. It’ll be easier (and safer) to get people to install and auto-update a plugin than switch their sites to trunk. We could even put a promo for it in 4.8.1.

In the meantime I think we can do another user-focused 4.9 release with the theme of editing code and managing plugins and themes, doing v2s and polishing some features we brought into WP last year. Weston and Mel already have some good ideas there, and we can start to discuss and brainstorm at the Dev chat next week. This will also allow the Gutenberg-driven release to be 5.0, which is a nice-to-have but not the primary driver of this decision.

Hopefully I will see some of y’all at WordCamp EU, and regardless be sure to tune in to my session tomorrow which you can livestream from the WordCamp Europe homepage.

No Dev Chat on June 14th

There will be no Core dev chat this week due to the Community Summit and preparations for WordCamp Europe. Enjoy your week and we’ll see you next week on Wednesday, June 21, 2017 at 20:00 UTC… cheers!

#dev-chat

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

In Progress (all)

We welcome all your feedback and contributions on the project repository, or ping us in #core-editor. Check the “gutenberg” tag for past updates.

#core-editor, #editor, #gutenberg

Welcome back the latest issue of Week in Core, covering changes [40857-40877]. Here are the highlights:

  • 21 commits
  • 25 contributors
  • 43 tickets created
  • 3 tickets reopened
  • 46 tickets closed

Ticket numbers based on trac timeline for the period above. The following is a summary of commits, organized by component.

Code Changes

Administration

  • Dashboard: Better titles for the Recent Drafts widget. [40877] #37595

Build/Test Tools

  • Fix PHP 5.2 compatibility for grandchild methods which expect exceptions to be raised. [40876] #39822
  • Fixed support of PHPUnit_Framework_TestCase as the base class. [40873] #39822

Bundled Theme

Help/About

I18N

  • Improve translator comments for strings in the community events widget. [40866] #40865

Media

  • Fix an issue selecting media when clicking item edges. [40874] #40578

Misc

Networks and Sites

TinyMCE

  • Force urlencoding of commas in URLs added by plugins to prevent warnings about missing stylesheets. [40862] #40893

Thanks to @bridgetwillard, @adamsilverstein, @afercia, @azaozz, @bhargavbhandari90, @circlecube, @dimadin, @flixos90, @francina, @iandunn, @iseulde, @jenblogs4u, @johnbillion, @johnroper100, @melchoyce, @michelleweber, @obenland, @ocean90, @psiico, @rcutmore, @soniakash, @sudar, @swissspidy, @voldemortensen, and @zachwtx for their contributions!

#week-in-core