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