[openstack-dev] getting rid of tablib completely (Requests + urllib3 + distro packages)

Doug Hellmann doug at doughellmann.com
Thu Oct 15 17:35:29 UTC 2015

Excerpts from Thomas Goirand's message of 2015-10-15 00:31:44 +0200:
> On 10/13/2015 05:14 PM, Doug Hellmann wrote:
> > Excerpts from Thomas Goirand's message of 2015-10-13 12:38:00 +0200:
> >> On 10/12/2015 11:09 PM, Steve Baker wrote:
> >>> On 13/10/15 02:05, Thomas Goirand wrote:
> >>>>
> >>>> BTW, the same applies for tablib which is in a even more horrible state
> >>>> that makes it impossible to package with Py3 support. But tablib could
> >>>> be removed from our (build-)dependency list, if someone cares about
> >>>> re-writing cliff-tablib, which IMO wouldn't be that much work. Doug, how
> >>>> many beers shall I offer you for that work? :)
> >>>>
> >>> Regarding tablib, cliff has had its own table formatter for some time,
> >>> and now has its own json and yaml formatters. I believe the only tablib
> >>> formatter left is the HTML one, which likely wouldn't be missed if it
> >>> was just dropped (or it could be simply reimplemented inside cliff).
> >>>
> >>> If the cliff deb depends on cliff-tablib
> >>
> >> It does.
> > 
> > That dependency is backwards. cliff-tablib should depend on cliff. Cliff
> > does not need cliff-tablib, but cliff-tablib is only useful if cliff is
> > installed.
> My bad, sorry. python-cliff doesn't depends on cliff-tablib. Why did I
> say yes?
> >> And also the below packages have a build-dependency on
> >> cliff-tablib:
> >>
> >> - python-neutronclient
> >> - python-openstackclient
> >>
> >> python-openstackclient also has a runtime depends on cliff-tablib.
> > 
> > Now that we have a cliff with the formatters provided by tablib, we can
> > update those dependencies to remove cliff-tablib. Someone just needs to
> > follow through on that with patches to the requirements files for the
> > clients.
> Doug, the problem isn't cliff-tablib, the problem is tablib.
> I don't really know how to describe the mess that this package is. It
> bundles so many outdated Python modules with hacks to force Py3 support
> into it, that it is impossible to package properly. Mostly, all the
> embedded Python modules in tablib have had newer upstream releases with
> real support for Py3 (instead of hacks in the bundled versions), though
> upgrading to them breaks tablib. Just doing "python3 setup.py install"
> fails on me because its trying to install the Py2 version. It's just
> horrible... :(
> So please don't just remove cliff-tablib, which itself is fine, but
> really get rid of tablib as per the subject...

I wasn't clear. The reason cliff-tablib exists is because of earlier
complaints (maybe from you?) about tablib. I didn't have time to
rewrite the formatters, so I pulled them into their own package so
it wasn't necessary to ship them. Now that we have the useful ones
included in cliff directly in a way that doesn't use tablib, you
should not need either cliff-tablib or tablib. We may need patches
to upstream packages that still have the cliff-tablib dependency.
Nothing should be using tablib directly, AFAIK.


More information about the OpenStack-dev mailing list