| # 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: https://github.com/pre-commit/pre-commit-hooks |
| rev: v4.6.0 |
| hooks: |
| - id: check-xml |
| - id: check-yaml |
| exclude: ci/conda/meta.yaml |
| - id: end-of-file-fixer |
| exclude: "^r/.*?/_snaps/.*?.md$" |
| - id: mixed-line-ending |
| name: "Mixed line endings (LF)" |
| args: [--fix=lf] |
| exclude: '\.(bat|sln)$' |
| - id: mixed-line-ending |
| name: "Mixed line endings (CRLF)" |
| args: [--fix=crlf] |
| files: '\.(bat|sln)$' |
| - id: trailing-whitespace |
| exclude: "^r/.*?/_snaps/.*?.md$" |
| - repo: https://github.com/pre-commit/mirrors-clang-format |
| rev: "v18.1.7" |
| hooks: |
| - id: clang-format |
| types_or: [c, c++] |
| - repo: https://github.com/cheshirekow/cmake-format-precommit |
| rev: v0.6.13 |
| hooks: |
| - id: cmake-format |
| args: [--in-place] |
| - repo: https://github.com/cpplint/cpplint |
| rev: 1.6.1 |
| hooks: |
| - id: cpplint |
| args: |
| # From Arrow's config |
| - "--filter=-whitespace/comments,-whitespace/indent,-readability/braces,-readability/casting,-readability/todo,-readability/alt_tokens,-build/header_guard,-build/c++11,-build/include_order,-build/include_subdir,-runtime/references" |
| - "--linelength=90" |
| - "--verbose=2" |
| - repo: https://github.com/golangci/golangci-lint |
| rev: v1.59.1 |
| hooks: |
| - id: golangci-lint |
| entry: bash -c 'cd go/adbc && golangci-lint run --fix --timeout 5m' |
| types_or: [go] |
| - repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks |
| rev: v2.13.0 |
| hooks: |
| - id: pretty-format-golang |
| - id: pretty-format-java |
| args: [--autofix] |
| types_or: [java] |
| - repo: https://github.com/psf/black |
| rev: 24.4.2 |
| hooks: |
| - id: black |
| types_or: [pyi, python] |
| - repo: https://github.com/PyCQA/flake8 |
| rev: 7.1.0 |
| hooks: |
| - id: flake8 |
| types_or: [python] |
| - repo: https://github.com/PyCQA/isort |
| rev: 5.13.2 |
| hooks: |
| - id: isort |
| types_or: [python] |
| - repo: https://github.com/MarcoGorelli/cython-lint |
| rev: v0.16.2 |
| hooks: |
| - id: cython-lint |
| - repo: https://github.com/vala-lang/vala-lint |
| rev: 8ae2bb65fe66458263d94711ae4ddd978faece00 |
| hooks: |
| - id: vala-lint |
| - repo: local |
| hooks: |
| - id: apache-rat |
| name: Check for unapproved licenses |
| language: script |
| pass_filenames: false |
| entry: "./ci/scripts/run_rat_local.sh" |
| - id: check-cgo-adbc-header |
| name: Ensure CGO adbc.h is sync'd |
| language: script |
| pass_filenames: true |
| files: '(c/driver_manager/adbc_driver_manager\.)|(^adbc\.h)' |
| entry: "./ci/scripts/run_cgo_drivermgr_check.sh" |
| - repo: https://github.com/doublify/pre-commit-rust |
| rev: v1.0 |
| hooks: |
| - id: fmt |
| name: rustfmt |
| args: ["--all", "--manifest-path", "rust/Cargo.toml", "--"] |
| |
| exclude: "^c/vendor/.*" |