| name | upgrade-llvm |
| description | Complete workflow for upgrading the prebuilt LLVM packages clice depends on — build-llvm CI, API adaptation, release-llvm pruning, changelog. Arg = target version, e.g. 22.1.4. |
Upgrade LLVM to a new version. Accepts the target version as argument (e.g., 22.1.4).
This is the complete workflow for upgrading the LLVM prebuilt packages that clice depends on. Follow each step in order. Steps that involve CI should use polling (check every ~5 minutes) to wait for completion.
Step 1: Trigger LLVM Build
Trigger the build-llvm workflow on GitHub Actions:
gh workflow run build-llvm.yml \
--field llvm_version="<VERSION>"
- Poll until all 14 matrix builds complete (~2-3 hours), note the workflow run ID
Step 2: Download Local Platform Artifact
Download the artifact matching the development machine:
gh run view <RUN_ID>
gh run download <RUN_ID> -n x86_64-unknown-linux-gnu.releasedbg.tar.xz -D .llvm-download
mkdir -p .llvm
tar -xf .llvm-download/x86_64-unknown-linux-gnu.releasedbg.tar.xz -C .llvm
Configure clice to build against it:
pixi run cmake-config RelWithDebInfo ON -- "-DLLVM_INSTALL_PATH=.llvm"
pixi run cmake-build RelWithDebInfo
Compilation will likely fail — that's what Step 3 addresses.
Step 3: Adapt API Changes
Fix LLVM API breaking changes based on compilation errors. Common categories:
- Header path changes: e.g.,
clang/Driver/Options.h → clang/Options/Options.h
- Namespace migrations: e.g.,
clang::driver::options →