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.13 #995

Merged
merged 3 commits into from
May 9, 2024
Merged

Release 0.13 #995

merged 3 commits into from
May 9, 2024

Conversation

Lorak-mmk
Copy link
Collaborator

@Lorak-mmk Lorak-mmk commented May 9, 2024

This is a draft for 0.13 release.
Steps I'll perform after approval:

# Perform fast-forward merge
git checkout main
git merge --ff-only branch-0.13.x

# Create the tag
git tag -a v0.13.0
git push origin v0.13.0

# Push the branch - need to push after the tag because otherwise docs will fail to build
git push origin main

# Now verify that docs was built and published successfully

# Publish new version to crates.io
cargo publish -p scylla-macros
cargo publish -p scylla-cql
cargo publish -p scylla

# Create a github release with previously approved release notes

# Create post on the forum about release

Proposed release notes:


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

Some interesting statistics:

  • over 1,615k downloads on crates!
  • over 520 GitHub stars!

Changes

API cleanups / breaking changes:

  • Implemented support for Tablets, a new major architectural feature of Scylla that will be a part of upcoming 6.0 release. This support is required for token (and shard) awareness to work with Tablet-based tables. You can read more about Tablets in a blogpost by Tomasz Grabiec or watch a presentation by Avi Kivity (#937)
  • Enabled shard-selecting load balancing. Before, a LoadBalancingPolicy would return a Plan consisting of Nodes;
    now, together with a Node it can optionally specify the Shard to contact as well. This is crucial for proper Tablets support (see above). Main PR #944, with follow up #969
  • Token: added constructor and normalization to increase type-safety (#948)
  • Removed another unstable dependency, histogram::Histogram, from public API (#935)
  • Implemented CQL protocol-level optimisation: prepared statement result metadata can be now used to decode rows. This saves network bandwidth if that option is enabled, because result metadata need not be sent with each DB query result. (#925)
  • Removed num_enum dependency. It was unstable, and we managed to do without it, so it no longer appears in the public API. (#931)
  • Decreased pub visibility of scylla-cql definitions which weren't intended for access from outside the driver. (#933)

New features / enhancements:

  • Improved the FromRow derive macro to suppport structs with unnamed fields. Before, only structs with named fields were supported. (#985)
  • testing: Increased timeout for fetching tracing info - Cassandra was so slow in tests that our CI used to fail sometimes... (#966)
  • Removed strum and strum_macros dependencies. They were unstable, and we managed to do without it. (#934)

Documentation:

  • Got rid of (most) uses of QueryResult::rows. The preferred method is the more type safe QueryResult::rows_typed. Moreover, QueryResult::rows is going to be deprecated in the next release, once the new lazy deserialization framework is introduced. We thus recommend switching to rows_typed wherever possible. (#955)

CI / developer tool improvements:

  • Removed unreachable pubs (#958)
  • Dealed with chrono deprecations (#951)
  • CI: run cargo clean before tests (#929)
  • CI: small fixes in semver checks (#942)
  • CI: semver_checks now edits its comment instead of posting new one, so that the PR wall is less cluttered. (#952)
  • CI: Tracing output is now shown for a test iff the test failed. This is a major aid in debugging in CI. (#959)
  • Reverted "CI/Makefile: disable uninlined_format_args clippy lint", as rust-analyzer now properly supports semantic analysis of such format args. (#945)
  • Appeased Clippy again (#971)

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


The source code of the driver can be found here:

The official crates.io registry entry is here:

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
40 Karol Baryła
24 Mikołaj Uzarski
10 Wojciech Przytuła
1 Piotr Dulikowski
1 Piotr Grabowski

@wprzytula wprzytula self-requested a review May 9, 2024 15:08
Copy link

github-actions bot commented May 9, 2024

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

@Lorak-mmk Lorak-mmk changed the title Branch 0.13.x Release 0.13 May 9, 2024
@Lorak-mmk Lorak-mmk marked this pull request as ready for review May 9, 2024 15:38
@Lorak-mmk Lorak-mmk requested a review from piodul May 9, 2024 15:38
@Lorak-mmk Lorak-mmk merged commit e68adf5 into main May 9, 2024
25 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