-
Notifications
You must be signed in to change notification settings - Fork 915
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] Conda recipe improvements #1210
Comments
@jakirkham can a subpackage depend on another subpackage? I.E. can the |
Yes, this should be possible. Here's an example. Were there specific issues that you encountered? Is there a recipe I can look at? |
Have updated the |
I'd be curious what the status is here. Also would be willing to help. In particular I think it would be interesting to try and get Conda compilers (and the NVCC wrapper compiler) working on one RAPIDS package (maybe cuDF?) and then see how things go. |
Moving this old bug to 0.14 and assigning @jakirkham to decide if or how to proceed. |
Sounds good. Thanks Mark! 😄 |
@jakirkham any idea where we stand on this issue now? At least a few of the above issues no longer seem entirely relevant (e.g. using pip) while others have been addressed (the questions around compilers). |
Certainly things have gotten better, but it looks like there is still more to do here. It will probably require someone to go through this in detail, which I have not yet done, but here are some cursory observations. From a quick look, it doesn't look like adding Investigating the usage of variants in a build matrix is still an interesting piece of work, but may involve other changes around handling global pinnings. This may require scoping. So things have definitely improved (particularly on the compiler front), but there is still some room for improvement. Much of this is lower hanging fruit (especially given other changes that have occurred). |
Is the split not what was done in #10326? I'm happy to help work through some of these, given all the ongoing build system work I think we'd benefit a lot from cleaning up some of these issues as we go. |
That's a different kind of splitting. The splitting here is suggesting folding Python & C++ into the same recipe Yep that's the approach we have taken so far and that seems reasonable On the variant piece it may be productive to have a meeting with OPS. There has been some discussion about revisiting how pinnings are handled and this fits in with that work |
FWIW, I raised an issue (#11119) about my struggles with using multi output recipes and folding cudf and libcudf into the same recipe will just further exacerbate that. If the conda recipes are treated purely as an implementation detail and user consumption of them is explicitly out of scope, folding them all into a single recipe is somewhat reasonable, though it does limit the ability to parallelize the build process in building conda packages. |
Thanks for surfacing that. Hadn't seen that issue. Agree that is something we want to take into account. Preferably before doing more splitting (since we will want to extend that to any added outputs) |
I just went through the above checklist and the bulk of the items that were previously unchecked were either completed or obsoleted by more recent changes (including the broad shift towards scikit-build/scikit-build-core, the requirement to invoke pip rather than setup.py, the various conda recipe improvements during the CUDA 12 work, etc). The remaining unchecked items are no longer clearly improvements for a variety of reasons. I think we can safely close this issue for now and consider any future improvements in light of the current state of the recipes. Also, we will want to coordinate such work across RAPIDS so that it's not specific to just cudf. |
Am documenting some observations and suggestions after working a little bit with the recipes in RAPIDS. There are some things that could be improved and simplified by leveraging features from conda-build 3. Also there are some build practices from
defaults
andconda-forge
that would be good to adopt to avoid some common issues. My hope is this makes things easier to maintain in the long run. May update this list as things come up. Thoughts on this list would be welcome.host
for linked dependencies andbuild
for CLI build tools (e.g. Splitbuild
andhost
custrings#155 )python
instead ofx.x
.pip
andsetuptools
to be explicitly included (setadd_pip_as_python_dependency
toFalse
)setuptools
orpip
during buildpip
( Use pip conda-forge/conda-forge.github.io#518 )setuptools
inrun
unlesspkg_resources
is useddefaults
nvcc
( Shim package to interact with an **existing** NVCC install conda-forge/staged-recipes#8229 )cudf
)run_exports
for libraries that need to be pinned (e.g.libcudf
)cudatoolkit
librariesNote: I think these can be saved until things cool down a bit.
The text was updated successfully, but these errors were encountered: