mirror of
https://github.com/licsber/micropython.git
synced 2024-09-20 00:50:24 +08:00
CODECONVENTIONS: Explain uncrustify dependency for pre-commit setup.
pre-commit manages its own dependencies otherwise (including Black), but this one is a C/C++ binary so needs to be installed independently. Signed-off-by: Angus Gratton <angus@redyak.com.au>
This commit is contained in:
parent
5c10727b68
commit
36347817ec
@ -65,16 +65,52 @@ changes to the correct style. Without arguments this tool will reformat all
|
|||||||
source code (and may take some time to run). Otherwise pass as arguments to
|
source code (and may take some time to run). Otherwise pass as arguments to
|
||||||
the tool the files that changed and it will only reformat those.
|
the tool the files that changed and it will only reformat those.
|
||||||
|
|
||||||
**Important**: Use only [uncrustify](https://github.com/uncrustify/uncrustify)
|
uncrustify
|
||||||
v0.71 or v0.72 for MicroPython. Different uncrustify versions produce slightly
|
==========
|
||||||
different formatting, and the configuration file formats are often incompatible.
|
|
||||||
|
Only [uncrustify](https://github.com/uncrustify/uncrustify) v0.71 or v0.72 can
|
||||||
|
be used for MicroPython. Different uncrustify versions produce slightly
|
||||||
|
different formatting, and the configuration file formats are often
|
||||||
|
incompatible. v0.73 or newer *will not work*.
|
||||||
|
|
||||||
|
Depending on your operating system version, it may be possible to install a pre-compiled
|
||||||
|
uncrustify version:
|
||||||
|
|
||||||
|
Ubuntu, Debian
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Ubuntu versions 21.10 or 22.04LTS, and Debian versions bullseye or bookworm all
|
||||||
|
include v0.72 so can be installed directly:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ apt install uncrustify
|
||||||
|
```
|
||||||
|
|
||||||
|
Arch Linux
|
||||||
|
----------
|
||||||
|
|
||||||
|
The current Arch uncrustify version is too new. There is an [old Arch package
|
||||||
|
for v0.72](https://archive.archlinux.org/packages/u/uncrustify/) that can be
|
||||||
|
installed from the Arch Linux archive ([more
|
||||||
|
information](https://wiki.archlinux.org/title/Downgrading_packages#Arch_Linux_Archive)). Use
|
||||||
|
the [IgnorePkg feature](https://wiki.archlinux.org/title/Pacman#Skip_package_from_being_upgraded)
|
||||||
|
to prevent it re-updating.
|
||||||
|
|
||||||
|
Brew
|
||||||
|
----
|
||||||
|
|
||||||
|
This command may work, please raise a new Issue if it doesn't:
|
||||||
|
|
||||||
|
```
|
||||||
|
brew install https://github.com/Homebrew/homebrew-core/raw/2b07d8192623365078a8b855a164ebcdf81494a6/Formula/uncrustify.rb
|
||||||
|
```
|
||||||
|
|
||||||
Automatic Pre-Commit Hooks
|
Automatic Pre-Commit Hooks
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
To have code formatting and commit message conventions automatically checked,
|
To have code formatting and commit message conventions automatically checked,
|
||||||
a configuration file is provided for the [pre-commit]
|
a configuration file is provided for the [pre-commit](https://pre-commit.com/)
|
||||||
(https://pre-commit.com/) tool.
|
tool.
|
||||||
|
|
||||||
First install `pre-commit`, either from your system package manager or via
|
First install `pre-commit`, either from your system package manager or via
|
||||||
`pip`. When installing `pre-commit` via pip, it is recommended to use a
|
`pip`. When installing `pre-commit` via pip, it is recommended to use a
|
||||||
@ -82,13 +118,17 @@ virtual environment. Other sources, such as Brew are also available, see
|
|||||||
[the docs](https://pre-commit.com/index.html#install) for details.
|
[the docs](https://pre-commit.com/index.html#install) for details.
|
||||||
|
|
||||||
```
|
```
|
||||||
$ apt install pre-commit # Ubuntu
|
$ apt install pre-commit # Ubuntu, Debian
|
||||||
$ pacman -Sy python-precommit # Arch Linux
|
$ pacman -Sy python-precommit # Arch Linux
|
||||||
$ brew install pre-commit # Brew
|
$ brew install pre-commit # Brew
|
||||||
$ pip install pre-commit # PyPI
|
$ pip install pre-commit # PyPI
|
||||||
```
|
```
|
||||||
|
|
||||||
Then inside the MicroPython repository, register the git hooks for pre-commit
|
Next, install [uncrustify (see above)](#uncrustify). Other dependencies are managed by
|
||||||
|
pre-commit automatically, but uncrustify needs to be installed and available on
|
||||||
|
the PATH.
|
||||||
|
|
||||||
|
Then, inside the MicroPython repository, register the git hooks for pre-commit
|
||||||
by running:
|
by running:
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -115,7 +155,6 @@ Tips:
|
|||||||
* To ignore the pre-commit message format check temporarily, start the commit
|
* To ignore the pre-commit message format check temporarily, start the commit
|
||||||
message subject line with "WIP" (for "Work In Progress").
|
message subject line with "WIP" (for "Work In Progress").
|
||||||
|
|
||||||
|
|
||||||
Python code conventions
|
Python code conventions
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user