2017-02-12 00:51:14 +01:00
|
|
|
# Git hooks for Godot Engine
|
|
|
|
|
2019-12-06 23:35:43 +01:00
|
|
|
This folder contains Git hooks meant to be installed locally by Godot Engine
|
2017-02-12 00:51:14 +01:00
|
|
|
contributors to make sure they comply with our requirements.
|
|
|
|
|
|
|
|
## List of hooks
|
|
|
|
|
2020-03-30 08:55:21 +02:00
|
|
|
- Pre-commit hook for `clang-format`: Applies `clang-format` to the staged
|
|
|
|
files before accepting a commit; blocks the commit and generates a patch if
|
|
|
|
the style is not respected.
|
|
|
|
You may need to edit the file if your `clang-format` binary is not in the
|
|
|
|
`PATH`, or if you want to enable colored output with `pygmentize`.
|
|
|
|
- Pre-commit hook for `black`: Applies `black` to the staged Python files
|
|
|
|
before accepting a commit.
|
2021-10-24 08:48:03 +02:00
|
|
|
- Pre-commit hook for `make_rst`: Checks the class reference syntax using
|
|
|
|
`make_rst.py`.
|
2017-02-12 00:51:14 +01:00
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
2020-03-30 08:55:21 +02:00
|
|
|
Copy all the files from this folder into your `.git/hooks` folder, and make
|
|
|
|
sure the hooks and helper scripts are executable.
|
|
|
|
|
2020-03-30 22:59:06 +02:00
|
|
|
#### Linux/MacOS
|
|
|
|
|
2020-03-30 08:55:21 +02:00
|
|
|
The hooks rely on bash scripts and tools which should be in the system `PATH`,
|
2020-03-30 22:59:06 +02:00
|
|
|
so they should work out of the box on Linux/macOS.
|
|
|
|
|
|
|
|
#### Windows
|
|
|
|
|
|
|
|
##### clang-format
|
2022-09-21 13:08:17 +02:00
|
|
|
- Download LLVM for Windows (version 13 or later) from
|
2023-12-06 13:12:18 +01:00
|
|
|
<https://github.com/llvm/llvm-project/releases>
|
2020-03-30 22:59:06 +02:00
|
|
|
- Make sure LLVM is added to the `PATH` during installation
|
|
|
|
|
|
|
|
##### black
|
|
|
|
- Python installation: make sure Python is added to the `PATH`
|
|
|
|
- Install `black` - in any console: `pip3 install black`
|
2022-08-30 12:18:58 +02:00
|
|
|
|
|
|
|
## Custom hooks
|
|
|
|
|
|
|
|
The pre-commit hook will run any other script in `.git/hooks` whose filename
|
|
|
|
matches `pre-commit-custom-*`, after the Godot ones.
|