rust-client icon indicating copy to clipboard operation
rust-client copied to clipboard

Semver breakage when updating qdrant-client from 1.3 to 1.7

Open timsueberkrueb opened this issue 2 years ago • 1 comments

E.g. in FieldCondition, a new field geo_polygon was added and a new parameter was added to upsert_points_blocking. I realize that this library's code is generated from the protobuf files which may complicate things. Still, what is the version compatibility policy for this crate? If possible, adhering to semver would be nice as all the Rust tooling assumes semver compatibility is kept (e.g. cargo upgrade + cargo update will update from 1.3 to 1.7 in Cargo.lock and break the build). Hence, I assume the version always needs to be pinned as of now. Thanks!

timsueberkrueb avatar Jan 03 '24 12:01 timsueberkrueb

You're right.

Our goal is to follow semver principes, but we currently fail to do this.

Our plan is to restructure this crate entirely with a builder pattern approach to prevent this in the future.

timvisee avatar Jan 31 '24 13:01 timvisee

if you want to prevent this in future you should consider using https://crates.io/crates/cargo-semver-checks the issues we've faced with semver breaking changes would have been caught by it's lints.

xd009642 avatar Jul 19 '24 11:07 xd009642

@xd009642 Thanks for the hint.

Please note that we've released v1.10.0 which should prevent breakages like this in the future if using the builder pattern for objects.

timvisee avatar Jul 19 '24 11:07 timvisee