Performance team meeting summary 15 March 2022

Meeting agenda here and the full chat log is available beginning here on Slack.

Focus group updates

Announcements

@shetheliving

  • Meeting time change
    • Traditionally coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. meetings shift to accommodate for DST
    • We will adjust our meeting to its original time of 16:00 UTC after DST goes into effect worldwide on Sunday, March 25
  • Support representatives for Performance Lab plugin forum
    • @shetheliving (Google 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 support lead), @jamesosborne (who works on support for Google plugins), and @mitogh (one of the technical leads on the project for 10up) will be monitoring the support forumSupport Forum WordPress Support Forums is a place to go for help and conversations around using WordPress. Also the place to go to report issues that are caused by errors with the WordPress code and implementations. and replying to topics
    • We’re always looking for help, so if you’re interested in being designated as a plugin support representative, please reach out to Bethany

Images

@adamsilverstein @mikeschroder

GitHub project

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Site Health

N/A

GitHub project

  • We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or 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.” in 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/.
  • @furi3r: Interesting conversation in https://github.com/WordPress/performance/issues/92#issuecomment-1067312175.
    • @flixos90: Would like some more thoughts here. Like the idea of pointing out a problem where relevant, but concerned that there’s a lack of actionable guidance here. Three options here:
      1. Merge it as is regardless of the concerns
      2. Merge it as experimental for now while addressing the concerns for a follow-up release
      3. Delay merging until the concerns have been addressed
    • @furi3r: Intention was that this would be used by hosting companies and all of them have guides on how to tackle the problem. By default, we’re pointing to https://wordpress.org/support/article/optimization/.
    • @flixos90: Fair point, but we should also have some sort of useful default
    • @spacedmonkey: With white screen of death protection, we added a filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. to enable hosting companies to link off to resources to help. I think this issue is the same. Handling messaging and resolving this, is for the hosting company, IMO.
    • @flixos90: We also included a default way for the user to fix the problem, though, which is missing more detail
    • @spacedmonkey: Agreed that once this goes into core, we need a solution. But for now, we don’t need one in the plugin, as everything in it is experimental.
    • @flixos90: “Experimental” has some nuance; some modules are days away from a feature proposal, others are more recent and earlier in exploration.
    • @tweetythierry: The definition of “experimental” has come up enough that we should document and define it.
    • Vote on a decision here by Friday, March 19 at 5pm UTC

Feedback requested

Measurement

@wp-source @josephscott

GitHub project

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

  • No updates

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @flixos90: We now have plugin assets (banner and icon) in Performance Lab: Branding #144; just opened https://github.com/WordPress/performance/pull/231 to add to the repo and will deployDeploy Launching code from a local development environment to the production web server, so that it's available to visitors. to 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/ in the next release. Merged a few PRs in the last few days, including a 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. fix. Ready to enable 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". auto-deletion in #209 after chat. With all these enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. and fixes, proposing (and confirmed with team) that we will ship our next 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. release next Monday, March 21, two weeks after the first release. We only have a few issues and PRs in the milestone, which we can probably merge this week. If you have concerns, please comment on Prepare 1.0.0-beta.2 release #213.

Feedback requested

Open Floor

  • @jeffpaul: Are there any core patches (e.g., new hook in media library) that would be helpful to get into WP 6.0 to benefit this feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. work ahead of whatever future feature merge (e.g., in WP 6.1)?  I want to make sure we get to those things before WP 6.0 Beta 1 on April 12th.
    • @flixos90: If you’ve been working on one of the enhancements or want to work on something where you’re limited e.g. by lack of core filters or actions, now it’s the time to flag those problems
    • @pbearne: Here’s one: https://core.trac.wordpress.org/ticket/55347
  • @craigfrancis: Can someone do a quick check on my very basic PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher perf test for #52506 at https://wpdb.eiv.dev/ (press the “001” button to see the PHP code for the first test)? I appreciate it does not account for TurboBoost, CPU temperature changes, or other processes on this VM or others, etc… I’m just wondering if this is “good enough” to check the patch isn’t likely to cause problems.
  • @pbearne: Got an offer from Tugboat for previews of core patches here; will bring up in dev chat and get more info

