revert(ci): undo "force clang for Linux x86_64 native builds" (#1059)#1061
Conversation
Reverts 1e292ef. The premise of #1059 was that gcc-built binaries silently dropped HCL files where clang-built ones did not — making the v3.10.0 pre-publish gate fail. Closer empirical verification (running both compilers against the same source in identical Docker containers, counting "Native orchestrator dropped" warnings explicitly) showed that both compilers produce binaries that drop .tf files. The earlier "clang doesn't drop" reading was an output-filtering artifact in my local benchmark grep. The real cause is a tree-sitter ABI version mismatch — `tree-sitter-hcl` 1.1.0 ships ABI 15, runtime is pinned at ABI 14. `Parser::set_language` rejects the grammar at runtime regardless of which compiler built the binary. The proper fix is to bump `tree-sitter` to 0.25; that is being delivered separately. Reverting the clang change keeps Linux x86_64 GNU users on the runner-default `cc` (gcc), matching every release prior to v3.10.0 and avoiding compiler-specific dead weight in our CI config that fixes nothing. Refs #1054
|
Claude finished @carlos-alm's task —— View job Reviewing PR: revert(ci): undo "force clang for Linux x86_64 native builds"Todo List
Root Cause AnalysisProblem Being Solved: Removing unnecessary compiler forcing that was added to address HCL file dropping issue, which has been determined to be caused by tree-sitter ABI mismatch rather than compiler choice. Why This Approach: The PR author discovered through empirical verification that both gcc and clang produce binaries that drop .tf files due to tree-sitter ABI version mismatch (tree-sitter-hcl 1.1.0 ships ABI 15, runtime pinned at ABI 14). The original "fix" in #1059 was based on a misdiagnosis. Risk Assessment: ✅ LOW RISK - This is a clean revert that removes configuration changes that provided no actual benefit. The change returns Linux builds to using the runner's default Backlog Compliance
Technical AnalysisRevert Scope Verification ✅The revert cleanly removes 42 lines across 3 workflow files:
This matches exactly the inverse of commit 1e292ef from PR #1059. Root Cause Evidence ✅The PR description provides credible evidence that the original premise was wrong:
Current state confirms ABI mismatch: Configuration Change Assessment ✅This is the good kind of configuration change - removing unnecessary complexity rather than adding it. The revert:
Test Plan Evaluation ✅The test plan is minimal but appropriate:
This is sufficient for a clean revert that returns to well-established defaults. Minor Observations
Final Recommendation
The proper fix for the HCL parsing issue (tree-sitter version bump) should be handled separately in PR #1060 as mentioned. |
Greptile SummaryThis is a clean mechanical revert of #1059, removing the Confidence Score: 5/5Safe to merge — purely removes incorrect CI configuration with no functional impact on build correctness. All three changes are exact inverses of #1059 steps with no logic differences; the root-cause is documented and addressed in a companion PR (#1060). No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[CI / build-native / publish trigger] --> B{Linux x86_64 runner?}
B -- "Before revert (#1059)" --> C[Set CC=clang / CXX=clang++]
C --> D[Rust build with clang]
B -- "After revert (this PR)" --> D2[Rust build with runner-default cc/gcc]
D --> E[Binary produced]
D2 --> E
E --> F{HCL .tf extraction}
F -- "Real fix: tree-sitter 0.25 (#1060) ABI 14->15 resolved" --> G[.tf files parsed correctly]
F -- "ABI mismatch unresolved" --> H[.tf files silently dropped]
Reviews (2): Last reviewed commit: "fix: resolve merge conflicts with main" | Re-trigger Greptile |
Impact: 3 functions changed, 0 affected
Summary
Reverts #1059 (1e292ef). The premise was that switching CC to clang prevented the HCL .tf drops in #1054. After tighter verification it's clear that both gcc and clang produce binaries that drop .tf files — the earlier observation that "clang doesn't drop" was an output-filtering artifact in my local benchmark grep, not a real behavior difference.
What's actually going on
The real cause is a tree-sitter ABI mismatch (`tree-sitter-hcl` 1.1.0 ships ABI 15; runtime is pinned at `tree-sitter = "0.24"` / ABI 14). `Parser::set_language` rejects the grammar at runtime regardless of compiler. The proper fix bumps `tree-sitter` to 0.25 — that's #1060.
Why revert instead of letting it sit
#1059 isn't actively harmful — clang vs gcc produces functionally equivalent binaries here — but it adds CI configuration that solves nothing real and that future readers will be misled by. Better to keep the workflow clean and the diff history honest.
Test plan
Refs #1054