WordPress 2.0 Release Candidates

As has been mentioned elsewhere, WordPress 2.0 is in beta. We’ve kept it low key so far, but we’re getting a pretty good testing turn out nonetheless. Several little bugs have been shaken out since the first beta. If you are feeling adventurous, try it and share your beta experience in the Beta Forum or on the Testers List. As always with unreleased versions, don’t use it on your live site just yet. If you do, make a backup and be ready to rollback.

To keep track of bug fixes going into 2.0, watch the timeline. We’re fixing bugs pretty briskly and releasing new 2.0 release candidates as we go.

Dell D810 and Ubuntu

My new Dell Latitude D810 laptop arrived earlier this week. I got the WUXGA display that can do 1920 x 1200. Very nice. I installed Ubuntu on it and now have a quite powerful on-the-go desktop. The Ubuntu install was flawless. It allowed me to resize the Windows partition and install into the freed space. It recognized all hardware and set the resolution for the high density, widescreen display appropriately. My Logitech V500 mouse also worked without a hitch. Now that I’m getting used to the touch scroll panel on the V500, I’m quite comfortable with my new mobile rig. I stuff the entire setup in an Arc’Teryx Blade 21 and head to my favorite coffee shops and cafes for some highly productive WP development.

WP Commit Digest for Oct. 15 – Nov. 15

The past month has seen almost 150 commits. The bug hunt is responsible for many of those. Almost 100 bugs were squashed during the hunt. Amidst the bug fixing we managed to add some new features and refine some existing ones.

The WYSIWYG editor received lots of polishing. It is much more accessible thanks to Andy’s work. Andy also did lots of work on the image uploader. Images and other uploaded objects now can have their own permalinks and comments. Andy and Owen also created a Flickr plugin that provides nice integration with your Flickr photos.

I worked behind the scenes on database versioning and a persistent object cache. Users don’t really care about these since they’re not visible, but the changes should result in a faster, leaner, and more vigorous WordPress. Honest.

To wrap this up, here are a few development headlines from the last month.

Persistent Object Cache

One of the big recent additions is the Persistent Object Cache. Objects such as pages, categories, options, and users are saved locally to disk so that WP doesn’t have to make a trip to the database. The object cache is completely pluggable, allowing hosts to tailor the cache to their particular usage and needs. Folks on the hackers and testers lists have been shaking out the bugs. The cache is looking pretty stable as of now.

BBQ Powered Bug Busting

Yesterday, Matt and I fueled up at Memphis Minnie’s (the brisket is great) and then put the hurt on a bunch of bugs. We applied lots of patches from the bug hunt. We have a handful of those left, but we’ll knock them off soon. With a couple more doses of BBQ, we should be able to resolve a lot of the outstanding bugs.

In the interest of fast bug fixing, give us your recommendations for good BBQ in the Bay Area. What’s your favorite place?

Bug Hunt

Our bug hunt was a great success. Almost 100 bugs were dispatched. I’m still going through all of the patches and committing them. Several items on my personal todo were taken care of by others. I’m all for that. Go through the list and see if your favorite bug was squashed.

Database Versioning

We recently added database versioning. Until now, the database was unversioned. When running upgrade.php, we would do all of the steps necessary to upgrade the DB from the earliest release of WP to the latest, regardless of what release of WP generated the DB being upgraded. To accomplish this, the upgrade code had to ensure that every action it performed worked against all versions of the WP DB and produced the same results no matter how many times upgrade.php was called. This could be a pain since we had to ensure that every upgrade action could recognize and not step on its own work when being called for the second, third, and fourth times. With the addition of a database version, we can do the work once and skip it on subsequent calls to upgrade.php. This makes the upgrade code easier to write and makes upgrade.php run faster. For example, 1.2 had some problems with double slashing quotes. Code in the upgrade went through the entire DB and fixed these double slashed quotes. This is an expensive operation that was run every time upgrade.php was called, even when upgrading from later releases that did not have the problem. Now we check the database version and skip that step if we aren’t upgrading from a 1.2 or earlier database. If you run upgrade.php against an up-to-date DB, upgrade simply returns immediately and does not touch the DB. A simple change that was overdue.