-
Notifications
You must be signed in to change notification settings - Fork 52
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
Diplomat MSRV? #672
Comments
I'm happy with This is because CLI tools tend to require a much less conservative dependency tree (and this will continue as we add more backends, more customizeability, and things like better UX), and we have historically not tried to keep ICU4X MSRV CI breaking because of |
In ICU4X's case we can decouple |
Well, if ICU4X has an MSRV, then all of ICU4X's library crate dependencies should be able to have that MSRV. I would include icu4x-datagen in that. Dependencies that are only repository tooling (cargo-make, dhat, ...) might be an exception. I didn't take a super close look at exactly where |
Yes,
I'm not 100% sure I agree2, however I don't think it's that relevant: I think in I don't want such limitations on Large deptrees are the natural state of Rust CLI tooling in a way that isn't the case for Rust libraries, and whilst icu4x-datagen is in a position to keep a lid on it, I'm not sure I want diplomat-tool to also restrict itself that way. Footnotes |
I include |
Right, I agree, but I'm not sure that the subset of users with MSRV constraints on their libraries are likely to have the same constraints on icu4x-datagen use (potentially because they don't use a build script). I'm not saying such a thing isn't possible, I'm just not sure (but also that it's not super relevant to this discussion, since icu4x-datagen currently has no troubles following MSRV).
No, I think the ontology here is subtler, Basically, I don't want the arbitrary constraint of "Diplomat has a single MSRV policy" to tie |
I'm with Manish here, this is an ICU4X tooling problem. |
Concrete proposal: diplomat_core, macro, and runtime follow the same MSRV policy as ICU4X ("update for free when > 6 versions, needs justification for > 4 versions, disallowed < 4"), with the additional caveat that by default they are also constrained by ICU4X's MSRV as well. Of course, reasons to update diplomat MSRV may also be valid reasons to update ICU4X MSRV: diplomat may provide justification to the ICU4X team and update both at the same time. diplomat-tool follows no MSRV policy. I am okay with documenting its MSRV though I don't really think that's valuable since diplomat-tool doesn't do weird unsafe Rust stuff so the primary drivers of diplomat-tool's MSRV are its dependencies (and people can lockfile constrain as needed) |
I made a PR for the policy above in #683 , and I've tweaked CI to match. I've left the door open for other clients to ask us to suit their needs as well. |
Multiple times, Diplomat has updated and it has been tricky to integrate into ICU4X due to the MSRV of dependencies.
Diplomat should, at the very least, be explicit about its MSRV. Currently it is 1.71, for which I added a new CI check.
https://github.com/rust-diplomat/diplomat/actions/runs/10689442469/job/29631556841
Additionally, Diplomat should ideally share an MSRV with ICU4X given ICU4X's important role as a major client of Diplomat.
The text was updated successfully, but these errors were encountered: