Preparing for WordCamp Asia Contributor Day 2023

Checklist for those attending in-person

If you’re planning on attending 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/. for #WCAsia, CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Committercommitter A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component. and long time Core Contributor Jonathan Desrosiers (@desrosj) has created a wonderful checklist and list of things to expect.

View the post on his personal site: Preparing for a WordCamp Contributor Day.

Some other useful links

FAQs for new contributors to core

Finding bugs to fix

List of ‘good first bugs‘ to get started in TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. and a similar list of “good first issues” for Gutenberg.

If you’re on Twitter, you can follow https://twitter.com/GoodFirstBugs.

There is now support for GitHub Codespaces to help new contributors to core.

Thanks to @davidbaumwald and @webcommsat for working on this post.

#contributor-day

Updater initiative status report: December 25, 2021

During 2021, a group of contributors worked to update the WordPress updaters and add some features to make auto-updates safer and dependencies more reliable.

The expected outcomes were outlined in this post in May 2021.

Outcomes 1 and 2 – Make sure the zips download and unpacking are safe and create a mechanism to rollback 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 & theme updates in case of failure

The two goals were solved with one solution, which was merged in Core in September. However, due to some failures on the Chassis/Vagrant development environment, the feature, along with other related tickets, was reverted during WordPress 5.9 Beta period.

Next steps

For the feature ready to be shipped with WordPress 6.0, the discovered issue with Chassic/Vagrant should be resolved. Outreach to hosting companies needs to be done to ensure production environments will behave as expected.

Help required – Hosting companies

Would it be possible to get a hosting company to set up different environments to test the patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. in multiple scenarios? Including testing on shared servers from hosting providers who aggressively throttle resources.

Outcome 3 – Have managed updates (database migrations)

@aristath did a first exploration, but nothing substantial was presented to the other contributors yet.

Next steps

Evaluate if this is beneficial for plugin developers and create user stories before writing code, to make sure the solution addresses a specific, shared problem.

Outcome 4 – Create a unified 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. convention for requirements and dependencies

After a lot of conversations, the contributors moved away from a JSON file in favor of a “Requires Plugins” 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. based on feedback to this PR. Then, they focused on adminadmin (and super admin) UIUI User interface improvements using that header to solve what appears to be the most common use case: protect the user from fatal errors when installing a plugin without the required dependencies and guide them to complete the installation.

Looking back at the conversations (TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. 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/.) it looks like there is not enough clarity on the best possible method to solve the user issue, or what “dependencies” mean (soft vs. hard dependencies).

For plugin developers, the main issue is to avoid different plugins introducing implementations to check for the existence of dependencies and take appropriate actions. This is, in fact, something that is already happening. The problem is solved by each plugin developer. Would it be possible to solve it with a unified convention?

For end-users, the issue is with add-ons. For them to work, they need another plugin to be activated. If plugin and theme developers don’t properly check for the existence of plugins before using them, there is a risk of getting fatal errors on the user site.

Next steps

@peterwilsoncc suggested proposing a feature project. Right now, there is a Google Document with some notes about the solutions but the problem and the why are missing. This project is not tied to a release right now since it is still in the discovery phase.

  • Evaluate the problem from the point of view of plugin developers. Is it beneficial to have a unified solution for CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. or does it not make a difference? Help from the plugin team and plugin authors is needed.
  • Write the user stories from the end-of-user point of view.
  • Write a proposal for a feature project with the findings from the two explorations.

Do you want to help?

If you want to help, please join the #core-auto-updates chats, Tuesdays at 5PM UTC in 2022.

Thanks!

Thank you @francina and @aristath for the peer review.

Proposal: Rename “invalid”, “worksforme”, and “wontfix” ticket resolutions

Last year, during the core dev chat of May 29th, 2019, I proposed renaming the invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. and worksformeworksforme A resolution on the bug tracker (and generally common in software development) that indicates the bug reported cannot be reproduced. Trac ticket resolutions to something more friendly and less confusing. The reaction in the chat was unanimously positive, so this is now an official proposal for discussion.

The current interpretation of ticketticket Created for both bug reports and feature development on the bug tracker. resolutions, as per the Core Contributor Handbook:

