I wrote a new version of my command line twitter client1. It now has coloured output, which helps me read more easily. Also it grabs direct messages and tweets referring to me, as well as the regular friends updates.
As with most of the personal software I write, it is some files with links into the right place to make it work on my system, and dependencies taken care of by virtue of my having installed them already. If someone else wanted to use it, they’d have to know what they were doing, or I’d have to provide a lot of instructions2.
So I started thinking about packaging – making the application simple for someone else to install. I think it’s pretty cool: so wouldn’t someone else?
But packaging is tricky. At a minimum I’d have to rearrange the code I have, add some supporting files and package specification. Figuring out what all the dependencies really are might take a while. Is it worth the effort?
I’d also have to decide which kind of package to use. The application is written in Ruby, so I could make it a Ruby gem. But then it would only really be installable by Ruby developers, and it’s meant to be an end-user program, not a library. Or I could package it as a
DEB for my Linux distributions of choice, but it might be tricky taking into account the other rubygems it depends on – as explained here, rubygems do not sit well alongside Deb packages
In the end, I suspect I will use the program myself, and move on to the many other projects on my to-do list – I don’t get much value out of spending my time making packages.
1 It’s a complete rewrite, so I’m not sure if ‘version’ is the right word.
2 In fact, when I copied it to another of my computers, I had an unanticipated issue which I had to investigate to make it work just for myself.