You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@buildr.apache.org by Alex Boisvert <bo...@intalio.com> on 2009/07/18 04:28:58 UTC

12 Things to Know about Buildr

Inspired by our recent discussions about documentation, FAQ and Scott Adams'
Rule of Twelve <http://www.dilbert.com/blog/entry/rule_of_twelve>, I decided
to draft a list of 12 Things to Know About
Buildr<http://cwiki.apache.org/confluence/display/BUILDR/12+Things+to+Know+About+Buildr>.


The last few ones are sort of fillers for the time being...  Can you think
of better or additional important things to know?

alex

Re: 12 Things to Know about Buildr

Posted by Alex Boisvert <bo...@intalio.com>.
On Sun, Jul 19, 2009 at 7:17 PM, Daniel Spiewak <dj...@gmail.com> wrote:

> I know this is probably overly pedantic, but neither Buildr nor Rake
> perform a topological sort.  As mentioned, Rake resolves dependencies at
> runtime.  All it has to do is mark tasks as 'in progress' or 'done' as
> necessary.  No sorting is required, which is rather fortunate since
> topological sorting is much more difficult to get right.


I don't think this is pedantic at all -- and you're quite right -- Rake
doesn't do any sorting at all.   I was under a mistaken impression.  Reading
the code just now... Rake just ensures a task's dependencies are executed
first and that a task is not part of its own dependency chain.  I'll update
the page.

thanks,
alex

Re: 12 Things to Know about Buildr

Posted by Daniel Spiewak <dj...@gmail.com>.
I know this is probably overly pedantic, but neither Buildr nor Rake  
perform a topological sort.  As mentioned, Rake resolves dependencies  
at runtime.  All it has to do is mark tasks as 'in progress' or 'done'  
as necessary.  No sorting is required, which is rather fortunate since  
topological sorting is much more difficult to get right.

Daniel

On Jul 19, 2009, at 9:11 PM, "Tal Rotbart" <re...@gmail.com> wrote:

> Nice 12-things page Alex--
>
> One comment:
>
> "Buildr/Rake determine the order of execution of tasks through
> dependency analysis (also known as topological sorting); If Buildr
> detects a cyclic dependency, it will let you know." should maybe be:
>
> "Buildr/Rake determine the order of execution of tasks through
> dependency analysis (also known as topological sorting) similarly to
> Ant; Unlike Ant, Buildr resolves the order of execution at runtime,
> rather than at parse-time. If Buildr detects a cyclic dependency, it
> will let you know.
>
> So this also helps people that do not come from the Ruby world to
> position Buildr, by comparing it to Ant.
>
> Cheers,
> Tal
>
> On Mon, Jul 20, 2009 at 5:02 AM, Daniel Spiewak<dj...@gmail.com>  
> wrote:
>> Cool!  I think this should be fleshed out slightly and turned into  
>> a part of
>> the yet-to-be-realized FAQ.  Two items I would like to see in the  
>> list are
>> "Buildr is Smart", meaning that it has a set of sensible defaults;  
>> and
>> something about its first-class support for more than one  
>> language.  I'm
>> still firmly of the opinion that Buildr is the best build system  
>> for Scala,
>> and I think we need to advertise that a bit.  :-)
>>
>> Daniel
>>
>> On Fri, Jul 17, 2009 at 9:28 PM, Alex Boisvert  
>> <bo...@intalio.com> wrote:
>>
>>> Inspired by our recent discussions about documentation, FAQ and  
>>> Scott
>>> Adams'
>>> Rule of Twelve <http://www.dilbert.com/blog/entry/rule_of_twelve>, I
>>> decided
>>> to draft a list of 12 Things to Know About
>>> Buildr<
>>> http://cwiki.apache.org/confluence/display/BUILDR/12+Things+to+Know+About+Buildr
>>>> .
>>>
>>>
>>> The last few ones are sort of fillers for the time being...  Can  
>>> you think
>>> of better or additional important things to know?
>>>
>>> alex
>>>
>>

Re: 12 Things to Know about Buildr

Posted by Alex Boisvert <bo...@intalio.com>.
Ok, I've reworded it to:

Rake determines the order of execution of tasks _at runtime_ by ensuring
> that a task's dependencies are executed first (recursively).  Runtime
> dependency resolution means tasks can be created and ordered dynamically.
> If Rake detects a cyclic dependency while executing the invocation chain, it
> will let you know.
>

For now, I'll refrain from mentioning Ant here and leave it to whoever
writes "Buildr for Ant Users" to contrast with Ant's (ahem) simplicity :)

My tutorial on Buildr+Rake should also cover runtime task creation.

alex


On Sun, Jul 19, 2009 at 7:10 PM, Tal Rotbart <re...@gmail.com> wrote:

> Nice 12-things page Alex--
>
> One comment:
>
> "Buildr/Rake determine the order of execution of tasks through
> dependency analysis (also known as topological sorting); If Buildr
> detects a cyclic dependency, it will let you know." should maybe be:
>
> "Buildr/Rake determine the order of execution of tasks through
> dependency analysis (also known as topological sorting) similarly to
> Ant; Unlike Ant, Buildr resolves the order of execution at runtime,
> rather than at parse-time. If Buildr detects a cyclic dependency, it
> will let you know.
>
> So this also helps people that do not come from the Ruby world to
> position Buildr, by comparing it to Ant.
>
> Cheers,
> Tal
>
> On Mon, Jul 20, 2009 at 5:02 AM, Daniel Spiewak<dj...@gmail.com>
> wrote:
> > Cool!  I think this should be fleshed out slightly and turned into a part
> of
> > the yet-to-be-realized FAQ.  Two items I would like to see in the list
> are
> > "Buildr is Smart", meaning that it has a set of sensible defaults; and
> > something about its first-class support for more than one language.  I'm
> > still firmly of the opinion that Buildr is the best build system for
> Scala,
> > and I think we need to advertise that a bit.  :-)
> >
> > Daniel
> >
> > On Fri, Jul 17, 2009 at 9:28 PM, Alex Boisvert <bo...@intalio.com>
> wrote:
> >
> >> Inspired by our recent discussions about documentation, FAQ and Scott
> >> Adams'
> >> Rule of Twelve <http://www.dilbert.com/blog/entry/rule_of_twelve>, I
> >> decided
> >> to draft a list of 12 Things to Know About
> >> Buildr<
> >>
> http://cwiki.apache.org/confluence/display/BUILDR/12+Things+to+Know+About+Buildr
> >> >.
> >>
> >>
> >> The last few ones are sort of fillers for the time being...  Can you
> think
> >> of better or additional important things to know?
> >>
> >> alex
> >>
> >
>

Re: 12 Things to Know about Buildr

Posted by Tal Rotbart <re...@gmail.com>.
Nice 12-things page Alex--

One comment:

"Buildr/Rake determine the order of execution of tasks through
dependency analysis (also known as topological sorting); If Buildr
detects a cyclic dependency, it will let you know." should maybe be:

"Buildr/Rake determine the order of execution of tasks through
dependency analysis (also known as topological sorting) similarly to
Ant; Unlike Ant, Buildr resolves the order of execution at runtime,
rather than at parse-time. If Buildr detects a cyclic dependency, it
will let you know.

So this also helps people that do not come from the Ruby world to
position Buildr, by comparing it to Ant.

Cheers,
Tal

On Mon, Jul 20, 2009 at 5:02 AM, Daniel Spiewak<dj...@gmail.com> wrote:
> Cool!  I think this should be fleshed out slightly and turned into a part of
> the yet-to-be-realized FAQ.  Two items I would like to see in the list are
> "Buildr is Smart", meaning that it has a set of sensible defaults; and
> something about its first-class support for more than one language.  I'm
> still firmly of the opinion that Buildr is the best build system for Scala,
> and I think we need to advertise that a bit.  :-)
>
> Daniel
>
> On Fri, Jul 17, 2009 at 9:28 PM, Alex Boisvert <bo...@intalio.com> wrote:
>
>> Inspired by our recent discussions about documentation, FAQ and Scott
>> Adams'
>> Rule of Twelve <http://www.dilbert.com/blog/entry/rule_of_twelve>, I
>> decided
>> to draft a list of 12 Things to Know About
>> Buildr<
>> http://cwiki.apache.org/confluence/display/BUILDR/12+Things+to+Know+About+Buildr
>> >.
>>
>>
>> The last few ones are sort of fillers for the time being...  Can you think
>> of better or additional important things to know?
>>
>> alex
>>
>

Re: 12 Things to Know about Buildr

Posted by Assaf Arkin <as...@labnotes.org>.
On Sun, Jul 19, 2009 at 9:35 PM, Alex Boisvert <bo...@intalio.com> wrote:

> Yes, some of this could be reused and reformulated for the FAQ, although
> the
> intent here is to focus on the core ideas behind Buildr.   FAQs tend to
> address questions over a wider range of importance.  This list is also
> different from a marketing feature list where you're selling the software,
> so I would leave out smart defaults and support for multiple languages from
> the list, unless there's something fundamental about them that would help
> people better reason about how Buildr works.


Speaking of FAQ:
http://inquiryapp.com/

Assaf


>
>
> alex
>
>
> On Sun, Jul 19, 2009 at 12:02 PM, Daniel Spiewak <djspiewak@gmail.com
> >wrote:
>
> > Cool!  I think this should be fleshed out slightly and turned into a part
> > of
> > the yet-to-be-realized FAQ.  Two items I would like to see in the list
> are
> > "Buildr is Smart", meaning that it has a set of sensible defaults; and
> > something about its first-class support for more than one language.  I'm
> > still firmly of the opinion that Buildr is the best build system for
> Scala,
> > and I think we need to advertise that a bit.  :-)
> >
> > Daniel
> >
> > On Fri, Jul 17, 2009 at 9:28 PM, Alex Boisvert <bo...@intalio.com>
> > wrote:
> >
> > > Inspired by our recent discussions about documentation, FAQ and Scott
> > > Adams'
> > > Rule of Twelve <http://www.dilbert.com/blog/entry/rule_of_twelve>, I
> > > decided
> > > to draft a list of 12 Things to Know About
> > > Buildr<
> > >
> >
> http://cwiki.apache.org/confluence/display/BUILDR/12+Things+to+Know+About+Buildr
> > > >.
> > >
> > >
> > > The last few ones are sort of fillers for the time being...  Can you
> > think
> > > of better or additional important things to know?
> > >
> > > alex
> > >
> >
>

Re: 12 Things to Know about Buildr

Posted by Alex Boisvert <bo...@intalio.com>.
Yes, some of this could be reused and reformulated for the FAQ, although the
intent here is to focus on the core ideas behind Buildr.   FAQs tend to
address questions over a wider range of importance.  This list is also
different from a marketing feature list where you're selling the software,
so I would leave out smart defaults and support for multiple languages from
the list, unless there's something fundamental about them that would help
people better reason about how Buildr works.

alex


On Sun, Jul 19, 2009 at 12:02 PM, Daniel Spiewak <dj...@gmail.com>wrote:

> Cool!  I think this should be fleshed out slightly and turned into a part
> of
> the yet-to-be-realized FAQ.  Two items I would like to see in the list are
> "Buildr is Smart", meaning that it has a set of sensible defaults; and
> something about its first-class support for more than one language.  I'm
> still firmly of the opinion that Buildr is the best build system for Scala,
> and I think we need to advertise that a bit.  :-)
>
> Daniel
>
> On Fri, Jul 17, 2009 at 9:28 PM, Alex Boisvert <bo...@intalio.com>
> wrote:
>
> > Inspired by our recent discussions about documentation, FAQ and Scott
> > Adams'
> > Rule of Twelve <http://www.dilbert.com/blog/entry/rule_of_twelve>, I
> > decided
> > to draft a list of 12 Things to Know About
> > Buildr<
> >
> http://cwiki.apache.org/confluence/display/BUILDR/12+Things+to+Know+About+Buildr
> > >.
> >
> >
> > The last few ones are sort of fillers for the time being...  Can you
> think
> > of better or additional important things to know?
> >
> > alex
> >
>

Re: 12 Things to Know about Buildr

Posted by Daniel Spiewak <dj...@gmail.com>.
Cool!  I think this should be fleshed out slightly and turned into a part of
the yet-to-be-realized FAQ.  Two items I would like to see in the list are
"Buildr is Smart", meaning that it has a set of sensible defaults; and
something about its first-class support for more than one language.  I'm
still firmly of the opinion that Buildr is the best build system for Scala,
and I think we need to advertise that a bit.  :-)

Daniel

On Fri, Jul 17, 2009 at 9:28 PM, Alex Boisvert <bo...@intalio.com> wrote:

> Inspired by our recent discussions about documentation, FAQ and Scott
> Adams'
> Rule of Twelve <http://www.dilbert.com/blog/entry/rule_of_twelve>, I
> decided
> to draft a list of 12 Things to Know About
> Buildr<
> http://cwiki.apache.org/confluence/display/BUILDR/12+Things+to+Know+About+Buildr
> >.
>
>
> The last few ones are sort of fillers for the time being...  Can you think
> of better or additional important things to know?
>
> alex
>

Re: 12 Things to Know about Buildr

Posted by Assaf Arkin <as...@labnotes.org>.

On Jul 17, 2009, at 7:28 PM, Alex Boisvert <bo...@intalio.com> wrote:

> Inspired by our recent discussions about documentation, FAQ and  
> Scott Adams'
> Rule of Twelve <http://www.dilbert.com/blog/entry/rule_of_twelve>, I  
> decided
> to draft a list of 12 Things to Know About
> Buildr<http://cwiki.apache.org/confluence/display/BUILDR/12+Things+to+Know+About+Buildr 
> >.
>
>
> The last few ones are sort of fillers for the time being...  Can you  
> think
> of better or additional important things to know?

I think the last two are pretty important and not everyone would know  
them off hand.

But newcomers will probably not know Rake, so we should think of  
better way of explaining the early points.

I'd like to see this end up on the Web site/PDF

Assaf



>
> alex