[Nitro] [OT] Roll n' Rain

George Moschovitis george.moschovitis at gmail.com
Tue Jun 27 14:27:18 EDT 2006

As always they both sound quite cool!


On 6/27/06, TRANS <transfire at gmail.com> wrote:
> Hi NCT,
> I want to tell you about two project I've been working on that are
> starting to come to fruition. One is called RubyRoll,or just Roll(s),
> and the other Rain.
> Rolls adds object-oriented library management with versioning to Ruby
> w/o being tied to a package manager (as opposed to Gems). It
> essentially works like this. When distributing your project, organize
> the lib/, ext/ and/or data/ directories with a version tier. Eg.
>   myapp/
>     lib/
>       1.0.0/
>         ...
> Keep in mind you don't have to develop with the project in this layout
> (though you could) you can leave the versioin tier out and only add it
> in upon distribution. (Another alternative is to leave it in but label
> it '0' and just rename it upon distribution.) With that addition of
> RUBYOPT="-roll" you can then do things like:
>   library('myapp', '>1' )  #=> #<Library myapp/1.0.0>
>   library('myapp').require('somefile')
> Of course it also works like normal:
>   require 'myapp/somefile'
> Rolls will insert the version tier as needed. Rolls also has the
> ability to add meta information, like author, summary, etc. to the
> Library object. One piece of info that is esspecially useful is
> 'scope'. By setting the scope you can tell Rolls to search multiple
> subdirs. For example:
>   myapp/
>     lib/
>       1.0.0/
>         foo/
>           ...
>         bar/
>           here.rb
>   library('myapp').scope( '.', 'foo', 'bar' )
>   require 'myapp/here'
> Finally you can add an index.rb file to your project which will be
> loaded automatically when a library is activated (perfect for setting
> the scope and other meta-info).
> I just released version 0.7.0, it still needs a little work (I know of
> two issue I need to fix) but 's good enough to try out. The current
> code is actually a complete rewrite of the precisou version --I shrunk
> the code base in half! Much more elegant now.
> The second project is Rain and it is a very unique package manager. It
> actually takes a compressed source package called a "drop file" (.drp
> right now, but maybe .drop or .rdr better?) Inside the package is also
> a drop/ directory that holds a metainfo file and may have other
> suplemental scripts if needed. Using this the rain command line
> application can build and install a native OS package on the fly. Let
> me repeat that: Rain generates and installs native OS packages on the
> fly! Just ot be clear, let me give an examnple. Let's say you're using
> Debian or Ubunutu. Typing 'rain install myapp' will create a .deb
> package and install it. If you're using Arch, it will build a pacman
> package and install it. If Fedora or Redhat, and .rpm. And so on.
> Rain is quite as developed ad Roll, but it's coming along well --it
> already works on my Ubuntu system. Of course the real trick will be
> the Windows .msi adapter ;-)
> While Rain can download drop packages from the internet (on the fly
> too). I haven't added dependency handling. I'm not sure about that
> yet. I sometimes think it would be nice to revive RPA to handle this
> side of things.
> Ansyway, So those are the two project that are almost ready for
> initial releases. I wonder if I should merge them into one project?
> While I don't want to tie Rolls to any package manager --Rain isn't
> really any package manager, it's more like a meta-package manager.
> Also I would like to teach Rolls to recognize a drop file and be able
> to use it much like Java can use jar files. In other words you would
> be able to do:
>   require 'myapp.drp'
> And Ruby/Rolls would uncompress the myapp drop package in a special
> cache location and  then load it from there. Not sure what I would
> call this combined project if I did so though.
> So anyway, just wanted to get NCT's take.
> Thanks,
> T.
> P.S. Sorry for the long post. And yes, this is my legendary Gems killer ;-)
> _______________________________________________
> Nitro-general mailing list
> Nitro-general at rubyforge.org
> http://rubyforge.org/mailman/listinfo/nitro-general


More information about the Nitro-general mailing list