[openstack-dev] [ironic] [requirements] moving driver dependencies to global-requirements?

Tony Breeds tony at bakeyournoodle.com
Wed Nov 1 03:40:45 UTC 2017

On Mon, Oct 30, 2017 at 05:51:49PM +0100, Dmitry Tantsur wrote:
> Hi all,
> So far driver requirements [1] have been managed outside of
> global-requirements. This was mostly necessary because some dependencies
> were not on PyPI. This is no longer the case, and I'd like to consider
> managing them just like any other dependencies. Pros:
> 1. making these dependencies (and their versions) more visible for packagers
> 2. following the same policies for regular and driver dependencies
> 3. ensuring co-installability of these dependencies with each other and with
> the remaining openstack
> 4. potentially using upper-constraints in 3rd party CI to test what
> packagers will probably package
> 5. we'll be able to finally create a tox job running unit tests with all
> these dependencies installed (FYI these often breaks in RDO CI)
> Cons:
> 1. more work for both the requirements team and the vendor teams

The biggest impact on the requirements team is the initial review to
validate that the driver library meets all the criteria [1]

There are 11 requirements in driver-requirements.txt 8 would be new.

I haven't done a review but there is a non-zero chance one of these 8
could be rejected.  At that point you're half in/out and that leaves
ironic in an awkward place.

> 2. inability to use ironic release notes to explain driver requirements changes

You can still do this, it's just harder because you don't have a single
point where the updates are happening.  At the moment when a change is
proposed to modify driver-requirements you can reject the change until
it has a release note.  Now you'd need to check at release time if a
release note was added.

We can probably come up with a compromise solution.  Perhaps annotate
global requirements like:
# sushy is used by ironic-drivers check for release note

Then in theory the requirements team could defer the change until it
depends on a merged release note in ironic?  It isn't 100% human proof.

I haven't really thought about it though ...

> 3. any objections from the requirements team?

No objection from me but see the points above.
> If we make this change, we'll drop driver-requirements.txt, and will use
> setuptools extras to list then in setup.cfg (this way is supported by g-r)
> similar to what we do in ironicclient [2].
> We either will have one list:
> [extras]
> drivers =
>   sushy>=a.b
>   python-dracclient>=x.y
>   python-prolianutils>=v.w
>   ...
> or (and I like this more) we'll have a list per hardware type:
> [extras]
> redfish =
>   sushy>=a.b
> idrac =
>   python-dracclient>=x.y
> ilo =
>   ...
> ...

This one please.

Yours Tony.

[1] http://git.openstack.org/cgit/openstack/requirements/tree/README.rst#n265
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20171101/2d53c689/attachment.sig>

More information about the OpenStack-dev mailing list