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.12 #924

Closed
wants to merge 0 commits into from
Closed

Release 0.12 #924

wants to merge 0 commits into from

Conversation

Lorak-mmk
Copy link
Collaborator

@Lorak-mmk Lorak-mmk commented Feb 1, 2024

This is a draft for 0.12 release. After approving, this should either be merged using rebase or I'll perform a fast-forward merge (which unfortunately isn't available on GitHub).

I bumped scylla-cql to 0.1.0, as discussed with @piodul , to enable us to release minor versions.
I bumped scylla-macros to 0.4.0, despite there not being any breaking changes (I think). This has the advantage of allowing us to maintain previous version of scylla crate more easily (if we need to release 0.12.1 while 0.13 is out, we can change things in scylla-macros and release 0.4.1). The drawback is that people using scylla 0.11 won't be able to use new features of scylla-macros (in this case, skip attribute) - but I don't feel like that's a big problem.

Proposed release notes:

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

Some interesting statistics:

  • over 1,156k downloads on crates!
  • over 500 GitHub stars; We passed 500 stars!

Changes

API cleanups / breaking changes:

  • Introduced CqlTimeuuid type. Timeuuid CQL type now corresponds to the new type instead of Uuid. The purpose of new type is mostly providing correct semantics (matching the database) with regard to sorting / comparing / hashing (#894)
  • Public usages of num_bigint::BigInt are now hidden behind feature flag. Support for num_bigint 0.4 is added. You can enable support for chosen version using num-bigint-03 / num-bigint-04 feature flags (#902)
  • bigdecimal dependency version is bumped to 0.4. Similarly to BigInt, usages of bigdecimal are now behind feature-flag bigdecimal-04 (#922)

New features / enhancements:

  • SerializeRow and SerializeCql derive macros now support skip field attribute to skip some fields during serialization (#903)

Documentation:

  • Documentation for SerializeRow / SerializeCql derive macros is now rendered only in scylla crate. Previously it was only visible in scylla-cql due to an oversight, which made it hard to discover for users. It is not possible to render it in both crates without duplicating it in code because of rustdoc limitation (#907)
  • Examples now use different table and keyspace names so that running multiple of them on the same cluster works correctly (#846)
  • Added section discouraging use of multiple / short-lived Session objects and recommendations about sharing Session objects between threads. You can find this section in Connecting to the cluster page of book (#914)

Bug fixes:

  • Some time-related were put behind chrono feature flag instead of time feature flag (#898)
  • chrono introduced an arguably breaking change - changing values of NaiveDate::MIN/MAX. We changed our tests to nor rely on those values. If you used those values as markers / placeholders in database, you may not be able to deserialize them with new version ofchrono(#919)

CI / developer tool improvements:

  • Purpose of Cargo.lock.msrv file and ways to update this file when min_rust job are now documented in CONTRIBUTING.md (#913)
  • Building documentation using Scylla's Sphinx tooling now uses myst parser instead of deprecated recommonmark. One improvement is markdown table support (#874)
  • Our documentation must work with Scylla's Sphinx tooling, so it contains ToC (Table of Contents) sections that are not supported by mdbook. In order to be able to build it with mdbook we had a wrapper script that stripped those sections before calling mdbook. Now this script is replaced by preprocessor script called automatically by mdbook - so just calling mdbook commands "just works" again now (#910).
  • New Markdown parser for Sphinx parser, and our preprocessor mentioned in previous point, now support warning admonition with the following syntax (#914):
:::{warning}
text
:::
  • Fixed new clippy warnings introduced in Rust 1.75 (#900)
  • Introduced cargo-semver-checks tool to our CI to decrease the chance of releasing a breaking change after we are at 1.0 (#909)

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
31 Mikołaj Uzarski
31 Karol Baryła
13 Piotr Dulikowski
2 Oliver Bøving
1 David Garcia
1 Nick Sippl-Swezey

@piodul
Copy link
Collaborator

piodul commented Feb 1, 2024

API cleanups / breaking changes:

The second and the third bullet point in this section don't have links.

Documentation:
...

  • Examples now use different table and keyspace name

keyspace names

running multiple of them

I suggest rephrasing it as "running many of them in parallel"

CI / developer tool improvements:
...

  • New parser, and our preprocessor now support warning admonition with the following syntax

New parser and preprocessor of what? The context is missing here.


Otherwise looks good.

@Lorak-mmk
Copy link
Collaborator Author

running multiple of them

I suggest rephrasing it as "running many of them in parallel"

I don't think it's only about running in parallel, but also sequential on the same DB instance - many examples don't drop the tables.
Changed to Examples now use different table and keyspace names so that running multiple of them on the same cluster works correctly

CI / developer tool improvements:
...

  • New parser, and our preprocessor now support warning admonition with the following syntax

New parser and preprocessor of what? The context is missing here.

Reworded points regarding documentation building. What do you think about current version?

Now that I think of it, I'd really like to merge semver checks before releasing - it would allow us to test the push job of it by doing this release.
I'll address the comments there shortly.

@Lorak-mmk
Copy link
Collaborator Author

I added an entry about semver-checks

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