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

Pierre Tardy tardyp at gmail.com
Mon Jan 16 15:58:13 UTC 2017

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.


Le mer. 4 janv. 2017 à 16:54, Neil Gilmore <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> 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
> _______________________________________________
> devel mailing list
> 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/65d19655/attachment.html>

More information about the devel mailing list