Modernizing the WordPress Toolbox
Moving
Taking Out Windows
2003
Make
Ant
JSLint
SimpleTest
That's almost It
2013
Grunt
Phing
JSHint
JSValidate
PHPUnit
PHPSpec
Behat
qUnit
Mocha
Jasmine
Options
Options
Options
Options
Options
Options
2013 Looked like 2003
Separate Unit Test Repository
Bots Behind the Scene
No JS Tests
Problems
Tests are
Hidden
Tests are
Harder
Tools are
Hidden
Missing Optimizations
Philosophy of Tooling
Make Contributing Code Easy
Bad Patches Make More Work
Make Contributing Quality Code Easy
Bad Patches Make More Work
Make Contributing Quality Code as Easy as it Should Be
Barriers Only On Purpose
Big Project
Big Goals
Non Breaking
More Tools
More Testing
More Transparency
Easy To Develop
Easy To Contribute
Better Patches
Where We Went
One Repository*
core.svn.wordpress.org
VC Agnostic
One Repository*
* Actually Four
core.svn↴
develop.svn
Sync
core.svn still works
core.svn still can be developed
develop.svn has the new happy
Version Control Agnostic
git.core
svn.core
git.develop
svn.develop
More Tools
Grunt
Why Grunt?
Stable
Big Community
Lots of Modules
Group Tasks By Actions
Build Our Own Tools
grunt-patch-wordpress
Patch Creation Agnostic
Git, SVN, Core, Develop
Simplify Steps
1) wget Patch
2) how was patch created?
3) apply patch
4) go to 2
1) grunt patch:15705
Sibling Projects
Available for other Trac Projects
Uploads Next
grunt-cssjanus
Gruntified CSSJanus
Left-to-Right
Right-to-Left
Limited RTL specific Commits
Barrier to Contribution Lowered
CSSJanus isn't perfect
Grunt-RTLCSS
JsHint
Team Effort
One File at a Time
Grunt Filter by File
PHP Code Sniffer?
Stylistic Changes Pollute History
Blame is a debuggers friend
PHPCS Only for Changesets
JSValidate
Minification Bugs
More Testing
PHPUnit
Tests & Code
Same Commit
382 Additions
136 Additions
Ticket Open checks
Mocha
QUnit
Jasmine
Mocha
QUnit
Jasmine
Sinon
Travis CI
Better Patches
EditorConfig
Happier CSS
autoprefixer
SASS
More than just code
Trac
Own Our Experience
Commiters Noted
Gardeners Know New
Community Driven
Sibling Projects Drive Each Other
wp-cli
Command Line WordPress
Varying Vagrant Vagrants
Variable VVV
Salty WordPress
VCCW
Lessons
Have Goals
Don't Create New Problems
Learn from yourself
Support Your Community
Support Entire Community
You Own Your Dependencies Bugs
Aaron Jorbin

aaron.jorb.in
@aaronjorbin
joind.in/13366