forked from Tecnativa/doodba-copier-template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.pre-commit-config.yaml.jinja
125 lines (122 loc) · 3.83 KB
/
.pre-commit-config.yaml.jinja
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
{# We cannot use the same pre-commit config as MQT's because paths don't match
and it's designed only for Odoo 13.0+, so we design our own version, which
should be as close as possible to MQT's -#}
{#- This namespace holds repo versions #}
{%- set proj_rev = namespace() %}
{%- if odoo_version < 16 %}
{%- set proj_rev.pylint_odoo = "v8.0.0" %}
{%- elif odoo_version < 17 %}
{%- set proj_rev.pylint_odoo = "v8.0.20" %}
{%- else %}
{%- set proj_rev.pylint_odoo = "v9.0.4" %}
{%- endif -%}
exclude: |
(?x)
# NOT INSTALLABLE ADDONS
# END NOT INSTALLABLE ADDONS
# Files and folders generated by bots, to avoid loops
/static/description/index\.html$|
# Files that fail if changed manually
.*\.(diff|patch)$|
# Library files can have extraneous formatting (even minimized)
/static/(src/)?lib/|
# You don't usually want a bot to modify your legal texts
(LICENSE.*|COPYING.*)
default_language_version:
python: python3
node: "18.17.1"
repos:
- repo: local
hooks:
- id: forbidden-files
name: forbidden files
entry: found forbidden files; remove them
language: fail
files: "\\.rej$"
- &maintainer_tools
repo: https://github.com/oca/maintainer-tools
rev: 1070863d1298b1bf373a0e69458dd8a88ab91578
hooks:
# update the NOT INSTALLABLE ADDONS section above
- id: oca-update-pre-commit-excluded-addons
args:
- --addons-dir
- odoo/custom/src/private
{% if odoo_version >= 14 -%}
- repo: https://github.com/OCA/odoo-pre-commit-hooks
rev: v0.0.29
hooks:
- id: oca-checks-odoo-module
- id: oca-checks-po
args: ["--fix"]
{% endif -%}
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.1.3
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
- id: ruff-format
- repo: https://github.com/pre-commit/mirrors-prettier
# HACK https://github.com/prettier/prettier/issues/15696
rev: v2.7.1
hooks:
- id: prettier
name: prettier + plugin-xml
args: [--plugin=@prettier/plugin-xml]
additional_dependencies:
# HACK https://github.com/prettier/pre-commit/issues/16#issuecomment-713474520
- "@prettier/[email protected]"
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
{%- if odoo_version >= 11 %}
- id: debug-statements
{%- endif %}
- id: fix-encoding-pragma
{%- if odoo_version >= 11 %}
args: ["--remove"]
{%- endif %}
- id: check-case-conflict
- id: check-docstring-first
- id: check-executables-have-shebangs
- id: check-merge-conflict
args: [--assume-in-merge]
exclude: \.rst$ # HACK https://github.com/pre-commit/pre-commit-hooks/issues/985
- id: check-symlinks
- id: check-xml
- id: mixed-line-ending
args: ["--fix=lf"]
- repo: https://github.com/OCA/pylint-odoo
rev: {{ proj_rev.pylint_odoo }}
hooks:
- id: pylint_odoo
name: pylint with optional checks
args:
- --rcfile=.pylintrc
- --exit-zero
verbose: true
- id: pylint_odoo
args:
- --rcfile=.pylintrc-mandatory
- repo: https://github.com/pre-commit/mirrors-eslint
rev: v8.49.0
hooks:
- id: eslint
verbose: true
args:
- --color
- --fix
- <<: *maintainer_tools
hooks:
# Generate readme is last, so its digest includes changes from above
- id: oca-gen-addon-readme
args:
- --addons-dir=odoo/custom/src/private
- --org-name={{ project_author }}
- --repo-name={{ project_name }}
- --gen-html
- --branch={{ odoo_version }}
- --template-filename=.module-readme.rst.j2