Caja Negra... VIVE!
Today I had decided I was finally taking Caja Negra — a political web app of mine — online after so many failed attempts (I’m so sleep deprived now that I get dizzy, really dizzy, just looking at the screen). At first I thought it was a problem with Rake and so I started by reading it’s online documentation. It proved a dead end but it turns out Rake is a pretty interesting thing (and so are Rails migrations).
I decided to read some more on the Login Engine itself, and I read, much belatedly, that it is bloated and hard to modify. That has been precisely my experience — and yet, it was very useful to me and after some friendly fisticuffs we learned to get along. Many thanks to James Adam for it.
I finally decided to start the deployment all over again, from scratch, carefully checking the tiniest step. It all narrowed down to a simple command, “rake engine_migrate ENGINE=login”, that just wouldn’t run. I found some people with the same problem but no working solution.
So I kept reading and trying all sorts of different versions of the command once in a while, like a kid magician who just can’t pronounce the incantation correctly.
Along the way, I finally found out why my blog was dead a couple of days ago. It turns out TextDrive rolled out the new version of Rails (1.1) but it was incompatible with Typo and so they rolled it back. They now advise people to freeze (new word for me) your Typo to Rails 1.0 or update to the new, compatible version of the blogging engine. Even DHH apologized in the name of the core team for all the trouble the upgrade caused. TextDrive’s Justin French, on the other hand, was as diplomatic as usual when someone expressed the caring hope that people get notified about what they should do:
The solution is not for us to provide warnings in the forums, or send out emails, or stand on top of a tall building and yell out some kind of warning and hope every one hears. The solution is for developers to take control of their own web application’s source code, rather than rely on shared server libraries that can (and should) be updated regularly.
That crankiness is actually one of the reasons I enjoy TextDrive. Masochism, they call it.
Anyway, I was definitely getting nearer. I was now sure that what I needed was to freeze my web-app to Rails 1.1. Blessed yerejm gave some instructions for how to do just that here. But the simple conjuration, “rake rails:freeze:edge REVISION=4091”, wasn’t working. I stared hopelessly at the screen for some 20 minutes, thinking about what could be the problem. Then it hit me, probably out of some small passage that I must have read in the realms of documentation I skimmed today, that last colon should probably be an underscore for me. And it all worked.