Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.14 #1070

Merged
merged 3 commits into from
Sep 5, 2024
Merged

Release 0.14 #1070

merged 3 commits into from
Sep 5, 2024

Conversation

Lorak-mmk
Copy link
Collaborator

Proposed release notes:

The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 0.14.0,
an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!

Some interesting statistics:

- over 2.103k downloads on crates!
- over 556 GitHub stars!

## Changes

**API cleanups / breaking changes:**
- Our session & paging API was revamped so that it is more intuitive and robust. Now the type of the query (paged / unpaged) is tied to the method used to execute it (`execute_unpaged` / `execute_single_page` / `execute_iter`) rather than the page size associated with the statement object. Other changes include ([#1061](https://github.com/scylladb/scylla-rust-driver/pull/1061)):
	- Introduced strongly typed paging state instead of using `Bytes`.
	- Paging state is explicitly returned from `execute_single_page` instead of being a field in `QueryResult`.
	- Made `page_size` on the statements mandatory and providing the default value.
	- Updated our docs and examples to point users towards paged queries and explaining the issues with unpaged SELECTs. ([#1069](https://github.com/scylladb/scylla-rust-driver/pull/1069), [#1068](https://github.com/scylladb/scylla-rust-driver/pull/1068))
- Trait `SerializeCql` was renamed to `SerializeValue` because old name turned out to be confusing for users. ([#1000](https://github.com/scylladb/scylla-rust-driver/pull/1000))
- Features `chrono`, `time` and `secret` were renamed to `chrono-04`, `time-03` and `secrecy-08` to allow us to support new major versions of those libraries in the future. ([#939](https://github.com/scylladb/scylla-rust-driver/pull/939))
- Some of our error types were restructured to be more strongly typed (instead of just containing a string) and better reflect the conditions that they appear in. This work will be continued in 0.15. ([#1017](https://github.com/scylladb/scylla-rust-driver/pull/1017), [#1026](https://github.com/scylladb/scylla-rust-driver/pull/1026))
- `QueryResult.col_specs` was changed from being a field to a method in order to allow sharing it with `PreparedStatement`. ([#1065](https://github.com/scylladb/scylla-rust-driver/pull/1065))
- Moved `ResultMetadata.paging_state` field to `Rows.paging_state_response`. This is because paging state is something that changes on each paged request and should not be cached by `PreparedStatement`. ([#1065](https://github.com/scylladb/scylla-rust-driver/pull/1065))
- Some parts of our upcoming deserialization refactor were merged, resulting in very minor breaking changes in our error types. The rest of deserialization refactor is planned for 0.15. ([#970](https://github.com/scylladb/scylla-rust-driver/pull/970), [#1004](https://github.com/scylladb/scylla-rust-driver/pull/1004), [#1024](https://github.com/scylladb/scylla-rust-driver/pull/1024), [#1065](https://github.com/scylladb/scylla-rust-driver/pull/1065))

**New features / enhancements:**
- Values that driver sends to server to identify itself in `STARTUP` message (`DRIVER_NAME`, `DRIVER_VERSION`) can now be configured using new `SelfIdentity` API in `SessionBuilder`. ([#1039](https://github.com/scylladb/scylla-rust-driver/pull/1039))
- Replaced some `.unwrap()`s with `.expect()`s in the code generated by our derive macros. This is done to avoid angering `unwrap_used` clippy lint and to provide better error messages if those panics are ever triggered. ([#1055](https://github.com/scylladb/scylla-rust-driver/pull/1055))
https://github.com/scylladb/scylla-rust-driver/pull/1019

**Documentation:**
- Documentation about using timeuuid type was improved. ([#980](https://github.com/scylladb/scylla-rust-driver/pull/980))
- Improved documentation about `PreparedStatement`. ([#986](https://github.com/scylladb/scylla-rust-driver/pull/986))
- Updated Scylla Sphinx theme to version 1.7. ([#994](https://github.com/scylladb/scylla-rust-driver/pull/994))
- Added support for building documentation on Mac. ([#927](https://github.com/scylladb/scylla-rust-driver/pull/927))

**CI / developer tool improvements:**
- [#1011](https://github.com/scylladb/scylla-rust-driver/pull/1011) fixed some issue with tests and CI:
	- CI now prints versions of used Rust tools so we don't have to wonder what version is running on Github Actions runners again.
	- Disabled tablets in tests that use LWT because Scylla doesn't support it yet, and other minor tablet-related changes.
	- Restricted Tokio version because of regression when `[tokio::test]` is used with `[ntest::timeout]`
- [#1019](https://github.com/scylladb/scylla-rust-driver/pull/1019) removed aforementioned Tokio version bounds after regression was fixed there.
- Clippy lints that were previously skipped in two places are enabled again because Darling crate that was triggering them was fixed. ([#1036](https://github.com/scylladb/scylla-rust-driver/pull/1036))

**Others:**
- Updated maintainers list in `CONTRIBUTING.md`. ([#997](https://github.com/scylladb/scylla-rust-driver/pull/997))

Congrats to all contributors and thanks everyone for using our driver!

----------

The source code of the driver can be found here:
- [https://github.com/scylladb/scylla-rust-driver](https://github.com/scylladb/scylla-rust-driver)
Contributions are most welcome!

The official crates.io registry entry is here:
- [https://crates.io/crates/scylla](https://crates.io/crates/scylla)

Thank you for your attention, please do not hesitate to contact us if you have any questions, issues, feature requests, or are simply interested in our driver!

Contributors since the last release:

| commits | author            |
|---------|-------------------|
| 163     | Wojciech Przytuła |
| 55      | Mikołaj Uzarski   |
| 17      | Karol Baryła      |
| 3       | David Garcia      |
| 2       | Lucas Kent        |
| 2       | Piotr Dulikowski  |
| 1       | Daniel Reis       |
| 1       | Dmitry Kropachev  |
| 1       | Kailokk           |

@Lorak-mmk Lorak-mmk requested a review from wprzytula September 5, 2024 11:31
Copy link

github-actions bot commented Sep 5, 2024

cargo semver-checks found no API-breaking changes in this PR! 🎉🥳
Checked commit: 0341198

@Lorak-mmk Lorak-mmk merged commit 0341198 into main Sep 5, 2024
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants