error-chain icon indicating copy to clipboard operation
error-chain copied to clipboard

Consider using dltonay's semver trick to prevent State from breaking

Open golddranks opened this issue 8 years ago • 3 comments
trafficstars

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.

golddranks avatar Sep 13 '17 07:09 golddranks

Hum, nice! Do you want to try a PR?

Yamakaky avatar Sep 13 '17 17:09 Yamakaky

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.

golddranks avatar Sep 13 '17 18:09 golddranks

+1 this just bit me too.

kw217 avatar Oct 30 '17 14:10 kw217