| # 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. |
| |
| # To use this, install the python package `pre-commit` and |
| # run once `pre-commit install`. This will setup a git pre-commit-hook |
| # that is executed on each commit and will report the linting problems. |
| # To run all hooks on all files use `pre-commit run -a` |
| |
| repos: |
| - repo: local |
| hooks: |
| - id: rat |
| name: Release Audit Tool |
| language: system |
| entry: bash -c "git archive HEAD --prefix=apache-arrow/ --output=arrow-src.tar && ./dev/release/run-rat.sh arrow-src.tar" |
| always_run: true |
| pass_filenames: false |
| - repo: https://github.com/hadolint/hadolint |
| rev: v2.12.0 |
| hooks: |
| - id: hadolint-docker |
| name: Docker Format |
| exclude: ^dev/.*$ |
| - repo: https://github.com/pycqa/flake8 |
| rev: 6.1.0 |
| hooks: |
| - id: flake8 |
| name: Python Format |
| files: ^(python|dev|integration)/ |
| types: |
| - file |
| - python |
| exclude: vendored |
| args: [--config, python/setup.cfg] |
| - repo: https://github.com/MarcoGorelli/cython-lint |
| rev: v0.12.5 |
| hooks: |
| - id: cython-lint |
| args: [--no-pycodestyle] |
| - repo: https://github.com/pre-commit/mirrors-clang-format |
| rev: v14.0.6 |
| hooks: |
| - id: clang-format |
| name: C++ Format |
| types_or: |
| - c++ |
| # - json |
| # - proto |
| files: >- |
| ^cpp/ |
| exclude: >- |
| ( |
| ?\.grpc\.fb\.(cc|h)$| |
| ?\.pb\.(cc|h)$| |
| ?_generated.*\.(cc|h)$| |
| ?^cpp/src/arrow/vendored/| |
| ?^cpp/src/generated/| |
| ?^cpp/thirdparty/| |
| ) |
| - repo: https://github.com/pre-commit/mirrors-clang-format |
| rev: v14.0.6 |
| hooks: |
| - id: clang-format |
| name: C/GLib Format |
| files: >- |
| ^c_glib/ |
| - repo: https://github.com/pre-commit/mirrors-clang-format |
| rev: v14.0.6 |
| hooks: |
| - id: clang-format |
| name: MATLAB (C++) Format |
| files: >- |
| ^matlab/src/cpp/ |
| - repo: https://github.com/pre-commit/mirrors-clang-format |
| rev: v14.0.6 |
| hooks: |
| - id: clang-format |
| name: Python (C++) Format |
| files: >- |
| ^python/pyarrow/src/ |
| exclude: >- |
| ( |
| ?\.grpc\.fb\.(cc|h)$| |
| ?.pb\.(cc|h)$| |
| ?^cpp/src/generated/| |
| ) |
| - repo: https://github.com/pre-commit/mirrors-clang-format |
| rev: v14.0.6 |
| hooks: |
| - id: clang-format |
| name: R (C++) Format |
| files: >- |
| ^r/src/ |
| exclude: >- |
| ( |
| ?^r/src/arrowExports\.cpp$| |
| ) |
| - repo: https://github.com/cheshirekow/cmake-format-precommit |
| rev: v0.6.13 |
| hooks: |
| - id: cmake-format |
| name: CMake Format |
| files: >- |
| ( |
| ?^ci/.*/.*\.cmake$| |
| ?^cpp/.*/.*\.cmake\.in$| |
| ?^cpp/.*/.*\.cmake$| |
| ?^cpp/.*/CMakeLists\.txt$| |
| ?^go/.*/CMakeLists\.txt$| |
| ?^java/.*/CMakeLists\.txt$| |
| ?^matlab/.*/CMakeLists\.txt$| |
| ?^python/.*/CMakeLists\.txt$| |
| ) |
| exclude: >- |
| ( |
| ?^cpp/cmake_modules/FindNumPy\.cmake$| |
| ?^cpp/cmake_modules/FindPythonLibsNew\.cmake$| |
| ?^cpp/cmake_modules/UseCython\.cmake$| |
| ?^cpp/src/arrow/util/config\.h\.cmake$| |
| ) |