Skip to content

Allow CMake v4+#669

Merged
rapids-bot[bot] merged 3 commits intorapidsai:mainfrom
trxcllnt:fix/unconstrain-cmake-pin
Jan 6, 2026
Merged

Allow CMake v4+#669
rapids-bot[bot] merged 3 commits intorapidsai:mainfrom
trxcllnt:fix/unconstrain-cmake-pin

Conversation

@trxcllnt
Copy link
Copy Markdown
Contributor

Support building with CMake v4+ to align with other RAPIDS repos.

This is required for NVAIE/DLFW builds of RAPIDS v25.12.

@trxcllnt trxcllnt requested a review from a team as a code owner November 15, 2025 00:20
@trxcllnt trxcllnt requested review from msarahan and removed request for a team November 15, 2025 00:20
@trxcllnt trxcllnt added improvement Improves an existing functionality non-breaking Introduces a non-breaking change labels Nov 15, 2025
@trxcllnt trxcllnt requested a review from pentschev November 15, 2025 00:20
- clang==20.1.4
- click >=8.1
- cmake>=3.30.4,<4
- cmake>=3.30.4
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We occasionally have to do a dance when a cmake minor/point release is made because something has broken/rapids-cmake needs an update.

Can we upper-bound to currently known working 4.x versions?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I made this align with the other RAPIDS repos. I think they don't pin to an upper bound because we want to pick up new features, @robertmaynard may have more insight.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

As far as I am aware RAPIDS works with any 4.X release so we are safe

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Previous times when we needed to upper bound pin (via cursory search)

With no upper bound pin, on any future date we can arbitrarily break with no forewarning.

Although cmake is not the most frequent culprit here, removing an upper bound pin introduces one more place where it might happen.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

None of the other RAPIDS projects have upper bound pins on CMake, so I don't think this is an issue. If anything breaks, we'll have to add exclusive pins to all RAPIDS projects regardless. Pinning differently here is causing issues when we need to build rapidsmpf with other RAPIDS packages, like what we do in NVAIE. This PR needs to be merged.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

None of the other RAPIDS projects have upper bound pins on CMake, so I don't think this is an issue

I mean, I've pointed out previous times it has been an issue, so I don't know what to do really.

Most recent possible version solving and lack of upper bound pins is the number one reason why rapids CI breaks so regularly.

But I clearly lost this battle long ago, so go ahead. You'll need to find a packaging codeowner to review.

@trxcllnt trxcllnt changed the base branch from release/25.12 to main January 6, 2026 16:22
@msarahan
Copy link
Copy Markdown
Contributor

msarahan commented Jan 6, 2026

There are two issues here:

  • need to update cmake (or allow newer cmake) for compatibility with other RAPIDS libraries
  • whether or not an upper bound should be imposed

I agree that the complete lack of an upper bound exposes projects to unanticipated changes, often leading to brokenness. This goes back to https://github.com/rapidsai/build-infra/issues/177

We discussed this in the build team standup today. The work I did for the above discussion in rapidsai/shared-actions#63 differs from this present issue because it addresses only test-time pinning. It is meant to provide stability for a developer's test environment over the lifetime of a PR. It defers the cost of any necessary adaptation to some later stage, such as perhaps one final check before merge that allows updates, or by merging and then fixing main.

DLFW builds integrate many RAPIDS projects. All projects share the same build environment. We can't have any conflicts among build/runtime dependencies from any libraries. That's the issue this PR solves.

An idea that came up in the meeting was to establish RAPIDS-wide pinnings (or at least constraints) that would be updated as part of our release cycle. For example, the window to make changes to these core pinnings might be something like one week after a release. If projects wanted to experiment with pinning changes outside of this window, they would need to do so on a feature branch, not on main. I will be fleshing out this idea in a PoR.

For the time being, I feel your pain, @wence- and I also know that we need to merge this to unblock DLFW. The build team will work to improve the situation in a way that isn't overly restrictive on library authors.

@trxcllnt
Copy link
Copy Markdown
Contributor Author

trxcllnt commented Jan 6, 2026

/merge

@rapids-bot rapids-bot Bot merged commit 8f7406f into rapidsai:main Jan 6, 2026
96 checks passed
@trxcllnt trxcllnt deleted the fix/unconstrain-cmake-pin branch January 6, 2026 20:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improves an existing functionality non-breaking Introduces a non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants