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
2. inability to use ironic release notes to explain driver requirements changes
3. any objections from the requirements team?

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 =
  ...
...

WDYT?

[1] https://github.com/openstack/ironic/blob/master/driver-requirements.txt
[2] https://github.com/openstack/python-ironicclient/blob/master/setup.cfg#L115

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to