diff --git a/Cargo.lock.msrv b/Cargo.lock.msrv index a8d5627b9d..2e46d22121 100644 --- a/Cargo.lock.msrv +++ b/Cargo.lock.msrv @@ -1699,7 +1699,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scylla" -version = "0.15.0" +version = "1.0.0" dependencies = [ "arc-swap", "assert_matches", @@ -1745,7 +1745,7 @@ dependencies = [ [[package]] name = "scylla-cql" -version = "0.4.0" +version = "1.0.0" dependencies = [ "assert_matches", "async-trait", @@ -1773,7 +1773,7 @@ dependencies = [ [[package]] name = "scylla-macros" -version = "0.7.0" +version = "1.0.0" dependencies = [ "darling", "proc-macro2", diff --git a/README.md b/README.md index add26a3cea..32c75135fc 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,6 @@ This is a client-side driver for [ScyllaDB] written in pure Rust with a fully async API using [Tokio]. Although optimized for ScyllaDB, the driver is also compatible with [Apache Cassandra®]. -**Note: this driver is officially supported but currently available in beta. Bug reports and pull requests are welcome!** - ## Getting Started The [documentation book](https://rust-driver.docs.scylladb.com/stable/index.html) is a good place to get started. Another useful resource is the Rust and Scylla [lesson](https://university.scylladb.com/courses/using-scylla-drivers/lessons/rust-and-scylla-2/) on Scylla University. @@ -70,13 +68,27 @@ For planned future improvements, see our [Milestones]. We invite you to discuss any issues and ask questions on the [ScyllaDB Forum] and the `#rust-driver` channel on [ScyllaDB Slack]. +## Version support + +The driver is considered production ready, hence its version is not 0.x. +We do however acknowledge that the API will surely need some breaking changes in +the future, which means it is not our goal to stay on 1.x forever - we will +release new major version in the future. + +The API stability guarantee we provide is that we won't release new major +versions very often. +In case of 2.0, it won't be released earlier than 9 months after release 1.0. +For further major versions this duration may be increased. + +After new major version is released, the previous major version will still +receive bugfixes for some time (exact time is yet to be determined), but new +features will only be developed for the latest major version. + ## Supported Rust Versions -Our driver's minimum supported Rust version (MSRV) is 1.70.0. Any changes: -- Will be announced in release notes. -- Before 1.0 will only happen in major releases. -- After 1.0 will also happen in minor, but not patch releases. -Exact MSRV policy after 1.0 is not yet decided. +Our driver's minimum supported Rust version (MSRV) is 1.70.0. +Changes to MSRV can only happen in major and minor relases, but not in patch releases. +We will not bump MSRV to a Rust version that was released less than 6 months ago. ## Reference Documentation diff --git a/docs/pyproject.toml b/docs/pyproject.toml index e4a879d77a..ad110e9b77 100644 --- a/docs/pyproject.toml +++ b/docs/pyproject.toml @@ -1,7 +1,7 @@ [tool.poetry] name = "sphinx-docs" description = "ScyllaDB Documentation" -version = "0.15" +version = "1.0" authors = ["ScyllaDB Documentation Contributors"] package-mode = false diff --git a/docs/source/conf.py b/docs/source/conf.py index e1e791a9f1..53296c0dc4 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -13,14 +13,14 @@ # -- Global variables # Build documentation for the following tags and branches -TAGS = ['v0.14.0', 'v0.15.1'] +TAGS = ['v0.15.1', 'v1.0.0'] BRANCHES = ['main'] # Set the latest version. -LATEST_VERSION = 'v0.15.1' +LATEST_VERSION = 'v1.0.0' # Set which versions are not released yet. UNSTABLE_VERSIONS = ['main'] # Set which versions are deprecated -DEPRECATED_VERSIONS = ['v0.14.0'] +DEPRECATED_VERSIONS = ['v0.15.1'] # -- General configuration diff --git a/docs/source/quickstart/create-project.md b/docs/source/quickstart/create-project.md index e1832220b1..6394eb3cc2 100644 --- a/docs/source/quickstart/create-project.md +++ b/docs/source/quickstart/create-project.md @@ -8,7 +8,7 @@ cargo new myproject In `Cargo.toml` add useful dependencies: ```toml [dependencies] -scylla = "0.15" +scylla = "1.0" tokio = { version = "1.12", features = ["full"] } futures = "0.3.6" uuid = "1.0" diff --git a/scylla-cql/Cargo.toml b/scylla-cql/Cargo.toml index e5d8a8b597..805bd0f516 100644 --- a/scylla-cql/Cargo.toml +++ b/scylla-cql/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "scylla-cql" -version = "0.4.0" +version = "1.0.0" edition = "2021" rust-version = "1.70" description = "CQL data types and primitives, for interacting with Scylla." @@ -11,7 +11,10 @@ categories = ["database"] license = "MIT OR Apache-2.0" [dependencies] -scylla-macros = { version = "=0.7.0", path = "../scylla-macros" } +# Important: We use precise version of scylla-macros. This enables +# us to make breaking changes in the doc(hidden) interfaces that are +# used by macros. +scylla-macros = { version = "=1.0.0", path = "../scylla-macros" } byteorder = "1.3.4" bytes = "1.0.1" tokio = { version = "1.34", features = ["io-util", "time"] } diff --git a/scylla-macros/Cargo.toml b/scylla-macros/Cargo.toml index 2f51e510ca..cb7f9ac489 100644 --- a/scylla-macros/Cargo.toml +++ b/scylla-macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "scylla-macros" -version = "0.7.0" +version = "1.0.0" edition = "2021" rust-version = "1.70" description = "proc macros for scylla async CQL driver" @@ -22,11 +22,6 @@ proc-macro2 = "1.0" unnameable_types = "warn" unreachable_pub = "warn" -# When bumping major version of scylla / scylla-cql, those dependencies -# also need to be updated. Fortunately Cargo will yell very loudly if that -# is not done. -# When bumping minor versions of scylla / scylla-cql nothing bad will happen -# if we forget to update versions here. [dev-dependencies] -scylla = { version = "0.15.0", path = "../scylla"} -scylla-cql = { version = "0.4.0", path = "../scylla-cql"} \ No newline at end of file +scylla = { path = "../scylla"} +scylla-cql = { path = "../scylla-cql"} diff --git a/scylla-proxy/Cargo.toml b/scylla-proxy/Cargo.toml index 8ccbe58752..d6ff7bc8ed 100644 --- a/scylla-proxy/Cargo.toml +++ b/scylla-proxy/Cargo.toml @@ -14,7 +14,7 @@ license = "MIT OR Apache-2.0" defaults = [] [dependencies] -scylla-cql = { version = "0.4.0", path = "../scylla-cql" } +scylla-cql = { version = "1.0.0", path = "../scylla-cql" } byteorder = "1.3.4" bytes = "1.2.0" futures = "0.3.6" diff --git a/scylla/Cargo.toml b/scylla/Cargo.toml index 93601be7c4..743c977e67 100644 --- a/scylla/Cargo.toml +++ b/scylla/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "scylla" -version = "0.15.0" +version = "1.0.0" edition = "2021" rust-version = "1.70" description = "Async CQL driver for Rust, optimized for Scylla, fully compatible with Apache Cassandra™" @@ -43,7 +43,7 @@ metrics = ["dep:histogram"] unstable-testing = [] [dependencies] -scylla-cql = { version = "0.4.0", path = "../scylla-cql" } +scylla-cql = { version = "1.0.0", path = "../scylla-cql" } byteorder = "1.3.4" bytes = "1.0.1" futures = "0.3.6"