[devel at bb.net] [users at bb.net] Another anecdote from 0.9.2 scheduler modification.

Neil Gilmore ngilmore at grammatech.com
Mon Jan 16 16:07:38 UTC 2017


Hi Pierre,

Now you understand my pain :) (except that I had to also come up to 
speed on how everything worked).

My single run against the unit tests produced a lot of failures, but I 
haven't gotten back to it to figure out if the tests were just old, or 
if there was something else going on.

Your method sounds like less work. I'll look into it for the schedulers.

In the meantime, I'll probably just have to hack reconfiguration for 
now, and replace it when there's a replacement. It is biting us that 
much. Our master.cfg changes nearly every day, sometimes more, and we 
far too often run into situations where the changes land a builder onto 
an existing scheduler.

Neil Gilmore
grammatech.com

On 1/16/2017 9:58 AM, Pierre Tardy wrote:
> Hi Neil,
>
> Today I have looked at the problem of fixing PollingChangeSource so 
> that it is reconfigurable.
> This has been a very unpleasant experience. It happens that the unit 
> tests are very old and it will be a lot of work to update them all at 
> once.
>
> It is probably very similar to the task you are working on about 
> updating the Schedulers.
>
> I think we should revise our strategy on that matter as the work is 
> too important and reward is too low. There is a lot of old code that 
> works, and high risk of breaking it.
>
> So I will be working on a way to support reconfigure for legacy 
> schedulers and change sources, which will just stop the old scheduler, 
> and replace it by the new one.
> This way we will have minimal code change to have the buildbot 
> reconfig work, and this will make less pressure on updating old code.
>
> Regards,
> Pierre
>
>
> Le mer. 4 janv. 2017 à 16:54, Neil Gilmore <ngilmore at grammatech.com 
> <mailto:ngilmore at grammatech.com>> a écrit :
>
>     Hi Pierre,
>
>
>     On 1/4/2017 6:41 AM, Pierre Tardy wrote:
>>     Le mar. 3 janv. 2017 à 16:57, Neil Gilmore
>>     <ngilmore at grammatech.com <mailto:ngilmore at grammatech.com>> a écrit :
>>
>>         Hi Pierre,
>>
>>         Thanks for the reply.
>>
>>         The current status of my code is that all the schedulers now
>>         support checkConfig and reconfigService. I can also (after
>>         some wrangling) start buildbot using any of the schedulers. I
>>         have yet to test reconfiguration, and I have not run any of
>>         the current buildbot unit tests. Nor have I done any of the
>>         github stuff. I did subscribe to the dev list (it was really
>>         just a matter of time).
>>
>>
>>     I highly suggest to start with the unit tests, as once it is
>>     understood help you to be much more productive than typing
>>     buildbot reconfigure all the time.
>>      Also, obviously creating an account of github and pushing your
>>     code will help me to help you.
>>
>
>     Well, I have the account. Now I have to learn how to use it. :)
>
>
>         1. Regularize compare_attrs for schedulers. In 0.9.2, several
>         schedulers appear to have a problem where they do not include
>         their base classes' compare_attrs. This wasn't as important
>         when there was no effective reconfiguration.
>
>>     There is indeed a need for cleanup, but not the way you might
>>     think of it.
>>     compare_attr uses reflect.accumulateClassList, which does take in
>>     account all compare_attr of all the subclasses.
>>     https://github.com/buildbot/buildbot/blob/master/master/buildbot/util/__init__.py#L136
>>     Some classes are explicitly adding their parents compare_attr but
>>     this is either a mistake or a legacy (I am not sure, this
>>     precedes my involvment in this project)
>>
>
>     I hadn't seen that, being focussed elsewhere. I can certainly
>     change my code to remove the references to the parent in
>     compare_attrs.
>
>
>>
>>         2. Add the checkConfig and reconfigService functions, but
>>         leave them empty. This will at least ensure that I have those
>>         setup up properly.
>>
>>     + remove the __init__. We should always use the BuildbotService
>>     class __init__ for correct use of checkConfig/reconfigService
>>
>>
>
>     Yes, I should have been more precise. My current code leaves them
>     in, but all they do is print that they've been called, and with
>     what arguments. It made following through things easier. It's
>     essentially just stuff for my debugging.
>
>
>>     Some useful links for that:
>>     http://docs.buildbot.net/latest/developer/tests.html
>>     The basic step to run the tests is the command:
>>     trial buildbot
>>
>
>     I did find that link, but it doesn't appear to mention how to run
>     them. Just knowing what the command line is helps immensely.
>     There's only one mention of trial on that page, and it's in an
>     import statement.
>
>     Thanks!
>
>
>     Neil Gilmore
>     grammatech.com <http://grammatech.com>
>     _______________________________________________
>     devel mailing list
>     devel at buildbot.net <mailto:devel at buildbot.net>
>     https://lists.buildbot.net/mailman/listinfo/devel
>

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


More information about the devel mailing list