cloudendpoints/endpoints-python

six v1.11.0 breaks endpoints

Closed this issue · 1 comments

Six version 1.11 has changed the way with_metaclass works, this cause ALL users of endpoints to fail upon running in dev_server or production with the following call stack (prod):

Error when calling the metaclass bases metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

/lib/apitools/base/protorpclite/messages.py:1165 at /lib/endpoints_management/gen/servicecontrol_v1_messages.py:24 at /lib/endpoints_management/control/init.py:19 at /lib/endpoints_management/init.py:17 at lib/endpoints/apiserving.py:74 at /lib/endpoints/init.py:29 at
main.py:2

I don't know if this issue should be attributed to the six package or to endpoints but for now you need to freeze six at 1.10.0 in order to make it work.

We learned about this yesterday and I tried freezing six at 1.10.0 and it wasn't available. I see that it is available now.

The six project is well aware (benjaminp/six#210) and so is the apitools project (google/apitools#175). We happened to have another dependency issue yesterday as well (protorpc library). I'll let you know when it's all resolved.