Skip to content

Conversation

@ldematte
Copy link
Contributor

As discussed during a sync, we want to relax version matching/checking between cuvs-java and the cuVS C library.
The rationale is that the C API should be pretty stable, and the cuvs-java bindings to the C API should not be affected by the cuVS version, provided that the API does not change.
For these reasons, we do still want to check that

  • the C library version is at least as recent as the Java module
  • the C library is not "too far" in the future; we do not want unlimited forward compatibility, we want to be able to change the C API at some point (after e.g. a deprecation cycle).

This PR introduces these checks, allowing cuvs-java to start and bind with C libraries up to 3 more cuVS releases in the future.

@copy-pr-bot
Copy link

copy-pr-bot bot commented Nov 17, 2025

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@cjnolet cjnolet added improvement Improves an existing functionality non-breaking Introduces a non-breaking change labels Nov 17, 2025
@cjnolet
Copy link
Member

cjnolet commented Nov 17, 2025

/ok to test aedc15e

@cjnolet cjnolet changed the base branch from main to release/25.12 November 17, 2025 18:20
@ldematte ldematte force-pushed the java/relax-cuvs-version-checks branch from aedc15e to 9954f99 Compare November 18, 2025 08:02
Copy link
Contributor

@ChrisHegarty ChrisHegarty left a comment

Choose a reason for hiding this comment

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

LGTM

private static CuVSVersion addReleases(CuVSVersion currentVersion, int numberOfReleases) {
short candidateMinor = (short) (currentVersion.minor + numberOfReleases * 2);
short releaseMinor = (short) (candidateMinor % 12);
short releaseMajor = (short) (currentVersion.major + (candidateMinor / 12));
Copy link
Contributor

Choose a reason for hiding this comment

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

CalVer cyclic !

@mythrocks
Copy link
Contributor

/ok to test 080952e

@mythrocks
Copy link
Contributor

CI failures are a result of rapidsai/raft#2813. Should be resolved by rapidsai/raft#2881.

@mythrocks mythrocks changed the title [REVIEW][Java] Relax cuVS version matching [Java] Relax cuVS version matching Nov 21, 2025
@mythrocks
Copy link
Contributor

/ok to test 080952e

@mythrocks
Copy link
Contributor

/ok to test d4d1f4d

@mythrocks
Copy link
Contributor

/merge

@rapids-bot rapids-bot bot merged commit 60eb231 into rapidsai:release/25.12 Nov 25, 2025
89 checks passed
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

Development

Successfully merging this pull request may close these issues.

4 participants