--
Dave Abrahams
Boost Consulting
http://www.boost-consulting.com
I was thinking about adding Ant-style conditions to steps, i.e.
something like:
<step id="msi" if="family=='nt"">
...
</step>
The "family" is a variable name, which'd work similarly to the
variable substitution stuff, i.e. you could define variables in the
slave configuration file, and then use them in the recipe for
conditional steps.
Would something like that work for you?
Cheers,
Chris
--
Christopher Lenz
cmlenz at gmx.de
http://www.cmlenz.net/
> On Nov 11, 2007, at 2:57 AM, David Abrahams wrote:
>> I want clients to be able to say, "I'm skipping this step," and have
>> the step not show up in the status display. Use case: someone wants
>> to dedicate testing resources to just a few of Boost's libraries. Our
>> test recipe will build and test all the libraries. I'd like someone
>> to be able to put something in his client.ini that will specify
>> something about which tests he's willing to run. Suggestions?
>
> I was thinking about adding Ant-style conditions to steps, i.e.
> something like:
>
> <step id="msi" if="family=='nt"">
> ...
> </step>
This looks similar to something I want to address separately... I have
long recipes that have to be basically identical for each platform.
I'll bring that up in another thread.
> The "family" is a variable name, which'd work similarly to the
> variable substitution stuff, i.e. you could define variables in the
> slave configuration file, and then use them in the recipe for
> conditional steps.
>
> Would something like that work for you?
Sounds like it could if there were more sophisticated tests than
==... although it could get awkward. Right now my recipes have a build
step for each Boost component. Typically, a slave will want to run
all steps, or just a few select steps. So you'd want to do something
like
<step id="smart_ptr" if="components is None or 'smart_ptr' in components">
</step>
As you can see, I've essentially written python in the condition.
This is an example of another thing that keeps coming up for me: I
find the build commands sufficiently limited that I've begun to wonder
what they're for. It seems like, to do anything interesting, I end up
having to run a Python script on the slave (which lets me do almost
anything I want). The slave has to have a python installation, after
all. Maybe it makes sense to focus on taking advantage of everything
that has to offer, rather than developing more commands?
Of course conditional steps can't be implemented that way without
some changes in bitten, because you want to be able to not register
skipped steps as successes -or- failures on the server.
Cheers,
Bitten recipes role is not to replace/reimplement build tools like Ant,
make, distutils etc.
Bitten recipes role is to prepare environment for these build tools and
to launch them in managed and traced environment.
--
Tomasz Sterna
Software Configuration Manager
jabber id tomasz...@sensisoft.com