<div dir="ltr">Hi Neil,<div><br></div><div>Today I have looked at the problem of fixing PollingChangeSource so that it is reconfigurable.</div><div>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.</div><div><br></div><div>It is probably very similar to the task you are working on about updating the Schedulers.</div><div><br></div><div>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.</div><div><br></div><div>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.</div><div>This way we will have minimal code change to have the buildbot reconfig work, and this will make less pressure on updating old code.</div><div><br></div><div>Regards,</div><div>Pierre</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">Le mer. 4 janv. 2017 à 16:54, Neil Gilmore <<a href="mailto:ngilmore@grammatech.com">ngilmore@grammatech.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
Hi Pierre,</div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"><br class="gmail_msg">
<br class="gmail_msg">
<div class="m_5430230203771337489moz-cite-prefix gmail_msg">On 1/4/2017 6:41 AM, Pierre Tardy
wrote:<br class="gmail_msg">
</div>
<blockquote type="cite" class="gmail_msg">
<div dir="ltr" class="gmail_msg">
<div dir="ltr" class="gmail_msg">
<div class="gmail_quote gmail_msg">
<div dir="ltr" class="gmail_msg">Le mar. 3 janv. 2017
à 16:57, Neil Gilmore <<a href="mailto:ngilmore@grammatech.com" class="gmail_msg" target="_blank">ngilmore@grammatech.com</a>> a
écrit :<br class="gmail_msg">
</div>
<blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
Hi Pierre,<br class="gmail_msg">
<br class="gmail_msg">
Thanks for the reply.<br class="gmail_msg">
<br class="gmail_msg">
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).<br class="gmail_msg">
</div>
</blockquote>
<div class="gmail_msg"><br class="gmail_msg">
</div>
</div>
</div>
<div dir="ltr" class="gmail_msg">
<div class="gmail_quote gmail_msg">
<div class="gmail_msg">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.</div>
<div class="gmail_msg"> Also, obviously creating an account
of github and pushing your code will help me to help you.</div>
</div>
</div>
<div dir="ltr" class="gmail_msg">
<div class="gmail_quote gmail_msg">
<div class="gmail_msg"><br class="gmail_msg">
</div>
</div>
</div>
</div>
</blockquote>
<br class="gmail_msg"></div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
Well, I have the account. Now I have to learn how to use it. :)</div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"><br class="gmail_msg">
<br class="gmail_msg">
<div class="gmail_quote gmail_msg">
<blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">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. <br class="gmail_msg">
</div>
</blockquote>
</div>
<blockquote type="cite" class="gmail_msg">
<div dir="ltr" class="gmail_msg">
<div dir="ltr" class="gmail_msg">
<div class="gmail_quote gmail_msg">
<div class="gmail_msg">There is indeed a need for cleanup,
but not the way you might think of it.</div>
<div class="gmail_msg">compare_attr uses <span style="background-color:rgb(248,238,199);color:rgb(51,51,51);font-family:consolas,"liberation mono",menlo,courier,monospace;font-size:12px;white-space:pre-wrap" class="gmail_msg">reflect.accumulateClassList</span>,
which does take in account all compare_attr of all the
subclasses.</div>
<div class="gmail_msg"><a href="https://github.com/buildbot/buildbot/blob/master/master/buildbot/util/__init__.py#L136" class="gmail_msg" target="_blank">https://github.com/buildbot/buildbot/blob/master/master/buildbot/util/__init__.py#L136</a><br class="gmail_msg">
</div>
<div class="gmail_msg">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)</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
</div>
</div>
</div>
</blockquote>
<br class="gmail_msg"></div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
I hadn't seen that, being focussed elsewhere. I can certainly change
my code to remove the references to the parent in compare_attrs.</div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"><br class="gmail_msg">
<br class="gmail_msg">
<blockquote type="cite" class="gmail_msg">
<div dir="ltr" class="gmail_msg">
<div dir="ltr" class="gmail_msg">
<div class="gmail_quote gmail_msg">
<blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"> <br class="gmail_msg">
2. Add the checkConfig and reconfigService functions,
but leave them empty. This will at least ensure that I
have those setup up properly.<br class="gmail_msg">
</div>
</blockquote>
<div class="gmail_msg">+ remove the __init__. We should always use the
BuildbotService class __init__ for correct use of
checkConfig/reconfigService</div>
<blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"> <br class="gmail_msg">
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
<br class="gmail_msg"></div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
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.</div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"><br class="gmail_msg">
<br class="gmail_msg">
<blockquote type="cite" class="gmail_msg">
<div dir="ltr" class="gmail_msg">
<div dir="ltr" class="gmail_msg">
<div class="gmail_quote gmail_msg">Some useful links for that:
<div class="gmail_msg"><a href="http://docs.buildbot.net/latest/developer/tests.html" class="gmail_msg" target="_blank">http://docs.buildbot.net/latest/developer/tests.html</a></div>
<div class="gmail_msg">The basic step to run the tests is the command:</div>
<div class="gmail_msg">trial buildbot</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
</div>
</div>
</div>
</blockquote>
<br class="gmail_msg"></div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
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.<br class="gmail_msg">
<br class="gmail_msg">
Thanks!</div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"><br class="gmail_msg">
<br class="gmail_msg">
Neil Gilmore<br class="gmail_msg">
<a href="http://grammatech.com" class="gmail_msg" target="_blank">grammatech.com</a><br class="gmail_msg">
</div>
_______________________________________________<br class="gmail_msg">
devel mailing list<br class="gmail_msg">
<a href="mailto:devel@buildbot.net" class="gmail_msg" target="_blank">devel@buildbot.net</a><br class="gmail_msg">
<a href="https://lists.buildbot.net/mailman/listinfo/devel" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.buildbot.net/mailman/listinfo/devel</a></blockquote></div>