I was able to dig out some of the breaking changes from the update:
- there are new transaction arguments (U8 and U128), those break the serialization, even if you don’t use them
- the order of the fields in the lbr_type_tag had changed, breaking the serialization
- The TypeTag enum had a new member, breaking the serialization
- A currency has to be specified for a the gas in the transaction
- The compiled move scripts had to be updated
It might be a good idea to separate the libra command line client from the core code in Libra repository and build it completely separately. Now that the reference client re-uses code from the core project, it’s not that clear when you introduce breaking changes for clients. By separating the client, you would be able see when you break the api.