You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2022/10/24 19:54:56 UTC
[pulsar-client-cpp] branch main updated: Stick clang-format version to 11 and add back docker-format.sh (#45)
This is an automated email from the ASF dual-hosted git repository.
mmerli pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-client-cpp.git
The following commit(s) were added to refs/heads/main by this push:
new ecc1995 Stick clang-format version to 11 and add back docker-format.sh (#45)
ecc1995 is described below
commit ecc1995cdc26fa79f5a33f0fe9a17d4ec4657e22
Author: Yunze Xu <xy...@163.com>
AuthorDate: Tue Oct 25 03:54:51 2022 +0800
Stick clang-format version to 11 and add back docker-format.sh (#45)
* Stick clang-format version to 11 and add back docker-format.sh
### Motivation
Currently the code is formatted by `clang-format` 11. If it's formatted
by other versions of `clang-format`, the style might be a little
different.
### Modifications
- Add back `docker-format.sh` and the associated `Dockerfile.format`.
This script build the image with `python3` and `clang-format-11`
installed and the entrypoint is formatting the code.
- Explain the `clang-format` version in README.
* Move Dockerfile and docker-format.sh to build-support
---
README.md | 4 +++-
build-support/Dockerfile.format | 35 +++++++++++++++++++++++++++++++++++
build-support/docker-format.sh | 32 ++++++++++++++++++++++++++++++++
cmake_modules/FindClangTools.cmake | 4 ++--
4 files changed, 72 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 4cea378..9701ac3 100644
--- a/README.md
+++ b/README.md
@@ -222,6 +222,8 @@ cd tests
## Requirements for Contributors
-It's required to install [LLVM](https://llvm.org/builds/) for `clang-tidy` and `clang-format`. Pulsar C++ client use `clang-format` 6.0+ to format files. `make format` automatically formats the files.
+It's required to install [LLVM](https://llvm.org/builds/) for `clang-tidy` and `clang-format`. Pulsar C++ client use `clang-format` **11** to format files. `make format` automatically formats the files.
+
+For Ubuntu users, you can install `clang-format-11` via `apt install clang-format-11`. For other users, run `./build-support/docker-format.sh` if you have Docker installed.
We welcome contributions from the open source community, kindly make sure your changes are backward compatible with GCC 4.8 and Boost 1.53.
diff --git a/build-support/Dockerfile.format b/build-support/Dockerfile.format
new file mode 100644
index 0000000..92d53b0
--- /dev/null
+++ b/build-support/Dockerfile.format
@@ -0,0 +1,35 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+
+FROM ubuntu:20.04
+
+WORKDIR /app
+
+RUN apt update -y && apt install -y python3 clang-format-11
+ENTRYPOINT ["python3", "./build-support/run_clang_format.py", \
+ "clang-format-11", \
+ "0", \
+ "./build-support/clang_format_exclusions.txt", \
+ "./lib", \
+ "./perf", \
+ "./examples", \
+ "./tests", \
+ "./include", \
+ "./wireshark"]
diff --git a/build-support/docker-format.sh b/build-support/docker-format.sh
new file mode 100755
index 0000000..622a4f1
--- /dev/null
+++ b/build-support/docker-format.sh
@@ -0,0 +1,32 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+ROOT_DIR=$(git rev-parse --show-toplevel)
+cd $ROOT_DIR/build-support
+
+IMAGE_NAME=apachepulsar/cpp-client-format
+docker image inspect apachepulsar/cpp-client-format 1>/dev/null 2>&1
+OK=$?
+set -e
+if [[ $OK -ne 0 ]]; then
+ echo "The image $IMAGE_NAME doesn't exist, build it"
+ docker build -t $IMAGE_NAME -f ./Dockerfile.format .
+fi
+docker run -v $ROOT_DIR:/app --rm $IMAGE_NAME
diff --git a/cmake_modules/FindClangTools.cmake b/cmake_modules/FindClangTools.cmake
index 4b8fc18..6712881 100644
--- a/cmake_modules/FindClangTools.cmake
+++ b/cmake_modules/FindClangTools.cmake
@@ -82,8 +82,8 @@ if (CLANG_FORMAT_VERSION)
endif()
else()
find_program(CLANG_FORMAT_BIN
- NAMES clang-format-5
- clang-format-5.0
+ NAMES clang-format-11
+ clang-format-11.0
clang-format
PATHS ${CLANG_SEARCH_PATHS}
NO_DEFAULT_PATH