Using Stratopan To Build ... Stratopan
Stratopan is a slick new service for hosting custom CPAN-like repositories in the cloud. I've been doing all the development work for Stratopan on my laptop computer. But the other day, I decided to try running it on the Linode server I rent.
So I logged in to the (nearly pristine) server, fired up
cpanm to install all the prerequisite modules, and launched the application. Lo and behold, it was broken! Read on to find out how Stratopan actually saved me from hours of debugging pain...
The problem wasn't an obvious one, like a failed unit test, or missing module, or even a logic error. It was much more subtle -- the kind of thing that could take a long time to diagnose. But the same code worked just fine on my laptop. So what could be the problem?
Then I realized my mistake. When I installed all the prerequisite modules on the server, I had used the latest versions from CPAN, and those were definitely not the same versions I had on my laptop.
I've been working on Stratopan for months, progressively adding CPAN modules on my laptop the whole time. There were dozens of modules on the server that differed from my laptop. Figuring out which module (or combination of modules) had caused the problem could take hours. I had absolutely no desire to go down that rat hole.
Fortunately, I remembered that I still had an early version of the Stratopan site running somewhere. And on that site, I had built a custom repository containing all the modules I was using to develop Stratopan on my laptop.
So I went back to the server and rebuilt my application. But this time, I configured
cpanm to fetch modules from the repository on the old Stratopan site. Voilà! I now had exactly the same modules on the server that I had on my laptop. And guess what? The problem was gone!
Does this problem sound familiar to you at all? There is still time to sign up for the private beta at Stratopan.com ;-)