This was a presentation I gave at the Boston WordPress Meetup on October 30, 2017. It focuses on a set of development tools that we have used at the MIT Libraries that includes Waffle.io, Travis, and CodeClimate. I also discuss some alternatives that we tried, and some thoughts on replacements for aspects of this approach.
7. This is getting out of hand...
Development
Testing
Production
Developer
Developer
Contractor
FTP
FTP
8. You take this, you take that, I’ll be over here
Plugins
Home Page News
Pending Posts
Multisearch Widget
Private Debug Log
Themes
Parent
Child
News
Music Oral History
150Books
Connick
TwentyTwelve
Developer
Developer
Contractor
22. Enter Waffle.io
• Focused on issues, not code
• Stores (almost) no data itself
• Alternate UI for GitHub
• Free for open source
• Multiple repos summarized on
one board
23. One system, many interfaces
• Developers get to use git
• Non-developers get to not use
git
• Everybody has interface choices
based on their desire
• Everything is free
27. Development and review process
Developer
Development
• Simple visual
inspection
Testing
Production
Stakeholder
28. Development and review process
Developer
Development
Testing
• Rigorous User Testing
• Cross-browser
inspection
• Pull request / code
review
Production
Stakeholder
Developer
29. Development and review process
Developer
Development
Testing
Production
• Post-deploy
verification
Stakeholder
30. Can we automate this?
Developer
Development
Testing
• Code Review
Production
Developer
33. Static Code Analysis
Travis CI
• Runs PHP CodeSniffer
• Includes WP Code Standards
• Scans the entire codebase for
each PR
• Customizable deploy script
CodeClimate
• Runs PHPCS, ESlint, CSSlint
• Includes WP Code Standards
• Scans only the methods/lines
that have changed
• Only performs code analysis
51. Future (and latest) steps
• Visual regression testing
• Move from Waffle to JIRA
• Combines code- and non-code changes
• Not as easy to use, but more expansive
• Better build/deploy workflow from GitHub to servers
• Refactor WordPress code to be testable
• Submit projects to WordPress / SVN / TRAC?
• Pantheon?
52. Thank You
• GitHub for source control
• One repository per (local) project
• Waffle as an alternative UI
• …although we’ve moved to JIRA
• Automatic code linting
• Travis CI
• CodeClimate
• Continuously examine your
tooling choices
• MIT Libraries
https://libraries.mit.edu
https://github.com/mitlibraries/
• Matthew Bernhardt
mjbernha@mit.edu
@morphosis7
Editor's Notes
Travis runs on feature branches and pull requests, allowing analysis and code repair before deploying to production
Learned from Automattic’s _s theme
Learned from Automattic’s _s theme
Learned from Automattic’s _s theme
Travis runs on feature branches and pull requests, allowing analysis and code repair before deploying to production