forked from Field-Robotics-Lab/dave
-
Notifications
You must be signed in to change notification settings - Fork 2
/
.pre-commit-config.yaml
193 lines (176 loc) · 5.3 KB
/
.pre-commit-config.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
# To use:
#
# pre-commit run -a
#
# Or:
#
# pre-commit install # (runs every time you commit in git)
#
# To update this file:
#
# pre-commit autoupdate
#
# See https://github.com/pre-commit/pre-commit
---
# CANNOT USE (AMENT_LINT excutables are being called from local)
# ci:
# autofix_commit_msg: |
# [pre-commit.ci] auto fixes from pre-commit.com hooks
# for more information, see https://pre-commit.ci
# autofix_prs: true
# autoupdate_branch: 'ros2'
# autoupdate_commit_msg: "[pre-commit.ci] pre-commit autoupdate"
# autoupdate_schedule: weekly
# skip: []
# submodules: false
repos:
# Standard hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
- id: check-added-large-files
args: ["--maxkb=2000"]
- id: check-ast
- id: check-case-conflict
- id: check-docstring-first
- id: check-merge-conflict
- id: check-symlinks
- id: debug-statements
- id: mixed-line-ending
- id: trailing-whitespace
exclude_types: [rst]
- id: fix-byte-order-marker
- id: destroyed-symlinks
- id: detect-private-key
- id: requirements-txt-fixer
# Python hooks
- repo: https://github.com/asottile/pyupgrade
rev: v3.16.0
hooks:
- id: pyupgrade
args: [--py36-plus]
# PyDocStyle
- repo: https://github.com/PyCQA/pydocstyle
rev: 6.3.0
hooks:
- id: pydocstyle
args:
["--ignore=D100,D101,D102,D103,D104,D105,D106,D107,D203,D212,D404"]
- repo: https://github.com/psf/black
rev: 24.4.2
hooks:
- id: black
args: ["--line-length=99", "--exclude=tools/code_check"]
- repo: https://github.com/pycqa/flake8
rev: 7.1.0
hooks:
- id: flake8
args: ["--extend-ignore=E501", "--exclude=tools/code_check"]
# CPP hooks
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v18.1.7
hooks:
- id: clang-format
args: ["-fallback-style=none", "-i"]
# - repo: local
# hooks:
# - id: ament_cppcheck
# name: ament_cppcheck
# description: Static code analysis of C/C++ files.
# entry: env AMENT_CPPCHECK_ALLOW_SLOW_VERSIONS=1 ament_cppcheck
# language: system
# files: \.(h\+\+|h|hh|hxx|hpp|cuh|c|cc|cpp|cu|c\+\+|cxx|tpp|txx)$
# - repo: https://github.com/cpplint/cpplint
# rev: 1.6.1
# hooks:
# - id: cpplint
# name: cpplint
# description: Static code analysis of C/C++ files
# language: python
# files: \.(h\+\+|h|hh|hxx|hpp|cuh|c|cc|cpp|cu|c\+\+|cxx|tpp|txx)$
# entry: cpplint
# args: ["--linelength=100", "--filter=-whitespace/newline"]
# Cmake hooks (can be installed with pip3 install ament-lint-cmake-py)
- repo: local
hooks:
- id: ament_lint_cmake
name: ament_lint_cmake
description: Check format of CMakeLists.txt files.
entry: ament_lint_cmake
additional_dependencies: [ament-lint-cmake-py]
files: CMakeLists\.txt$
language: python
types: [file]
# Copyright (exclude for now, doesn't exist for nobel
# https://packages.ubuntu.com/search?keywords=ament+copyright&searchon=names)
# - repo: local
# hooks:
# - id: ament_copyright
# name: ament_copyright
# description: Check if copyright notice is available in all files.
# entry: ament_copyright
# language: system
# exclude: .*/conf\.py$
# Docs - RestructuredText hooks
- repo: https://github.com/PyCQA/doc8
rev: v1.1.1
hooks:
- id: doc8
args: ["--max-line-length=100", "--ignore=D001"]
exclude: CHANGELOG\.rst$
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.10.0
hooks:
- id: rst-backticks
exclude: CHANGELOG\.rst$
- id: rst-directive-colons
- id: rst-inline-touching-normal
# Spellcheck in comments and docs
# skipping of *.svg files is not working...
# - repo: https://github.com/codespell-project/codespell
# rev: v2.3.0
# hooks:
# - id: codespell
# args: ["--write-changes", "--uri-ignore-words-list=ist", "-L manuel"]
# exclude: CHANGELOG\.rst|\.(svg|pyc|drawio)$
# Json lint
- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.28.6
hooks:
- id: check-github-workflows
args: ["--verbose"]
- id: check-github-actions
args: ["--verbose"]
- id: check-dependabot
args: ["--verbose"]
# XML lint for xacro, urdf, and sdf files
- repo: https://github.com/pamoller/xmlformatter
rev: v0.2.6
hooks:
- id: xml-formatter
name: Format XML
description: Lint XML syntax in xacro, urdf, and sdf files.
language: python
types: [xml]
entry: xmlformat
args:
- "--overwrite"
files: '\.(xacro|urdf|sdf|xml|launch|world)$'
# Yaml lint
- repo: https://github.com/adrienverge/yamllint
rev: v1.35.1
hooks:
- id: yamllint
name: yamllint
description: This hook runs yamllint.
entry: >
yamllint -d "{
extends: default,
rules: {
line-length: {max: 120},
new-line-at-end-of-file: disable
}
}"
language: python
types: [file, yaml]
files: '\.(yaml|yml)$'