-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
[WIP] Add a gcc 15 CI job #44970
[WIP] Add a gcc 15 CI job #44970
Conversation
@github-acations crossbow submit test-ubuntu-24.04-cpp-gcc-15 |
@github-actions crossbow submit test-ubuntu-24.04-cpp-gcc-15 |
Revision: b3d1413 Submitted crossbow builds: ursacomputing/crossbow @ actions-a3d143f3a6
|
@github-actions crossbow submit test-ubuntu-24.04-cpp-gcc-15 |
Revision: bd4d541 Submitted crossbow builds: ursacomputing/crossbow @ actions-5fde65e116
|
@github-actions crossbow submit test-ubuntu-24.04-cpp-gcc-15 |
Revision: a3d5e63 Submitted crossbow builds: ursacomputing/crossbow @ actions-0f7b7b1b7b
|
@github-actions crossbow submit test-ubuntu-24.04-cpp-gcc-15 |
Revision: d7ee6f7 Submitted crossbow builds: ursacomputing/crossbow @ actions-f3468f1f37
|
params: | ||
env: | ||
CLANG_TOOLS: 15 | ||
GCC_VERSION: snapshot |
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.
Hmm, I'm not sure what this is supposed to mean, but FTR we would only like to test against a released gcc version.
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.
I'm trying to get a CI job up that tests what CRAN is testing at https://www.stats.ox.ac.uk/pub/bdr/gcc15/arrow.out Which, is indeed the unreleased GCC. I haven't (yet) gotten an email asking us to fix this, but we have in the past been asked to fix things that error on even unreleased compilers. (Yes, I know this sounds absurd, nevertheless it's the way CRAN works).
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.
We won't need to even run it nightly (CRAN does that for us to an extent), but having something that lets us check and confirm if our fix worked would be lovely.
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.
I think that we can have nightly CI jobs for unreleased GCC (and LLVM) to support them in a timely manner.
For example, Homebrew sometimes backports the latest LLVM support patch: Homebrew/homebrew-core@13bceca#diff-34b98d9d12bbe5d68aaf6c2fc936056651d4c8b8aeaf7612e1ba508a0077d8ffR16
@github-actions crossbow submit test-ubuntu-24.04-cpp-gcc-15 |
Revision: 8f235bd Submitted crossbow builds: ursacomputing/crossbow @ actions-0f249c30ab
|
@github-actions crossbow submit test-ubuntu-24.04-cpp-gcc-15 |
Revision: 7fa1d13 Submitted crossbow builds: ursacomputing/crossbow @ actions-172fc52ab3
|
@github-actions crossbow submit test-ubuntu-24.04-cpp-gcc-15 |
Revision: 3bd2d90 Submitted crossbow builds: ursacomputing/crossbow @ actions-6449e677aa
|
I'm giving up on this for now, hopefully CRAN won't ask us to fix this before 15 is released |
apt-get install -y -q --no-install-recommends \ | ||
if [ "${gcc_version}" == "snapshot" ]; then \ | ||
apt-get install -y -q --no-install-recommends \ | ||
gcc-${gcc_version} && \ |
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.
We need to use ;
not &&
here.
apt-get install -y -q --no-install-recommends \ | ||
gcc-${gcc_version} && \ | ||
else \ | ||
apt-get install -y -q --no-install-recommends \ | ||
g++-${gcc_version} \ | ||
gcc-${gcc_version} && \ |
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.
We need to use ;
not &&
here.
g++-${gcc_version} \ | ||
gcc-${gcc_version} && \ | ||
fi; \ |
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.
We need to use &
not ;
here.
params: | ||
env: | ||
CLANG_TOOLS: 15 | ||
GCC_VERSION: snapshot |
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.
I think that we can have nightly CI jobs for unreleased GCC (and LLVM) to support them in a timely manner.
For example, Homebrew sometimes backports the latest LLVM support patch: Homebrew/homebrew-core@13bceca#diff-34b98d9d12bbe5d68aaf6c2fc936056651d4c8b8aeaf7612e1ba508a0077d8ffR16
@@ -141,9 +141,14 @@ RUN if [ "${gcc_version}" = "" ]; then \ | |||
add-apt-repository ppa:ubuntu-toolchain-r/volatile; \ |
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.
Can we use ppa:ubuntu-toolchain-r/ppa
( https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/ppa ) instead?
It seems that this doesn't have gcc-14 nor gcc-15: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/volatile
https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/volatile has gcc-15 but it's for Ubuntu 25.04.
It may be better that we use Debian GNU/Linux experimental instead: https://packages.debian.org/search?keywords=gcc-15
If Debian GNU/Linux experimental is OK, I can work on it.
@github-actions crossbow submit test-ubuntu-24.04-cpp-gcc-15 test-ubuntu-24.04-cpp-gcc-14 |
Revision: 9f2d327 Submitted crossbow builds: ursacomputing/crossbow @ actions-e55273b9ea
|
@github-actions crossbow submit test-ubuntu-24.04-cpp-gcc-15 test-ubuntu-24.04-cpp-gcc-14 |
Revision: 695213a Submitted crossbow builds: ursacomputing/crossbow @ actions-97e70facb2
|
Thanks for the pointers here @kou
Yeah, I think that makes sense. I've tried a few more things locally with ubuntu and still haven't been able to get the gcc snapshot working. Would you mind trying with Debian experimental? |
But it doesn't work yet... We may need to improve C++20 support before this... |
I'll make an issue if this works, but checking to see if I can replicate an error I see on CRAN.