JavaScript Core Chat Summary: 14 July 2020

This is a recap of the 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/. CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. chat held on Tuesday, July 14, 2020, 14:00 UTC. You can read the full meeting discussion here in Slack

@adamsilverstein hosted

There were no agenda items for today, so @adamsilverstein moved straight to the open floor

Open floor:

  • @adamsilverstein plans to publish the JavaScript Core team blogblog (versus network, site) post this week
    • You an view this post on ASBlocks here
    • The plan is for this to be “evergreen” and linked from our meeting record and 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/. room
  • @mkaz shared in issue he’s been trying to figure out here. Any feedback or suggestions to resolve it are welcome.

@adamsilverstein closed meeting after 25 minutes.

Next chat is on Wednesday, July 21, 2020, 14:00 UTC in the #core-js channel on Slack.

Weekly JavaScript news round up

  • The 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) team notes from the July 3rd meeting have been posted.
  • A pull was recently merged for the @wordpress/env package that adds support for environment specific options. Also some work has started in the package for improving environment start speed.
  • A pull was merged with some small performance tweaks round usage of useSelect. Note to teams, the pull description has a great reminder from Riad about performance considerations when using this interface.
  • The core editor chat summary notes for July 8th were published.
  • The core css chat summary notes for July 2nd were published.
  • Gutenberg 8.5 was released. Highlights include: drag and drop improvements, accessibility improvements, and an easy upload tool for external images.
  • WordPress 5.5 Beta 1 was released. If you haven’t already, you may want to update your development sites to start testing against the next great WordPress releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software.!
  • It’s now possible to add plugins to the Block Directory.
  • A dev notedev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include: a description of the change; the decision that led to this change a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. was published about new CSS styles for buttons with disabled state coming in WP 5.5.
  • The notes for the core js chat on July 7th were published.

#javascript, #meeting-notes

JavaScript Core Chat Summary: 07 July 2020

This is a recap of the 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/. CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. chat held on Tuesday, July 7, 2020, 14:00 UTC. You can read the full meeting discussion here in Slack

@nerrad hosted

There were no agenda items for today, so @nerrad moved straight to the open floor

Open floor:

  • @youknowriad has opened a PR for this ticket to bring the CSSCSS Cascading Style Sheets. variables support on 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/ into Core, and is hoping it can be ready for 5.6. Feedback and testing is welcome
  • @gziolo mention that thanks to @aduth we now have the ability to lazily import a module, installing it automatically if missing.
    • @adamsilverstein discussed the implications of lazy importing a module and how that might change the structure of code in GB and elsewhere
    • @gziolo pointed out that this is meant for non-production code with many dependencies installed, so the idea was to install them on demand
  • @gziolo is exploring a way to provide a local path when you want to import something that isn’t a package name
  • @gziolo is also continuing work started on 3rd party templates for Create BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. based on prior work from @fabiankaegy and has run into an interesting challenge. Suggestions and feedback welcome.
  • @mkaz raised an issue he’s run into twice now  related to the static analysis failing on a commit.
    • this can be viewed on a live PR here
    • a lengthy discussion following with @nerrad summarizing the problem as follows: Gutenberg has a GithHub action check that ensures the package-lock.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. file is not changed when npm install is run. Since the Gutenberg project is set to require the latest version of npm, whenever a new version of npm is released, that could cause this check to fail and the fix is to commit a regenerated package-lock.json using the latest npm version.
    • Possible workarounds for this were discussed, including documenting the problem in the “testing docs” by @youknowriaad and raising the issue in the npm 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. tracker by @gziolo
    • @aduth also referenced an earlier discussion on the topic

As there were no other open floor items, @nerrad closed meeting 5 minutes to the hour

Next chat is on Wednesday, July 14, 2020, 14:00 UTC in the #core-js channel on 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/..

Weekly JavaScript news round up

#javascript, #meeting-notes

JS Core Summary: 23rd June 2020

@adamsilverstein hosted

