<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>In taskflow we've done something like the following.</div>
<div><br>
</div>
<div>Its not perfect, but it is what currently works (willing to take suggestions on better).</div>
<div><br>
</div>
<div>We have three different requirements files.</div>
<div><br>
</div>
<div>1. Required to work in any manner @ <a href="https://github.com/openstack/taskflow/blob/master/requirements.txt">https://github.com/openstack/taskflow/blob/master/requirements.txt</a> </div>
<div>2. Optionally required to work (depending on features used) @ <a href="https://github.com/openstack/taskflow/blob/master/optional-requirements.txt">https://github.com/openstack/taskflow/blob/master/optional-requirements.txt</a></div>
<div>3. Test requirements (only for testing) @ <a href="https://github.com/openstack/taskflow/blob/master/test-requirements.txt">https://github.com/openstack/taskflow/blob/master/test-requirements.txt</a></div>
<div><br>
</div>
<div>Most of the reason for the #2 there is for plugins that taskflow can use (but which are not required for all users). Ideally there would be more dynamic way to list requirements of libraries and projects, one that actually changes depends on the features
 used/desired to be used. In a way u could imagine a function taking in a list of desired features (qpid vs rabbit could be one such feature) and that function would return a list of requirements to work with this feature set. Splitting it up into these separate
 files is doing something similar (except using static files instead of just a function to determine this). I'm not sure if anything existing (or is planned) for making this situation better in python (it would be nice if there was a way).</div>
<div><br>
</div>
<div>-Josh</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>Doug Hellmann <<a href="mailto:doug.hellmann@dreamhost.com">doug.hellmann@dreamhost.com</a>><br>
<span style="font-weight:bold">Reply-To: </span>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Date: </span>Wednesday, February 12, 2014 at 1:42 PM<br>
<span style="font-weight:bold">To: </span>Ben Nemec <<a href="mailto:openstack@nemebean.com">openstack@nemebean.com</a>>, "OpenStack Development Mailing List (not for usage questions)" <<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] [All]Optional dependencies and requirements.txt<br>
</div>
<div><br>
</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div>
<div dir="ltr">
<div class="gmail_default" style="font-size:small"><br>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Wed, Feb 12, 2014 at 3:58 PM, Ben Nemec <span dir="ltr">
<<a href="mailto:openstack@nemebean.com" target="_blank">openstack@nemebean.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi all,<br>
<br>
This is an issue that has come up recently in tripleo as we try to support more varied configurations.  Currently qpid-python is not listed in requirements.txt for many of the OpenStack projects, even though they support using Qpid as a messaging broker.  This
 means that when we install from source in tripleo we have to dynamically add a line to requirements.txt if we want to use Qpid (we pip install -r to handle deps).  There seems to be disagreement over the correct way to handle this, so Joe requested on my proposed
 Nova change that I raise the issue here.<br>
<br>
There's already some discussion on the bug here: <a href="https://bugs.launchpad.net/heat/+bug/1225191" target="_blank">
https://bugs.launchpad.net/<u></u>heat/+bug/1225191</a> as well as a separate Neutron bug here:
<a href="https://bugs.launchpad.net/neutron/+bug/1225232" target="_blank">https://bugs.launchpad.net/<u></u>neutron/+bug/1225232</a><br>
<br>
If there's a better alternative to "require all the things" I'm certainly interested to hear it.  I expect we're going to hit this more in the future as we add support for other optional backends for services and such.<br>
</blockquote>
<div><br>
</div>
<div>
<div class="gmail_default" style="font-size:small">We could use a separate requirements file for each driver, following a naming convention to let installation tools pick up the right file. For example, oslo.messaging might include amqp-requirements.txt, qpid-requirements.txt,
 zmq-requirements.txt, etc.</div>
<div class="gmail_default" style="font-size:small"><br>
</div>
<div class="gmail_default" style="font-size:small">That would complicate the global requirements sync script, but not terribly so.</div>
<div class="gmail_default" style="font-size:small"><br>
</div>
<div class="gmail_default" style="font-size:small">Thoughts?</div>
<div class="gmail_default" style="font-size:small"><br>
Doug</div>
<br>
</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Thanks.<br>
<br>
-Ben<br>
<br>
______________________________<u></u>_________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.<u></u>org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/<u></u>cgi-bin/mailman/listinfo/<u></u>openstack-dev</a><br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</blockquote>
</span>
</body>
</html>