NVIDIA / NVIDIA/cuvs

[CI] Run the cuVS Bench Lucene E2E suite with provisioned artifacts

Open
#2,635 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Cuda
Stars
854
Forks
236
Avg merge
3d 3h
Merged PRs (30d)
62

Description

Problem

The cuVS Bench Lucene integration suite added in #2624 is intentionally selected with --run-lucene-e2e. Current Python CI runs ordinary pytest without that option and does not provision the custom PyLucene 10.2/JCC runtime, JDK 22, matching cuvs-java and thin cuvs-lucene JARs, or their native runtime. The live cases therefore remain manual evidence rather than continuous regression coverage.

Proposed change
  • Decide whether the live suite should be blocking for relevant paths, scheduled, or both.
  • Provision a reproducible PyLucene 10.2/JCC runtime and matching native dependencies.
  • Pass exact cuvs-java and thin cuvs-lucene producer artifacts into the cuVS Bench job and record their revisions or hashes.
  • Invoke the suite with --run-lucene-e2e.
  • Fail clearly on missing prerequisites, unavailable GPU/cuVS paths, unexpected CPU fallback, or zero executed live cases.
  • Report selected, passed, failed, and skipped case counts.

This requires coordination across cuVS Bench/Python, Java/Lucene artifact, and CI/packaging ownership. Until that handoff exists, the suite should remain documented as manual-only in current CI.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the current Python CI and cuVS Bench job, then trace how --run-lucene-e2e is selected and how producer artifacts are passed. Review the required PyLucene/JCC runtime, JDK 22, cuvs-java, thin cuvs-lucene, and native dependencies. Done means reproducible provisioning, explicit prerequisite failures, live-case counts, and documented blocking or scheduled behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, python
Domain
build-system, ci-cd, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.