Corundum
Quickstart
The corundum-skel executable templates all the basic files necessary for building
a gem with corundum. It's cautious and will not overwrite existing files.
gem install corundum
cd my-new-rubygem
corundum-skel
rake -T
Foolproof rubygems
With Corundum added as a developement dependency to your gemspec, and configured
(quickly) in your Rakefile you can do:
rake release
and know that you're publishing something you won't be embarrassed by.
What is it?
Corundum is a set of Rake tasklibs built so that you can set up safeguards on
your gem deployment so that your deploys won't distress your users.
The tasklibs are built to be extremely flexible and terse, so that they can
conform to your build process, rather than the other way around.
Why do I care?
Have you ever released a gem that:
- Didn't pass its own specs?
- Were poorly tested?
- Depended on gems that weren't released yet?
- Didn't include all their source files?
- Included tons of files that weren't actually part of the gem?
- Still had a p or debugger line hanging around?
- Weren't commited and pushed to github?
- Weren't tagged with their version on github?
- Didn't have decent public documentation?
If so, Corundum is for you.
Have you ever been irritated with a gem packaging system that
- Did the easy parts and left you to figure out the hard things?
- Imposed it's own ideas about how to organize your gem?
- Relied heavily on code generation?
- Wouldn't let you use Rake as it was intended?
If so, Corundum is for you.
Learn more
Thanks
Corundum certainly wouldn't exist without seattlerb's Hoe.
Corundum's default documentation theme is lifted wholesale from Steve Smith's Modernizer theme for github pages.
Obviously, Bundler and Rubygems are a prerequisite, and the teams that works on them are pretty much amazing.
Contributing
The decisions about what to support in Corundum have everything to do with my
personal dev environment (which might help explain the Montone version control
tasklib). From the start, the idea has been to make changing out components
absurdly easy. Legos stick together more than these things. I'd love to see
an RCov tasklib, for instance, or a Minitest one. Mercurial.
Make a pull request, and I'll get it merged. If you're worried, we can talk it
out in Issues or email, and we can hash out the form of a pull request that
I'll commit to merging.
License
MIT