Lots of improvements to Core Trac

Over the holidays, I was sick for two weeks (boo). While resting and recovering, I took to working on our tools (yay). Specifically, Trac. Here’s an overview of the added features, enhancements, and bug fixes. There’s a lot (and more on the way), so I’ll try to keep each point brief. If you have any questions I’d be happy to elaborate in the comments.

Refreshed ticket design: Bigger Gravatars, more whitespace, bigger body type, and Open Sans. (If any designers want to touch things up further, let me know.)

Duplicate ticket suggestions: When creating a ticket, it will use the title you enter to return a list of “possibly related tickets”.

Cross-referencing IRC ticket mentions: Whenever a ticket is referenced in #wordpress-dev, a link to the channel logs will be posted to the ticket. This ties conversations together and means that a discussion reached “per IRC discussion” is effortlessly documented. (As it is for record-keeping purposes, the comment doesn’t send a needless notification.)

Screen Shot 2014-01-05 at 2.01.29 PM

Automatic image attachment previews: Whenever an image is uploaded (typically, a screenshot) as an attachment to a ticket, it will now be embedded inline. (See this in action.)

No more HTTP authentication: That blasted dialog is gone. Jon Cave wrote a Trac plugin for us that validates existing WordPress.org cookies. Also, I ported over heartbeat-like auth checks to Trac, so no more losing comments if you get logged out.

Comments column on reports: The main reports reports now have a count of comments added as a sortable column.

New “good-first-bug” workflow keyword: This should be used to identify tickets that are good starting points for new contributors. They don’t necessarily need to be easy, but they should be well-contained and not much of a rabbit hole. (This supersedes “easy-fix”, see this). We also added the existing “ui-focus” and “docs-feedback” keywords to the dropdown. Here’s the full list of keywords, with explanations.

“Open Tickets With Commits Against Them”: A special request long ago requested by @ryan, to be used as a sign of in-progress tickets. For now, you can see them on top of report 6. I wrote a script that can find these tickets, so we can do more with this data.

Email address syncing: The email you use on WordPress.org is now automatically synced to Trac for the purposes of notifications. (More details here.) The old “Preferences” link is now buried in the footer.


Screen Shot 2014-01-06 at 2.41.18 PM

  • In the single ticket view options box, there’s now a “Show only commits/attachments” checkbox. Could be helpful when trying to scan a large task ticket.
  • Committers are now marked as such next to each comment. This is primarily designed to provide additional context for people new to contributing. We’ll probably do this for bug gardeners and such as well at some point.
  • Users no longer see “Replace existing attachment of the same name” when uploading patches, as it was often misused. (Bug gardeners can still see the checkbox.)
  • Trac is now 100% SSL. Supports SPDY, too.
  • Added after this post was published: The default query has always been open tickets you own. This is fairly useless for most contributors. Now the default query is open tickets you reported. (example link)
  • Also added after this post was published: When creating a ticket, some JS looks for some security-related buzzwords. If it finds any, you need to click a checkbox verifying you understand that security issues should be reported privately. Thanks Jorbin!

Bug fixes:

  • Fixed some issues with the global WP.org header/footer. This makes Trac responsive again.
  • Fixed deletion of comments. This had been broken, which was annoying when trying to delete the occasional spam comment.
  • Visited link color styles are no longer overridden.
  • Live comment previews no longer collapse ‘Modify Ticket’.
  • RSS feed links are no longer broken.

Known issue:

  • There are some encoding issues on old tickets and comments. This will be fixed soon.

That’s it for now, but there’s more in progress. Also, pretty much all of this is open source. For more, see meta.trac (and specifically here and here).