Posted on Dec 29, 2008

GUAS: Giving Unwanted Advice Series #2

Hello everybody. Today is time for another Advice Series post.

On previous article I’ve focused mainly on cross-platform things, and for that purpose, I’ve released rake-compiler

This time, I’ll focus in attitudes instead of code, and how these affect the public image of your projects.

Attitude and project image

Again, because you’re working on a OSS, it has a public image — even if you don’t want it — so don’t be narrow-minded and say I don’t care, because you should.

Keep all your users aware of the changes

I can start this with a mea culpa1. While working on OOS, you need to keep everyone that uses or contributes to the project aware of the changes.

Why? because a change introduced can break lot of development or production environments, not to say take away the joy of using Ruby at all!

I said mea culpa, because I neglected One-Click Installer (read ruby-talk post). I’ve released second candidate and commented the current situation why there wasn’t a new release here

Now I realize how important is keep your users up to date on what’s happening with the projects that affect their work.

Why I’m saying all this? Because the new trend is do announces on Twitter, even when you’re subscribed to the devel mailing list of the project… you need to stalk the project developers to get news.

Of course, you can avoid all this spending 4 to 8 hours a day on #IRC channels, where most of the big and compatibility breaking changes are introduced and decided.

Just to give you an examples…

Merb

Previous release of 1.0, most of the 0.9.x versions included release notes with changes. Proof is here for 0.9.5
, 0.9.6, and 0.9.7, but seems that ended there, with no announce for 1.0 (Final or release candidates). Even no changes that you can see on RubyForge.

This is something I’ve commented to the developers several times and keep poking them about it, as I commented on this blog post about something will change in new release that wasn’t announced in the mailing lists (neither users or devel one). But guess has no effect, since release announcements happens on Twitter mostly: here, here, and here

Taking in consideration all that background, no head’s up any of the releases release were announced (at least not on the mailing list I’m subscribed to), so I couldn’t test all these cross platform things beforehand.

Sqlite3-ruby

There was a pair of messages on Twitter (tweets?) requesting help on getting sqlite3-ruby project working on Windows (here and here). Again, you should be stalking that user and of course, have the time to read all these tweets.

Anyway, I left my POV in the comments of his blog here and proof of my results in my sqlite3-ruby fork here

A quick resume of this: sqlite3-ruby 1.2.4 was released, with this release notes:

This release only updates the generated C file to reflect the compatibility changes that were made to the SWIG file. Binary builds (e.g., Windows) are not affected, and need no update. In general, you will not need this update unless you are using a version of Ruby prior to 1.8.6.

The thing is that any new gem release will affect gem update, so if no binaries for Windows exist for 1.2.4, Windows users will installation errors, like the ones listed here

As I left on blog the comments, I’m not against on a developer dropping the support for a platform (humans beings are really hard to please).

I suck at release management too, as I mentioned when started this article, but a small blog post with a head’s up or quick announcement will not hurt anyone, right?

Anyway, if you want to automate the news announcement to RubyForge, take a look at this (look ma, no Hoe, Echoe or anything, just plain Ruby!).

DataMapper

DataMapper suffered from gemitis like Merb (too many gems to release each time), so verify all those moving parts on every release is time consuming.

I’ve shared my comments on this on Lighthouse and the mailing list, and also contributed back some patches for a project I currently don’t use.

My take (my conclusions)

You can agree or agree to disagree with me on this, is up to you.

I’ve spent up to 10 hours of QA per each release of One-Click Installer, because I care not to break stuff (and that’s why I do RC instead of final versions).

I came from a industry (broadcast video) were all those mistakes cost thousand of dollars per second since they play back advertisements. The systems must be running 24×7 or they loose money.

Those are not pet projects anymore, and as such they should invest time on structure instead of hacking a new cool functionality and tweet about it.

Performing a gem update hurts all, they are silently releasing stuff into Rubyforge which is the default gem repository for users. The funny thing is that I’m not talking just for Windows users, but Jruby too.

The problem is not technology or a platform limitation, is people.

People said that I’m a whiner, I just rant out loud and do nothing…

Well, when you try to something and people doesn’t care, no matter how much you do, never will be enough.

1 Wikipedia article about mea culpa

3 Comments

  • Dan Kubb says:

    Luis, I believe for the most part we’ve addressed the issues you had with DataMapper since I’ve begun maintaining it and doing the gem releases.

    I still do twitter announcements via @datamapper, but I also send messages to the mailing list with links to all the change logs for each gem. Yeah, it’s alot of gems to release each time, but I feel like we’ve got a handle on it.

    We’ve even started work on DataObjects (an offshoot of DM that provides optimized DB drivers) to make Windows gems for do_sqlite3 (with future plans to do the same for do_postgres and do_mysql). This was something that we collaborated on with you prior to rake-compiler being released, which we plan to integrate so we can remove some of the scaffolding we built up.

    If there’s anything else that we could be doing better with DataMapper and DataObjects, please let me know.

  • Luis says:

    Hello Dan,

    Maybe I didn’t state on the post itself, but DM overcome these issues more quickly than other projects, or at least showed more interest on get those fixed.

    That’s one of the reasons I didn’t add more things to DataMapper itself on the message :)

  • Jorge L. Cangas says:

    @Luis: you are right! To be or not to be professionals, is’nt?. I use ruby on windows for production stuff, so is serious for me, new releases don’t break anything I don’t know. Otherway, I canno’t upgrade my apps, so I will be force to don’t use Ruby in ‘real’ products, only as a (interesting) toy. Sure, the One Click Installer i s great, and your policy is right: moreover: I don’t use twitter!! I expect the warnings and docs go ‘packaged’ with the product, just like the papers that go with my laptop. If not, I want this in any well visible point in the download page, but not in twitter…