Closed LeoniePhiline closed 7 months ago
Note, this is a breaking change, anyone using default-features = false
and the compat layer will be broken.
Merging this on a new breaking changes branch sounds good! (Maybe better: using main as breaking changes branch and starting a 0.6 maintenance branch?)
Do I understand correctly that there is nothing to do from my side right now?
Certainly, a maintenance would work and we can backport all bug fixes from main to 0.6 to prevent them being forgotten.
That is correct, there is nothing that would need to be done on your part and the feature flag is really good 😊. I spoke to Jane and we didn't find that there was any item that we missed to include under the feature flag.
Since it's a breaking change anyway, shall we then remove it from default features right away?
Otherwise we need yet another breaking release if we are ever going to make the anyhow compatibility layer opt-in only.
Absolutely, that would be great.
It would further go into our intents of making the error wrapping represent a logical error chain, rather than context attached to an error. The anyhow compatibility has unfortunately incentivized the latter approach where through API naming the error chains are treated like context stores where you can interpolate arbitrary data, such as usernames or other variables.
Making it opt-in would thus be awesome, and push towards a more descriptive chain of errors.
Do you mind opening a PR with a short explanation in the Readme of what it means and how to opt in/how it compares to anyhow?
Yes, I can do that! I added a note to https://github.com/eyre-rs/eyre/issues/136 which already tracks that change.
This change hides the
anyhow
compatibility layer behind an"anyhow"
feature flag. Ineyre
v0.6 the feature is enabled by default.Fixes #131