[Rubygems-developers] Local installation w/deps (or, So I'm writing a Tinderbox...)
Eric Hodel
drbrain at segment7.net
Wed Nov 15 04:10:06 EST 2006
Well, Evan Phoenix wrote the Tinderbox web site and I've built (most
of) the gem runner. Maybe next week we'll have it all put together.
The basic idea is to install a gem into a sandbox (with
dependencies), run the gem's tests, then post the results of the
tests on a website to the shame of all who failed to make their tests
pass. (Maybe I'll even add a couple of leaderboards, including "most
assertions" and "most dooomed".) Anyhow...
My main issue is installing gems. I flushed out a few bugs I found
in Rubygems related to installing gems in a sandbox and have fixed
those.
Now I have the problem of the discontinuity between local and remote
installation. Remote installation automatically installs all
dependencies. Local installation only installs the named gem.
I don't want to fetch every gem every time over the internet. That's
just not nice.
I don't want to re-write the three or four methods in RemoteInstaller
that handle dependencies into Tinderbox::GemRunner.
So, what's the plan to unify the two? I have the motivation,
interest, and time. I imagine the stupid-simple version would take
about a day.
Oh, instead, can I do something fancy with the gems in the cache
dir? If a file lives there does rubygems skip a trip out to the
internet? (I haven't looked, its late and the idea just popped into
my head.)
And one more thing.
Tinderbox::GemRunner copies the source_cache from the host gem
repository into the sandbox to cut down on source_cache fetches, but
I still see a lot of them. Sometimes even back-to-back. Is there
something in Rubygems I should be poking at to make this go away?
Should Rubygems ever do a bulk update once it has a source_cache?
--
Eric Hodel - drbrain at segment7.net - http://blog.segment7.net
This implementation is HODEL-HASH-9600 compliant
http://trackmap.robotcoop.com
More information about the Rubygems-developers
mailing list