Can someone explain the magic CI is using to get lowest compiler versions?

So over in this PR I’m trying to scope down the compiler set bc the library needs c++23 – which means gcc12, gcc13, and llvm17 are out.

I thought I’d removed all the ci hooks that would be picking that up, but it’s still running stuff with gcc13. Ideas?

@ednolan just looking at your PR to update task to the latest CI, I’m starting to think that’s the road forward for this repo since that refactors the ci pretty dramtically. Right now I’m inclined to merge what’s in the PR above and make another branch to do that.

I thought I’d removed all the ci hooks that would be picking that up, but it’s still running stuff with gcc13. Ideas?

There are multiple sets of tests being run here using the old CI system: the compiler-test, which you’ve correctly edited the CI matrix for, and which is correctly running GCC 14 using the old ghcr.io/bemanproject/testingcontainers-gcc:14 image; and the gtest-test and preset-test, which both use the ubuntu-latest image provided by GitHub Actions and use that image’s default compiler, which is GCC 13. In the new CI system, all of these tests run on the new ghcr.io/bemanproject/infra-containers-gcc image with the compiler version appropriately specified.

the library needs c++23 – which means gcc12, gcc13, and llvm17 are out.

I wouldn’t automatically assume that GCC 13 is out, since it contains some support for some C++23 features-- for example, bemanproject/execution currently requires C++23 but builds with GCC 13.

ight now I’m inclined to merge what’s in the PR above and make another branch to do that.

I approved your PR and once you merge it I’m happy to handle creating the PR to modernize the CI system for this project.

I have a fork with an experimental branch to modernize the CI system, which is failing because the repository contains zero tests and the CI system doesn’t handle that properly right now:

I think that CI failing in this case is kind of the correct outcome-- there should be tests!

Here’s my pull request to modernize the CI system. I think it’s fine to merge this even though it’s failing CI-- it’ll start passing when the maintainer of the repo starts adding tests.

Concur – I saw that as well. I have another issue to implement an actual test :slight_smile:

Thanks – that makes sense.

the library needs c++23 – which means gcc12, gcc13, and llvm17 are out.

GCC 13 fails this check even you tell it to use 23 and all libraries should IMO enforce the required level in this fashion. I could narrow this to checking the range closure feature macro which is what this lib needs – but I doubt that’s supported in 13 given that cppreference suggests the support is partial.

2 Likes