Note: this is a serious post, but I had to have a little fun and wanted to parody Barack Obama's 2009 State of the Union speech.
I've come here today not only to address the distinguished men and women in this great community, but to speak frankly and directly about everyone's favorite Drupal module, XML sitemap. I know that for many Drupalers reading right now, the state of the module is a concern. And rightly so. If you haven't been personally affected by this module, you probably know someone who has--a friend; a neighbor; a co-worker. But while the module's reputation may be weakened and our confidence shaken, tonight I want every Drupaler to know this: We will rebuild, we will recover, and the XML sitemap module will emerge stronger than before.
For those of you who haven't had the pleasure of using XML sitemap yet, I think Angie Byron (webchick) and Jeff Eaton said it best:
webchick: "Dear XMLSiteMap module: Please die. And not in that cute, friendly way. I mean I literally hope you get hit by a bus. Twice."
eaton: "Uhoh. Brainstorming a #drupal site assessment drinking game with @quicksketch ... "XMLSitemap? Finish your drink."
The last stable/official release of the module was the 5.x-1.6 version from almost a year ago. There is a 5.x-2.x version that was supposed to fix problems in 5.x-1.6. For over a year, the 6.x-1.x-dev version has been a work-in progress port of the unfinished 5.x-2.x version. Despite there not being any stable 6.x release, there are over 10,000 people using development builds which are buggy, frequently failed on updates, and could not scale to large sites. This of course, leads to several issues in the queue with over 200 replies with recurring themes of frustration and impatience.
Much like the current US/world recession, I can't assign blame to any one person or problem. The current maintainer, Kiam was very active and would keep hacking away at the module, fixing problems, but sometimes introducing new ones. For the 25th most popular Drupal module, there was a lack of regulation (peer code review) that we usually see in other popular or large modules. There was no way to say that a change won't work, or something is a bad idea until after the code had been changed. Some developers that needed a working module for their clients would take one look at the code and issue queue and would promptly run away, seeing no other short-term solution besides writing their own custom implementation. The people who's input and time could help the most did not need or want to help contribute back. Those who did make honest efforts were frustrated with language barriers or misunderstandings. There was no test coverage for the module, which I also can't blame since writing SimpleTests for an existing, largish module which you didn't originally write is really hard. But new features would be added and bugs would be fixed without ensuring that they would work correctly.
I got just as frustrated and upset as every one else. And like some of the developers before me, I went a rewrote the module how I thought it should be done. I took careful planning in a lot of the major design decisions so that the module could avoid the architectural and scaling problems. I debated releasing the module as a duplicate project or keeping it just for my personal use. But I decided to put the code into my personal CVS sandbox and then shared it with a few people via e-mail and on IRC with what I thought were the major problems that needed to be fixed, how to fix them, and wondering where do we go from there. I need to say major thanks to Angie, Greg Dunlap (heyrocker), and caktux who helped test, inspect, and review my sandbox code as well as made sure I could explain and justify why this code should move forward.
So now at this point we've got some code with potential, but I was still unsure on how to proceed. Do we forcefully replace the maintainer of a module? That could lead to messy results and hurt users. Do we fork the module? That could result in confused end-users and two similar projects. Angie, the awesome and fantastic person that she is, stepped up and helped open communication between the module's original maintainer, Darren Oh, Kiam, and myself. After lots of discussion, we have all agreed on the following plan:
I'm so glad you asked! There are four ways you can help:
In summary, we are not quitters. If we come together and lift this module from the depths of this crisis; if we confront without fear the challenges of our time and summon that enduring spirit of a community that does not quit, then someday years from now our children can tell their children that this was the time when we performed something worthy to be remembered. Thank you and long live Drupal!
Thanks for summing this up. I'm looking forward to the progress you're making on this module and hope to be able to help by testing and documenting.
Great to hear that this module is finally going to get the attention it needs. I've got the latest 6.x.1.x-dev build installed on a site with a few hundred nodes and using it for nodes, taxonomy pages and sitemap submission. I'm happy to provide feedback on how it's working out, since it's a clean install done this afternoon (before I read this post of yours!).
Dave,
Thanks for stepping up and grabbing the bull by the horns with this module. I always recommend XML Sitemap with the big "be careful with large number of nodes" caveat - it'll be great to be able to let that one go.
-mike
This should go to Drupal frontpage
Thanks to Mike and Damien McKenna who mentioned the recent efforts everyone has been making with XML sitemap on the DrupalEasy podcast!
Also big thanks to the four contributors to the rewrite fund! I truly appreciate the patience and support from the community as we get through this.
http://drupaleasy.com/podcast/2009/05/drupaleasy-podcast-08-abducted
This is a great summary of what's going on with this module. And thanks for all your hard work on it! I especially enjoyed your intro and conclusion! That's gotta be the most dramatic writing ever about a Drupal module! :)
Great to hear what's going on! First I was going to rant on how this is a perfect example of why forking should be an acceptable practice - but reading through your entire entry and finding out that you managed to solve it anyway makes me very impressed!
Will try to gather the help that I can.
Excellent, I'm looking very forward to having a stable module.
On a side note, I seriously do not know why sitemap isn't a core Drupal module. With the importance of having valid sitemap I seriously do not know why it's not in the core.
Cheers
Great read David.
I was looking over your code. In the 1.x version of sitemap there is a field in the CCK that allows you to set the priority of a node in the sitemap. Even to exclude the node from the sitemap completely. I was trying to find this capability in the 2.x version. I se in the devel module that you are exposing XMLsitemap stuff... just no form items.
perhaps I am wrong?
Thanks to the Lullabot team for the mention in the this week's Lullabot podcast! Also thanks to 2bits.com for their recent post about how the new version is working for their client!
And we are up to 9 contributors and almost half way to the ChipIn goal! Thanks everyone!
http://www.lullabot.com/audiocast/podcast-73-back-horse
http://2bits.com/articles/xml-sitemap-6x-2x-how-drupal-modules-can-overl...
Hi Dave,
Thnx for your reply at my e-mail
and for the great summary of things going on ;)
Shouldn't this be published at the XML Sitemap Project Page?
I really didn't know you guys are maintaining two different versions...
Anyway, keep up the good work,
and thanks to anyone contributing to the development of any XML Sitemap version!
Hey,
Thanks so much for your work on this. I'm using the 2.x version on my site and it seems to be working great so far.
Thanks again,
RD
Thank you for brining your integrity, strong will and devotion to Drupal to this project. The status and development time really confused me when you consider the usage stats. This message also airs a lot of confusion around the status of this module.
Hi Dave, I added a review for xmlsitemap.. http://drupalmodules.com/module/xml-sitemap
It's not very technical but it reflects my thoughts and knowledge about it.
Thanks again
One feature that is badly needed is the in the Priority dropdown, to be able to not display a particular page in the Sitemap. Why? Many people create a page called "home" or "front" and then set the drupal front page to that page. But XMLSitemap puts that site into the sitemap (domain.com/home) in addition to the real front page (domain.com/). The result is that you confuse the hell out of google on which page is truly your index and cause possible duplicate content issues. Do you have any plans to integrate this into the module?
Yep it's absolutely being planned. See the existing issue @ http://drupal.org/node/470882.
Great effort. I will try to chip in with testing of the 2.x version. We are going to use it in our sites from now onwards and help with testing of the features.
Cheers
Anoop
Great to hear! Your feedback so far in the issue queue has been great.
Allright, what's the best module to use for a new website right now?
- 1.1 ?
- 2.0 unstable 5 ?
- 2.x dev ?
There's no upgrade support from 1.1 to 2 right?
So I'd better start using 2 for a new site straight away?
And then of course: which 2 version?
As detailed in http://drupal.org/node/449998 I'd recommend starting with the version 2 unstable releases. Once we get an official 2.0 release and an upgrade path written, we're going to be recommending that everyone upgrade to 2.0.
And don't be scared about the whole 'unstable' name right now. It's actually quite stable. See my reasoning for the naming at http://drupal.org/node/449998#comment-2276828.
Thnx Dave!
Very much appreciated!
Cheers mate,
Marc
great post!
Hey,
Thanks so much for your work on this. I'm using the 2.x version on my site and it seems to be working great so far.
Thanks again,