Today we did our first team WordPress code review. Even though we build on WordPress MU as much or more than we have with single user WordPress, we all wanted to get a better sense of how that functionality had been merged into 3.0.
It went pretty well I think. We met at the office, got started, ordered some pizza, and wrapped up after a few hours.
The process was pretty simple:
- Diff the WordPress 2.9 branch and trunk (3.0)
- Review the differences
- Keep collective notes in an EtherPad doc, flagging things to investigate in plugins/themes we’ve written, test specific new features, and bugs to file in Trac
We got through the wp-admin directory and will need to do another round or two to get through wp-includes. This is the first we’ve tried to do a team code review like this and I think it worked very well. Having everyone’s collective experience made for quick work in referencing how we’ve built various things in the past; as well as looking things up to confirm various suspicions.
We’ve already started building a few sites on 3.0 and testing upgrading several existing sites to 3.0 and have found a half-dozen or so plugins that have broken already due to changes in the 3.0 codeline. Some of these will be resolved by us changing how we have various features implemented, others will hopefully be resolved by submitting bugs and patches before 3.0 ships.
With Open Source you have a unique opportunity to test-run the code and help make sure that the shipping version is a high quality product that works with your enhancements, etc. My experience has been that we push WordPress a little farther than most folks do in terms of the custom features and functionality we build on top of it. Because of this, I think it is important for us to do some testing with the pre-release code so that we can help identify more subtle functional changes and regressions that can affect more sophisticated site builds.
It’s always a tough balance to get this done on top of our client work (hence the Saturday code review session), but I definitely want us to help out when we can.