3.7 Inline Docs Weekly Office Hours

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.

#3-7, #inline-docs

Add Inline-Docs for Hooks

The time to document ALL THE HOOKSHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. used throughout coreCore Core 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:

  1. Check the list first to make sure the file you want to work on hasn’t already been claimed.
  2. Update your local WordPress SVN or 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/. repo (use git pull) to the latest version of 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. (currently 3.9-alpha).
  3. Create a new ticket on Trac for the file.

    New Hook Docs Ticket Example

    • Format the title as “Hooks Docs: path/to/file.php”.
    • The Type should be “defect (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.)”.
    • Assign the ticketticket Created 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.
  4. Edit the file, and make 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.. Please make sure you create the patch from the root directory of your WordPress SVNSVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. or Git checkout.
  5. Upload your patch to the TracTrac An 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


Current status:

#3-7, #inline-docs

Today’s #wordpress dev developer meeting time 20:00 UTC…

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 TracTrac An 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 coreCore Core 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 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..

#3-7, #agenda

3.7 Inline Docs Office-Hours Meeting

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/CoreCore Core 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!

#3-7, #inline-docs

Core Updates in 3.7

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 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 for this called Automatic Updater. It actually does a lot more than we need, like supporting nightly builds, SVNSVN Subversion, 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, SSLSSL Secure 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
  • Do anything else we can to increase stability, like #17301 #14049 #22881
  • Think about email notifications for updates to adminadmin (and super admin) users (for when we can’t automatically update you). #10787
  • Think about allowing direct updates when we are group-writable, not just owner-writable. #10205

If you are interested in any of these tickets, please jump on board!

#3-7, #updates

Agenda for today’s 3.7 chat at time 20:00…

Agenda for today’s 3.7 chat at 20:00 UTC:

  • 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, ticketticket Created 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 betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1, when should we hit 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)., and when should we aim to release? What should we done for beta 1, versus what must be done for RC1?
  • 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/. working group decided on QUnit as our JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. testing framework. There is an initial 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., which necessitates we move our PHPPHP The 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 TracTrac An 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 triagetriage The 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.

I’d like to keep this chat to 30-40 minutes, followed by 20-30 minutes of unstructured office hours / Trac ticket review / 3.6.1 triage. The 3.8 meeting starts right after, at 2100 UTC.

#3-7, #agenda

Agenda for today’s dev meeting Review why how…

Agenda for today’s dev meeting:

  • 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/coreCore Core 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 (CSSCSS Cascading 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 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/. meeting (IRC logs) went great:

  • @kadamwhite and @carldanley will be enumerating JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. style preferences and working on a jshintrc
  • @jorbin and @kadamwhite are working on JS unit tests (#24870, #25096, #25088)
  • We’ll be formally adopting JSDoc for inline documentation (same basic style as PHPDocPHPDoc (docblock, inline docs))
  • Also discussed include JS actions/filters (#21170)

#3-7, #agenda

JavaScript meeting on Monday @koop @azaozz @carldanley @adamsilverstein…

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

  • JSJS JavaScript, 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 hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. (actions/filters), 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

#3-7, #javascript

Twice daily ticket triage bug scrubs start today…

Twice-daily ticketticket Created for both bug reports and feature development on the bug tracker. triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. / 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 start today. For WordPress 3.7 we’re going to structure two daily 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. 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 Contributors Core 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 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. 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 TracTrac An 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.

These start today at 13:00 GMT (so, in three hours) and today at 20:00 GMT.

#3-7, #bug-scrub

WordPress 3.7 organization

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.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/ — run by @koop. If you are interested in Grunt, unit testing (including JSJS JavaScript, 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.
  • Process changes (including improvements to TracTrac An 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 coreCore Core 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 Triagetriage The 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:

  • Multisitemultisite Used 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.
  • 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/.. 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 TaxonomyTaxonomy A 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 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. (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.

#3-7