Isn't that a lovely image? I found it at a site that I dare not link to as I have plenty enough spam traffic from that country.
This week I finished another Drupal upgrade. Drupal 7! If you don't know what Drupal is, well it's basically the content engine that runs my website here. Totally a very excellent tool and absolutely free. Drupal is similar to Wordpress which you may have heard of. Drupal is very powerful, but using this power has its costs. One of them is maintenance. Uugggggh yuck. This upgrade was nail biting tedious work that resulted in my website looking and functioning nearly the same. This was my 3rd "major version" upgrade since this website project started in 2005.
Let's have a quick look at how much time these upgrades took:
Drupal version 4 to 5 = 10 hours of work (link to that news post)
Drupal version 5 to 6 = 40 hours of work (and that news post)
Drupal version 6 to 7 = 200 hours of work (you're reading this news post)
Isn't that looking exponential? Yikes a Drupal 8 upgrade in a couple years could be 1000 hours. Out of the millions and millions of Drupal sites out there, likely very few have upgraded from version 4 to 5 to 6 to 7. (not possible to skip a number!) That's because it's becoming to be a pain in the ass. Not that I'm really complaining. This is what I do. I am Steven Read Dot Com. But because I have laid some good eggs into this Drupal basket, I think about this stuff and like to watch out for bad apples. The archiving of data and technological creations is obviously a very complex subject. And when you are knee deep in the shit of thousands of broken data structures, trying to keep the blue train a rollin', it feels serious man! So fragile.
When planning the upgrade and seeking advice, some asked why upgrade to Drupal 7 at all? Honestly, there weren't *that* many new features that I needed. Maybe it just buys me time. As here comes Web 4.0 and Drupal 8, Drupal 9, 10, 15, 23. Yay new versions! Or maybe Drupal peaks soon and then I'll have to migrate everything to the "next big thing". Its dizzying. When will I even have time to make new art content? Technology is the master, I am the slave. Haven't I preached about avoiding this relationship? What Thee Fuck. Maybe the idea to give all your data to other companies so they can manage it for you isn't just a silly fashion. But then I would have really bad startup and/or corporate logos surrounding my work. And maybe they would go out of business and sell my data. Maybe they would change the visual interface into something very sucky. But maybe they would even let me download all my data eventually. Maybe not. It certainly doesn't sound like I would be in control of my own work. Someone else's short-term goals would always trump my long-term ones. So instead... I maintain, therefore I am.
So why was the Drupal 6->7 upgrade such a mess? Many reasons.
The first 50 hours went into reverse engineering a module which died with Drupal 6, the Category Module. This wasn't just any old module. Back in Drupal 4 and 5, this was *the* module that many folks built their sites around. You "simply" created these nice hierarchical categories and then it would generate all the other drupaley stuff like nodes, taxonomies, views, menus, breadcrumbs, etc. Seemed like Drupal paradise...
...with such nice sunsets, but then you wake up with a throbbing hangover and you have to reverse engineer your entire website if you want to live to see the light of Drupal 7. After that was complete I realized the theme (basically a system of code hooks and templates) I was using also died with Drupal 6. In 2005 I originally chose an empty, skeletal theme called "foundation" which I liked for its Drupal default-ness. I ran with that aesthetic, and still do today - it's the apple of my eye. But visual simplicity doesn't mean programmatic simplicity. I had to upgrade the theme manually, which has all kinds of hooks and function calls to the Drupal API. And of course wouldn't you know, Drupal 7 has a completely revamped API with very little that is backwards compatible. Grrrrrrrr.
Yes the 'new and improved' Drupal 7 core API has thousands upon thousands of changes. Take a look here and here and scroll down the page very quickly because it's fun like that. And if you assume those documents cover all the changes, you'd be wrong. Call me a dystopian, call me crazy, but at least tell me why thousands of awesome brilliant volunteer coders would create such a nightmarish scenario? Can't we at least have a wrapper to support old interfaces for a transitory period? Drupal is a headless monster. Of course I am very thankful for having this hungry monster at home for dinner every night, but whoa. Yeah. I've been in this business a long time. Definitely not chill. But somehow I worked my way down to the bottom of the barrel here as I upgraded my custom module code, some contributed modules that I had hooked and hacked, views (generated queries), administration settings, all kinds of stuff. Some code was upgraded automagically (coder module), but that didn't peel away much. At one point during the upgrade when my site was finally running in Drupal 7, every single page type on my site had errrors and broken chunks strewn about. I have over 1000 pages here now, many containing custom programming, it's alot to test.
It was epic. Well, no not really. I'm just being dramatic. It was applesauce. Just 200 hours not including planning and preparation. I have spent more hours than that on just one painting (this yellow one for instance). But this was maintenance duty, not paint on a blank canvas. It wasn't much creative fun. Or was it? Could long-term software maintenance be "art"? Perhaps it is the key to something new. And anything worthwhile is hard work, so I'll stop rambling about my software right around now and get back to Durpal contents craetion. Maybe next time I can obtain some funding and hire someone else to help in the code kitchen. Perhaps I can also get them to help peel back for you some of this damaged metaphor usage.