-
-
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
Pinning zvariant_utils
makes it impossible to resolve version conflicts
#652
Comments
Not sure what we can do about that. Best option is to port the whole stack to zbus 4 or don't pin zvariant_utils. I'm happy to reopen it if you have any suggestions on how we can help. |
Oh it's zbus pinning it. Sorry I missed that. Still, I don't know what I can do about this. The pinning is done for good reasons. |
Sure I get that there are probably reasons for that, but this breaks for people as I updated my lib to zbus 4, but the accessibility stack is and will remain on zbus 3 for some time because of MSRV reasons: odilia-app/atspi#155 (comment) So I'm stuck with my lib being unusable because I updated zbus to early 😄 (for people that want to have accessibility in their apps, that is) Even if we can't address that, it would be cool to somehow prevent that in the future (aka. once zbus 5 is a thing) |
They sound a lot less sure about that in their next comment so hopefully they'll be able to bump it in the near future.
You're ahead of your time. Nothing wrong with that. :)
TBH I don't remember if zvariant_utils itself has a good reason to be pinned. I do know that we pin the macro crates to ensure compatibility w/o introducing a cyclic dep between the main and the macro crate. It's entirely possible that we just followed the trend. Two things to consider here:
|
Macros crate had a breaking version bump, so cargo should not treat it as a single dep, and everything should work as expected. Utils on the other hand had only a minor bump, therefore cargo treats it as a same dep. Aka. [dependencies]
zbus_macros = "=4.0.0"
zbus_macros2 = { package = "zbus_macros", version = "=3.0.0"} This is not: [dependencies]
zvariant_utils = "=1.0.1"
zvariant_utils2 = { package = "zvariant_utils", version = "=1.1.0"} |
Ah right, we release the macro crates in tandem.
Ok then. Let's unpin for now. |
Otherwise, it breaks the build for folks who happen to have both zbus 3 and 4 in their dependency tree. Fixes dbus2#652.
@PolyMeilex I made releases now so |
Thanks! |
Ughh. I can't catch a break. :) Let me unpin for zbus 3 as well.. |
Otherwise, it breaks the build for folks who happen to have both zbus 3 and 4 in their dependency tree. Fixes #652.
Done. |
Nice, works like a charm. Thank you for quickly resolving this! |
I'm very glad to hear it. 👍 |
I think this bumped the msrv on zbus3 to 1.75, zbus_macros and zvariant_derive v3.15.1 are now pulling in zvariant_utils 1.1.0 for me |
FYI you can pin it yourself, but yeah that turns out to be a braking change, it's a bummer that cargo is not smart enough to not bump above project's MSRV 😬 EDIT: I was assuming that zbus treats MSRV bump as a braking change, so I did not expect that between 1.0 and 1.1 |
Ughh.. this was totally accidental. :( we could change the MSRV in zvariant_utils though but then it would be out of sync with other crates in the repo and adds to maintenance burden. This also shows why pinning the version was after all a good idea. So unless someone has a better suggestion, I'm going to revert these changes. |
IMO if we are assuming that MSRV change in zbus is a semver braking change, then we should apply the same rule across the whole stack. Aka. If bumping MSRV in zbus is considered braking, so should be bumping MSRV in zvariant. I know that zvariant is not as widely used directly and that's probably why it has looser semver rules, but still, applying the same rules could help. (Although I have one project that uses it directly without zbus, so it could benefit from that as well) |
Not exactly. 3.x series is now in maintenance mode and that's why we want to avoid breaking anything for users of 3.x, not because it's considered a breaking change per say.
Sure. What ends up bumping the MSRV is zvariant_utils. |
Also, at least I consider bumping MSRV in micro/patch release a breaking change, which is what I did. 🤦 |
3.15.2 releases out with unpinning change reverted. I'll now do the same for 4.x since unpinnng in 4.x only doesn't help with the issue in question. @PolyMeilex I'm terribly sorry but I think we just have to live with the fact that the whole stack needs to move to 4.x at the same time. |
Sure, I suppose it's not my problem, I'll just redirect people to complain to zbus 3 based libs and call it a day 😄 |
👍 |
zbus/zbus_macros/Cargo.toml
Line 28 in a2e3d17
zbus/zbus_macros/Cargo.toml
Line 28 in d9b367a
zbus 4 pins 1.1, zbus 3 pins 1.0, and both of those versions are part of the same semver 1.x.x so cargo is not able to resolve the version conflict.
(most likely) causes: PolyMeilex/rfd#180
repro:
The text was updated successfully, but these errors were encountered: