Skip to content
This repository has been archived by the owner on Aug 16, 2021. It is now read-only.

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

Open
golddranks opened this issue Sep 13, 2017 · 3 comments
Open

Comments

@golddranks
Copy link
Contributor

golddranks commented Sep 13, 2017

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.

@Yamakaky
Copy link
Contributor

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

@golddranks
Copy link
Contributor Author

golddranks commented Sep 13, 2017

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.

@kw217
Copy link
Contributor

kw217 commented Oct 30, 2017

+1 this just bit me too.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants