The WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site for general updates, status reports, and the occasional code debate. There’s lots of ways to contribute:
Found a bugbugA 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.?Create a ticket in the bug tracker.
In a few months, we will celebrate the 20th anniversary of WordPress!
To mark the milestone, what could be better than taking a look at all of our old TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets?
This post aims to put together several bugbugA 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 sessions dedicated to old tickets that haunt the depths of Trac, the ticketticketCreated for both bug reports and feature development on the bug tracker. tool used for the development of WordPress.
Goal of the “Old Tickets Trac TriagetriageThe act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. Sessions” initiative
The purpose of these sessions would be to take the oldest tickets, qualify them and move them forward according to their content or status.
Some tickets are probably no longer relevant today with the recent evolution of WordPress, in this case they must be closed as outdated (though this resolution status doesn’t exist in Trac for the moment)
Some tickets may require new discussions, this will be an opportunity to discuss them by adding new comments
Some tickets may be ready, but don’t have a patchpatchA 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. yet, we may be able to find people to take care of it and milestone them accordingly
Some tickets also probably have a patch (check for the has-patch workflow keyword), but this one needs to be refreshed (check for the needs-refresh workflow keyword). In that case we could find someone to take care of it and milestone them accordingly
Other tickets may have a patch ready to go (must be quite rare), in this case the idea would be to move them directly to the next milestones (WP 6.2 or 6.3)
How to participate?
Everyone is invited to contribute to this initiative. There could be several types of sessions:
“Classic” triage sessions on the SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. Make, coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. channel, where we would review tickets (read the dedicated post on the Core handbook: Leading a bug scrub)
Local triage sessions: local communities, or even companies, are welcome to organize an event to help move forward old tickets
During the meeting, the idea is to take one of the Trac reports listed at the beginning of this post and to go through each ticket.
What can I do to help move a ticket forward?
Depending on its status and progress, several types of contributions can help move a ticket forward:
Mark as close tickets that are no longer relevant. A Bug Gardener or a Component Maintainer will close it later
Extend the discussion to try to find how to move towards a resolution
Try to reproduce a bug that has not been reproduced yet, then share the steps of the reproduction procedure as well as screenshots or screencasts (when applicable)
Propose a patch, for tickets that do not yet have one, if the ticket is relevant and the existing discussion has resulted in a conclusion
With the 6.2 cycle underway, the WordPress CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. team will organize a first bugbugA 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, specifically focused on tickets marked “early”.
These “early” tickets need to be committed as soon as possible in the 6.2 development cycle, to give them enough time to be properly tested before the feature freeze on February 7, 2023. That’s why this first “early” bug scrub is planned ahead of the regular weekly bug scrubs that will be scheduled by the WP 6.2 TriagetriageThe act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. Leads.
As the call for 6.2 Release Leads ended on January 10th, a full bug scrub schedule will probably be announced within a few days by the 6.2 Triage Leads.
Last year, during the core dev chat of May 29th, 2019, I proposed renaming the invalidinvalidA 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 worksformeworksformeA 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 ticketticketCreated 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 bugbugA 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 pluginPluginA 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.
wontfixwontfixA 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 enhancementenhancementEnhancements 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 coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. inclusion.
maybelater: Similar to wontfix, maybelater 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. GutenbergGutenbergThe 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 patchpatchA 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:
invalid → not-applicable
worksforme → not-reproducible or cannot-reproduce
wontfix → not-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 TracTracAn 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!
Living in APAC timezones can be difficult. From waking up at 3am for meetings, to flying 20+ for WCUS or WCEU (WCAsia is coming to fix that!), to hearing “what’s it like living in the future?” jokes for the millionth time. One thing that shouldn’t be hard is contributing to WordPress, and it’s time to make that even easier, with APAC-friendly triagetriageThe act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. and bugbugA 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 sessions.
You may have already seen GutenbergGutenbergThe 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/ meetings happening every second week for the last few months, but starting Thursday at UTC 0600, we’ll alternate each week between working on WordPress CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress., and Gutenberg! This week, join in the fun in the #coreSlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel for a WordPress Core bug scrub. Next week, the party will be in the #core-editor Slack channel, for a Gutenberg bug scrub. 🎉
The meeting lead will pick a report to work through, but if there are particular issues you’d like to get more eyes on, or you have a patchpatchA 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./PR that you’d like reviewed, this is the place to bring it up!
Recently, a bulk modification was performed on TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. affecting 2,300+ tickets that had not seen any activity in 2 years or more. These tickets were closed and marked as wontfix. To read a more detailed breakdown, check out the previous post on the subject.
After discussing, it has been determined that the bulk action should be reverted, but only for tickets that have not had their status changed or otherwise confirmed via comments that closing is acceptable since the bulk closure. It can be safely assumed that closed tickets updated after the bulk edit have been appropriately groomed and should remain in their current state. A full list of tickets slated to be reopened can be found using this Trac query.
Tickets should only be closed if they have been individually evaluated and it is determined that they are either no longer relevant, have been fully and properly addressed, and any changes have been adequately communicated to the community.
These tickets will be reopened during the week following the 5.1 release (February 24-March 2) by @jeffpaul and myself (@desrosj). All reopened tickets will be placed in the Awaiting Review milestone so that they can be properly triaged by component maintainers and the TriagetriageThe act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. Team in the coming months.
Can you believe it – we’ve made it through a State of the WordState of the WordThis is the annual report given by Matt Mullenweg, founder of WordPress at WordCamp US. It looks at what we’ve done, what we’re doing, and the future of WordPress. https://wordpress.tv/tag/state-of-the-word/. without anybody asking “when is WordPress moving to GitGitGit 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/./GitHubGitHubGitHub is a website that offers online implementation of git repositories that 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/?” You may, however, have caught a brief mention of issue trackers in relation to the TriagetriageThe act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. Team focus for 2019. While it’s very important to make the distinction between Git the version controlversion controlA version control system keeps track of the source code and revisions to the source code. WordPress uses Subversion (SVN) for version control, with Git mirrors for most repositories. system (VCS) and GitHub the service, as the answer usually goes, it’s understandably a continued area of interest. Manypartsof WordPress have been developed using GitHub as the central tool, along with countless plugins and themes and even the WordPress book.
Here’s the tl;dr (but you should definitely keep reading after this): Changing things up doesn’t just mean “let’s make the GitHub mirror at WordPress/wordpress-develop the canonical and migrate TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets over” – it means imagining what kind of change would be a net benefit to the coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development process and eventually the entire .org ecosystem, and then finding the right tools to do it.
To that end, there is a group of people including myself (@helen), @desrosj, and @omarreiss who have been and will continue to be doing more coordinated research and planning around tooling. There is no current planned timeline nor is this a priority on top of the projects already enumerated for 2019, but any potential tooling change is being evaluated as it potentially relates to those projects, especially if it can better support phase 2 of GutenbergGutenbergThe 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/ development and the Triage Team.
This is not about chasing the latest and greatest or evangelizing a preference – it’s important to identify the goals we have for the project and what pain points we are experiencing. More specifically than “democratizing publishing”, in the core development process we should be aiming for diverse participation, a faster-but-steady pace of development, predictable and timely feedback cycles, and continuing to build user trust among users of all types. Recent pain points have been merges between branches (especially 5.0 back to trunktrunkA 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.), JavaScriptJavaScriptJavaScript 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/. package updating, and continued participation when projects move from plugins and GitHub into core and Trac.
Roughly, here are some early thoughts on various moving pieces and potential future improvements.
Repositories and Workflows
SVNSVNSubversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. repositories would need to remain, essentially flipping the mirroring process to go from Git -> SVN, making SVN (and Git) repos on .org read-only
Should the core build process continue to be handled as-is or should we move to something like Travis?
Integration of more automated testing – visual regressionregressionA software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5., end-to-end, accessibilityAccessibilityAccessibility (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), performance
Identification of the ideal lifecycle of an issue and process for a pull/merge request – design, docs, review, testing, etc.
Identification of contribution workflows (contributor documentation, Git branching methodology, etc.)
Security tracking and releasing
Issue Tracker
Critical for a Triage Team to review existing issues and to remain active going forward
Potential for the bulk triage process to include migrationMigrationMoving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. from Trac to another tracker
Any issue migration should be determine on a case by case basis by the Triage Team in collaboration with component maintainers; the most automation that should happen is a tool that takes a list of Trac tickets and imports them elsewhere
Issue import process needs to take commenter attribution into account
Trac would remain in a read-only state
How are reports generated and used (i.e. is the built-in filtering capability enough in a given tool or will we need something more robust to support workflows)
Is the issue tracker still the best place for feature requests?
Implementation of issue templates
Identifying existing custom integrations and whether those problems still exist and still need to be solved after a move
Broader Ecosystem (later / bigger question mark)
Connectors from GitHub to .org pluginPluginA 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 theme repos (GitHub Actions-powered build+deployDeployLaunching code from a local development environment to the production web server, so that it's available to visitors.)
Automated testing – sniffers, Tide, unit tests, WP and PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher compat testing, Theme Check
If anyone has time this week, there are about 100 tickets that need to be reviewed for potential 3.2 issues we missed. The first page of Report 40 lists “Defects Awaiting Review, reported against trunktrunkA 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.” and “Defects Awaiting Review, reported against no version.”
Basically, we’re just looking for bugs to 3.2 features, and regressions. Many of these either need the version numbers dropped (or added) or converted to enhancements. If someone wants to do full triagetriageThe act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors., pingPingThe 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 or someone in IRCIRCInternet 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. and we’ll arrange milestone adjustments.
Update: Specifics on how to help.
The Version field is for the earliest known version that the ticketticketCreated for both bug reports and feature development on the bug tracker. affects. For bugs, this would be the version to which it applies or was introduced. All the ones that say “3.2,” if they aren’t new bugs in 3.2, then they should be changed to 3.1 or, for extra credit, earlier.
If the ticket is pushing for an enhancementenhancementEnhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature., rather than reporting a bugbugA 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., then simply change the Type field to “enhancement.” (Rarely “feature requestfeature requestA feature request should generally begin the process in the ideas forum, on a mailing list, as a plugin, or brought to the attention of the core team, such as through scope meetings held for each major release. Unsolicited tickets of this variety are typically, therefore, discouraged.,” never “task.”)
(Contributors who have participated on TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. before will of course know to adjust keywords, perhaps even adjust milestones and what not. But these are two simple ways to help clean up this report.)