I'm a little hesitant to use github's edge-gem stuff when we have a
perfectly functional alternative in vendor/rails ;)
Once it's had a chance to be battle tested, perhaps we can look into it.
--
Cheers
Koz
Surely it'd just be a matter of having a Rake task in the top-level (or
however Github's implementing the gem creation; haven't looked yet) that ran
the gem creator for each component? I'm a bit surprised that isn't already
implemented in the Rails tree, actually.
- Matt
I believe the current tasks are somewhat customized to building and
publishing the gems on rubyforge. I've played a bit with modifying
them to build and install gems locally, but never pushed any patch
back.
On GitHub, the question is if they are going to support multiple gems
per project, and if so, how. The approach that makes sense to me
would be to generate gems for any gemspec that is found in the
project.
The only problem then would be how to name the gems. Currently I
think it is <user>-<repo> for the gem name, or something. This would
have to be modified to take the gem name from the specification
somehow, or maybe from the containing directory?
There would also be the issue of handling dependencies. In a gemspec,
the dependencies are specified by name. However, I'm thinking this
might break with their custom naming convention of <user>-<repo>. You
could get around this by custom-crafting the gemspecs to have the
<user>-<repo> (or maybe <user>-<subcomponent>?) format for their
dependencies, but then these gems would only be applicable to GitHub,
and not really applicable to be deployed elsewhere. In other words,
there'd be two gem build processes - one to get the custom gem names
and dependency specifications correct for github, and another to use
the plain gem names elsewhere (locally or when deploying to
rubyforge).
This is all speculation just off of reading the github docs and
knowing how gem specs work. Have not tried anything yet, but if
someone tackles it, please publish the git repo on this list, and I'll
gladly review and help out as I can.
-- Chad