Background: You may want to read this post by David Perel, this one by John O’Nolan, and then this one at WP Tavern.
We slated menus for WordPress 3.0 during our developer’s meeting on January 7. After not getting very far over the next month — a lot of that due to our focus on custom post types and the MU merge — we noticed that Woothemes released their system (they did so on January 27). We had been struggling with the concept (early patches used the widgets code as a base) and their take seemed like an interesting angle.
After they contributed a giant patch, we switched the schema over to a custom post type and taxonomy, rewrote a lot of the code to conform to our coding standards, and started to build out an API. After a round of usability testing, we made some numerous design and UI changes. We also needed no-JavaScript support and RTL support, and our new UI called for new JavaScript, so most of everything ended up being rewritten.
Point is, that’s how it works. It’s called iteration. In an open source project, iteration happens very publicly. I can think of a handful of patches I have personally written or committed that ended up getting modified extensively later in the same development cycle, or in some cases outright refactored or removed. This doesn’t make the contributions less valuable. Of the hundreds of patches I have written, many iterated existing code written by others. It’s called a patch for a reason. As we evolved the custom post type system, tons of code got rewritten, some of it dating three years and some of it three days. As we merged in WordPress MU, thousands of lines of code written by Donncha and contributors to MU were in some cases entirely rewritten or simply deprecated and removed. This is how a project evolves, grows, and strengthens.
Menus were a collaborative effort among dozens of developers. The first contribution to the effort, by Jeffikus of Woothemes, was very important. It was a very sizable contribution that then drove our stalled development in the direction we were grasping at for some time. But it was also just the first of hundreds of iterations (like any other major feature) — the patch was an early prototype of a feature we wanted to scale to millions. Like every other individual pouring mind and soul into the WordPress project (more than 200 contributed to WordPress 3.0, dozens on menus), they absolutely deserve credit for their efforts, on top of the respect they have earned for contributing commercial code to the project.
I don’t think anyone is at all disputing that.