Saw an interesting issue. We have a custom C++ op in our code that works with PyTorch 0.4.1 but was throwing a pybind11 type mismatch exception with PyTorch 1.0.1. After a bunch of debugging, I figured out that PyTorch pip package contains pybind11 header files which are being used when compiling the torch c++ custom op (using the setup tools option).
Unfortunately we have other library code (outside of pytorch) that is also pybind11 bound. Lets say this has a object foo in here. For our use case, we need to create object foo in python and pass the reference to it to the Pytorch c++ custom op. Essentially for this use case, we need to match the pybind11 versions between what this foo code uses and what PyTorch uses.
So my questions/observations

I could not find any reference in the documentation that suggested that PyTorch releases ship with a certain version of pybind11 headers. So this surprised me.
How do I know which specific version of pybind11 headers are contained in a given PyTorch release? The header file code itself does not seem to indicate version. Specifically I need this information for 1.0.1 release
Note that foo code in the above use case was using pybind11 that shipped with Ubuntu 16.04 release. So this likely makes PyTorch 1.0.1 incompatible for Ubuntu 16.04. Even though I admit the use case I mentioned must be exceedingly rare for PyTorch users.

Your help is appreciated.