Sorry this page looks weird. It was automatically migrated from my old blog, which had a different layout and different CSS.

Note To Self: How To Build Gems

Update (18 October): things have changed.

This topic has come up quite a bit recently.  I'd never really thought about it much before — I just used [Jeweler][] because that's what [GitHub recommended][plug].  However I had been noticing that Jeweler made what should have been a simple task complicated.  And it decimated the signal to noise ratio of my commits: my "real" commits were swamped by ones Jeweler made to update the version number and so on.

So after looking into the matter briefly, here's what I now think.

The [gemspec DSL][gemspec] is nice and clean.  Don't hide it behind something like Jeweler.

We need to:

* build versioned gems
* build versioned archives (.tar.gz)
* tag the versions in Git / on GitHub
* push the versioned gems to
* (optional) install versioned gems locally

We can do all this by hand; it's pretty simple.  We can also save typing with Rake.

Either DIY:

* [Fyi's rakefile][fyi] (but not DRY and no archives yet)
* [Shotgun's rakefile][shotgun]
* [Mustache's rakefile][mustache]

Or using a *simple* tool like [minimal gem (mg)][mg]:

* [Gist's rakefile][gist]

Andrew Stewart • 18 May 2010 • RubyNotes To Self
You can reach me by email or on Twitter.