Skip to content

Commit aa6479f

Browse files
Merge pull request #30012 from redpanda-data/stephan/clang-22-default
bazel: Switch over to clang-22
2 parents b4b2ecb + ef3fac5 commit aa6479f

372 files changed

Lines changed: 3411 additions & 3643 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.bazelrc

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,6 @@ common --@toolchains_llvm//toolchain/config:compiler-rt=False
66
build --linkopt --unwindlib=libgcc
77
build --linkopt -stdlib=libc++
88

9-
common:clang-21 --extra_toolchains=@next_llvm_toolchain//:all
10-
11-
# llvm 22.1.0
12-
common:clang-22 --extra_toolchains=@clang-22_llvm_toolchain//:all
13-
149
# Use Bash instead of system python for finding the hermetic interpreter
1510
# within Bazel due to the `python3` binary not being present on CI
1611
# (it has `python` version 3 but Bazel uses the `python3` executable).
@@ -31,13 +26,6 @@ build:system-clang --extra_toolchains=@local_config_cc_toolchains//:all
3126
build:system-clang --action_env=BAZEL_COMPILER=clang
3227
build:system-clang --cxxopt=-std=c++23 --host_cxxopt=-std=c++23
3328
build:system-clang --linkopt -fuse-ld=lld
34-
# use a compiler name that doesn't symlink to ccache
35-
build:system-clang-19 --config=system-clang
36-
build:system-clang-19 --action_env=CC=clang-19 --host_action_env=CC=clang-19
37-
build:system-clang-19 --action_env=CXX=clang++-19 --host_action_env=CXX=clang++-19
38-
build:system-clang-20 --config=system-clang
39-
build:system-clang-20 --action_env=CC=clang-20 --host_action_env=CC=clang-20
40-
build:system-clang-20 --action_env=CXX=clang++-20 --host_action_env=CXX=clang++-20
4129

4230
# Use new proto toolchain resolution
4331
build --incompatible_enable_proto_toolchain_resolution

.clang-tidy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
---
22
Checks: 'redpanda-*,clang-diagnostic-*,clang-analyzer-*,cert-*,cppcoreguidelines-*,hicpp-*,modernize-*,performance-*,misc-*,bugprone-*,-modernize-use-trailing-return-type,-modernize-use-nodiscard,-hicpp-named-parameter,-misc-include-cleaner,-clang-analyzer-optin.core.EnumCastOutOfRange,-cppcoreguidelines-avoid-reference-coroutine-parameters'
33
WarningsAsErrors: 'redpanda-*,bugprone-use-after-move,bugprone-assert-side-effect,bugprone-assignment-in-if-condition,bugprone-dangling-handle,bugprone-sizeof-container,bugprone-stringview-nullptr,bugprone-unused-return-value,bugprone-suspicious-string-compare,misc-unused-using-decls,misc-unused-alias-decls,modernize-redundant-void-arg,performance-implicit-conversion-in-loop,performance-trivially-destructible,performance-no-automatic-move,performance-move-const-arg,bugprone-unused-local-non-trivial-variable'
4-
HeaderFilterRegex: '^(?!external/.*).*'
4+
HeaderFilterRegex: '.*'
5+
ExcludeHeaderFilterRegex: '(^|/)external/|\.json\.hh$'
56
FormatStyle: file
67
CheckOptions:
78
- key: cert-dcl16-c.NewSuffixes

.git-blame-ignore-revs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,7 @@ b079582532df982b81190a34fd0b1f9621ba8213
2121
e3c23b96330a88fba88b6f1bd4f1fa68086e53fb
2222

2323
# ruff check . --select F401 --fix
24-
77f53ca22fb2ed2fe6cfba40ca6923928e8d8988
24+
77f53ca22fb2ed2fe6cfba40ca6923928e8d8988
25+
26+
# upgraded to clang-format 22
27+
efb217101ea58381443956ce0e9da3678857135c

