buildr-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Assaf Arkin (JIRA)" <>
Subject [jira] Commented: (BUILDR-142) Allow running project tasks from a top directory in the same way as after 'cd' to the project's base dir
Date Mon, 01 Sep 2008 00:41:44 GMT


Assaf Arkin commented on BUILDR-142:

There is one way to run a specific task, and that's by naming it as an argument to buildr.

Separately, some people use the command line and they cd into a directory and work there,
so we make some tasks pick on that and just find the projec(s) from the local directory. 
It does the right thing most of the time, but is not recommended for automating a build (i.e.

The notion of specific tasks is prevalent throughout Buildr.  It's how you name tasks, how
you find tasks, what you'll see when you run buildr --prereqs, follow the console messages,
diagnose error messages.  I doubt you can use Buildr effectively without understanding what
it does, what do you do when things go wrong?

So if we're not doing a good enough job allowing people to do all these things, we should
consider that either the Buildr model is wrong, or the documentation needs more work.

> Allow running project tasks from a top directory in the same way as after 'cd' to the
project's base dir
> --------------------------------------------------------------------------------------------------------
>                 Key: BUILDR-142
>                 URL:
>             Project: Buildr
>          Issue Type: New Feature
>          Components: Core features
>    Affects Versions: 1.3.2
>            Reporter: Ittay Dror
>            Assignee: Victor Hugo Borja
>             Fix For: 1.3.3
>         Attachments: 0001-rspec-for-p-switch.patch, 0002-added-p-switch.patch, 0003-allow-project-names-with-path-separators.patch,
> Currently, to run a specific project's tasks, there are two alternatives:
> 1. cd to the project's base dir and run 'buildr' or 'buildr <tasks>'. 
> 2. run 'buildr <project name>:<task1> <project name>:<task2>'
> The first one requires 'cd' and is not comfortable to run from an IDE. The second one
is verbose, cannot rely on default tasks and is confusing to new users. 
> Users usually expect the behavior as in 'make' or 'tar'. That is, a switch (usually -C)
that first does a 'cd' for you and then continues to run as usual. This is an issue I'm faced
with right now. People are confused when I tell them to run 'buildr top_project:sub_project:build'.
Also, people don't think of projects as tasks. This is an implementation detail of Buildr,
not something that people comprehend intuitively (at least my users)
> Moreover, several projects may share the same base directory (I intend to use this to
compile the same source tree with different configurations), so a 'cd' will cause both to
> Suggestion: add a '-p' switch that tells buildr the "local project" to use when running.
Then users simply invoke 'buildr -p top_project:sub_project' and all default tasks run. 
> Suggestion 2: since project names will usually correspond with a directory layout, allow
to specify them with File::SEPARATOR. this way, command line completion is easy (especially
in windows).

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message