Neutron Vendor split: Packager perspective
Neutron has started on the route towards splitting vendor libraries from its tree into separate, vendor governed, repositories. Now vendors are in charge of releasing python (pypi) packages to the public to consume. Recent observations show that in some cases python packages released by vendors are not optimal for distribution consumption. Below you can see some random notes on how to help packagers to do their work by enhancing vendor library package contents.
Neutron maintains some of oslo modules copied from oslo-incubator in neutron.openstack.common.* namespace. The tree is not supposed to be used by any code outside neutron core and *aas repositories. That said, multiple (if not most) vendor libraries still rely on the code in the tree.
The solution from vendor side would be one of the following:
- stop using neutron.openstack.common.* modules and instead maintain the needed modules inside the vendor library. More details in [corresponding oslo policy].
- switch to using oslo.* libraries that are graduating from oslo-incubator.
- pinning neutron revision in requirements.txt.
Note that revision pinning has its own benefits beyond oslo modules' consumption.