GH-49176: [C++] CRAN build fail on missing std::floating_point concept#49221
GH-49176: [C++] CRAN build fail on missing std::floating_point concept#49221jonkeane wants to merge 3 commits intoapache:mainfrom
Conversation
|
@github-actions crossbow submit test-r-macos-as-cran |
|
Revision: 5ed5de1 Submitted crossbow builds: ursacomputing/crossbow @ actions-bc3fd4369a
|
|
@github-actions crossbow submit test-r-macos-as-cran |
|
Revision: 1314042 Submitted crossbow builds: ursacomputing/crossbow @ actions-cf07311e56
|
1314042 to
dc11dec
Compare
|
cc @shashbha14 here is a fix (+ a CI job that proves it) |
| run: | | ||
| curl -fsSL https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz -o /tmp/MacOSX11.3.sdk.tar.xz | ||
| sudo tar -xf /tmp/MacOSX11.3.sdk.tar.xz -C /Library/Developer/CommandLineTools/SDKs/ | ||
| echo "Installed MacOSX11.3.sdk to /Library/Developer/CommandLineTools/SDKs/" | ||
| ls -la /Library/Developer/CommandLineTools/SDKs/ |
There was a problem hiding this comment.
Downloading this from this github site is very funky, and honestly a little sketchy. But it does actually replicate the very old macosx sdks that CRAN is building arrow with. And we can replicate it in CI
There was a problem hiding this comment.
Do you have a timeline on when we can remove this?
There was a problem hiding this comment.
The R-devel runners are already moved to a newer version of the SDK, and R4.6 should be released in April (historically that's when that happens, but technically there isn't a set deadline). I don't yet know if that will mean all of CRAN's builders will have that new SDK though. I imagine they will move forward soon given how old these are, but in that thread there is a stated desire to keep supporting macOS + x86, which will
FWIW: I am honestly moderately uncomfortable with this, even in a CI job that has restricted permissions, etc. etc. But I haven't found any other way to link against the old SDKs that CRAN is using. We could make this something that is only run manually (though there is at least one other issue that has been merged to main that the old SDKs aren't good with: #49223 / #49105
I wonder if from ^^^ you have any ideas about how else we might catch when we need a fallback?
There was a problem hiding this comment.
Not sure if this is helpful, but I did find https://developer.apple.com/xcode/cpp/#c++20 which lists when some of these features were supported (though not particularly consistently!) and once we are on xcode 14, it looks like we should be clear.
There was a problem hiding this comment.
Do we have some place we could host this privately (but still with access for our CI runners)? I'm happy to do that temporarily, but don't want it to be out and available on the open internet if possible. I would consider a private repo alongside usracomputing/crossbow, but I don't have access to that anymore. Do you know who does?
Perhaps @rok @raulcd @assignUser have ideas
There was a problem hiding this comment.
Does this need to be private? We have s3://arrow-data for things like nightly report.
We can make s new s3 bucket that's only accessible to our (self-hosted) CI runners?
There was a problem hiding this comment.
Do we have any macos self-hosted runners? If yes, then just let me know where to put it and how to point this CI at those and I'll make it so...
There was a problem hiding this comment.
Ok I have changed this to point to a (private) repo and added a limited PAT to crossbow for just that repo.
There was a problem hiding this comment.
Oops, sorry when I commented I hadn't pushed yet, but it is now.
|
Thanks for working through this and wiring up the macOS-as-CRAN CI job, this makes the situation much clearer. |
dc11dec to
08daa2e
Compare
|
@github-actions crossbow submit test-r-macos-as-cran |
|
Revision: 08daa2e Submitted crossbow builds: ursacomputing/crossbow @ actions-ca0a264fc8
|
Rationale for this change
Passing builds on CRAN
What changes are included in this PR?
A workaround for C++20 compatibility issues
Are these changes tested?
Yes, we can ship these tests in this PR or we can keep them in #49216 either is fine by me.
Are there any user-facing changes?
No
std::floating_pointconcept #49176