Coordinated versioning between crates with different owners

⚓ Rust    📅 2026-02-28    👤 surdeus    👁️ 1      

surdeus

I have a question about versioning of crates that are not published by the same person or organizations, but are designed to be used together in an application.

Specifically, I created a crate plotters-wxdragon that is a backend for plotters. My first thought is that this crate should have its own versioning, since it cannot follow the versions of both plotters and wxdragon crates.

But the documentation of plotters-backend (which defines the interface that my crate implements for plotter compatibility) recommends the following:

We also impose a versioning rule with plotters and some backends: The compatible main crate (plotters) and this crate (plotters-backend) are always use the same major and minor version number. All the plotters main crate and second-party backends with version “x.y.*” should be compatible, and they should depens on the latest version of plotters-backend x.y.*

I understand that plotters-xxx backends developed under the "plotters" organization follow a same-version principle, but it is not really desirable to do so in third-party backends.

Do you have any thoughts on this?

3 posts - 2 participants

Read full topic

🏷️ Rust_feed