Describe API stability guarantees in README and docs.rs
Lorak-mmk opened this issue · 1 comments
Lorak-mmk commented
As we move towards 1.0 we must think what the term "API-stability" will mean in our case - as there is a lot of space for maintainers decision left by Rust's guidelines ( https://doc.rust-lang.org/cargo/reference/semver.html#trait-new-default-item )
What we should decide and document:
- Which
possibly-breaking
changes from guidelines are we treating as major and which as minor? - What is part of the API - what behaviors do we consider stable and which do we not? E.g. uniqueness of targets returned by
DefaultPolicy
is an example of such behavior. - Do we guarantee stability of default config values in SessionBuilder / Query etc? I think we should not.
- Do we consider all Cargo features provided by crate stable? Or is it possible for them to be removed / replaced (e.g. in the case of dependency features like
secrecy08
). - Supported versions of Scylla and Cassandra. Also, do we consider dropping support for some version a breaking change?
- How often are we willing to consider releasing a new major version (e.g. not more often than every 3 years). We probably need to include the possibility of bypassing this policy because of breaking change required by new version of Cassandra / Scylla (Tablets is an example of such change).