Hi all,

As always, thanks for the advice.

I think I've found an irregularity in ForceScheduler (naturally, this would be netter in trac...). If nothing else, it renders some of the documentation on Schedulers to be incorrect (I really can't say which way this should fall). I've run into it while adding back reconfiguration to the Force Scheduler.

It concerns the 'properties' argument. On the one hand, BaseScheduler expects this to be a dictionary, and will in fact force it to an empty dictionary if it isn't passed in. One the other, ForceScheduler expects it to be a list, and will force it to a list if it isn't passed in. Additionally, at least in 0.9.2, ForceScheduler.__init__() does not pass its properties argument to BaseScheduler.__init__(). Now, it certainly could be that ForceScheduler really doesn't implement the common 'properties', preferring its own instead.

But this leads to problems when we attempt to eliminate the __init__() functions in favor of CheckConfig() and reconfigService(). We should preserve the ForceScheduler.__init__() properties (the list kind) in order to check them in checkConfig() and assign them in reconfigService(). But BaseScheduler already has 'properties' (the dictionary kind).

I think for now, I'll be introducing something like forceProperties in __init__() which will end up passed in kwargs. This won't affect the current interface to ForceScheduler, and will preserve the original properties (the list kind) to be used later. checkConfig and reconfigService will use it.

I'll also point out that ForceScheduler's check for name being a unicode string is incorrect. If passed a unicode string, it fails. The type checked against is 'str', which is not 'unicode'.

So far, I can start a buildbot with any of the variety of schedulers. I do need to test reconfiguration to make sure everything actually reconfigures.

Then I'll need to submit it and hope the devs like it.

Neil Gilmore
grammatech.com
_______________________________________________
users mailing list
users@buildbot.net
https://lists.buildbot.net/mailman/listinfo/users

Reply via email to