<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div>Agreed with all your yum issues, its a bit of a pain.</div>
<div><br>
</div>
<div>With the help of a few others in anvil we have made a small-mini helper tool (that uses the same underlying yum python apis) so that we can get better control over the whole process.</div>
<div><br>
</div>
<div>- <a href="https://github.com/stackforge/anvil/tree/master/tools#yyoom">https://github.com/stackforge/anvil/tree/master/tools#yyoom</a></div>
<div>- <a href="https://github.com/stackforge/anvil/blob/master/tools/yyoom">https://github.com/stackforge/anvil/blob/master/tools/yyoom</a></div>
<div><br>
</div>
<div>The name is meant to be similar for a reason, ha. It is being used to help interact with the yum python api (yes yum is in python) to attempt to overcome some of the issues u stated. Also it has json output which is a lot easier to consume from programs
 using yyooom (anvil itself), which is much nicer than scraping out the information from the yum output. *note its not really meant to be a full replacement for yum at all, just a helper tool to make the anvil+yum 'pain' a little less* With some tweaking I
 think it could probably solve your issue of version ranges, since I think the underlying yum library could do it, if the main yum program can't (at this moment).</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Jay Buffington <<a href="mailto:me@jaybuff.com">me@jaybuff.com</a>><br>
<span style="font-weight:bold">Reply-To: </span>OpenStack Development Mailing List <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Date: </span>Tuesday, August 6, 2013 9:40 AM<br>
<span style="font-weight:bold">To: </span>OpenStack Development Mailing List <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [openstack-dev] [DevStack] Python dependencies: PyPI vs distro packages<br>
</div>
<div><br>
</div>
<div>
<div>
<div dir="ltr">On Tue, Aug 6, 2013 at 8:35 AM, Joshua Harlow <span dir="ltr"><<a href="mailto:harlowja@yahoo-inc.com" target="_blank">harlowja@yahoo-inc.com</a>></span> wrote:<br>
<div class="gmail_extra">
<div class="gmail_quote">
<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">
<div dir="auto">
<div>I think jay your usage also was before anvil started to build all the *missing* dependencies automatically (something u inspired me to get going in the first place) so hopefully said updates to rhel.yaml are only now needed for exceptions and not the common
 path :)<br>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>+1 I'm glad to hear that.  I don't think any of the problems I saw with</div>
<div>Anvil were intractable,  but I do think packaging up the venv is much</div>
<div>less error prone. </div>
<div><br>
</div>
<div>My major complaints are issues related to yum. First off, yum can't </div>
<div>resolve a version range (see my message to the yum list: </div>
<div><a href="http://lists.baseurl.org/pipermail/yum/2013-February/023922.html">http://lists.baseurl.org/pipermail/yum/2013-February/023922.html</a>)</div>
<div>which seems like a pretty basic task for a package manager.</div>
<div><br>
</div>
<div>Also, Yum seems to do dependency resolution in a single pass.  So</div>
<div>yum can't provide an install solution for cases like this even when a</div>
<div>valid one exists:</div>
<div><br>
</div>
<div>package foo depends on pkgdep <= 2.0</div>
<div>package bar depends on pkgdep >= 1.0, <= 2.0</div>
<div>pkgdep 2.1 and 2.0 are available for install</div>
<div><br>
</div>
<div>"sudo yum install foo" when none of those three packages are installed</div>
<div>results in an error.  Yum tries to install pkgdep 2.1 and then gives up</div>
<div>when it sees foo doesn't work with pkgdep 2.1 rather than doing a second</div>
<div>pass at building a dependency graph and finding that pkgdep 2.0</div>
<div>would satisfy all dependencies.</div>
<div><br>
</div>
<div>Cases like these come up regularly with the 100+ python packages</div>
<div>that openstack depends on (in requirements.txt) when building packages</div>
<div>continuously.  I came to the conclusion that yum is bad software and I</div>
<div>should avoid it globbing up most everything into one big rpm.  Three</div>
<div>months into making the switch I'm happy with that decision.</div>
<div><br>
</div>
<div>Jay</div>
</div>
</div>
</div>
</div>
</div>
</span>
</body>
</html>