-
Notifications
You must be signed in to change notification settings - Fork 4
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
update scikit-build-core floors, set a minimum version, address deprecation warnings #58
Comments
|
In addition to updating RAPIDS projects that use SKBC to build, we should also make sure to update the samples in dfg (see rapidsai/dependency-file-generator#98). |
This has new urgency because notes: https://github.com/scikit-build/scikit-build-core/releases/tag/v0.10.0 |
Details on what broke? |
Sorry @henryiii , I'll have more details for you in a few minutes. We haven't actually observed the new release breaking anything, so it was careless of me to say "will breaks RAPIDS repos." I think "might" would have been more appropriate. In short... we don't set Those conclusions might not have been right. I've put up rapidsai/rmm#1638 to test our assumptions and try to get more information about the actual impact. |
Conversation moved to here (we do see CI failures, and are discussing the root causes here): rapidsai/rmm#1637 (comment) |
Thanks James! 🙏 Appreciate you getting these PRs started Have moved this issue to in progress to reflect that |
FYI, you can set: [tool.scikit-build]
minimum-version = "build-system.requires" To single-source the minimum version from the |
Thanks Henry! 🙏 That's a nice addition. Noticing this got added in 0.10.0 😄 Linking the docs for reference |
It's also at https://iscinumpy.dev/post/scikit-build-core-0-10/. |
…100) As pointed out by Henry ( rapidsai/build-planning#58 (comment) ), we can configure `scikit-build-core` to retrieve the minimum version from `build-system.requires` This is also mentioned in: * [This blogpost]( https://iscinumpy.dev/post/scikit-build-core-0-10/ ) * [The scikit-build-core docs]( https://scikit-build-core.readthedocs.io/en/latest/configuration.html#minimum-version-defaults )
Thanks @henryiii , really nice feature! I've just made that change on all the PRs linked in the task list at the top of this issue. If those are merged, then RAPIDS will be on |
Proposes switching from `SKBUILD_CMAKE_VERBOSE` to `SKBUILD_BUILD_VERBOSE` in wheel-building scripts in `rapids-build-utils`. Setting `SKBUILD_CMAKE_VERBOSE` in the environment causes an unavoidable build-time exception when using `scikit-build-core>=0.10.0` and setting `minimum-version = "0.10.0"` in `scikit-build-core`. ```text ERROR: Cannot set cmake.verbose if minimum-version is set to 0.10 or higher ``` ([build link](https://github.com/rapidsai/rmm/actions/runs/10274129734/job/28430178007?pr=1637#step:7:1878)) See https://scikit-build-core.readthedocs.io/en/latest/configuration.html#verbosity > Changed in version 0.10: cmake.verbose was renamed to build.verbose. ## Notes for Reviewers For more context, see the conversation on that PR and rapidsai/build-planning#58.
…rsion (#203) Contributes to rapidsai/build-planning#58. `scikit-build-core==0.10.0` was released today (https://github.com/scikit-build/scikit-build-core/releases/tag/v0.10.0), and wheel-building configurations across RAPIDS are incompatible with it. This proposes upgrading to that version and fixing configuration here in a way that: * is compatible with that new `scikit-build-core` version * takes advantage of the forward-compatibility mechanism (`minimum-version`) that `scikit-build-core` provides, to reduce the risk of needing to do this again in the future Authors: - James Lamb (https://github.com/jameslamb) Approvers: - https://github.com/jakirkham URL: #203
`cmake.minimum-version` has been deprecated since `scikit-build-core` 0.8, and is now causing conflicts in 0.10 due to its attempts to auto-detect `cmake.version` from `CMakeLists.txt`. Bump the minimum `scikit-build-core` to 0.10 and use the suggested `cmake.version`. Contributes to rapidsai/build-planning#58 Authors: - Kyle Edwards (https://github.com/KyleFromNVIDIA) - James Lamb (https://github.com/jameslamb) - https://github.com/jakirkham Approvers: - Bradley Dice (https://github.com/bdice) - https://github.com/jakirkham URL: #1637
…rsion (#430) Contributes to rapidsai/build-planning#58. `scikit-build-core==0.10.0` was released today (https://github.com/scikit-build/scikit-build-core/releases/tag/v0.10.0), and wheel-building configurations across RAPIDS are incompatible with it. This proposes upgrading to that version and fixing configuration here in a way that: * is compatible with that new `scikit-build-core` version * takes advantage of the forward-compatibility mechanism (`minimum-version`) that `scikit-build-core` provides, to reduce the risk of needing to do this again in the future Authors: - James Lamb (https://github.com/jameslamb) Approvers: - https://github.com/jakirkham URL: #430
…rsion (#16503) Contributes to rapidsai/build-planning#58. `scikit-build-core==0.10.0` was released today (https://github.com/scikit-build/scikit-build-core/releases/tag/v0.10.0), and wheel-building configurations across RAPIDS are incompatible with it. This proposes upgrading to that version and fixing configuration here in a way that: * is compatible with that new `scikit-build-core` version * takes advantage of the forward-compatibility mechanism (`minimum-version`) that `scikit-build-core` provides, to reduce the risk of needing to do this again in the future Authors: - James Lamb (https://github.com/jameslamb) Approvers: - https://github.com/jakirkham URL: #16503
…rsion (#258) Contributes to rapidsai/build-planning#58. `scikit-build-core==0.10.0` was released today (https://github.com/scikit-build/scikit-build-core/releases/tag/v0.10.0), and wheel-building configurations across RAPIDS are incompatible with it. This proposes upgrading to that version and fixing configuration here in a way that: * is compatible with that new `scikit-build-core` version * takes advantage of the forward-compatibility mechanism (`minimum-version`) that `scikit-build-core` provides, to reduce the risk of needing to do this again in the future Authors: - James Lamb (https://github.com/jameslamb) Approvers: - https://github.com/jakirkham URL: #258
Reviewed and merged a good chunk of these There are a handful that are still running CI or have unrelated CI errors that need investigation |
…rsion (#280) Contributes to rapidsai/build-planning#58. `scikit-build-core==0.10.0` was released today (https://github.com/scikit-build/scikit-build-core/releases/tag/v0.10.0), and wheel-building configurations across RAPIDS are incompatible with it. This proposes upgrading to that version and fixing configuration here in a way that: * is compatible with that new `scikit-build-core` version * takes advantage of the forward-compatibility mechanism (`minimum-version`) that `scikit-build-core` provides, to reduce the risk of needing to do this again in the future Authors: - James Lamb (https://github.com/jameslamb) Approvers: - https://github.com/jakirkham URL: #280
Thanks for helping to move this forward @jakirkham ! I've checked the statuses this morning and all the remaining one haves unrelated CI failures. Will keep checking and updating them. |
…rsion (#2406) Contributes to rapidsai/build-planning#58. `scikit-build-core==0.10.0` was released today (https://github.com/scikit-build/scikit-build-core/releases/tag/v0.10.0), and wheel-building configurations across RAPIDS are incompatible with it. This proposes upgrading to that version and fixing configuration here in a way that: * is compatible with that new `scikit-build-core` version * takes advantage of the forward-compatibility mechanism (`minimum-version`) that `scikit-build-core` provides, to reduce the risk of needing to do this again in the future Authors: - James Lamb (https://github.com/jameslamb) Approvers: - https://github.com/jakirkham URL: #2406
…rsion (#6012) Contributes to rapidsai/build-planning#58. `scikit-build-core==0.10.0` was released today (https://github.com/scikit-build/scikit-build-core/releases/tag/v0.10.0), and wheel-building configurations across RAPIDS are incompatible with it. This proposes upgrading to that version and fixing configuration here in a way that: * is compatible with that new `scikit-build-core` version * takes advantage of the forward-compatibility mechanism (`minimum-version`) that `scikit-build-core` provides, to reduce the risk of needing to do this again in the future Authors: - James Lamb (https://github.com/jameslamb) - Dante Gama Dessavre (https://github.com/dantegd) Approvers: - https://github.com/jakirkham URL: #6012
…rsion (#4597) Contributes to rapidsai/build-planning#58. `scikit-build-core==0.10.0` was released today (https://github.com/scikit-build/scikit-build-core/releases/tag/v0.10.0), and wheel-building configurations across RAPIDS are incompatible with it. This proposes upgrading to that version and fixing configuration here in a way that: * is compatible with that new `scikit-build-core` version * takes advantage of the forward-compatibility mechanism (`minimum-version`) that `scikit-build-core` provides, to reduce the risk of needing to do this again in the future Authors: - James Lamb (https://github.com/jameslamb) Approvers: - Mike Sarahan (https://github.com/msarahan) URL: #4597
@jameslamb is rapidsai/cuspatial#1430 all that's left before we can close this? |
yes |
…rsion (#1430) Contributes to rapidsai/build-planning#58. `scikit-build-core==0.10.0` was released today (https://github.com/scikit-build/scikit-build-core/releases/tag/v0.10.0), and wheel-building configurations across RAPIDS are incompatible with it. This proposes upgrading to that version and fixing configuration here in a way that: * is compatible with that new `scikit-build-core` version * takes advantage of the forward-compatibility mechanism (`minimum-version`) that `scikit-build-core` provides, to reduce the risk of needing to do this again in the future Authors: - James Lamb (https://github.com/jameslamb) - Bradley Dice (https://github.com/bdice) - Vyas Ramasubramani (https://github.com/vyasr) Approvers: - https://github.com/jakirkham URL: #1430
That |
Thanks all! 🙏 |
Description
The PRs for #2 switched most RAPIDS projects' build backends to
scikit-build-core
.Across RAPIDS repos, we have the following mix of conditions in
pyproject.toml
today:scikit-build-core[pyproject]>=0.7.0
(raft pyproject.toml example)minimum-version
set in the[tool.scikit-build-core]
table inpyproject.toml
Taken together, that means "use the latest
scikit-build-core
newer than0.7.0
at build time, and opt in to all of its newest non-experimental behaviors".As a result of that mix, these warnings that have started showing up in build logs could eventually become errors:
(example build link)
To prevent that happening unexpectedly and to provide a bit more stability, I think we should pursue the following across all RAPIDS repos:
cmake.minimum-version
tocmake.version
in[tool.scikit-build-core]
table inpyproject.toml
scikit-build-core
floor to the latest release ofscikit-build-core
minimum-version
(minimumscikit-build-core
version) in the[tool.scikit-build-core]
table inpyproject.toml
Benefits of this work
Reduces the risk of a
scikit-build-core
release causing an all-RAPIDS-wheels-builds-are-broken-at-the-same-time type of event.Removes a source of deprecation warnings from logs, reducing a bit of noise and improving the usefulness of build logs for debugging purposes.
Approach
If we agree to do this, it'd be a good candidate for
rapids-reviser
. Modify thescikit-build-core
floor independencies.yaml
and re-runrapids-dependency-file-generator
, and the make the other edits inpyproject.toml
files diretly.Notes
Why do we need a floor on the dependency AND to set
minimum-version
?See https://scikit-build-core.readthedocs.io/en/latest/configuration.html#minimum-version-defaults.
Like CMake,
scikit-build-core
'sminimum-version
configuration isn't just a constraint that's there for package managers or to raise an exception if you have a too-old version.When
scikit-build-core
introduces new behaviors, it will sometimes gate them behind an "only do this ifminimum-version>={something}
" type of condition.For example: https://github.com/scikit-build/scikit-build-core/blob/f6ed5a28fc85e621b03d984011d17def888ee0db/src/scikit_build_core/build/metadata.py#L41-L45
Tasks
other items related to updating scikit-build-core
The text was updated successfully, but these errors were encountered: