Skip to content

ensure nightly builds always produce new packages - #1661

Merged
rapids-bot[bot] merged 9 commits into
NVIDIA:mainfrom
jameslamb:nightly-versions
Aug 7, 2026
Merged

ensure nightly builds always produce new packages#1661
rapids-bot[bot] merged 9 commits into
NVIDIA:mainfrom
jameslamb:nightly-versions

Conversation

@jameslamb

@jameslamb jameslamb commented Aug 4, 2026

Copy link
Copy Markdown
Member

Contributes to rapidsai/build-planning#218

For wheels:

# before
26.10.0a55 

# after
26.10.0a55.post260803200854

And for conda:

# before
26.10.0a55[build=cuda12_260803_9da146ef]

# after
26.10.0a55[build=cuda12_260803200854_9da146ef]

Notes for Reviewers

How I tested this

See rapidsai/cugraph-gnn#508

@jameslamb jameslamb added non-breaking Introduces a non-breaking change improvement Improves an existing functionality labels Aug 4, 2026
@copy-pr-bot

copy-pr-bot Bot commented Aug 4, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@jameslamb jameslamb changed the title ensure nightly builds always produce new packages WIP: ensure nightly builds always produce new packages Aug 4, 2026
@jameslamb

Copy link
Copy Markdown
Member Author

/ok to test

Comment thread .github/workflows/build.yaml Outdated
@jameslamb

Copy link
Copy Markdown
Member Author

/ok to test

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

CI Test Summary

✅ All 31 test job(s) passed.

@jameslamb jameslamb changed the title WIP: ensure nightly builds always produce new packages ensure nightly builds always produce new packages Aug 6, 2026
@jameslamb
jameslamb marked this pull request as ready for review August 6, 2026 18:28
@jameslamb
jameslamb requested a review from a team as a code owner August 6, 2026 18:28
@jameslamb
jameslamb requested a review from msarahan August 6, 2026 18:28
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 7238e482-59ce-4c8f-b685-1305dfc75b8c

📥 Commits

Reviewing files that changed from the base of the PR and between a919638 and e5b1aa9.

📒 Files selected for processing (1)
  • python/cuopt_server/cuopt_server/utils/job_queue.py

📝 Walkthrough

Walkthrough

The workflows now generate one build-datetime value and pass it to C++, Python, wheel, and Conda builds. Build scripts and Conda recipes use datetime-based identifiers. Client version checking accepts additional version segments.

Changes

Build timestamp propagation

Layer / File(s) Summary
Workflow timestamp orchestration
.github/workflows/build.yaml, .github/workflows/pr.yaml
Both workflows run build-details, pass its build-datetime output to build jobs, and update job dependencies.
Datetime-based build inputs
ci/build_cpp.sh, ci/build_python.sh, ci/build_wheel.sh
Build scripts source rapids-datetime-string. Wheel versions include a .post datetime suffix.
Conda build string updates
conda/recipes/*/recipe.yaml
Recipes use RAPIDS_DATETIME_STRING, datetime_string, and datetime-based package build strings.

Job queue version parsing

Layer / File(s) Summary
Version component parsing
python/cuopt_server/cuopt_server/utils/job_queue.py
check_client_version accepts version strings with more than three dot-separated components.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: tmckayus

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: ensuring nightly builds produce new packages.
Description check ✅ Passed The description directly explains the nightly versioning changes and how they ensure new wheel and conda packages are uploaded.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@jameslamb
jameslamb removed the request for review from msarahan August 7, 2026 02:33
@jameslamb
jameslamb requested a review from a team as a code owner August 7, 2026 14:36
@jameslamb
jameslamb requested a review from tmckayus August 7, 2026 14:36
logging.debug(f"client_vers is {client_vers} in check")
if os.environ.get("CUOPT_CHECK_CLIENT", True) in ["True", True]:
major, minor, _ = __version__.split(".")
major, minor, *_ = __version__.split(".")

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

cuopt server tests were failing like this:

  File "/pyenv/versions/3.12.13/lib/python3.12/site-packages/cuopt_server/utils/job_queue.py", line 54, in check_client_version
    major, minor, _ = __version__.split(".")
    ^^^^^^^^^^^^^^^
ValueError: too many values to unpack (expected 3)

(build link)

This PR now adds a 4th component to nightly versions (e.g. 26.10.0a14.post260807023309).

Since this code only cares about the first 2 components (major and minor), just throwing away the others with * seems defensible.

I looked for other patterns like this in the codebase and didn't see any.

@ramakrishnap-nv
ramakrishnap-nv self-requested a review August 7, 2026 14:43
@jameslamb

Copy link
Copy Markdown
Member Author

/merge

@rapids-bot
rapids-bot Bot merged commit dbaf523 into NVIDIA:main Aug 7, 2026
93 checks passed
@jameslamb
jameslamb deleted the nightly-versions branch August 7, 2026 16:15
ramakrishnap-nv added a commit that referenced this pull request Aug 7, 2026
One conflict in the conda recipe: main renamed date_string to
datetime_string (#1661) in the same block where this branch replaced the
prefix_detection entry for libcuopt.so with the component libraries. Both
changes kept.

Build clean, ctest 125/125, check_symbols passes on all four components.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
rapids-bot Bot pushed a commit that referenced this pull request Aug 24, 2026
…sion mismatch) (#1780)

## Summary
Fixes two independent issues causing the `build-images` workflow to fail (e.g. https://github.com/NVIDIA/cuopt/actions/runs/32692816239):

- **`ci/docker/Dockerfile`**: `add-apt-repository ppa:deadsnakes/ppa` calls Launchpad's API to fetch the PPA's signing key, which is subject to transient failures (observed `HTTP 500 GPGKeyTemporarilyNotFoundError`). Wrapped it in a 5-attempt retry loop with backoff so a transient Launchpad hiccup doesn't fail the whole image build.
- **`.github/workflows/build_test_publish_images.yaml`**: `compute-cuopt-ver` computed `CUOPT_VER` with plain `rapids-generate-version`, but `ci/build_wheel.sh` has published nightly wheels with a `.post<datetime>` suffix since #1661 (`dbaf523f`). The two were out of sync, so nightly image builds pinned a version (e.g. `26.10.0a43`) that was never actually published — only `.post`-suffixed builds exist on the index — causing `pip install` to fail with "No matching distribution found". Now sets `RAPIDS_VERSION_SUFFIX=".post${RAPIDS_DATETIME_STRING}"` before calling `rapids-generate-version`, mirroring `ci/build_wheel.sh`. `RAPIDS_VERSION_SUFFIX` is a no-op on release builds (confirmed in `rapids-generate-version`'s source), so release tagging/versioning is unaffected.

## Test plan
- [ ] Trigger `build-images` workflow (nightly build) and confirm the `python-env` stage installs Python without hitting the deadsnakes PPA error
- [ ] Confirm `pip install cuopt-server-cu13==<CUOPT_VER>` resolves to a real published nightly wheel
- [ ] Confirm release-build version computation (`IMAGE_TAG_PREFIX`) is unchanged for tagged releases

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Authors:
  - Ramakrishna Prabhu (https://github.com/ramakrishnap-nv)

Approvers:
  - Trevor McKay (https://github.com/tmckayus)

URL: #1780
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.

2 participants