MODULE.bazel

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -157,32 +157,6 @@ COMPILE_FLAGS = {
157157

158158
COMPILERS = {
159159
"current": {
160-
"tars": {
161-
"aarch64": {
162-
"build_date": "2025-11-14",
163-
"sha": "f51afb38ca39cc93c6ed065a0c463d3587b975204d6028a63de33153caf3e104",
164-
},
165-
"x86_64": {
166-
"build_date": "2025-11-14",
167-
"sha": "616e3f50b1f03b61ec712f4f28fa67668d60ae3edccea8508065a3f49dbbb24a",
168-
},
169-
},
170-
"version": "20.1.8",
171-
},
172-
"next": {
173-
"tars": {
174-
"aarch64": {
175-
"build_date": "2025-11-25",
176-
"sha": "37257804087a26b0ede7c0349d3f44db7b7439e551fc6c753f7934ead654c1b8",
177-
},
178-
"x86_64": {
179-
"build_date": "2025-11-25",
180-
"sha": "b3aa9cb72c2e46bd1cc3f17f3772b37a424e54f796253961382163eab2f4a9c0",
181-
},
182-
},
183-
"version": "21.1.6",
184-
},
185-
"clang-22": {
186160
"tars": {
187161
"aarch64": {
188162
"build_date": "2026-03-02",

MODULE.bazel.lock

Lines changed: 2 additions & 178 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bazel/clang_tidy/clang_tidy.bzl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ def deps_flags(deps):
192192
])
193193

194194
flags = []
195+
195196
for compilation_context in compilation_contexts:
196197
# add defines
197198
for define in compilation_context.defines.to_list():
@@ -266,8 +267,7 @@ def _clang_tidy_aspect_impl(target, ctx):
266267
c_flags = toolchain_flags(ctx, ACTION_NAMES.c_compile) + rule_flags + ["-xc"]
267268
cxx_flags = toolchain_flags(ctx, ACTION_NAMES.cpp_compile) + rule_flags + ["-xc++"]
268269

269-
include_headers = "no-clang-tidy-headers" not in ctx.rule.attr.tags
270-
srcs = rule_sources(ctx.rule.attr, include_headers)
270+
srcs = rule_sources(ctx.rule.attr, False)
271271

272272
outputs = [
273273
_run_tidy(

bazel/clang_tidy/clang_tidy.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ def main():
3030
yaml.safe_dump(config, final_config_file.file)
3131

3232
try:
33+
extra_args = [
34+
"--extra-arg=-Wno-error",
35+
"--extra-arg=-Wno-macro-redefined",
36+
]
37+
3338
verify_command = [
3439
clang_tidy_bin,
3540
f"--config-file={final_config_file.name}",
@@ -39,11 +44,15 @@ def main():
3944
]
4045
_ = subprocess.run(verify_command, check=True, capture_output=True, text=True)
4146

42-
run_command = [
43-
clang_tidy_bin,
44-
f"--config-file={final_config_file.name}",
45-
f"--load={plugins_lib}",
46-
] + remaining_args
47+
run_command = (
48+
[
49+
clang_tidy_bin,
50+
f"--config-file={final_config_file.name}",
51+
f"--load={plugins_lib}",
52+
]
53+
+ extra_args
54+
+ remaining_args
55+
)
4756

4857
_ = subprocess.run(run_command, check=True, capture_output=True, text=True)
4958

bazel/clang_tidy/plugins/redpanda_tidy_module.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
#include "redpanda_noop_check.h"
1212

1313
#include <clang-tidy/ClangTidyModule.h>
14-
#include <clang-tidy/ClangTidyModuleRegistry.h>
1514

1615
namespace clang::tidy {
1716

src/transform-sdk/cpp/examples/schema_registry.cc

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,12 @@ constexpr std::string_view schema_def = R"({
4141

4242
int main() {
4343
sr_client = sr::new_client();
44-
if (auto res = sr_client->create_schema(
45-
"avro-value",
46-
sr::schema::new_avro(
47-
std::string{schema_def.data(), schema_def.size()}));
48-
!res.has_value()) {
44+
if (
45+
auto res = sr_client->create_schema(
46+
"avro-value",
47+
sr::schema::new_avro(
48+
std::string{schema_def.data(), schema_def.size()}));
49+
!res.has_value()) {
4950
return 0;
5051
}
5152
redpanda::on_record_written(do_transform);
@@ -67,8 +68,9 @@ do_transform(redpanda::write_event event, redpanda::record_writer* writer) {
6768
return id_e.error();
6869
}
6970
std::optional<sr::schema> raw_schema;
70-
if (auto rs_e = sr_client->lookup_schema_by_id(id.value());
71-
rs_e.has_value()) {
71+
if (
72+
auto rs_e = sr_client->lookup_schema_by_id(id.value());
73+
rs_e.has_value()) {
7274
raw_schema.emplace(std::move(rs_e).value());
7375
} else {
7476
return rs_e.error();
@@ -77,17 +79,19 @@ do_transform(redpanda::write_event event, redpanda::record_writer* writer) {
7779
// auto schema = avro::schema::parse_str(raw_schema.value().schema());
7880

7981
std::optional<sr::subject_schema> latest_schema;
80-
if (auto latest_e = sr_client->lookup_latest_schema("avro-value");
81-
latest_e.has_value()) {
82+
if (
83+
auto latest_e = sr_client->lookup_latest_schema("avro-value");
84+
latest_e.has_value()) {
8285
latest_schema.emplace(std::move(latest_e).value());
8386
} else {
8487
return latest_e.error();
8588
}
8689

8790
std::optional<sr::subject_schema> latest_direct;
88-
if (auto latest_e = sr_client->lookup_schema_by_version(
89-
"avro-value", latest_schema->version);
90-
latest_e.has_value()) {
91+
if (
92+
auto latest_e = sr_client->lookup_schema_by_version(
93+
"avro-value", latest_schema->version);
94+
latest_e.has_value()) {
9195
latest_direct.emplace(std::move(latest_e).value());
9296
} else {
9397
return latest_e.error();

0 commit comments

Comments
 (0)