Warning

This document is not updated for ESP32C5 yet, so some of the content may not be correct.

This warning was automatically inserted due to the source file being in the add_warnings_pages list.

# Install Pre-commit Hook for ESP-IDF Project

[中文]

## Required Dependency

Python 3.8.* or above. This is our recommended Python version for ESP-IDF developers.

If you still have Python versions not compatible, update your Python versions before installing the pre-commit hook.

## Install `pre-commit`

Run `pip install pre-commit`

## Install `pre-commit` Hook

1. Go to the ESP-IDF project directory.

2. Run `pre-commit install --allow-missing-config -t pre-commit -t commit-msg`. Install hook by this approach will let you commit successfully even in branches without the `.pre-commit-config.yaml`

3. pre-commit hook will run automatically when you are running `git commit` command

## Uninstall `pre-commit` Hook

Run `pre-commit uninstall`

## What Is More?

For detailed usage, please refer to the documentation of pre-commit.

## Common Problems For Windows Users

`/usr/bin/env: python: Permission denied.`

> If you are in Git Bash, please check the python executable location by run `which python`.

> If the executable is under `~/AppData/Local/Microsoft/WindowsApps/`, then it is a link to Windows AppStore, not a real one.

> Please install Python manually and update this in your `PATH` environment variable.

Your `USERPROFILE` contains non-ASCII characters

> `pre-commit` may fail when initializing an environment for a particular hook when the path of `pre-commit`'s cache contains non-ASCII characters. The solution is to set `PRE_COMMIT_HOME` to a path containing only standard characters before running pre-commit.

> - CMD: `set PRE_COMMIT_HOME=C:\somepath\pre-commit`

> - PowerShell: `$Env:PRE_COMMIT_HOME = "C:\somepath\pre-commit"`

> - git bash: `export PRE_COMMIT_HOME="/c/somepath/pre-commit"`

Provide feedback about this document