-
Notifications
You must be signed in to change notification settings - Fork 568
CASSPYTHON-3 Introduce pyproject.toml to explicitly declare build dependencies #1264
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
base: trunk
Are you sure you want to change the base?
Changes from all commits
51dc632
8b21e54
fcfc680
475df4b
f30f0a8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,57 @@ | ||||||||
| [build-system] | ||||||||
| build-backend = "setuptools.build_meta" | ||||||||
| requires = ["setuptools", "Cython>=3.0", "toml", "cassandra-driver"] | ||||||||
|
||||||||
| requires = ["setuptools", "Cython>=3.0", "toml", "cassandra-driver"] | |
| requires = ["setuptools", "Cython>=3.0", "toml"] |
Copilot
AI
Jan 13, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The build-system requires "Cython>=3.0" unconditionally, but in the original code, Cython was only added to setup_requires when actually needed (when try_cython was True and pre_build_check passed). This means Cython will now always be installed during the build process, even if the user doesn't want to build Cython extensions. This could increase build time and dependencies unnecessarily. Consider making Cython an optional build dependency or documenting why it's now always required.
Copilot
AI
Jan 13, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The pyproject.toml is missing a requires-python field to specify the minimum Python version required. While the classifiers list Python 3.9-3.13, the requires-python field should be explicitly set (e.g., requires-python = ">=3.9") to ensure pip enforces this requirement during installation.
| ] | |
| ] | |
| requires-python = ">=3.9" |
bschoening marked this conversation as resolved.
Show resolved
Hide resolved
Copilot
AI
Jan 13, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The [tool.setuptools.packages.find] configuration uses include with an explicit list of packages. However, this approach means that any new subpackages added in the future would need to be manually added to this list, which is error-prone. The original setup.py also used an explicit list, but consider using where and exclude patterns instead for better maintainability, or document why the explicit list approach is preferred.
Copilot
AI
Jan 13, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The pyproject.toml configuration uses "libev-libs" (line 56) but this should more accurately be named "libev-libdirs" to match the semantics of library directories, consistent with the library_dirs parameter used in the Extension definition. While not technically incorrect, this naming could be confusing as "libs" might suggest library names rather than library directories.
| libev-libs = [] | |
| libev-libdirs = [] |
Uh oh!
There was an error while loading. Please reload this page.