In a nutshell: when schema files define fields with type Data, pycapnp <= 2.1.0 compiled this schema into python attributes of type bytes. pycapnp 2.2.0 compiles them to python attributes of type memoryview, which are subject to the limitation that they cannot be pickled.
So attempts to pickle - even indirectly, as yaml.dump does - fail, and existing code breaks.
A small repro is available in https://github.com/OfekShilon/capnp.
In a nutshell: when schema files define fields with type
Data, pycapnp <= 2.1.0 compiled this schema into python attributes of typebytes. pycapnp 2.2.0 compiles them to python attributes of typememoryview, which are subject to the limitation that they cannot be pickled.So attempts to pickle - even indirectly, as
yaml.dumpdoes - fail, and existing code breaks.A small repro is available in https://github.com/OfekShilon/capnp.