<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 16, 2018 at 7:02 PM, James E. Blair <span dir="ltr"><<a href="mailto:corvus@inaugust.com" target="_blank">corvus@inaugust.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">Hongbin Lu <<a href="mailto:hongbin034@gmail.com">hongbin034@gmail.com</a>> writes:<br>
<br>
> The goal of those patches is to move the job definitions and playbooks from<br>
> openstack/zun to openstack/zun-tempest-plugin. The advantages of such<br>
> change are as following:<br>
><br>
> * Make job definitions closer to tempest test cases so that it is optimal<br>
> for development and code reviews workflow. For example, sometime, we can<br>
> avoid to split a patch into two repos in order to add a simple tempest test<br>
> case.<br>
> * openstack/zun is branched and openstack/zun-tempest-plugin is branchless.<br>
> Zuul job definitions seem to fit better into branchless context.<br>
> * It saves us the overhead to backport job definitions to stable branch.<br>
> Sometime, missing a backport might lead to gate breakage and blocking<br>
> development workflow.<br>
<br>
</span>Just a minor clarification: it's not always the case that branchless is<br>
better.<br>
<br>
Jobs which operate on repos that are branched are likely to be easier to<br>
work with in the long run, as whatever configuration is specific to the<br>
branch appears on that branch, instead of somewhere else.<br>
<br>
Further, there shouldn't be a need to backport changes once the initial<br>
jobs are set up.  In the future, when you branch master to stable/foo,<br>
you'll automatically get a copy of the job that's appropriate for that<br>
point in time, and you only need to update it if you're already updating<br>
the software on that branch.  Older versions of jobs on stable branches<br>
can continue to use their old configuration.<br>
<br>
For jobs which should perform the same function on all branches, it is<br>
easier to have those defined in branchless repos.  But in either case,<br>
you can accomplish the same thing without moving jobs.  In a branched<br>
repo, you can add a "branches: .*" matcher, and in a branchless repo,<br>
you can add multiple variants for each branch.<br>
<br>
The new v3-native devstack jobs are branched, and are defined in the<br>
devstack repo.  They define how to set up devstack for each branch.  But<br>
the tempest jobs (which build on top of the devstack jobs), are not<br>
branched (just like tempest), since they are designed to run the same<br>
way on all branches.<br>
<br>
I don't know enough about the situation to recommend one way or the<br>
other for Zun.  But I do want to emphasize that the best answer depends<br>
on the circumstances.<br></blockquote><div><br></div><div>Hi Jim,</div><div><br></div><div>Thanks a lot for sharing your expertise. Based on what you said, I re-visited the Zun's situation and think the branchless approach might not be better.</div><div><br></div><div>In before, I ran into a situation that I wanted to write a tempest test case with a specific API microversion. In order to get it setup, it seems I need to submit three patches: a tempest test case (at zun-tempest-plugin), a tempest config to populate the min/max microversion (at zun master) and a backport (at zun stable/queens). A simple change that needs to be splited into three patches made me revisit the current layout and explore the branchless approach that are exercised in neutron [1].</div><div><br></div><div>I am re-visiting the situation now and leaning to the branched approach because the setup of microversion min/max seems to be just once per branch. However, I am not sure though how often we will run into a similar situation that a change in tempest test case is coupled with job config. If it frequently happens in the future, switching to branchless approach might be more convenient.</div><div><br></div><div>[1] <a href="https://github.com/openstack/neutron-tempest-plugin/blob/master/.zuul.yaml">https://github.com/openstack/neutron-tempest-plugin/blob/master/.zuul.yaml</a></div><div><br></div><div>Best regards,</div><div>Hongbin</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
-Jim<br>
<br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
</blockquote></div><br></div></div>