-
-
Notifications
You must be signed in to change notification settings - Fork 503
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
move to alma9 by default; enable choice through DEFAULT_LINUX_VERSION #6626
Conversation
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 ( |
For the reasoning behind c7f5973, see discussion here. The preceding commit fails if a feedstock would override c7f5973 would thus be necessary to make the docker image (sufficiently) independent from |
respect convenience setting DEFAULT_LINUX_VERSION to avoid feedstocks having to override the monster-zip just to change c_stdlib_version & image.
this allows separate overrides for the c_stdlib_version and the image (the latter can easily be set using `os_version` in `conda-forge.yml`)
@jakirkham, you mentioned in the core call just now that all the CUDA feedstocks already set os_version:
linux_64: cos7
linux_aarch64: cos7
linux_ppc64le: cos7 Following conda-forge/docker-images#291 (using the consolidated names that allow choosing the distro version), this would eventually have to move to os_version:
linux_64: cos7
linux_aarch64: ubi8
linux_ppc64le: ubi8 or just os_version:
linux_64: cos7 because we don't/won't support distro overrides for aarch/ppc. In either case, once we've confirmed that we got |
@jakirkham do you have a list of cuda-related feedstocks that I can double-check? |
Gentle ping @jakirkham |
Thanks Axel! 🙏 Please don't feel obliged to track or make these changes. This is something NVIDIA plans to pick up. In fact folks are eager to adopt these changes once available There is not one comprehensive list as there are the CUDA Toolkit (CTK) packages, CUDA Math libraries, CUDA DL libraries, etc. Plus more packages are being added That said, for the CUDA Toolkit packages we handled this work as part of issue ( conda-forge/cuda-feedstock#26 ), this has a list of CTK feedstocks that had this change included Other NVIDIA feedstocks have been encouraged to follow the same pattern |
I agree that this makes sense, but in the last core call the ask had been to commit |
The issue link above hopefully answers that question. Admittedly not comprehensively, but that is pretty close Will look for other cases we may have missed and file issues |
Thank you! 🙏 |
Found a few stragglers. Have put together a list in this comment: conda-forge/cuda-feedstock#28 (comment) Will start working through those. Also will update the list if we find more |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the one that we're going with instead of #6548, right?
My understanding is that the following is the expected behavior because it is what I observed when using the PR to render a feedstock.
os_version | container x86 | container aarch64 | container ppc64le |
---|---|---|---|
undefined | linux-anvil-alma-x86_64:9 | linux-anvil-alma-aarch64:9 | linux-anvil-alma-ppc64le:9 |
alma9 | linux-anvil-alma-x86_64:9 | linux-anvil-alma-aarch64:9 | linux-anvil-alma-ppc64le:9 |
alma8 | linux-anvil-alma-x86_64:8 | linux-anvil-alma-aarch64:8 | linux-anvil-alma-ppc64le:8 |
wrong | linux-anvil-comp7 | linux-anvil-comp7 | linux-anvil-comp7 |
alma7 | linux-anvil-comp7 | linux-anvil-comp7 | linux-anvil-comp7 |
cos7 | linux-anvil-cos7-x86_64 | linux-anvil-aarch64 | linux-anvil-ppc64le |
Except for CUDA renders where os_version
that is not one of the valid ones (alma9, alma9, cos7) breaks the zipping of the keys, but this is fine. It's probably a feature that using an invalid os_version doesn't render.
CUDA 12 renders follow the non-cuda builds exactly.
CUDA 11 has only one container option for each architecture.
os_version | container x86 | container aarch64 | container ppc64le |
---|---|---|---|
undefined | linux-anvil-cuda:11.8 | linux-anvil-aarch64-cuda:11.8 | linux-anvil-ppc64le-cuda:11.8 |
alma9 | linux-anvil-cuda:11.8 | linux-anvil-aarch64-cuda:11.8 | linux-anvil-ppc64le-cuda:11.8 |
alma8 | linux-anvil-cuda:11.8 | linux-anvil-aarch64-cuda:11.8 | linux-anvil-ppc64le-cuda:11.8 |
cos7 | linux-anvil-cuda:11.8 | linux-anvil-aarch64-cuda:11.8 | linux-anvil-ppc64le-cuda:11.8 |
I expect that os_version
is completely decoupled from c_stdlib_version
, so they should not affect each other.
Your list is correct as of this PR, but I think it'd actually be better to pull in the changes from conda-forge/docker-images#293 / #6687 into this PR. I'll update conda-forge/docker-images#291 to finish the rest of the necessary changes. I have thought about the fact that only a single value of
For wrong values of # intentional breakage for unsupported values of DEFAULT_LINUX_VERSION
- quay.io/condaforge/this_image_does_not_exist # [linux and os.environ.get("DEFAULT_LINUX_VERSION", "alma9") not in ("cos7", "ubi8", "alma8", "alma9")]
- quay.io/condaforge/this_image_does_not_exist # [linux and os.environ.get("DEFAULT_LINUX_VERSION", "alma9") not in ("cos7", "ubi8", "alma8", "alma9")] but arguably, failed renders are hard to debug, so IMO this should rather be a linter rule in smithy |
OK, conda-forge/docker-images#291 was merged and I've tested it on the faiss feedstock with several variations of In other words, this PR should be ready. :) I'll write up the announcement that John asked for shortly. |
I started implementing this in smithy, but ran into conda-forge/conda-smithy#2152, which we should very likely solve first. |
I have a smithy PR for a linter rule now: conda-forge/conda-smithy#2155 |
Thanks Axel! 🙏 Opened a couple of test PRs Was able to re-render ok Though did see some issues pulling the Docker images. Were the images from PR ( conda-forge/docker-images#291 ) pushed ok? Or are there some naming changes that still need to be picked up here? |
Thanks for testing! 🙏
I had double-checked the CI runs there, and aside from being green, the deploy step looks normal too. Not sure what could be causing the
you're seeing. |
Default setting for new images on quay.io is private. Made them public just now. |
Ah right 😅 Thanks Isuru! 🙏 Remembered there was something on Quay.io that needed an extra tweak. Had forgotten exactly what it was Restarted the failed CI runs in those test PRs |
Looks like both of those builds passed! 🥳 Also looks like the recent work on changing the |
@conda-forge/core, this should be ready to go and I'd welcome reviews. 🙏 It's been tested both by me and by @jakirkham, and covers what we discussed in the core call (c.f. #6283 & conda-forge/docker-images#293) To accompany this, I also have an announcement (as suggested by John) and a doc update ready. A linter rule for the distrotags in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking forward to these improvements! Thanks again Axel for working with us on them 😄
Alternative to #6548
Closes #6283
Closes #6629
We can do this because all the required infrastructure is now in place (c.f. conda-forge/conda-forge.github.io#1941); the last missing piece was to verify how entries of
yum_requirements.txt
match between centos7 & alma8 - the following overview shows that there's a high degree of compatibility (and many things can be replaced by our own build anyway). The handful of differences can be fixed on the affected feedstocks.Should wait for:
cdt_name=conda
for all distros cdt-builds#71linux-anvil-cuda
on x64 with RHEL 8, consolidate image names, distinguish distro baseline in tag docker-images#291