-
Notifications
You must be signed in to change notification settings - Fork 94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade bitvec to 0.21 to unbreak the build #253
Conversation
@gnunicorn in |
@dvdplm the problem is that this only fixes the local CI but not actually anyone adding @bkchr I agree with the
I am afraid we won't see any other "upstream fix" to this, considering that the problem arose from a trait defined in bitvec having the I fear this is the upstream fix. What other fix are you waiting for? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not optimistic that there will be a better "upstream fix" soon.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah with the change to 0.21.0
it looks "okay".
However this is a breaking change, as we have this in our public interface.
I think in the future we need to get rid off this dependency.
by having in our "public interfaces" you mean we are implementing it for that specific version of bitvec? because I can't find us returning any bitvec in our API. If so, arguably we could have two independent features that implement it for 0.20 and 0.21 respectively (where the earlier would have to pin to 1.1 of funty) - but I guess that's also not gonna help us here, as we activate it through the |
This means, that everyone that updates scale codec and also uses bitvec, will need to update their bitvec version. As we are the only ones using it, doing a |
Sounds reasonable. I am happy to add a changelog entry informing people that the dependency has been upgraded and thus they also need to upgrade the bitvec dependency to get the support... |
If we do a major version bump we could also remove the implicit addition of |
If cargo would just support this... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR is good to me
I'm ok to release 2.1, can you write this in the changelog.
I hope ppl will be fine with the breaking change.
@thiolliere already added a changelog entry in the last commit. |
Sorry to change my mind but actually I don't think we should publish 0.21 like this, some ppl can be affected by this breaking change and I think it can show bad quality image of our libraries. I open a fix in bitvec which seems good to me ferrilab/bitvec#109 |
changed opinion, proper fix is to fix bitvec and it seems doable
ahh i just ran into this frustrating build error, good to know it wasn't caused by me on my project. |
This would then be released as a |
Yes I expect him to release 0.20.2 with it. |
there is no answer from his side since 4 days, note that if we release parity-scale-codec with bitvec 0.21, every user who did I don't know how we can push to have this 0.20.2 release. I also think that if we use bitvec 0.21 now then nothing guarantee that he doesn't publish a new version of funty and never fix bitvec 0.21. |
What about dropping the support for |
You mean dropping bitvec in parity-scale-codec 2.1, yes we can do that, and we can provide a few helper function to implement Encode/Decode for bitvec. I think we use it in polkadot though for some parachain related code. |
Yes I am talking about removing the dependency with |
Polkadot uses it, and needs these to be Lines 34 to 36 in 1beac25
(would also reduce the dependency tree). |
Isn't that the original problem? That cargo automatically adds a dependency when you activate a feature on it. What we want to express but cannot: |
We can still remove |
As said above, I'm also for dropping bitvec in Polkadot. But that requires someone to write some small struct. Shouldn't be that hard. |
bitvec 0.20.2 is released fixing its dependency. (it now depends on funty = "~1.1") So the issue is solved |
alternative to #250 .
Closes #249 .
bitvec (the reason we have funty in the dependency tree in the first place) has meanwhile released an upgraded version that solves the fix without pinning.