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.
There will be a weekly office hours meeting on Wednesday, September 11, 2013 at 18:00 UTC in #wordpress-dev. Agenda includes status update on the hooks initiative that kicked off last week, and answering questions anyone may have about the effort.
If you’re interested in participating, please plan on attending.
The time to document ALL THE HOOKSHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. used throughout coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. is nigh.
We’ve hashed out the process in a couple of different meetings in #wordpress-dev, and we’ve added a new page to the Core Contributor Handbook that covers the broader PHPDoc standards, as well as the specific hook documentation standards (the praise for the bulk of that work should go to @kpdesign and @drewapicture, by the way).
At the bottom is a list of every file in core that has a call to either do_action() or apply_filters(). Files with a checkmark have been patched and are considered completed. Files marked with (username #xxxxx) are already claimed, and being worked on.
Directly below is the process we’re attempting to make sure each of these files can get patched swiftly with no duplicated nor wasted efforts.
How to contribute:
Check the list first to make sure the file you want to work on hasn’t already been claimed.
Update your local WordPress SVN or 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/. repo (use git pull) to the latest version of WordPress 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. (currently 3.9-alpha).
Format the title as “Hooks Docs: path/to/file.php”.
The Type should be “defect (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.)”.
Assign the ticketticketCreated for both bug reports and feature development on the bug tracker. to the component the file is associated with.
Leave the Version blank.
Add the docs focus.
Edit the file, and make 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.. Please make sure you create the patch from the root directory of your WordPress SVNSVNSubversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. or Git checkout.
Upload your patch to the TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. ticket you created, and add the keyword “has-patch”.
*Note: We strongly encourage you to work on very few files at a time. In many cases, one at a time is probably best. In some cases it may make sense to tackle several at once. The important thing is that you realize your edits should be made and patched swiftly so that they aren’t invalidated by (or don’t invalidate) another patch. It’s also important to note that we’re working with a small time-table, and need to be able to claim, edit, patch quickly — which is hard to do if someone were to lay claim to 20 files at a time, and then sit on them for a few days.
Determining the since version for hooks
The recommended tool to use when searching for the version something was added to WordPress is svn blame. An additional resource for hooks is the WordPress Hooks Database. If, after using these tools, the version number cannot be determined, use @since Unknown.
Note: All @since tags should follow the three digit x.x.x format, unless it was ported from MU. Anything ported over from WPMU should use @since MU. Existing @since MU tags should not be changed.
Keeping Discussions Focused:
Any discussion about the specifics of a patch itself should happen on Trac. Any discussion about the broader scope of what we’re trying to do should take place during the weekly Inline Docsinline docs(phpdoc, docblock, xref) meeting on Wednesdays at 19:00 UTC in #wordpress-sfd.
Files needing patches:
Checked files are completed, marked files are claimed
wp-admin/edit-tagtagA 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.)-form.php (props @nicolealleyinteractivecom, @kpdesign)
wp-admin/includes/class-wp-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-install-list-table.php (props @naomicbush)
wp-admin/includes/metaMetaMeta 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.-boxes.php (props @SpencerFinnell, @drewapicture)
wp-includes/categoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging.-template.php (props @drewapicture, @kpdesign)
Today’s #wordpress-dev developer meeting (20:00 UTC) should be fairly brief. Let’s do a quick status report on different 3.7 tasks and then hammer on any TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets (especially complex ones or ones that need a decision, since many coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. developers will be present).
Please suggest any items for discussion, or any tickets we should consider.
After this meeting, at 21:00 UTC, will be a 3.8 office hours meeting (like last week) in #wordpress-core-plugins 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..
It’s been awhile since you’ve heard from any of us about the inline-docs initiative for 3.7. We’ve been getting our ducks in a row, so to speak, and we’d like to start pounding pavement this week.
We’re going to hold an office-hours meeting on Wednesday, September 4 at 18:00 UTC in #wordpress-dev. We’ll review where we left off last meeting, cover the details on how we want to proceed, and make sure the details about getting involved really do show up here on Make/CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress..
This meeting is mostly to help us on the planning team make sure we’re on the same page, but all are welcome. As I said, the next action steps for interested parties will get posted back here.
Thanks, too, for all of the encouragement around this. We’re pretty excited about it!
One of the goals of WordPress 3.7 is to start automatically updating WordPress for minor releases. So, if you are running 3.7, you’ll be automatically updated to 3.7.1. @pento has worked on a 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 for this called Automatic Updater. It actually does a lot more than we need, like supporting nightly builds, SVNSVNSubversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. checkouts, and such. Based on some conversations with @dd32, here’s what we need to do for updates in 3.7:
Automatically update WordPress when we can. #22704
Verify the sanity of our download package, which includes package signing, SSLSSLSecure Sockets Layer. Provides a secure means of sending data over the internet. Used for authenticated and private actions., etc., and only updating automatically if we are sure we are secure. #18577#25007#20074
Verify that files were copied over, to increase stability. #18201
It looks like we’ve closed more than 800 tickets since 3.7 started. We increasingly need to develop some patterns here so we can sustain this. Let’s talk about how we can start targeting individual components, keywords, ticketticketCreated for both bug reports and feature development on the bug tracker. statuses; and also we need to start to getting the 3.7 report in shape.
Discuss a timeline for the release. When should we have stuff ready for a betaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1, when should we hit RCrelease candidateOne 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)., and when should we aim to release? What should we done for beta 1, versus what must be done for RC1?
The 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/. working group decided on QUnit as our JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. testing framework. There is an initial 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., which necessitates we move our PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher tests into a directory. Quick discussion and decision on where it goes.
Approve a TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. organization plan to use milestones for features-as-plugins and for Twenty Fourteen.
Work is starting on upgrades. We need to build out a proper task list and see where people are willing to help. (More on that in this blog post.)
Version 3.6.1 discussion and triagetriageThe act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors.. It’s been four weeks, we should get things ready.
Review why/how we’re doing features-as-plugins for post-3.7 releases (@samuelsidler)
Start cranking on tickets, discuss any major tickets we need to discuss, check if anyone is stuck or wants something to work on (@duck_)
A number of people are working on make/coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. posts to kick off some 3.7 initiatives (updates, language packs, inline docsinline docs(phpdoc, docblock, xref), develop.svn ideas list) or jumpstart conversations for future dev meetings (CSSCSSCascading Style Sheets. preprocessor pros/cons) — let’s aim to get these done this week.
This meeting will be followed by 3.8 office hours at 21:00 UTC. There is no 3.8 meeting tomorrow — postponed for this week.
Also, the 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/. meeting (IRC logs) went great:
@kadamwhite and @carldanley will be enumerating JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. style preferences and working on a jshintrc
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/. meeting on Monday.@koop@azaozz @carldanley @adamsilverstein @kadamwhite will be meeting on Monday at 9 p.m. EDT (Tuesday, August 20 at 01:00 GMT) in the #wordpress-dev 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. channel. I’ll let them build out an agenda in the comments, but here’s some potential topics I know they’ve been kicking around:
JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. style, structure, and design patterns, and what new code should look like
JS unit testing, including candidate frameworks and where to start
APIs, such as WP-style hooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. (actions/filters), what form they should take if they should exist
Which areas of our JS need refactoring and overhauls, and what that might look like
Which JS-heavy features need eventual iteration (often “version 2”)
What action items could be done for WP 3.7 and 3.8
Twice-daily ticketticketCreated for both bug reports and feature development on the bug tracker.triagetriageThe act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. / 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. scrubs start today. For WordPress 3.7 we’re going to structure two daily 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. gatherings — at 13:00 GMT and 20:00 GMT, or 9:00 a.m. and 4 p.m. EDT. These will take place weekdays in #wordpress-dev on freenode. (Note, the second meeting on Wednesday is actually the weekly developer meeting instead.)
A number of core contributorsCore ContributorsCore contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org. are always in #wordpress-dev to provide feedback and look at tickets, but we’re hoping some structure here can also set some “office hours”-style expectations and ensure rapid feedback. At least one committercommitterA 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. will aim to be at each of these (often it will be many more). If no one brings up specific tickets for attention, discussion, and feedback, it’ll revert to a fairly standard bug scrub that would include looking over recent TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. activity, clearing older tickets, and looking through the 3.7 ticket report.
With WordPress 3.7 and 3.8, we’re a project in major transition. Version 3.7 aims to solve for a lot of things that are weighing us down. (See the initial kickoff post.) What do you want to do? In terms of process, here is what is being worked on for 3.7:
Processes, Tools, Workflows
New development tools — develop.svn.wordpress.orgWordPress.orgThe 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/ — run by @koop. If you are interested in Grunt, unit testing (including JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. testing), and how we can streamline and modernize our workflows, this is for you.
Code reference — inline documentation efforts — run by @rzen, @ericlewis, and @drewapicture. If you are interested in inline documentation, this is for you. See this post to get started.
Processchanges (including improvements to TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. and how we organize around components). If you want to write some Python for Trac, this is for you. If you’re just interested in helping with component reorganization, stay tuned here — there will be a post soon outlining a new component tree.
Security, Stability, and Updates
We have a few other focuses that all deal with a general theme of security and stability.
Passwords. We are aiming to improve the adoption of best security practices by assisting with password generation. #24633. @duck_ is also working on some changes to strengthen cookies. #20276. If you are interested in security, this is for you.
Updates.@dd32 and @pento will be heading up automatic updates for minor releases, as well as improving the trustworthiness of our upgrader. If you love updates and stability, this is for you.
Language packs. We need to separate language files from plugins, themes, and coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress., allowing them to be maintained and updated independently (and, ideally, automatically). #18200. If you want to help WordPress’ global reach, hook up with me, @dd32, and @markoheijnen.
General TriagetriageThe act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors.
Finally, we have 3,800 (already only 3,600) open tickets on Trac. There are dozens of components with many, many tickets. Already, there have been a few components with a strong base of contributors working on them, including:
MultisitemultisiteUsed to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site, currently being smashed by @jeremyfelt and others. If you like multisite and want to make it better and more stable, this is for you. There are currently 122 open tickets.
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/.. A number of you have expressed interest on working on JavaScript in core. Whether that is shoring up the stability of existing features, improving existing JS, or working on a JS testing framework, this should be a great working group. @carldanley, @adamsilverstein, @nbachiyski, @kadamwhite, and others expressed interest.
Query and TaxonomyTaxonomyA taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies.. These two advanced areas of core kind of go hand-in-hand, not in the least because @wonderboymusic smashes query tickets with his left hand and taxonomy tickets with his right. If you’re interested in bringing down these tickets (68 and 93 open), this is for you.
General triage. Folks like @c3mdigital and @avryl have been already going through old tickets either closing them out or finding diamonds in the rough. Or maybe you find that one of the many open components catches your interest. (Go here and choose any component from the drop-down to see all open tickets.) We’ll be coordinating efforts to work together both 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. (especially during the weekly meetings) and here on make/core.
Components with a lot of open tickets: General (376 tickets), Administration (302 tickets), Media (221 tickets), Template (161 tickets), Comments (135 tickets), Users (107 tickets), Themes (105 tickets), Formatting (98 tickets), Menus (96 tickets), Widgets (90 tickets), Plugins (90 tickets), Editor (85 tickets), Upgrade/Install (84 tickets), Import (70 tickets). If you want to do general triage, General and Administration in particular need a lot of work!
Today during the weekly meeting, we’ll be talking about ongoing efforts, rallying the troops and helping to assemble working groups, and setting up some times for regular triage meetings.
So, what do you want to work on? Let’s start coordinating in the comments.