You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@buildr.apache.org by Charles Oliver Nutter <he...@headius.com> on 2010/03/03 13:52:16 UTC

I'm here now!

Hi all! I probably should have been on this list some time ago, but at
least I'm here now. No promises how closely I'll be monitoring, but
I'd like to help foster more collaboration between JRuby and Buildr.

As Daniel posted, JRuby 1.5 is going to ship with full two-way
integration of Ant and Rake. This is not your daddy's Antwrap...it's
actually joining the two task/target spaces so they can be used
simultaneously. Given that Buildr currently uses Antwrap to launch Ant
targets, the new support may be a better backend. That URL again is
http://www.engineyard.com/blog/2010/rake-and-ant-together-a-pick-it-n-stick-it-approach/

I have a few questions about Buildr as it stands today:

1. Is it possible to use Buildr without using any of its DSLs? The
primary complaint I've heard from folks interested in Buildr is that
it doesn't look anything like Rake, when they want to "just use Rake".
But if all the key bits are available as Rake tasks, that shouldn't
matter.
2. What's the reason for MRI/RJB support at this point? Daniel is
right...the full two-way Ant/Rake integration does not support RJB,
nor do we on the JRuby team have time to try to support RJB...but I'm
wondering what benefit RJB actually gives you? In this case, it's very
likely to hold you back.
3. The next obvious step for us in JRuby is to get better Maven/Ivy
integration, both building upon the Ant/Rake integration and for
RubyGems. But we're Maven neophytes, so ideally we'd be able to just
reuse or share parts of Buildr to do all that. We'd rather not have
JRuby ship a complete set of build tools that are totally independent
of Buildr, since that would just fragment and confuse.

Anyway, I'll try to monitor this list and hopefully we can work
together more closely in the future.

- Charlie

Re: I'm here now!

Posted by Charles Oliver Nutter <he...@headius.com>.
On Wed, Mar 3, 2010 at 7:01 AM, Ittay Dror <it...@gmail.com> wrote:
>> 2. What's the reason for MRI/RJB support at this point? Daniel is
>> right...the full two-way Ant/Rake integration does not support RJB,
>> nor do we on the JRuby team have time to try to support RJB...but I'm
>> wondering what benefit RJB actually gives you? In this case, it's very
>> likely to hold you back.
>>
>
> My view: MRI starts much faster than JVM. For incremental builds, the
> startup overhead can be annoying.

I think you probably mean "MRI starts much faster than JRuby". For an
RJB-consuming build, the JVM is still being started, but without the
rest of JRuby involve.

This I can appreciate; I wish we could do more to get JRuby starting
up as lightning-fast as MRI. We do improve it with each release, but
we're still nowhere near as fast to start up as MRI.

Startup time notwithstanding, I hope this isn't going to hold Buildr
back. The new Rake/Ant integration is really a thing of beauty, and I
don't know how you'd even begin to make it work with RJB.

- Charlie

Re: I'm here now!

Posted by Ittay Dror <it...@gmail.com>.

Charles Oliver Nutter wrote:
> Hi all! I probably should have been on this list some time ago, but at
> least I'm here now. No promises how closely I'll be monitoring, but
> I'd like to help foster more collaboration between JRuby and Buildr.
>
> As Daniel posted, JRuby 1.5 is going to ship with full two-way
> integration of Ant and Rake. This is not your daddy's Antwrap...it's
> actually joining the two task/target spaces so they can be used
> simultaneously. Given that Buildr currently uses Antwrap to launch Ant
> targets, the new support may be a better backend. That URL again is
> http://www.engineyard.com/blog/2010/rake-and-ant-together-a-pick-it-n-stick-it-approach/
>
> I have a few questions about Buildr as it stands today:
>
> 1. Is it possible to use Buildr without using any of its DSLs? The
> primary complaint I've heard from folks interested in Buildr is that
> it doesn't look anything like Rake, when they want to "just use Rake".
> But if all the key bits are available as Rake tasks, that shouldn't
> matter.
> 2. What's the reason for MRI/RJB support at this point? Daniel is
> right...the full two-way Ant/Rake integration does not support RJB,
> nor do we on the JRuby team have time to try to support RJB...but I'm
> wondering what benefit RJB actually gives you? In this case, it's very
> likely to hold you back.
>    
My view: MRI starts much faster than JVM. For incremental builds, the 
startup overhead can be annoying.

Ittay
> 3. The next obvious step for us in JRuby is to get better Maven/Ivy
> integration, both building upon the Ant/Rake integration and for
> RubyGems. But we're Maven neophytes, so ideally we'd be able to just
> reuse or share parts of Buildr to do all that. We'd rather not have
> JRuby ship a complete set of build tools that are totally independent
> of Buildr, since that would just fragment and confuse.
>
> Anyway, I'll try to monitor this list and hopefully we can work
> together more closely in the future.
>
> - Charlie
>    

Re: I'm here now!

Posted by Daniel Spiewak <dj...@gmail.com>.
> 1. Is it possible to use Buildr without using any of its DSLs? The
> primary complaint I've heard from folks interested in Buildr is that
> it doesn't look anything like Rake, when they want to "just use Rake".
> But if all the key bits are available as Rake tasks, that shouldn't
> matter.
>

As with any well-designed internal DSL, you can always get around the syntax
if you really feel like it.  I don't think I've ever actually tried to do
that, but it should be possible.  The one thing which might be a concern is
the way in which Project fiddles with Rake's internal state to get things
like local_task(s) and such.  I don't think is too bad though, and certainly
could be monkey-patched out (or maybe even inherited out) without too much
pain.


> 2. What's the reason for MRI/RJB support at this point? Daniel is
> right...the full two-way Ant/Rake integration does not support RJB,
> nor do we on the JRuby team have time to try to support RJB...but I'm
> wondering what benefit RJB actually gives you? In this case, it's very
> likely to hold you back.
>

I can second Ittay's point about MRI startup being an important factor.
There are also secondary things.  For example, Buildr has Growl support on
Mac, but it only works under MRI (since we need to directly call the
Objective-C framework).  Also, we have had problems in the past with JRuby's
Kernel#system method (which is based on Runtime#exec and not POSIX
`system`).  We're pretty confident that we're past those issues now (by
using JFFI to bridge POSIX `system`), but it's still worth mentioning.

Just on a personal note, I prefer to *use* Buildr on MRI, but I vastly
prefer to *develop* Buildr on JRuby.  It would be nice if we could go
JRuby-only, but I think startup time alone is probably a killer.  We're
planning on exploiting the pre-compiler to generate a Buildr JAR for our
one-click-buildr under JRuby 1.5, how much of an impact is this going to
have on startup?


> 3. The next obvious step for us in JRuby is to get better Maven/Ivy
> integration, both building upon the Ant/Rake integration and for
> RubyGems. But we're Maven neophytes, so ideally we'd be able to just
> reuse or share parts of Buildr to do all that. We'd rather not have
> JRuby ship a complete set of build tools that are totally independent
> of Buildr, since that would just fragment and confuse.
>

What aspects of Maven/Ivy specifically are you looking to cherry pick?  If
you're just looking for dependency management, the Artifact mechanism is
reasonably isolated from the rest of the core and fits like a glove with
Rake tasks (Artifacts are just file tasks).


> Anyway, I'll try to monitor this list and hopefully we can work
> together more closely in the future.
>

Looking forward to it!

Daniel