be-code-style

Installation
SKILL.md

What I do

Fix C++ code formatting issues in the BE and Cloud modules using the project's clang-format configuration (v16).

When to use me

  • Before committing BE/Cloud C++ code changes
  • When CI reports clang-format failures
  • When you need to check or fix C++ code style

Procedure

Step 1: Auto-fix formatting

Run the project's formatting script, which enforces clang-format v16:

build-support/clang-format.sh

This formats all C++ files under be/src, be/test, cloud/src, cloud/test in-place, respecting .clang-format and .clang-format-ignore.

Important: Always use this script instead of invoking clang-format directly. The script checks that clang-format version 16 is installed and exits with an error if the wrong version is found. Using a different version will produce inconsistent formatting.

Step 2: Check-only (no modification)

To verify formatting without modifying files:

build-support/check-format.sh

This outputs a diff of any formatting violations and exits non-zero if there are any.

Step 3: Review and commit

After running clang-format.sh, review the changes with git diff to verify only formatting was changed, then stage and commit.

Key Configuration

File Purpose
.clang-format Main formatting rules (Google-based, 100 col, 4-space indent)
.clang-format-ignore Files excluded from formatting (third-party, generated)
build-support/run_clang_format.py Python wrapper for parallel execution

Excluded Directories

The following are excluded from formatting (see .clang-format-ignore):

  • be/src/apache-orc/*, be/src/clucene/*, be/src/gutil/*
  • be/src/glibc-compatibility/*
  • Specific third-party vendored files (mustache, sse2neon, utf8_check)
  • cloud/src/common/defer.h

Troubleshooting

Problem Solution
clang-format not found Install clang-format v16 or set CLANG_FORMAT_BINARY env var
version is not 16 Install clang-format v16; on macOS: brew install llvm@16
Files not being formatted Check .clang-format-ignore for exclusions
Related skills
Installs
2
Repository
apache/doris
GitHub Stars
15.3K
First Seen
10 days ago