ENH: Migrate recipe to v1 format for rattler-build#183
Conversation
|
Hi! This is the friendly automated conda-forge-linting service. I wanted to let you know that I linted all conda-recipes in your PR ( Here's what I've got... For recipe/recipe.yaml:
For recipe/recipe.yaml:
For recipe/meta.yaml:
For recipe/meta.yaml:
This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/26324884189. Examine the logs at this URL for more detail. |
735d83e to
b636af7
Compare
|
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( I do have some suggestions for making it better though... For recipe/recipe.yaml:
This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/26465921710. Examine the logs at this URL for more detail. |
b636af7 to
0196f38
Compare
|
@conda-forge-admin, please rerender |
|
Failures are because I only updated recipe itself; still need to update .github workflow configs to use rattler-build |
|
Hi! This is the friendly automated conda-forge-webservice. I tried to rerender for you but ran into some issues. Please check the output logs of the GitHub Actions workflow below for more details. You can also ping The following suggestions might help debug any issues:
This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/26348069183. Examine the logs at this URL for more detail. |
|
@conda-forge-admin, please rerender |
|
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
|
It appears that specifically for cuda-python, a python:
- 3.10.* *_cpython
- 3.11.* *_cpython
- 3.12.* *_cpython
- 3.13.* *_cp313
- 3.14.* *_cp314
- 3.14.* *_cp314tThat would mean that now all packages would be created in a single When it was initially added, it was used as a selector and although the recipes I've seen have the 'touch is_freethreading' logic, the recipes were not for no-arch packages. Additionally, they didn't have a test-time dependency on `python ${{ python_min }}.*, which is why they didn't experience the problem. I got the build to work locally, so I expect that CI will give us all green builds soon enough. Also made sure that the change in the |
|
@kkraus14 all tests are passing now :) Feel free to use the 'auto-merge' label if you have the impression that it'll be a bit of time before CTK 13.3 trickles down to conda |
|
I checked conda-forge and saw the 12.9 and 13.3 packages were there, so I figured the dust has settled. I merged latest changes with mine, resolved conflicts, ran conda smithy locally, and pushed it back so everything should be good to for merging. I imagine it'd be nice to also migrate the recipe from the 12.9 branch to using rattler-build? |
rwgk
left a comment
There was a problem hiding this comment.
Human-generated part:
I think this is great and we should merge it. Caveat: see my prompt below.
Currently being in charge of the cuda-python 13.3 release series, this is my game plan:
- Merge this PR now, so that we can try it in the next patch release.
- Worst case: we roll it back and try again later. Risk: an hour or so delay in getting the release out.
I think that's an acceptable risk to take.
If things to well here, I'd be in favor of backporting to the 12.9 branch.
AI-generated part:
PR 183 Review
Prompt (Cursor GPT-5.5 1M Extra High)
Could you please do a full review of PR 183?
I'm totally not familiar with conda feedstocks. The PR looks great to me. I'm understanding it's a modernization, does that sound right?
Response
No blocking findings. I’d be comfortable treating PR 183 as merge-ready from this review.
Yes, “modernization” is the right read. It migrates the feedstock from legacy recipe/meta.yaml to v1 recipe/recipe.yaml, switches CI/build plumbing to rattler-build, adds pixi tooling, and rerenders the feedstock. It does not bump the upstream CUDA Python version; it bumps the conda build number because the packaging changed.
I checked the risky feedstock bits: split outputs, cuda-python noarch handling, cuda-bindings host/run pins, freethreading/3.14t variants, moved numpy-dependent tests, Windows CUDA_HOME/LIB handling, and prior review comments. The changes look intentional and consistent with the green CI.
Validation I saw:
- PR is clean/mergeable.
- All PR checks pass, including conda-forge linter and full Linux/Windows matrix.
- Local
pixi run -e smithy lintreportsrecipe is in fine form. git diff --check origin/main...HEADreports no whitespace errors.
Residual risk is mainly that this changes the feedstock build toolchain itself, so I would lean on the full CI matrix rather than local intuition. Since that matrix is green, I don’t see a reason to hold it.
Thanks! Glad that Cursor agrees. Lots of the boilerplate changes in this PR came from conda smithy responding to |
|
Goes without saying @kkraus14 provided lots of helpful feedback as well :) |
|
A patch release is coming soon. Merging now, JIC the system here needs a little time to catch up. |
|
@rwgk Thanks! 🙇🏽♂️ |
|
@leofang its alright! I know you all have been busy with releases. I won't be able to work on adding any changes until maybe tomorrow but I did my best addressing your comments from my small iPhone screen 😎 |
|
Thanks, Andres, no worries! Enjoy your weekend, we'll address the open items in #196 at once. |
Checklist
0(if the version changed)conda-smithy(Use the phrase@conda-forge-admin, please rerenderin a comment in this PR for automated rerendering)Resolves #122
Allows for building cuda-python-feedstock using very impressive, performant
rattler-build. Things to note:scriptsection. Because of this, tests that import a module that depends onnumpywas moved to the script section. More info can be found heremeta.yamlare no longer available outside of the actual build scripts. To work around this, I moved the logic that setsCUDA_HOMEandLIBfrommeta.yamltobuild_output.shandbuild_output.bat.conda-forge.ymlis optional, but I figured it'd be welcome since I see that it's used incuda-pythonright nowis_freethreadingaren't actually used in recipe.yaml, conda-smithy will ignore it outright when generating config files in.ci_support. I only realized this when I saw that numpy does something like this in their feedstock.