today’s agenda: “Consider whether we should start using ESLint rules to recommend vanilla JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. functions”

@zebulan brought up that there are a lot of Lodash functions that provide little benefit over native JS equivalents, and in a lot of cases, the only difference is how nullish values are handled.
@adamsilverstein provided for reference: https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore After discussing concerns, it was concluded that most issues were about style rather than dependencies. Action Item: Zeb will open an issue on the 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/ repository proposing specific linting or prettier rules.

open floor:

@gziolo shared a PR, to makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). registration of component related filters to work nearly the same as you would do it now for SlotFill. https://github.com/WordPress/gutenberg/pull/22185  https://wordpress.slack.com/archives/C5UNMSU4R/p1592921896081600

Adam & Grzegorz discuss the details of the PR, which includes the differences of filters and SlotFill. Side questions bring up the Gutenberg equivalent to php WordPress HooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. (actions & filters). It was, also, mentioned how we could we register blocks as components.

@zebulan brought up the topic: Thoughts on usingTypeScript in WP?
It was mentioned that there is currently support for it. The way we’re doing that now is through JSDoc comments, which the TypeScript compiler parses.
eg https://github.com/WordPress/gutenberg/pull/18942
#18942 Build: Output package type declarations
 https://github.com/WordPress/gutenberg/issues/18838
There is also recorded stream where @aduth shows how to add types to WordPress package.

Announcement:
@gziolo shared: https://github.com/WordPress/gutenberg/pull/22714 – we should see Gutenberg Mobile merged into Gutenberg repository later this week, which received a warm round of positive responses.
@gziolo continued, there are 3 new WordPress packages – private for now (no publishing to npm). The best part is that it will be possible to run the demo apps (iOSiOS The operating system used on iPhones and iPads. and Android) inside Gutenberg.

@adamsilverstein closed meeting on the hour

#core-js, #javascript, #meeting-notes

Editor Chat Summary: 17th June, 2020

This post summarizes the latest weekly Editor meeting (agenda, slack transcript). This meeting was held in the #core-editor SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel on 2020-06-17 14:00 UTC and was moderated by @annezazu.

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/ version 8.3

Gutenberg 8.3.0 was released last week. Update your sites and check out what’s new. We’re experimenting with new ways to organize the makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). post, so any feedback you may have is welcome!

Monthly Plan

There was limited discussion on the specifics of the current monthly priorities. As a reminder though, WordPress 5.5 betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. is less than a month away! Last week @ellatrix created this board with must-haves and priorities for 5.5. If anyone has the capacity to help, please jump in there.

Task Coordination

Note: Anyone reading this summary outside of the meeting, please drop a comment in the post summary, if you can/want to help with something.  Remember: don’t just focus on code contributions!

@zebulan

  • Working on PRs to get the 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. polished and to resolve some confusing behavior including making the block’s editor DOM match the front-end more.
  • Need technical help to proceed with this Buttons Block PR. Help with this should also help land a PR from @nfmohit to add a vertical option for the Buttons block.
  • Continuing to make progress on the Heading block heading level validator PR. Currently stuck trying to figure out how to prevent the dropdown from automatically closing when one of the heading level options is clicked.

@nosolosw

  • The releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. took quite a bit of bandwidth over the last week!
  • Outside of the release, a major focus was preparing presets for line-height and padding (and adapting the UIUI User interface controls accordingly).
  • Next week, I’ll carry on that presets for line-height and padding work, and hope to help porting to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. for 5.5. 

@mcsf

  • Reviewing a bunch of stuff!
  • Trying to weigh in/unblock a variety of discussions from FSE, design tools, block context, and more.
  • In close contact with @ellatrix to see how I/we can help her in her 5.5 editor lead role.

@youknowriad

  • Worked on improvements to Popover behavior.
  • Updated the colors used in Gutenberg components to rely on CSSCSS Cascading Style Sheets. variables.
  • Opened a PR to expand anchor support to all static blocks.
  • Working on the quick inserter.
  • On my mind to work more on stabilizing e2e tests.

@itsjonq

  • Focused mainly on Design Tools.
  • Looking over issues (feature requests) and researching external designs/experiences to see how we could improve these tools.
  • So far, most applications of design tools have centered around the Cover block. Under the hood, there’s been work to unlock/enable customizations to other blocks though. Approaching it more like APIs, rather than ad-hoc enhancements

@sageshilling

@itsjusteileen 

@mkaz

  • A follow up from last weeks discussion around Documentation, the 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.) was switched back to master, so published Gutenberg docs are now top of tree. Exploring ways to create a version switcher. Thanks @coffee2code for the assist in ticket #5266.

@michael-arestad

  • Reviewing issues/PRs for 5.5. Please 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.” me if there’s an issue/PR planned for 5.5 that needs design feedback/review/help.
  • Starting in again on designing flows for creating new templates. – might be good for a zoom jam (stay tuned).
  • Proposed an iteration on the reusable block (and template part) UI.
  • Updated the e2e prototype and got good feedback. The next iteration will be broken up into specific flows.

@ntsekoura

  • Worked on a merged PR about consolidating disparate “copy block” actions, when we copy from keyboard and when copy from Block Toolbar.

@ella

  • Focused on figuring out what things need to happen for WP 5.5 Beta, and helping out where I can. Looks like navigation and 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. screens are unlikely to be included given the time that’s left. I’m optimistic about including the currently experimental image editor, but there’s still quite a few things to do.
  • Going forward, will make sure remaining issues are tracked and worked on. Note that any refinements also need to be included before 5.5 Beta as afterwards we only backportbackport A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. regressions.

@poena

  • Stuck on the former FSE post categories / now hierarchical taxonomy block because I don’t know how to get the custom taxonomies that a post (or 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.) uses. This was flagged for dev help!

@gziolo

  • Worked on server side rendering for blocks – block.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. + 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/. + register_block_type_from_metadata.
  • Worked on 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 and enhancements for npm packages with tooling – wordpress/scripts, wordpress/create-block and other, lots of reviews for work done by @ocean90.

@noisysocks:

  • Working on the Navigation screen, specifically picking up #22656 again which lets you add Search blocks alongside Link blocks.

@annezazu

  • Working on resources for the FSE outreach program (will be dropping drafts for the group to review this week in #fse-outreach-experiment), doing triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. focused on needs-testing, and trying to do my own testing with the Gutenberg experiments (found this fun bug).

Open Floor

Is there any interface for a theme to supply a list of classes that could be used as a datalist for the Block 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. Advanced class input? Raised by @joyously.

For greater context, @joyously is looking for a user to be able to put theme-supplied classes into the Advanced class input box. @youknowriad jumped in to provide context. The closest solution offered was “style variations”. However, you can’t apply multiple styles at the same time or use custom classNames instead of style-*. Both of these suggestions have related issues right now.

Next Step: @joyously can chime in on related GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ discussions around style variations. There’s this main issue here for allowing custom style classNames and a general list of style variation themed issues.

Introduction for the media for block editor proposal. Raised by @sageshilling.

This will be about a year and a half project. If you’re curious to see what’s being proposed, you can see the initial proposal here in #core-media. While there were some questions and concerns raised including making sure this is built step by step within the Gutenberg Repo, this was meant purely as an initial introduction with more information to come in future meetings.

Next step: @sageshilling will share more information in the #core-media meeting tomorrow and in the comments of this post as necessary.

A reminder to not ignore intermittent test failures with e2e tests and to make tests even more robust when possible. Raised by @youknowriad.

I just wanted to share that end 2 end tests has not been very stable lately. And very often when we have an instability we have a tendency to think: oh it’s not related to my PR, so we just restart the test until it passes and forget about it. I have been guilty of doing so myself and I’d like to encourage the regular contributors to “stop” ignoring these intermittent test failures and when possible take time to debug and make the tests more robust even if not directly originating from our own PRs.

Why was the decision made to not have width and height attributes specified at all times for images? Raised by @flixos90.

Recently, @flixos90 opened a trac ticket around specifying missing width and height attributes for images in WordPress. Right now, not having these attributes defined causes an increased amount of layout shifting as images are being loaded. Historically, the classic editor has always provided these attributes, so the user experience has somewhat regressed with Gutenberg in that sense. Gutenberg only provides these attributes in the core/image block when the image is resized.

While there was some discussion here, we agreed this issue seems to have a lot of history and no one in the meeting could answer with certainty.

Next Step: @flixos90 is going to open up a GitHub issue to open up the conversation to see if greater historical information can be found and a way forward can be worked on.

How to resolve issues with Gutenberg.run? Raised by @itsjusteileen.

Right now, there are some issues with getting gutenberg.run, a PR testing tool, to run (pun intended).

Next Step: @itsjusteileen is going to open an issue in the Gutenberg.run repository.

What do people think of the idea of an ESLint pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party to discourage the use of some (but not all) Lodash functions when there’s a close vanilla JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. equivalent? Raised by @zebulan.

There were varying opinions and ideas thrown out including the thought that perhaps this isn’t worth optimizing for. There are a few ESLint plugins of this sort already that could be explored. Generally though, this topic was out of scope for this meeting.

Next Step: @zebulan added this to the agenda for #core-js meeting next week as this is a better spot to discuss this question.

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

JavaScript Chat Summary: Tuesday, June 16, 2020

Below is a summary of the discussion from this week’s 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/. chat (agendaSlack transcript).

Have a topic for discussion for the next meeting? Leave a comment with a suggestion.

Administrative: Meeting Hosts

Darren Ethier @nerrad and Jonathan Bossenger @psykro have volunteered to help lead the JavaScript chat each week. Responsibilities as outlined by @adamsilverstein are: show up, announce meeting, guide conversation through agenda, end on time, create next week’s agenda. Adam will create a shared calendar and continue to coordinate the meetings.

The team is still need of volunteers to help take and publish weekly meeting notes. If you have some availability and want to get more involved in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. JavaScript, please leave a note in the comments. Your help is much appreciated.

Team Documentation

The team discussed the various pieces of documentation about our work and where they live. We have a GitHub project with links, a Google drive folder with Agendas and a document for note takers.

Everyone agreed it would be great to have a single public page somewhere (ideally on make.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//core) that described our work and linked to all the relevant places.

Since JavaScript is a focus and not a component, the current sitesite (versus network, blog) structure doesn’t have a clear home for the team. Adam offered to bring up the topic at the core dev chat to ask about the best location for a new page.

NPM Package Publishing

Greg (@gziolo) summarized the current state of WordPress npm packages:

  • We maintain over 70 packages on npm: https://www.npmjs.com/org/wordpress.
  • We develop all the packages on GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ 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/ repository: https://github.com/WordPress/gutenberg/tree/master/packages.
  • The same packages are used in WordPress core and that’s why we have the releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. timeline tied to both release schedule of Gutenberg pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party and WordPress core.
  • We try to release to npm every 2 weeks, at the time when the new Gutenberg plugin is published.

Discussion continued around who should get access to publishing npm packages and the best way to time the releases.

Currently only a small number of people have access to publishing packages. One suggestion was to expand this to include all core committers and Gutenberg core team members who are already highly trusted contributors. No final decision was made.

Andrés (@nosolosw) published the packages for the first time recently and offered this feedback:

  • It’s fairly automated, although there are parts that could see some improvement.
  • Challenging when you try to backportbackport A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. to master the package’s changelogs from the release 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". wp/trunk . In this case, there may be conflicts.

One way to address this would be:

  • At time of plugin RC: we also release the RC version of packages (this could be done by using the next dist-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.) or something along those lines)
  • At time of plugin release: we release the stable version of packages.

@nosolosw offered to look at what other projects do to come up with the best approach.

#core-js, #javascript, #meeting-notes

Devchat meeting summary – June 10th, 2020

@whyisjake led the chat on this agenda.

Highlighted/Need Feedback Blogblog (versus network, site) Posts

@whyisjake shared a few blog posts and announcements:

Upcoming releases

WordPress 5.4.2

WordPress 5.4.2 was planned to be released Wednesday 10th after the devchat (and successfully shipped with the help of our amazing contributors). This version includes six security fixes and many 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. More details about what is inside can be found on the version page.

WordPress 5.5

@pbiron reminded that three feature plugins will be included in WordPress 5.5. Lazy loading of images, themes, and plugins, auto-updates, and XML sitemaps.

Some tickets for enhancements/features will need some help, testing, or feedbacks before 5.5 BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 (targeted date: July 7th, 2020): #40351, #41750, #33161, #47456, #43738.

@audrasjb mentioned some other tickets on which the 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) team needs help and feedback. #49459 and #49651 need Editor team feedback and #30155, #47120 and #48170 will need feedback and expertise from the Media team.

@paaljoachim said he’s working on #16020 and would need some feedback on it.

Open Floor

@enricosorcinelli mentioned that #21676 got some new attentions, and could be a possible candidate to ship in 5.5.

@adamsilverstein reminded the group that the #core-js team is looking for an additional person to help run the weekly 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/. chat. The chats take place Tuesday at UTC-06:00 in #core-js. Feel free to say in the channel in the next meeting if you’re interested in that.

@justinahinon said that he reached out to people interested in helping on hosting APAC devchats proposed here. There is a plan to discuss in the #core channel about the outcomes of the meetings and a possible schedule (a note about that will be published soon on Makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility)./CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blog).

Related to that, @yvettesonneveld shared what they have been doing for marketing coffee breaks and that was very helpful in recruiting and retaining contributors. Updates for this can be found here.

@jeffpaul proposed some additions to the Releasing Major Version and Glossary handbooks. These additions are about the early ticketticket Created for both bug reports and feature development on the bug tracker. definition and how they are handled during the releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. process. This is a result of discussions at WCEU Contributor DayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/. and received helpful feedback from @davidb, @desrosj, and @joemcgill. Some contributors had a discussion about that, and you can rollback to here to follow.

@enricosorcinelli reminded that they are some tickets that have been milestoned for each release since 5.0 but hadn’t received any attention in their life cycle. These are #43516, #43517.

This closed the devchat discussions to leave room for WordPress 5.4.2 release party.

#5-4-2, #5-5, #summary

JavaScript Chat Summary: Tuesday, June 2, 2020

Below is a summary of the discussion from this week’s 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/. chat (agendaSlack transcript).

Have a topic for discussion for the next meeting? Leave a comment with a suggestion.

Administrative: Meeting Hosts

@aduth announced he would not be able to host the next chats. @gziolo stepped in and volunteered to host some of the next chats.

Participants in the chat gave thanks to @aduth for hosting many meetings during the last years. Thank you @aduth!!

@gziolo mentions he is going to take three months leave starting in July. That makes us in need of volunteers to run the chats and take notes.

If you have some availability and want to help the next coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.-js chats happen, please leave a note in the comments. Your help is much appreciated.

Prettier 2.0 upgrade

Prettier 2.0 major version upgrade has now been merged https://github.com/WordPress/gutenberg/pull/22610.

The upgrade brings some code changes:

// Before
var doFoo = function() {}
// After
var doFoo = function () {}

There are not many of these cases 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/ because we mostly use arrow functions. But @aduth referred we need at a minimum that the few code samples in the coding standards be updated to the new syntax.

@adamsilverstein volunteered to work on this task. Thank you!

ESLint 7 upgrade

@ocean90 has opened a pull request seeking to do a similar major version upgrade for ESLint, to v7.1.0. https://github.com/WordPress/gutenberg/pull/22771.

@gziolo said the just needs testing, code-wise it looks great.

@ocean90 said we just need a final decision on how to proceed with the new warnings/errors and volunteered to fix as many errors as possible after the merge.

End-to-end test lifecycle utilities

We are facing a problem because the paired test lifecycle “set up” and “tear down” can be error-prone if managed manually as described in the issue https://github.com/WordPress/gutenberg/issues/22804. The issue contains a proposal to create abstraction utilities that manage the full lifecycle.

Participants in the chat talked a little bit about the proposal. It was generally received well, and the conversations will continue on the issue. If you have some thoughts on the subject, feel free to check the issue and leave a comment or help implement the concept.

#core-js, #javascript, #meeting-notes

JavaScript Chat Summary: May 26, 2020

Below is a summary of the discussion from this week’s 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/. chat (agenda, Slack Transcript).

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

(Note: There were no suggested agenda items for this week’s meeting, so an open floor was held instead)

Open Floor

Several updates were shared:

@adamsilverstein notes that WordCamp Europe Contributor Day is fast approaching, and shared a link to a post which describes “What To Know” for experienced contributors and team facilitators. Adam will volunteer to help lead a JavaScript team, and would appreciate any others to express interest in helping to lead or participate.

#core-js, #javascript

JavaScript Chat Summary: May 19, 2020

Below is a summary of the discussion from this week’s 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/. chat (agenda, Slack Transcript).

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

Dependency Group Comment Blocks

(Slack conversation)

Pull request: https://github.com/WordPress/gutenberg/pull/21730

Proposal:

Let’s use /* multi-line comment instead of /** JSDoc.

Rationale:

/** risks being interpreted as the JSDoc documentation of the first import in a grouping, especially in the case of variable assignment. Some examples: TypeScript (editor integrations, etc), @wordpress/docgen automatic documentation.

Action items:

  • @aduth will double check to see if the ESLint rule at least allows for this convention. If not, update to allow.
  • Documented examples could be updated to promote this pattern.
  • At some point, do a mass conversion of comments.
  • Finally, maybe consider to forbid the /** convention.

CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. project on GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/

(Slack conversation)

There is now a project board for Core JS tasks. It should include primarily framework tasks, the sorts of items we might want to discuss in the weekly meetings.

We also briefly discussed a few distinct tasks which could use some attention. New issues to work on:

Final check needed for:

  • Review CSSCSS Cascading Style Sheets. support for build – PR #21730.

News Roundup

This roundup contains a few links for 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/ and JavaScript related news curated (and commented on) by @nerrad.

  • Justin Tadlock offers some thoughts on where Gutenberg went wrong: Theme developer edition.
  • I somehow missed a gem of a post written by Matías back in April. He does a good job of providing some context to answering some of the questions out there regarding the direction of WordPress theming in the future. Read his post, Thoughts on Themes.
  • Gutenberg 8.1 has shipped. Highlights are: a new pattern search to makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). it easier to insert the desired pattern, a new testimonials pattern, and a new 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. action for copying single or multiple blocks. You can read the WPTavern’s take on this release here.
  • The recent Gutenberg Phase 2 Friday Design Update #53 shares some interesting updates on the Query block, the Block Navigator, Welcome guide, the “What’s new Modal”, and Template parts.
  • Speaking of templates, Envato launches a template kits marketplace for Elementor.
  • NPM 7 is getting some interesting new features including workspaces.
  • Next.js 9.4 is shipped. Notably, the inclusion of the new ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. Fast Refresh feature.
  • ESLint v7.0.0 was released.
  • Tom MacWright’s article Second-guessing the modern web has been making the rounds. There’s a counterpoint article by Rich Harris, “In defense of the modern web” (h/t @mkaz). I’m still processing both articles, there’s much I agree with in both, but much I’m shaking my head with too. As with everything in the development world, it’s hard to present a compelling argument while avoiding painting too broad a brush. As with all things coding, a good argument often includes some variation of “it depends”. My oversimplified hot take/response from/to all this? Frameworks are still evolving. By the way, is it just me, or does it seem like posts/controversies like this seem to surface every two years or so?
  • React recoil is public. Facebook’s take on a state management library for React. It’s intriguing to me, the tight integration with React itself suggests some really nice performance improvements over most other state management packages. In particular, how it handles asynchronous behavior seems really straightforward (and nicely integrates <Suspense> for handling pending state – which isn’t required).

#core-js, #javascript

JavaScript Chat Summary: May 12, 2020

Below is a summary of the discussion from this week’s 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/. chat (agenda, Slack Transcript).

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

@wordpress/scripts CSSCSS Cascading Style Sheets. support

(Slack conversation)

Pull request: https://github.com/WordPress/gutenberg/pull/21730

Discussion topics:

  • There was surprise that this wasn’t already supported.
  • The pull request will add a new package @wordpress/postcss-plugins-preset, which would provide a default set of WordPress’ preferred PostCSS plugins configuration.
    • Similar to @wordpress/babel-preset-default@wordpress/jest-preset-default@wordpress/prettier-config
  • Question: Was there any consideration for CSS-in-JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.? (styled-components)
    • Needs clarity on desired end-goal
    • Still valuable for 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 regardless, if it’s easy enough feature to simply not use if they’d prefer to use an alternative approach.
  • Advantages: Dead code elimination and bundle splitting for CSS
  • It was suggested to request feedback from the CSS group

Action items:

@wordpress/create-block third-party templates

(Slack conversation)

Pull request: https://github.com/WordPress/gutenberg/pull/22175

Discussion topics:

  • It could help to support flexibility of third-party templates, in order to alleviate pressure for first-party templates to support all features.
  • Concern: Is it the purpose of the tool to support third-party templates? If so, why not use something like Yeoman?
    • Counter-point: It’s not unlike Yeoman, but utilizes NPM’s own npm init <initializer> functionality. They’re comparable, but it’s not necessarily a criticism.
    • Suggestion: Focus less on third-party template flexibility, more on first-party “knowledge of blocks”, including additional commands and customizations.
    • Point of contention: Should customizability come from third-party templates, or first-party support?

Action items:

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

(Slack conversation)

Topic: Should the block editor provide a stable way to connect server and client data? For example, associate posts to blocks using post metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress..

Additional context can be found in the agenda document.

Discussion topics:

  • Question: Is this suggesting some value saved in post meta which corresponds to individual blocks of a post?
    • Answer: Yes
  • Question: What’s the use-case? Is there an example?
    • Answer: It’s needed for the image block.
  • It might be something which is fine to have an ad hoc implementation specific to one or a few blocks, if it’s not a common requirement.
  • Concern: Duplicating data can risk desync (see related post)

Action items:

  • Create an issue which describes the use-case and requirements (Owned by: @sageshilling)

Open Floor

Miscellaneous Updates

@aduth shared a number of updates from the past week:

The coding guidelines documentations we discussed last week are most all merged:
https://github.com/WordPress/gutenberg/pull/22090
https://github.com/WordPress/gutenberg/pull/22030
https://github.com/WordPress/gutenberg/pull/22029

That last one prompted the idea for a new ESLint rule, currently in progress, but potentially blocked on the fact that there appears to be legitimate cases for wanting the “gotcha” behavior.
https://github.com/WordPress/gutenberg/pull/22041

Now pinning .nvmrc to specify Node version 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/, to avoid issues when running on older branches:
https://github.com/WordPress/gutenberg/pull/22236
(As far as I know, CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. does the same)

ESLint 7.0 was released the other day, which notably includes an interesting feature to allow comments within the inline configuration 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.)
https://eslint.org/blog/2020/02/whats-coming-in-eslint-7.0.0
Example:
/* eslint-disable no-new -- this class has a side-effect in the constructor. */
Very relevant for this previously-suggested rule proposal: https://github.com/WordPress/gutenberg/pull/16795

@sageshilling shared features announced in Next.js 9.4.

News Roundup

This roundup contains a few links for Gutenberg and JavaScript related news curated (and commented on) by @nerrad.

#core-js, #javascript