Help wanted

#core-js, #core-media, #performance, #performance-chat, #summary

Performance team meeting summary 8 March 2022

Meeting agenda here and the full chat log is available beginning here on Slack.

Focus group updates

Announcements

@shetheliving

Images

@adamsilverstein @mikeschroder

GitHub project

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Site Health

N/A

GitHub project

  • We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or 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.” in 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/.
  • @furi3r: https://github.com/WordPress/performance/pull/124 has been pending for awhile and can be merged

Feedback requested

Measurement

@wp-source @josephscott

GitHub project

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

  • No updates

Feedback requested

Infrastructure

@flixos90

GitHub project

Feedback requested

Open Floor

  • @mitogh: Flagging #209 Consider auto-deleting head branches after PRs are merged if folks have opinions about the approach
    • @flixos90: Makes sense after we’ve protected the branches that shouldn’t get deleted (trunk and release/*
  • @josklever: Had an issue where some images couldn’t be loaded on my WP dashboard and it was caused by a 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. that was disabled in the screen options. It appears that all the widgets are loaded even if disabled. Would this be a performance improvement? Or is there a good reason to load resources for disabled widgets?
    • @adamsilverstein: Sounds like a core 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., but don’t see a Trac ticket for it
  • @lu: Are we considering converting animated GIFs to MP4, similar to https://github.com/GoogleForCreators/web-stories-wp/issues/7232? Recently had to do this as the animated GIF size was huge compared to compressed/optimized video.
    • @spacedmonkey: Agreed that there are massive performance and file size wins there, but in Web Stories we converted GIF to MP4 using JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. in browser, which unfortunately won’t work in many WP contexts
    • @adamsilverstein: Could potentially provide a browser-based approach in core if server support is lacking
    • @andronocean: Would be concerned about server resource usage with larger GIFs or budget hosts
    • @gagan0123: If sever support is lacking, someone will have to do it manually rather than by CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress. or cron job
    • @spacedmonkey: We used an ffmpeg library which requires array buffering, which isn’t available in older browsers and requires isolation of the page, meaning that images and scripts could not be hotlinked
    • @swisspidy: It’s doable, but there could be conflicts
  • @westonruter: Opened #220 Add Site Health test for full page caching (advanced cache)

Help wanted

#core-js, #core-media, #performance, #performance-chat, #summary

Performance team meeting summary 1 March 2022

Meeting agenda here and the full chat log is available beginning here on Slack.

NOTE: The initial 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 release, 1.0.0-beta.1, will take place on Monday, March 7, 2022, at 19:00 UTC. We will hold a release party chat in the #performance 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 at that time and all are welcome! See the Infrastructure section below for more details on the release.

Focus group updates

Announcements

@shetheliving

  • Database optimization focus area
    • Want to reassess the interest for this as a focus group
    • Please re-vote on the focus group spreadsheet here by adding/removing your WP.org username from the groups that you want to work on in Column D, Contributors 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/ username
    • Please only enter your name on two or fewer groups. If you’ve already voted and want to revise, remove your name from other areas.
    • We’ll reassess focus groups based on updated votes next week

Images

@adamsilverstein @mikeschroder

GitHub project

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Site Health

N/A

GitHub project

  • We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or 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.” in Slack
  • @flixos90: https://github.com/WordPress/performance/pull/136 could use additional reviews as it’s planned for the initial release. @furi3r planning to review feedback this week.

Feedback requested

Measurement

@wp-source @josephscott

GitHub project

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

  • No updates

Feedback requested

Infrastructure

@flixos90

GitHub project

Feedback requested

Open Floor

  • @flixos90: Had a conversation with @spacedmonkey about if we should have a rule that two people have to approve all PRs. Been assuming that we should be aiming for two people approving each PR, though not a hard and fast rule. Open to thoughts.
    • @gagan0123: Two pair of eyes are always better than one; speed impact is minimal but quality of code is significantly better
    • @spacedmonkey: If we can enforce this on GitHub, let’s go for it (with no self-reviews)
  • @shetheliving: Seeking feedback on new designs shared in Performance Lab: Branding #144

Help wanted

#core-js, #core-media, #performance-chat, #summary

Performance team meeting summary 22 February 2022

Meeting agenda here and the full chat log is available beginning here on Slack.

Focus group updates

Announcements

@shetheliving

  • Database optimization focus area
    • Want to reassess the interest for this as a focus group
    • Please re-vote on the focus group spreadsheet here by adding/removing your WP.org username from the groups that you want to work on in Column D, Contributors 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/ username
    • Please only enter your name on two or fewer groups. If you’ve already voted and want to revise, remove your name from other areas.

Images

@adamsilverstein @mikeschroder

GitHub project

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Site Health

N/A

GitHub project

  • We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or 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.” in 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/.
  • No updates

Feedback requested

Measurement

@wp-source @josephscott

GitHub project

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

  • @sergiomdgomes: Continued discussion around embeds and how we could avoid the performance impact some of the larger ones, like YouTube, through façades or other approaches in the context of blocks; welcome thoughts and feedback

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @eclarke1: Vote is still open for Prepare initial release #133 on whether we’re okay shipping the WebP module in its current version where it no longer generates JPEG images, or whether we only want to ship it once it generates both JPEG and WebP images as intended. Vote here and leave a comment on why you think we should/should not release as-is. Automate @since tags generation using the n.e.x.t placeholders #90 has been merged and @kirtan95 is working on Define default module activation (onboarding) #61 for the 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. release.
  • @mitogh: Should we introduce composer and namespacing before the release to prevent naming conflicts? We do use prefix but it seems like a workaround and not a long-term solution.
    • @flixos90: No because that’s not established in core.
    • @mitogh: Agreed, but the majority of the code will change when transitioned into core anyway.
    • @flixos90: Yes, but will be easier to migrate and review if we stick to core conventions as much as possible.
  • @kirtan95: Need review on #177 Run phpcbf and phpcs before commit; @dainemawer will take a look.

Feedback requested

Open Floor

  • @pbearne: Suggest that we work on taking care of some low-hanging fruit outside of the main focus areas
    • @tweetythierry: A prioritization exercise of those items would be helpful
    • @flixos90: Always okay to bring those up here and ask for feedback, but be sure that we’re paying the most attention to focus area items to keep them moving, since we decided that they were the most important. Let’s be conscious of the performance impact, especially.
    • @adamsilverstein: One idea would be to run a 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. scrub for existing TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. issues tagged with performance as an ongoing effort

Help wanted

#core-js, #core-media, #performance, #performance-chat, #summary

Performance team meeting summary 15 February 2022

Meeting agenda here and the full chat log is available beginning here on Slack.

Focus group updates

Announcements

@shetheliving

  • Epic and Overview labels in 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/
    • Overview = Summary of the entire project, including epics, documentation, and other details
    • Epic = The “parent” issue for a broader task within a project, e.g. https://github.com/WordPress/performance/issues/22
    • @clarkeemily will work on setting up [Type] Overview issues for each focus area that POCs can update as needed

Images

@adamsilverstein @mikeschroder

GitHub project

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Site Health

@audrasjb

GitHub project

  • We’re seeking an additional POC for this group; if you’re interested, please comment here or 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.” in 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/.
  • @audrasjb offline
  • @furi3r: Several issues still needing discussion/review (see below)

Feedback requested

Measurement

@wp-source @josephscott

GitHub project

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @flixos90: Need to make a decision for Prepare initial release #133 on whether we’re okay shipping the WebP module in its current version where it no longer generates JPEG images, or whether we only want to ship it once it generates both JPEG and WebP images as intended. Vote here and leave a comment on why you think we should/should not release as-is.

Feedback requested

Open Floor

  • @wp-source: Feel a lack of alignment on the scope of the plugin. Is it the plugin’s role to measure things like other tools already do?
    • @flixos90: Don’t think we should build measurement tools ourselves where we can already use existing ones. Measurement is a bit decoupled from the plugin, but if there’s a certain measurement feature that makes sense in plugin form, it could definitely go into the plugin. A lot of features may be built in other forms though, e.g. CI workflow, Docker images, etc.
  • @kirtan95: Should we use husky to run phpcs/phpcbf on post commit hook?

Help wanted

#core-js, #core-media, #performance, #performance-chat, #summary

Performance team meeting summary 8 February 2022

Meeting agenda here and the full chat log is available beginning here on Slack.

Focus group updates

Announcements

@shetheliving

  • Interest in turning off 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/. integration with the #performance channel
    • Currently showing all PRs, new issues, and closed issues
    • Should we change or remove altogether?
    • Discussion was pretty evenly divided between keep and remove the integration; @mitogh suggested a separate channel for the integration
    • @shetheliving will request that the integration be turned off in #performance for now and ask if a new, separate channel can be created specifically for the integration

Images

@adamsilverstein @mikeschroder

GitHub project

Feedback requested

Object caching

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Site Health

@audrasjb

GitHub project

  • We’re seeking an additional POC for this group; if you’re interested, please comment here or 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.” in Slack
  • @audrasjb offline
  • @furi3r: Several issues needing discussion/review (see below)

Feedback requested

Measurement

@wp-source @josephscott

GitHub project

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

Feedback requested

Infrastructure

Feedback requested

Open floor

Help wanted

#core-js, #core-media, #performance-chat, #summary

Performance team meeting summary 1 February 2022

Meeting agenda here and the full chat log is available beginning here on Slack.

Focus group updates

Announcements

@shetheliving

Images

@adamsilverstein @mikeschroder

GitHub project

  • @adamsilverstein: Lots of active conversations. Been ironing out small issues related to the WebP uploads module, including *.jpg is not generated for scaled full size image #122 and Image is partially converted to WebP #69. Did a deep dive into coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.’s current media code to determine a path forward for supporting the picture element to see if our existing 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. data structure is sufficient, or if we need to change it to 1) accommodate additional mime types and 2) create new functions, or if existing functions could be leveraged to start returning picture elements. Will share a write-up with findings this week.
  • Investigate email client support for WebP, plugin usage #74 could use more investigation. @dainemawer will help.
  • @flixos90: Based on results so far for voting on Store previous image size before WebP conversion #96, we will want to generate JPEG and WebP by default. What will this entail and any volunteers to work on this?
    • @adamsilverstein: The approach will need to be a bit different that the current 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, some existing plugins do this though so the approach has been worked out and filters are available. Will create a follow-up issue.
  • @eclarke1: Will this impact the proposal for WebP on previous uploads #24?
    • @mitogh: We have some alternatives outlined in the doc and can follow-up once we have a decision.
  • @pbearne: What about adding support for https://blurha.sh/?

Feedback requested

  • N/A

Object caching

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Site Health

@audrasjb

GitHub project

Feedback requested

Measurement

@wp-source @josephscott

GitHub project

Feedback requested

  • N/A

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

@aristath @sergiomdgomes

GitHub project

  • @sergiomdgomes: There’s been a fair bit of discussion around deferring scripts and how to make that work with minimal breakage. Explored an automatic approach, which didn’t pan out because it was too unstable. @adamsilverstein is looking into a different approach, by adding support to wp_enqueue_script and is drafting a proposal. Also discussed partytown as a potential approach for moving third-party scripts off the main thread into workers; @luisherranz is currently looking at that. 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/ issues will be created. These are discussed in the Core JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. meeting, which happens in #core-js at 3pm UTC every other week.

Feedback requested

  • N/A

Infrastructure

  • @flixos90: Should get a 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. plugin release out soon, but need to define overall scope for release and how we feel about shipping beta versions of the two modules so far: WebP uploads and Site Health enqueued assets audit
  • @flixos90: Need a banner and logo for Performance Lab plugin in wp.org repo; looking for volunteers. @dainemawer will help and create a GitHub issue for this for tracking.

Feedback requested

Open floor

Help wanted

#core-media, #performance, #performance-chat, #summary

WordPress JavaScript Standards Change Proposal

This post was authored by @opr18 (Thomas Roberts).

During a recent WordPress #core-js meeting there was a discussion about updating 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/. coding standard. The specific update that is being proposed is to change the rules relating to comments.

Currently, the standard reads:

Comments come before the code to which they refer, and should always be preceded by a blank line. Capitalize the first letter of the comment, and include a period at the end when writing full sentences. There must be a single space between the comment token (//) and the comment text.

The proposal is that the new wording should be:

Comments come before the code to which they refer, and should always be preceded by a blank line. Unless writing a linter override, or a `@see` type comment, capitalize the first letter of the comment, and include a period at the end. There must be a single space between the comment token (//) and the comment text.

The problem with the current guideline is that it is not enforceable by automated tools. It is hard for linting tools to easily distinguish between what is and isn’t a full sentence in the context of code comments.

Code reviews can quickly fill up with noisy comments and suggestions to capitalise or add periods to code comments. If this were fixable with a linting rule then these comments wouldn’t be necessary.

There are instances where it may not make sense to write in sentence case, for example: adding linter overrides or writing `see` comments where the comment may just be the name of a method or file, etc. so we would not enforce the rule on these types of comments.

If this guideline were to be amended, there would be several instances of code in 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 alone that do not follow it. It would be necessary to create a PR that fixes all of these issues. Because the change only relates to comments, a single PR can be made addressing all instances of comments that don’t follow the guideline, because the rule relates to comments only, this would have no impact on functionality so minimal testing would be required.

WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. currently uses JSHint for linting JavaScript files, and it does not appear that even the existing style guideline is enforced. Even so, if efforts were made to move to ESLint in WordPress core, implementing a fix for any comments that do not follow the standard should be straightforward.

Initially the rule could be enforced as a “warning” while the PR to fix the issues is completed and after it has been merged the rule could graduate to an “error”.

Here is a draft PR demonstrating the punctuation aspect of the proposed change: https://github.com/WordPress/gutenberg/pull/34964

As a part of next steps, this post is looking for feedback on:

  • How do you feel about the proposed changes to the wording of the standard?
  • Are there any concerns about the plan for implementing this change?

This proposal is open for feedback until October 5th, 2021 at which point a final decision will be made during #core-js office hours that day.

#coding-style, #codingstandards, #proposal

Publishing WordPress packages to npm

The WordPress project has started publishing its packages to npm – the largest package repository – over 4 years ago. As of today, there is a collection of nearly 80 actively maintained packages under the WordPress organization.

The latest updates to the process were documented 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 PR#29028. I wanted to share some details about the latest addition to the process and summarize the overall strategy for publishing.

Development releases

WordPress trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision. can be closed or in “feature-freeze” mode. Usually, this happens during the WordPress ongoing release cycle (like now with WordPress 5.7), which takes several weeks. It means that packages don’t get any enhancements and new features during the ongoing WordPress major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope. process.

Another type of release was introduced to address the limitation mentioned earlier and unblock ongoing development for projects that depend on WordPress packages. It takes advantage of package distribution tags that make it possible to consume the future version of the codebase according to npm guidelines:

By default, the latest 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.) is used by npm to identify the current version of a package, and npm install <pkg> (without any @<version> or @<tag> specifier) installs the latest tag. Typically, projects only use the latest tag for stable release versions, and use other tags for unstable versions such as prereleases.

npm documentation

In this case, the next distribution tag is used for publishing the devolvement version of the packages. Developers can install a package in their project by typing:

npm install @wordpress/components@next

The release process is fully automated via a single command:

 ./bin/plugin/cli.js npm-next

The person in charge of the release needs only to run the script, and everything else happens through interactions in the terminal.

Behind the scenes, the wp/next 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". is synchronized with the latest release branch (release/*) created for 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/ 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 avoid collisions in the versioning of packages, we always include the newest commit’s sha, for example, @wordpress/[email protected].

Release types and their schedule

It’s worth clarifying that the Gutenberg plugin consumes the local copy of WordPress packages because they are developed inside the same repository. It’s a completely different story for the WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. that consumes the packages from the npm registry.

The following list includes the full list of supported release types for publishing WordPress packages to npm:

  • Synchronizing WordPress Trunk (latest dist tag) – when there is no “feature-freeze” mode in WordPress Core, then publishing happens every two weeks based on the new stable version of the Gutenberg plugin. Otherwise, only 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 get manually included and published to npm before every next 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. and RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). version of the following WordPress release. There is a script that automates the process: ./bin/commander.js npm-latest.
  • Minor WordPress Releases (patch dist tag) – only when bug fixes or security releases need to be backported into WordPress Core. It’s a manual process that requires cherry-picking individual commits and ends with executing npm run publish:patch command.
  • Development Releases (next dist tag) – at least every two weeks when the RC version for the Gutenberg plugin is released. There is a script that automates the process: ./bin/commander.js npm-next.

There is also an option to perform Standalone Package Releases at will. It should be reserved only for critical bug fixes or security releases that must be published to npm outside of a regular WordPress release cycle. It’s a manual process with many steps required that ends with executing npm run publish:prod command.


We are constantly seeking feedback to improve the processes around npm packages. The workflow for the WordPress core works quite well, and we didn’t discover any major issues when backporting the changes applied to the 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. editor in the Gutenberg plugin. Let us know what else we can do to improve the experience for projects that consume WordPress packages from npm.

#core-js, #javascript, #npm-packages

JavaScript Core Chat Summary: 21 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 21, 2020, 14:00 UTC. You can read the full meeting discussion here in Slack.

If you have an item you would like to discuss at the next meeting, please add it to the next agenda document.

@psykro hosted

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

Open floor:

  • @itsjonq was having some problems with his laptop crashing when using a Docker local development environment.
    • If anyone has any other suggestions, please let him know.

@psykro closed meeting after 30 minutes.

Next chat is on Tuesday, July 28, 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/.. If you have anything you would like to discuss, please add it to the agenda document.

Weekly JavaScript news round up

WordPress 5.5 related

A number of dev notesdev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include: a description of the change; the decision that led to this change 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. and posts related to what’s coming in WordPress 5.5 (for the 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. Editor and JavaScript were shared this week). I thought it’d be handy to group them all together in this week’s issue of the roundup.

  • The Dashicons library receives it’s final update in WordPress 5.5. If you’re using it in any products, it will still be available in WordPress, however its good switch to using the @wordpress/icons package instead (if suitable).
  • The register theme feature API is landed. This allows custom theme features to be registered and exposed on the theme features support REST endpoint.
  • In WordPress 5.5, images will be lazy loaded by default. Some great work here in preventing layout shifting.
  • An overview of all that is landing in WordPress 5.5 around Block Patterns.
  • New and modified REST API endpoints landing in WP 5.5. Includes notes on: wp/v2/block-types, wp/v2/plugins, wp/v2/block-directory, wp/v2/media/10/edit, block renderer route changes, and majority of theme headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. information is now being returned on the wp/v2/themes endpoint.
  • There are also some REST API Paramater and JSON Schema changes coming. In particular, the work that has gone into improving the options for more defined schema’s is sweet.
  • createInterpolateElement is landed. This is particularly useful for translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. string interpolation in ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. components.

dotOrg news

#javascript, #meeting-notes