ci: Bump channel to nixos-26.05 - #296
Conversation
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ReviewsSee the guideline and AI policy for information on the review process.
If your review is incorrectly listed, please copy-paste ConflictsNo conflicts as of last run. |
|
Some bumps:
I wonder if it makes sense to have an llvm-olddeps check here as well (mostly for capn 1.1), to check the full range, but this can be done in a follow-up. Looks loke olddeps fails anyway ... |
|
I am at a loss on reproducing and fixing the cmake 3.12 compile failure. Also, I don't see the point on wasting more time with ancient cmake versions that are only used by a single person, when #175 can be done, so I've included that here, to get the CI green. |
|
Ok, the failure seems to be: I used So I guess the alternative would be to pin olddeps to an older snapshot/channel, but this just seems tedious for little benefit. |
|
Thanks for the PR. The main change fa2c56e looks good but as discussed previously I don't think 34f48d1 is a good change because it is changing the cmake policy version and minimum version at the same time. These are two different concepts that have different effects and should not be coupled together, especially without even mentioning the policy changes in the commit message or PR description. If you believe it's important to trigger a fatal error that says cmake 3.22 is required (even though it is not required), I think you should do that without changing the policy version. Or you might consider just showing a warning that versions <= 3.22 are not supported. Or you might consider dropping the cmake change from this PR and leaving it for a dedicated PR. I also don't think the |
I think the discussion about CMake policies would benefit from starting with a few basic questions:
All previous changes in this repository, including 06e1045, 6902bfd, and 729ff16, do not provide details in that regard. |
|
I don't think there is a policy in 3.12->3.22 that affects libmul. However, if you want me to push something like this to #175, then I am happy to do that. Then, I can open a follow-up to remove the line again. |
|
Not sure how to proceed here. I am happy to work on alternatives, but there is #175 with two acks, but it is not getting merged. I can also try an alternative here, as suggested two months ago: diff --git a/ci/configs/olddeps.bash b/ci/configs/olddeps.bash
index 1a363b1..9cb9b4a 100644
--- a/ci/configs/olddeps.bash
+++ b/ci/configs/olddeps.bash
@@ -2,4 +2,7 @@ CI_DESC="CI job using old Cap'n Proto and cmake versions"
CI_DIR=build-olddeps
+# Keep olddeps on the previous Nixpkgs channel while the other CI jobs use the
+# default channel, since compiling the old CMake requires an older GCC.
+NIXPKGS_CHANNEL=nixos-25.05but there wasn't any feedback since. |
Pretty sure your patch will fail with llvm 22 on the olddeps ci task, as that has not llvm 22. An alternative could be to select the llvm version like this: diff --git a/shell.nix b/shell.nix
index 1a4614e..0db3b7a 100644
--- a/shell.nix
+++ b/shell.nix
@@ -10,7 +10,9 @@
let
lib = pkgs.lib;
- llvmBase = crossPkgs.llvmPackages_21;
+ llvmBase = if lib.versionAtLeast (lib.versions.majorMinor crossPkgs.lib.version) "26.05"
+ then crossPkgs.llvmPackages_22
+ else crossPkgs.llvmPackages_21;
llvm = llvmBase // lib.optionalAttrs (libcxxSanitizers != null) {
libcxx = llvmBase.libcxx.override {
devExtraCmakeFlags = [ "-DLLVM_USE_SANITIZER=${libcxxSanitizers}" ];However, I don't think it matters? There is an iwyu task with GCC, which works fine, and the libcxx headers from clang 21 work fine with iwyu 24.0 and iwyu 26.0, so I don't think it matters much for this project. I think I'll leave this as-is for now, but I am happy to push my diff, if reviewers insist. |
ryanofsky
left a comment
There was a problem hiding this comment.
Code review ACK 7402aff. Thanks for the update! It is good to decouple this from #175.
I also agree it would not be good to include 53dd2f2 here in it's current form, because it seems to be hardcoding a version number without any code comment explaining how the version number is chosen or why it is needed or what it needs to match. LLM agrees with hebasto there is a bug here and suggests the following change instead: 1557943, but I haven't looked closely at it and need to understand the problem it fixes.
re: #296 (comment)
Not sure how to proceed here. I am happy to work on alternatives, but there is #175 with two acks, but it is not getting merged.
My bad! I've been focusing on new feature/bugfix/test coverage PRs, not the old build/ci ones and haven't revisited that in a while. I think the new PRs are more important and there's less disagreement about them so there's more progress that can be made with them in the short term.
For #175, I'm opposed to that change because:
- I don't know what problem it solves
- I am interested in maintaining compatibility with older versions not dropping it
- The
cmake_minimum_requiredis misleading about compatibility requirements - It bundles changes together that should be unrelated and orthogonal: changing which cmake policies are enabled & changing the minimum version of cmake required to avoid a fatal error about incompatibility.
I don't think I'm saying anything new here. My suggestion for making progress on #175 if it is important, is to split it up into more focused prs with individual goals, and to avoid misleading error messages about incompatibility in favor of more accurate messages and comments. I think it can also be kept open as it might begin to make more sense later if compatibility requirements change.
Ok, that is a bit involved, but using the llvm from the upstream iwyu package in the nixpkgs config appears fine as well. Though, my preference would be to leave this as-is for now, given that any iwyu issues are unrelated and don't matter too much (recall that the iwyu ci config passes on all three proposed alternatives, and current master). Maybe a separate pull can deal with iwyu? |
|
Yes definitely, I dont think either of hebsto or LLM commits belong in this PR. Am planning to merge this PR and other pending ones in a batch soon. |
|
Followup on IWYU:
|
Mostly to get more recent iwyu coverage (ref #294 (comment))