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
Policy for unstable dependencies #329
Comments
I'm more inclined for policy 1, it's less of a burden for us to maintain. We wouldn't create a proliferation of |
I definitely prefer policy 2: might be a bit more overhead (though for |
I would prefer policy 2, as the dependency on |
The case of I think there's an expectation that when an unstable library releases a new minor version that users should upgrade to stay current. There's no longevity to those unstable releases because nothing is fixed yet. For example, I doubt someone will come along and ask To keep |
For what it's worth, even though my preference is policy 1, I'm not against policy 2, so long as we're comfortable with avoiding making releases that legitimately break things, or in being very selective about the unstable libraries we'll support. |
Can we decide this soon? It's blocking updating a bunch of things in AOSP to bitflags 2, which we'd like to do sooner rather than later. |
@qwandor Ok, we committed in
I think that strikes a reasonable balance for people who want to use unstable dependencies in |
That sounds like a reasonable policy to me. Thanks! |
I think we'll end up amending this a bit to avoid needing to add direct support for any unstable libraries at all (and so not need a policy for maintaining them). My approach is outlined here: #348 (comment) |
We no longer need a policy for unstable dependencies now that #348 is merged, which allows you to integrate with external libraries, without Thanks for all the input everyone! |
bitflags
has taken responsibility for shipping features for libraries it integrates with. Some of these libraries are unstable, so updating them inbitflags
would either require a breaking version bump or shipping a new feature for the new version. The goal of this issue is to come up with an agreed upon policy for managing these features that avoids accumulating unstable features indefinitely, but also lets users make use of unstable libraries that they want to integrate withbitflags
.I've got two candidate policies in mind, but would be keen to hear any others:
RUSTFLAGS
cfg, likebitflags_unstable
to opt-in to unstable features. In this policy, we'd ship, for example, azerocopy
feature, but you'd need to pair it with theRUSTFLAGS
cfg before we'd actually use the library. Whenzerocopy
released a new breaking version, we'd update to it.zerocopy-0-6
feature. Whenzerocopy
released a new breaking version, we'd add azerocopy-0-7
feature. At some point, we'd release abitflags
3 that pruned off some of these older features without breaking public APIs. We could do these releases, say, every 6 or 12 months.The text was updated successfully, but these errors were encountered: