3 ms·
Only incompatible versions though — Rust dedups dependencies up to semver compatibility. I think that's the right balance. clap 3 is and should be treated as a
by damnyou 7y ago
Only incompatible versions though — Rust dedups dependencies up to semver compatibility.
I think that's the right balance. clap 3 is and should be treated as a totally different package from clap 2.
- vmchale 7y agoIt's not as bad as cabal back in the day. Nonetheless I have run into the diamond dependency problem in practice. Their solution is unprincipled and there's no way to turn off the default behavior.
- damnyou 7y agoDo you mean passing a struct from e.g. clap 2 into clap 3? Yeah that won't work directly, nor should it in my opinion. If it is frequently required, projects can and should provide a compatibility layer which does any necessary conversions.
- vmchale 7y ago> Do you mean passing a struct from e.g. clap 2 into clap 3? Yeah that won't work directly, nor should it in my opinion. I agree! But it shouldn't fail at compile time with a vexing error message. It should fail to resolve dependencies when calculating a build plan.
- damnyou 7y agoThat would seem to completely disallow any compatibility layers, which seems like a bad outcome. Unless you had some sort of solution in mind for that? I agree that the error message sucks, for what it's worth.