error-chain
error-chain copied to clipboard
Consider using dltonay's semver trick to prevent State from breaking
One can't use the link functionality between two crates that use different versions of error-chain. (At the moment 0.10 and 0.11 being the commonest ones.) In my experience, it's the internal State type that causes this incompatibility.
Consider using dtolnay's semver trick to allow linking two different versions together: https://github.com/dtolnay/semver-trick
Since the State is an internal type, changing it doesn't cause any API breakage. Thus, you should be allowed to import the State from the newer versions of error-chain. You can thus publish 0.10.1 and 0.9.1 that are not breaking changes to their respective branches, and still are compatible with 0.11.
Hum, nice! Do you want to try a PR?
I already tried for a bit, there were some problems, but they aren't necessarily insurmountable. The problem was that 0.11's State depends on a trait ChainedError of 0.11. I tried to implement that trait for a type from 0.10, but the type Iter was private and I couldn't do it. Might take some thinking, and possibly publishing Iter, with doc hidden option.
+1 this just bit me too.