<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 16 February 2016 at 10:03, Darragh Bailey <span dir="ltr"><<a href="mailto:daragh.bailey@gmail.com" target="_blank">daragh.bailey@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Think it all comes down to the following:<br>
* Need to understand what exactly is happening within Jenkins with<br>
regard to XML updating, clearly not just taking the XML given and<br>
changing to match that, more likely some kind of merge is going on.<br></blockquote><div><br></div><div>Agreed. I'll try to reach out to the Jenkins team and see if I can get a statement from them about how this is supposed to work.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
* Is the sort of workflow described by David limited to the disabled<br>
tag, or useful elsewhere? If limited I think we should handle<br>
'disabled' as a special case.<br></blockquote><div><br></div><div>Agreed. I think we should handle it specially and making sure it's documented. I do see it being useful for "disabled". David can you confirm if there's other fields you believe needs to be handled specially like this one?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
* If the decision is to change behaviour going forward, initially<br>
needs to only apply to new settings being added and have a way of<br>
converting existing code while matching existing behaviour via some<br>
setting.<br>
<br>
Expect we'll have to support existing use of optionals for at least<br>
one major release for the current modules whether we decide to switch<br>
the behaviour for the future or not. So the change identified will<br>
have to keep that in consideration.<br></blockquote><div><br></div><div>I'm not sure how much the impact is but unless you ever purposely set an optional setting to something previously, the optional parameter in Jenkins is the default setting already just not explicitly. I've only ever been hit with this issue when I set something on purpose and decide later that I no longer want it and delete the setting, expecting it to revert to the default.</div><div><br></div><div>I'm not sure how best to handle this as it is a behaviour change and would be difficult to support 2 behaviours at the same time as it's hard to tell which one should be used. One thought is if we're going with the discussions from patch <a href="https://review.openstack.org/261620/">https://review.openstack.org/261620/</a></div><div><br></div><div>1. Put a single warning when JJB completes running that states something like:</div><div><br></div><div>    ATTENTION: The behaviour of parameters marked as (optional) is changing. In future releases if not passed they will revert to a default setting.</div><div><br></div><div>2. We can add the "<span style="color:rgb(0,0,0);font-family:sans-serif;white-space:pre-wrap">fail_required=False" parameter to the </span><font color="#000000" face="sans-serif"><span style="white-space:pre-wrap">convert_mapping_to_xml function as suggested</span></font></div><div><font color="#000000" face="sans-serif"><span style="white-space:pre-wrap"><br></span></font></div><div><font color="#000000" face="sans-serif"><span style="white-space:pre-wrap">This leaves existing functionality for plugins that use the convert_mapping_to_xml function at least to stay the same and for all new plugins set "fail_required=True", after a few releases we can flip the switch so that it's True by default.</span></font></div><div><font color="#000000" face="sans-serif"><span style="white-space:pre-wrap"><br></span></font></div><div><font color="#000000" face="sans-serif"><span style="white-space:pre-wrap">3. We start converting plugins using convert_mapping_to_xml function with the fail_required=True setting and set correct "defaults" for optional settings</span></font></div><div><font color="#000000" face="sans-serif"><span style="white-space:pre-wrap"><br></span></font></div><div><font color="#000000" face="sans-serif"><span style="white-space:pre-wrap">Kien is my intern for the upcoming summer intern program and I think would be a good project for him to work on. I think this would be a good start, and would quickly simplify the code we maintain for the various modules.</span></font></div><div><font color="#000000" face="sans-serif"><span style="white-space:pre-wrap"><br></span></font></div><div><font color="#000000" face="sans-serif"><span style="white-space:pre-wrap">Thoughts?</span></font></div><div><font color="#000000" face="sans-serif"><span style="white-space:pre-wrap"><br></span></font></div><div><font color="#000000" face="sans-serif"><span style="white-space:pre-wrap">Thanh</span></font></div><div><br></div></div></div></div>