[Buildbot-devel] custom buildstem

Fulvio Cervone fcervone at me.com
Wed Mar 30 08:54:41 UTC 2011


True; indeed the biggest advantage of MVCis to decouple the UI, and the logic, so you end up just writing the controller and re-use the rest.

In the Buildbot case thou, you do not have neither the controller nor the view; the model is the buildbot system, steps, buiders and such; the View is html/css; can't reuse that and you can customize it independently since it is already decoupled form buildbot. The Controller would be python; since you gotta write anything in python it is independent from the buildbot itself; plus you would touch the model to overload classes and methods, nullify the advantage that the MVC gives you to work without even care about the model.

You can make it work of course; but I don't think that it would matter that much to give any advantage imho; as is now it is comparable to a web server that execute applets code (by any means i am not saying it in a negative way, is just to make a comparison with something that everyone understand and has clearly as example); and would you make apache or IIS based on MVC and get something more out of it? Maybe yes, maybe no.

I really like the fact that we have a classic m/s system based on OO classes, you can write your own classes and load them trough the config file; this is easy enough for who wanna start, before starting to dig in the code and overwrite to their heart content the various methods to fit their needs.
This is straight forward and easy to grasp, while telling people about vmc is more a programmer-kind thing; in the majority of the cases who use buildbot is either working in QA/whitebox or is a test engineer or a server engineer (there are exceptions, i know);  so for them is much easier to see the system as straight master/slave OOP.

I am just for simplicity, not saying that it won't work...I would be interested thou in seeing a working MVC version of Buildbot; maybe i am totally wrong and it would be awesome :)


On Mar 29, 2011, at 4:12 PM, Philippe McLean wrote:

> MVC is helpful for user interface design because it separates domain logic from ui and presentation code.
> 
> buildbot seems easier to work with when the test and build code ("domain logic") is moved out of master.cfg and into standalone scripts in the checked out build tree. This is what I meant by it being a similar pattern.
> \
> 
> On Tue, Mar 29, 2011 at 12:02 PM, Fulvio Cervone <fcervone at me.com> wrote:
> I think that MVC would be a stretch :)
> 
> You made a lot of good points, but for a testing framework I do not think that MVC is the right pattern to follow....you wanna simplify things, not add complexity (as you mentioned in the first point), and there is no interaction with other systems, unless you wanna add interaction between multiple masters that has multiple slaves; and it feels like a big headache :)
> 
> Would be nice to just have more generic classes for the steps, that you can override, where all has the same parameters and properties; this would make our life easier since 80% of the times you need to write steps that fits your needs (your points #2 and #3).
> 
> As now i feel like BB fits our needs, but for sure many things could be simplified like you pointed out; many times i find myself doing something that should be easy and straight forward, but instead it takes a lot of time to implement it because is not an easy task to do :)
> 
> On Mar 29, 2011, at 10:22 AM, Philippe McLean wrote:
> 
>> I think there is a pattern in here... it seems a bit like MVC
>> 
>> On Tue, Mar 29, 2011 at 8:58 AM, Philippe McLean <philippe.mclean at gmail.com> wrote:
>> Over time, buildbot config files naturally grow in complexity.
>> It is good to avoid this complexity if possible, especially if your environment makes use of branching.
>> 
>> some choices I try to make:
>> 
>> - above all else, simplicity
>> - pass/fail steps that report verbosely
>> - standalone buildbot steps, that can be tested outside without re-building
>> - keep build scripts and test scripts in the branch code itself, not in the master.cfg
>> - minimize master restarts/master.cfg updates
>> - your buildbot installation should be more reliable than the build it is testing
>> 
>> 
>> 
>> On Tue, Mar 29, 2011 at 8:11 AM, <mp3 at hello.lv> wrote:
>> Thank You, Dustin, for the explanation. I thought that would be a trivial
>> task, because buildbot itself is written in python. I'll use an external
>> script. Maybe it is worth mentioning this somewhere in buildbot manual.
>> 
>> On Tue, 29 Mar 2011 09:53:02 -0500, "Dustin J. Mitchell"
>> <dustin at v.igoro.us> wrote:
>> > For the record, we've historically resisted putting "execute this
>> > arbitrary Python" support into Buildbot, for two reasons:
>> >
>> >  1. it's more complex than it sounds
>> >
>> > It boils down to sending a string on which the remote system calls
>> > exec(), but with blocking and potentially damaging ramifications for
>> > the running buildslave instance.  Steer clear of thoughts of sending
>> > compiled Python bytecode across the wire, too.
>> >
>> >  2. it's generally the wrong solution to the problem you're trying to
>> solve
>> >
>> > In particular, keep in mind that with this approach, if you want to
>> > make *any* change to how you prepare VXWorks 6.6, you need to do a
>> > complete redeployment of your buildslave installation across all
>> > slaves.  That's far harder than adjusting a script in your source-code
>> > repository or reconfiguring your master.
>> >
>> > Of course, you're absolutely free to do whatever you'd like on your
>> > own system.  Benoît mentioned merging into Buildbot, and I wanted to
>> > make sure you had the full picture there.
>> >
>> > Dustin
>> 
>> ------------------------------------------------------------------------------
>> Enable your software for Intel(R) Active Management Technology to meet the
>> growing manageability and security demands of your customers. Businesses
>> are taking advantage of Intel(R) vPro (TM) technology - will your software
>> be a part of the solution? Download the Intel(R) Manageability Checker
>> today! http://p.sf.net/sfu/intel-dev2devmar
>> _______________________________________________
>> Buildbot-devel mailing list
>> Buildbot-devel at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/buildbot-devel
>> 
>> 
>> ------------------------------------------------------------------------------
>> Enable your software for Intel(R) Active Management Technology to meet the
>> growing manageability and security demands of your customers. Businesses
>> are taking advantage of Intel(R) vPro (TM) technology - will your software 
>> be a part of the solution? Download the Intel(R) Manageability Checker 
>> today! http://p.sf.net/sfu/intel-dev2devmar_______________________________________________
>> Buildbot-devel mailing list
>> Buildbot-devel at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/buildbot-devel
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://buildbot.net/pipermail/devel/attachments/20110330/d1649f42/attachment.html>


More information about the devel mailing list