[BioRuby] [Open-bio Board] Buildbot on testing.open-bio.org

Peter Cock p.j.a.cock at googlemail.com
Thu Nov 3 14:19:49 UTC 2011


On Thu, Nov 3, 2011 at 1:17 PM, Pjotr Prins <pjotr.public14 at thebird.nl> wrote:
> On Thu, Nov 03, 2011 at 11:36:11AM +0000, Peter Cock wrote:
>> Does such a convention exist in Ruby for explicitly calling
>> Ruby 1.8 or 1.9? We can just require the aliases ruby1.8
>> and ruby1.9 as part of setting up a buildslave.
>
> There is no convention. But I think it is fine to have this
> convention for our purposes. Maybe we can use just ruby
> by default too? If it is not in the path, just ignore.

If any one buildslave only has Ruby 1.8 or Ruby 1.9, then
sure - we can just call "ruby". The configuration of the
buildbot on the server would know which machine was
running Ruby 1.8 or 1.9 and record the results accordingly.

However, it seems efficient to have some slaves testing
under both Ruby 1.8 and 1.9 (assuming of course that
is possible - can they co-exist?).

>> > Note1: all plugins should support 'rake test' - though now they don't.
>>
>> Is it possible to test the plugins *without* installing them? i.e. an
>> in-situ test? Or, can we control where they are installed (i.e. a temp
>> folder) and test them from there?
>
> The problem is that you need to fetch dependencies. This is automated
> in gem install.
>
> You could check out a git tree, but that is not linked to the actual
> stuff people install. I favour the latter.
>
>> The point is the buildslave may be running several tests at once,
>> and while ideally it will be configured as a separate user account,
>> we don't want it using anything outside the BuildSlave's folder
>> (other than /tmp provided the usual precautions about name
>> clashes are taken),
>
> 'gem install' will normally install in user space. What is the problem
> there? Also, you can tell it to use any folder.

Ah - that sounds better. So we can tell it to install to:

$HOME/$BUILDSLAVE/$CURRENTBUILD/gems

or whatever. The point is that the buildbot creates a clean empty
folder for each test. You start from a a clean git checkout, and
put the downloaded and installed gems under this directory.

>> > Note2: plugins require ruby 1.9.x - on Debian install ruby-1.9.1-dev
>> >
>>
>> Maybe we'd want three targets (per OS) then?:
>>
>> BioRuby core only on Ruby 1.8.x
>> BioRuby core only on Ruby 1.9.x
>> BioRuby with plugins on Ruby 1.9.x
>
> Personally I don't see BioRuby as separate. It is simply another
> plugin (or gem). It is a nice one, since it is pure Ruby and has few
> dependencies. I would say:
>
> bio (the BioRuby gem) on ruby1.8
> bio, and all plugins contained in bio-core, bio-core-ext on ruby1.9 and later
>
> If it is too difficult - we can create a structure ourselves. No
> worries.

I was thinking we can get the first two targets up and running
quite quickly:

* bio (the BioRuby gem) on ruby1.8
* bio (the BioRuby gem) on ruby1.9

And then work on the full set:

* bio, and all plugins contained in bio-core, bio-core-ext on ruby1.9

with additional targets for ruby2.0 or whatever is next.
But ultimately you guys get to decide of course.

Peter



More information about the BioRuby mailing list