Resolution: Upon one or more commits to the codebase, a ticket may be closed as fixed. Not all tickets result in a commit, however, and may be closed for other reasons:

  • duplicate: The ticket is a duplicate of an existing ticket, which will be referenced by the contributor closing the ticket.
  • invalid: The ticket is not 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., or is a support request.
  • worksforme: The bug reported in the ticket cannot be reproduced. Sometimes, an existing 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, hook, or feature may render the ticket moot, so the ticket can be closed without further action.
  • wontfixwontfix A resolution on the bug tracker (and generally common in software development) that indicates the ticket will not be addressed further. This may be used for acceptable edge cases (for bugs), or enhancements that have been rejected for core inclusion.: The ticket will not be addressed. Occasionally, bugs are considered to be acceptable edge cases, and will not be addressed further. This is sometimes used when a request for an enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. or feature has been rejected for coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. inclusion.
  • maybelater: Similar to wontfixmaybelater is used for a ticket that, while perhaps not outright rejected, has no current traction.
  • reported-upstream: The ticket is for an external library or component, has been reported in an upstream repository (e.g. 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 will be addressed there.

More than a few times I’ve seen someone closing a ticket as worksforme after testing a patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. because, well, it works for them. When that happens, the ticket has to be reopened with a comment that the patch still needs to be reviewed and committed.

Based on the above, I’d like to propose the following updates:

  • invalidnot-applicable
  • worksformenot-reproducible or cannot-reproduce
  • wontfixnot-implemented

On the technical side, any tickets that are currently closed should keep their existing resolutions, while tickets closed after the change is implemented should get the new resolutions. Some links and TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. reports might need an update to account for the changes.

Even if we move away from Trac at some point in the future, we’re not there yet, and I think clarifying these resolutions would be helpful for the time being. Any feedback appeciated!

Props @desrosj and @jeffpaul for pre-publication review.

#meta-tracdev, #trac, #triage, #triage-team

New Contributors Meeting Recap – February 14th

On Wednesday, February 14th, the weekly new contributor meeting was held in the #core 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. Here is a recap of the meeting. A full chat log is also available.

Participants: @adamsilverstein @abdullahramzan @aduth @chetan200891 @clorith @desrosj @dougvanslembrouck @jorbin @joyously @lakenh @notnownikki @thrijith @welcher @williampatton @xkon

Discussion Highlights

Contributing with GitGit Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. Most modern plugin and theme development is being done with this version control system. https://git-scm.com/.

Even though every change to WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. must pass through TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress./SVNSVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. eventually, SVN is not the only option for creating patches.

See these articles for more intofmation on creating patches with Git:

Coding standards

An easy way to make your IDEIDE Integrated Development Environment. A software package that provides a full suite of functionality to software developers/programmers. Normally an IDE includes a source code editor, code-build tools and debugging functionality./editor aware of the WordPress coding standardsWordPress Coding Standards The Accessibility, PHP, JavaScript, CSS, HTML, etc. coding standards as published in the WordPress Coding Standards Handbook. May also refer to The collection of PHP_CodeSniffer rules (sniffs) used to format and validate PHP code developed for WordPress according to the PHP coding standards. regarding whitespace usage is to use the .editorconfig file that 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. contains. This file uses a common standard, and there are plugins available for almost all popular environments that automatically parse the file and adjust the whitespace settings for the project.

Extensions can be found on the website of the project. Some IDEs like PHPStorm already come with built-in tools for the WordPress coding standards.

Refreshing a patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing.

Older tickets often have attached patches that no longer apply to the current codebase. The older the ticketticket Created for both bug reports and feature development on the bug tracker., the lower the likelihood that the associated patch will apply cleanly. If you find a ticket with a patch that does not apply, add the needs-refresh keyword to indicate this.

Over time, code shifts around and sometimes these patches only need a bit of reorganization to apply. Other times, you may find code that has been refactored and needs an alternative solution for the proposed 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./enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature.. Once this has been done, create a new patch with the clean code and submit it to the ticket.

While refreshing a patch, it’s also a good idea to make sure the patch is what you would consider the best approach and to verify that it follows the style guide.

See Contribute with Code handbook article for more information.

Ticket ownership

Ticket owner is generally responsible for moving the ticket forward. From the handbook:

When working on a ticket, the Owner field is typically left blank, even if you have contributed a patch. Committers utilize the field to offer traction for a ticket, to identify they are investigating, committing, or otherwise following a ticket, or to tentatively accept the bug or enhancement for core inclusion. It is also common during the feature development phase for developers to accept tasks in the area of responsibility for which they have volunteered, as well as related bug reports. Trusted contributors may assign tickets to others based on an inside knowledge of who should be responsible for reviewing it.

For good-first-bugs, the person who submitted the patch is assigned as an owner so that the ticket shows as “claimed” in the queue.

It’s OK to drop ownership if the ticket is no longer relevant for you, just reassign it to an empty field.

See The Bug Tracker (Trac) handbook article for more information.

Tickets brought up

  • @notnownikki has been working with @iseulde and @azaozz on #43187, which comes from an issue 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/.
  • @williampatton asked for feedback on #42057, specifically opinions on introducing an additional parameter for a function in a minor releaseMinor Release A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality., and more eyes on back compatback compat Backward compatibility - a desire to ensure that plugins and themes do not break under new releases - is a driving philosophy of WordPress. While it is a commonly accepted software development practice to break compatibility in major releases, WordPress strives to avoid this at all costs. Any backward incompatible change is carefully considered by the entire core development team and announced, with affected plugins often contacted. It should be noted that external libraries, such as jQuery, do have backward incompatible changes between major releases, which is often going to be a greater concern for developers. to make sure nothing is broken by the change.

Thanks to everyone who attended! As always, please feel free to leave a comment below or reach out to any of the moderators (@adamsilverstein, @desrosj, @flixos90, @sergeybiryukov, @stevenkword, @welcher) with questions on Slack. Or, feel free to reach out to any core developer or component maintainer with questions specific to certain core areas.

#core, #new-contributors, #summary

WordPress 4.9.3 Release Candidate

WordPress 4.9.3 maintenance release fixes 34 issues reported against 4.9 and is scheduled for February 5th. The release candidate is now ready for testing.

Thus far WordPress 4.9 has been downloaded more than 34 million times since its release on November 16, 2017. Please help us by testing this RC to ensure 4.9.3 fixes the reported issues and does not introduce any new ones.

JSHint Removal

One of the important changes is the removal of JSHint from code editor due to its GPLGPL GNU General Public License. Also see copyright license.-incompatible license. If your code relies upon JSHint from coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., you should update it to include a copy of JSHint. See ticketticket Created for both bug reports and feature development on the bug tracker. #42850 for more details.

Changes Since 4.9.3 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.

Code Editor

  • #42586 Add Ctrl/Cmd+F as aliases for persistent search for more intuitive behaviour.

Customize

  • #42450 Ensure customize_autosaved requests only use revision of logged-in user.
  • #42495 Ensure media playlists get initialized after selective refresh; expose new wp.playlist.initialize() APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways..
  • #42658 Ensure heartbeat keeps changeset locked when in branching mode.
  • #42991 Include nav menu item for Home custom link in search results for "Home".

Media

  • #39859 Avoid page scrolling when opening the media modal.

For a full list of changes see the 4.9.3 Beta posttickets closed, and the changesets committed.

#4-9-3

WordPress 4.9.3 Beta

As mentioned in the last dev chat, WordPress 4.9.3 maintenance release is scheduled for January 30th.

The beta package for 4.9.3 is now ready for testing. Please help us by testing this beta to ensure 4.9.3 fixes the reported issues and doesn’t introduce any new ones.

JSHint Removal

One of the important changes is the removal of JSHint from code editor due to its GPLGPL GNU General Public License. Also see copyright license.-incompatible license. If your code relies upon JSHint from coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., you should update it to include a copy of JSHint. See ticketticket Created for both bug reports and feature development on the bug tracker. #42850 for more details.

Other Changes

Other notable fixes and enhancements include:

Canonical

  • #15397 redirect_guess_404_permalink() doesn’t guess posts with updated dates

Customize

  • #42646 CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. cropper settings don’t respect flex-width=false and flex-height=false
  • #42686 Default selected changeset status should not be ‘publish’ when current user does not have publish capability
  • #42975 Customize: Previewing a changeset locks the changeset

Database

  • #43109 RegEx in parse_db_host() can cause notices and headers sent too early

Emoji

  • #42862 Update Twemoji to v2.4.0

Media

  • #42643 No download link if a FLV file cannot be rendered

Query

  • #42860 PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 7.2 warning in WP_Query::set_found_posts()

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

  • #42597 “Term already exists” error no longer returns term ID

Role/Capability

  • #42697 Missing Translations update section

TinyMCE

  • #42503 Visual mode does not work in Internet Explorer 11
  • #42722 TinyMCE JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. error preventing plugins from loading
  • #42908 Additional markup inserted when editing shortcodes and switching between Visual/Text tabs
  • #43090 Extra dots in in TinyMCE toolbar dropdowns in Microsoft Edge

Upgrade/Install

  • #42693 WordPress sends an “adminadmin (and super admin) email address was changed” message to you@example.com on new install
  • #43103 Reduce 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/theme APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. calls during core release windows

Widgets

  • #42740 Image 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. does not support relative links
  • #42802 Custom HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. widget validation does not allow single-quoted attributes
  • #43003 HTML5 “required” attribute in Widget form() fails in ajax-actions.php during save
  • #43125 Deregistering WP_Widget_Media_Image breaks Text widget’s “Add Media” button

See the full list of closed tickets in TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress..

#4-9-3

Dev Chat Summary: November 29th (4.9.1 week 2)

This post summarizes the dev chat meeting from November 29th (agenda, Slack archive).

4.9 feedback + 4.9.1 timing

WordPress 4.9.1 was released last week. It's a security and maintenance release for all versions since WordPress 3.7, users are strongly encouraged to update their sites immediately.

Notable 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 include:

  • Issues relating to the caching of theme template files.
  • A MediaElement 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/. error preventing users of certain languages from being able to upload media files.
  • The inability to edit theme and 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 files on Windows based servers.

This post has more information about all of the issues fixed in 4.9.1 if you'd like to learn more.

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/ usability testing + contributions

There are new usability tests for Gutenberg.

There was also a usability testing table for Gutenberg at WordCamp US this weekend, as well as a dedicated Gutenberg section at the 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/..

General announcements

@davefx: Looking for feedback on #42669.

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

Weekly Bug Scrubs for 4.4

There’s been a lot of activity on 4.4 already, let’s keep the momentum and start up weekly 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. scrubs for the 4.4 cycle. Scrubs are a concentrated period of time for contributors to triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets while other people are around at the same time.

Where: The scrubs will be held in the #core channel on Slack.
When: Each Friday, starting with Friday, September 4 2015 16:00 UTC.

The goal is to work for about an hour to triage tickets on the 4.4 milestone and try to provide feedback and make progress on as many tickets as we can, to keep the milestone under control.

See you there!

#4-4, #bug-scrub

Weekly Bug Scrubs

During the latest dev chat we’ve decided to schedule a weekly 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 in IRCIRC Internet Relay Chat, a network where users can have conversations online. IRC channels are used widely by open source projects, and by WordPress. The primary WordPress channels are #wordpress and #wordpress-dev, on irc.freenode.net. for the next few weeks each Friday at 11AM Eastern/16:00 UTC, for two hours. Please join us if you’d like to participate in reviewing the patches currently slated for 3.6.

#3-6, #bug-scrub, #maintenance

Ticket Scrub

We’ll have a patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. clearing session in IRCIRC Internet Relay Chat, a network where users can have conversations online. IRC channels are used widely by open source projects, and by WordPress. The primary WordPress channels are #wordpress and #wordpress-dev, on irc.freenode.net. on Friday, February 8 at 11AM Eastern/16:00 UTC, for two hours. Let’s aim to go through the commit candidates and resolve some of the other tickets currently slated for 3.6.

#3-6, #bug-scrub, #maintenance