auto-sync: pin lit below 23 to unbreak CI - #3047
Merged
Merged
Conversation
lit 23.1.0 was published on 2026-08-25 and made lit.formats.ShTest(execute_external=True) raise instead of accepting it. lit_config/lit.cfg.py passes that argument positionally: config.test_format = lit.formats.ShTest(True) so every Auto-Sync run since has failed at config load: ValueError: execute_external=True is deprected as of LLVM-23 and the option will be removed in LLVM-24. Please move to using the internal shell (execute_external=False). If you still need to force external execution to allow time for migration, set force_execute_external=True The dependency was declared "lit >= 18.1.8" with no upper bound, and lit had not released since 18.1.8 in June 2024, so the first CI run after 23.1.0 landed picked it up. Every PR since fails identically, across unrelated architectures -- alpha-mem-disp-signext, x86-att-detail-bugs and two AArch64 branches all report the same error; the last green Auto-Sync run was 2026-08-24. Pinning restores the version CI was actually testing with: `pip install --dry-run "lit >= 18.1.8, < 23"` resolves to 18.1.8, against 23.1.0 unpinned. Nothing between 18.1.8 and 23.1.0 exists on PyPI, so the bound excludes exactly the broken release. This is the minimal unblock, not the fix. Migrating the ShTest call -- either force_execute_external=True to keep the external shell, or execute_external=False to move to lit's internal one -- wants the generated test suite run against it and belongs in its own change. Worth noting separately: MCUpdater.run_llvm_lit creates a symlink before invoking lit and does not remove it when lit raises, so the remaining tests in the process die with FileExistsError rather than the real error. Two of the four reported failures were that cascade.
Contributor
Author
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Your checklist for this pull request
Detailed description
lit 23.1.0 was published on 2026-08-25 and made
lit.formats.ShTest(execute_external=True) raise instead of accepting it. lit_config/lit.cfg.py passes that argument positionally:
so every Auto-Sync run since has failed at config load:
The dependency was declared "lit >= 18.1.8" with no upper bound, and lit had not released since 18.1.8 in June 2024, so the first CI run after 23.1.0 landed picked it up. Every PR since fails identically, across unrelated architectures -- alpha-mem-disp-signext, x86-att-detail-bugs and two AArch64 branches all report the same error; the last green Auto-Sync run was 2026-08-24.
Pinning restores the version CI was actually testing with:
pip install --dry-run "lit >= 18.1.8, < 23"resolves to 18.1.8, against 23.1.0 unpinned. Nothing between 18.1.8 and 23.1.0 exists on PyPI, so the bound excludes exactly the broken release.This is the minimal unblock, not the fix. Migrating the ShTest call -- either force_execute_external=True to keep the external shell, or execute_external=False to move to lit's internal one -- wants the generated test suite run against it and belongs in its own change.
Worth noting separately: MCUpdater.run_llvm_lit creates a symlink before invoking lit and does not remove it when lit raises, so the remaining tests in the process die with FileExistsError rather than the real error. Two of the four reported failures were that cascade.
Test plan
Closing issues