<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
Greetings,
<div><br>
</div>
<div>I am facing an issue and looking for guidance/best practice. So, here is the problem:</div>
<div><br>
</div>
<div>
<div>- glance [stable/icehouse] contains a requirement to oslo.vmware >= 0.2 [1] and consequently requirements/global-requirements [stable/icehouse] also contains oslo.vmware >= 0.2.[2] So far nothing wrong.</div>
<div><br>
</div>
<div>- a requirement/global-requirement to the retrying library has been added in master [3].</div>
<div><br>
</div>
<div>- now, if we add the retrying requirement to oslo.vmware in master, grenade fails [4] because stable/icehouse will pick the latest version of oslo.vmware (containing retrying) but using requirements/global-requirements [stable/icehouse] which doesn’t contain
 retrying. </div>
<div><br>
</div>
<div>So, I can see two options:</div>
<div>1. pin the oslo.vmware version in stable/icehouse. something like oslo.vmware >= 0.2,<0.4. This means two patches: one in requirements/global-requirements and one in glance. </div>
<div>I am not sure if it is OK to have requirements/global-requirements and glance having different version intervals for some time: global-requirements would contain  oslo.vmware >= 0.2,<0.4 but glance would contain oslo.vmware >= 0.2. Does Glance requirements
 and global-requirements need to contain the exact version interval for a given library at any time? or the fact that >= 0.2,<0.4 includes >= 0.2 is enough? in which case, this seems the way to go.</div>
<div><br>
</div>
<div>2. add the retrying requirement to global-requirements [stable/icehouse], but this would mean that for any new library added to oslo.vmware (not being in the requirements of a previous release), we would have the same problem.</div>
<div><br>
</div>
<div><br>
</div>
<div>[1] <a href="https://github.com/openstack/glance/blob/stable/icehouse/requirements.txt#L30">https://github.com/openstack/glance/blob/stable/icehouse/requirements.txt#L30</a></div>
<div>[2] <a href="https://github.com/openstack/requirements/blob/stable/icehouse/global-requirements.txt#L52">https://github.com/openstack/requirements/blob/stable/icehouse/global-requirements.txt#L52</a></div>
<div>[3] <a href="https://github.com/openstack/requirements/blob/master/global-requirements.txt#L182">https://github.com/openstack/requirements/blob/master/global-requirements.txt#L182</a></div>
<div>[4] <a href="https://review.openstack.org/#/c/106488/">https://review.openstack.org/#/c/106488/</a></div>
<div><br>
</div>
<div><br>
</div>
<div>Thank you,</div>
<div>Arnaud</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
</div>
</body>
</html>