<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi Pierre,<br>
    <br>
    Now you understand my pain :) (except that I had to also come up to
    speed on how everything worked).<br>
    <br>
    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.<br>
    <br>
    Your method sounds like less work. I'll look into it for the
    schedulers.<br>
    <br>
    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.<br>
    <br>
    Neil Gilmore<br>
    grammatech.com<br>
    <br>
    <div class="moz-cite-prefix">On 1/16/2017 9:58 AM, Pierre Tardy
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAJ+soVeMnL1PaXWv_fDQhsKY_tqah5fz0AdfxXgBKt0b1qQbVQ@mail.gmail.com"
      type="cite">
      <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
            moz-do-not-send="true" 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
                        moz-do-not-send="true"
                        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 moz-do-not-send="true"
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 moz-do-not-send="true"
                        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 moz-do-not-send="true" 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 moz-do-not-send="true" href="mailto:devel@buildbot.net"
            class="gmail_msg" target="_blank">devel@buildbot.net</a><br
            class="gmail_msg">
          <a moz-do-not-send="true"
            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>
    </blockquote>
    <br>
  </body>
</html>