blogstrapping

Post-Publication Features For Droll

Isn't that always the way? Just when you do something that feels like being "done" with something, a slew of changes crop up that are needed, or that you just feel like you want to add.

It happened when I first bumped the droll project to Release Candidate status. It has happened again, now that I pushed the project to gemcutter, thus publishing the droll gem for all the world to see and use.

I published the gem as a release candidate (already at a ridiculous sub-version of the 1.0.0 release candidate -- 1.0rc5.2.3, fercryinoutloud) only the day before yesterday, and today I found myself adding support for three more die types in my local development version. As things stand, I think I will have to reorganize things substantially to feel better about how this stuff is implemented before dumping the new features into the public gem, and I haven't even added documentation for the new features yet. I'll add documentation before pushing to Bitbucket; I'm not sure whether I will put off pushing to Bitbucket until I've reorganized everything.

I should probably just start using temporary branches for feature development in the future. Maybe it's not too late to do that now, for these features.

Part of the problem with the current implementation of these new features is that they're just adding to the cruft building up in a sort of god-method that does far too much stuff. I really need to break some of this stuff out into separate methods, not only to manage complexity for me as a developer, but also because there's no reasonable way to provide good test coverage for the functionality currently lumped together in the uber-method. Kids: don't try this at home.

I think I will keep working on droll stuff for a while before going back to other personal projects in any seriousness, unless someone reports a bug, or gives me some kind of feature request of dire urgency.

Somewhere along the way, I need to make a droll project site, too. My to-do list just keeps getting longer.

The Features

I've added three new die types (two of which are related). Since first writing this, I have reorganized the code, written some tests, and changed the syntax for those two related die types, so I decided to edit the following: