Skip to content

Release 3.30.0: changelog and documentation#1282

Open
absurdfarce wants to merge 7 commits intoapache:trunkfrom
absurdfarce:3300_release_updates
Open

Release 3.30.0: changelog and documentation#1282
absurdfarce wants to merge 7 commits intoapache:trunkfrom
absurdfarce:3300_release_updates

Conversation

@absurdfarce
Copy link
Contributor

Changelog entries plus a few changes related to things from this release. We don't have cassandra.version anymore so I tweaked that to use supported protocol versions instead.

Also yanked all the env var stuff we used to support in setup.py... that's all in pyproject.toml now.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates release-facing documentation and changelog for the 3.30.0 release, including Python version support changes and guidance around the new pyproject.toml-based build configuration.

Changes:

  • Add 3.30.0 changelog entry (features/bug fixes/other notes).
  • Update stated supported Python versions to 3.10–3.14.
  • Update installation docs to reference pyproject.toml build configuration instead of setup.py env vars / flags.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
docs/installation.rst Updates supported Python versions; revises installation verification and build-configuration guidance to reference pyproject.toml.
README.rst Updates supported Python versions statement for the release.
CHANGELOG.rst Adds 3.30.0 release notes at the top of the changelog.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +27 to +29
python -c 'import cassandra; print(cassandra.ProtocolVersion.SUPPORTED_VERSIONS)'

It should print something like "3.29.3".
This command should print something like "(66, 65, 6, 5, 4, 3, 2, 1)".
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new verification command prints ProtocolVersion.SUPPORTED_VERSIONS, which doesn’t indicate which driver version was installed and the tuple contents can vary as protocol support changes. Since cassandra.__version__ still exists (it’s set from importlib.metadata in cassandra/__init__.py), consider keeping the original print(cassandra.__version__) (or documenting importlib.metadata.version('cassandra-driver')) so users can confirm the installed package version.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

@absurdfarce absurdfarce Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I forgot that we kept cassandra.__version__ around... agree that this makes more sense. Also just re-tested against 3.30.0 to confirm that this usage still works without issue... and it does.

Comment on lines +102 to +103
You can also use ``build-concurrency`` key in the ``tool.cassandra-driver`` table of pyproject.toml to
increase the number of threads used to build the driver and any C extensions.
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line 102 has trailing whitespace, and the sentence is missing an article (“use the build-concurrency key…”). Also, build-concurrency is an integer in pyproject.toml (default 0); it would help to note that users should set it to a positive integer to override the default behavior.

Copilot uses AI. Check for mistakes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe: "Use the build-concurrency setting in pyproject.toml under [tool.cassandra-driver] to enable multi-threaded builds for the driver and C extensions."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 to adding the article. I use the terms "key" and "table" throughout this doc when referring to pyproject.toml since that's the terminology used within the pyproject.toml Python docs... so I'd kind of like to stick with that in order to help users translate between the two.

Actually this section could use another pass overall... working on that now.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, re-worked this to hopefully make it clearer (and address the comments included here). Take another look @bschoening and see if you're good with what's here!

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Cython also supports concurrent builds of native extensions. The ``build-concurrency`` key in the
``tool.cassandra-driver`` table of pyproject.toml is an integer value which specifies the number of
concurrent builds Cython may execute. The value for this key must be a non-negative integer; the default is zero,
indicating no concurrent builds. The ``multiprocessing`` module must be installed if concurrent builds are used.
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The docs say “The multiprocessing module must be installed if concurrent builds are used.” multiprocessing is part of the Python standard library for the supported runtimes (CPython/PyPy), so this is misleading. Consider rephrasing to note that concurrent builds rely on the standard-library multiprocessing module (and may be unavailable only in restricted/minimal Python builds).

Suggested change
indicating no concurrent builds. The ``multiprocessing`` module must be installed if concurrent builds are used.
indicating no concurrent builds. Concurrent builds rely on the standard-library ``multiprocessing`` module, which may be unavailable in restricted or minimal Python environments.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noted and fixed.

When installing manually through setup.py, you can disable both with
the ``--no-extensions`` option, or selectively disable them with
with ``--no-murmur3``, ``--no-libev``, or ``--no-cython``.
When installing manually these options can be disabled by changing the corresponding
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor grammar: “When installing manually these options…” reads as missing a comma after “manually”, which makes the sentence harder to parse.

Suggested change
When installing manually these options can be disabled by changing the corresponding
When installing manually, these options can be disabled by changing the corresponding

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrased

DataStax Enterprise (4.7+) using exclusively Cassandra's binary protocol and Cassandra Query Language v3.

The driver supports Python 3.9 through 3.13.
The driver supports Python 3.10 through 3.14.
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Support range was updated here, but other prominent docs still state the old range (e.g., docs/index.rst says Python 3.9–3.13 and README-dev.rst mentions testing 3.9–3.13). Consider updating those references in the same PR to keep the documentation consistent.

Suggested change
The driver supports Python 3.10 through 3.14.
The driver supports the Python versions listed on the project's PyPI page.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, fixing

Comment on lines +6 to 7
Python 3.10 through 3.14 are supported. Both CPython (the standard Python
implementation) and `PyPy <http://pypy.org>`_ are supported and tested.
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Supported Python versions were updated here, but the documentation landing page still advertises the previous range (docs/index.rst currently says Python 3.9–3.13). Consider updating that page as well to avoid conflicting guidance.

Copilot uses AI. Check for mistakes.
------
* Remove obsolete __future__ import absolute_import (PR 1263)
* Remove ez_setup for compatibility with setuptools v82 (PR 1268)
* Replace usage of with await lock (PR 1270)
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This changelog bullet is difficult to parse (“Replace usage of with await lock”). Consider rewording to explicitly state what was replaced (e.g., replacing a with <lock> usage with awaiting an async lock) so readers can understand the change without context from the PR.

Suggested change
* Replace usage of with await lock (PR 1270)
* Replace with-statement based lock usage with awaiting an async lock (PR 1270)

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changelog entries are almost always taken directly from the PR title... I'm not convinced there's much need to deviate from that here.

@bschoening
Copy link
Contributor

+1

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.

3 participants