Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dx: Add additional hooks to pre-commit #7

Open
wants to merge 7 commits into
base: 202449-pre-commit
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ UseTab: Always
BreakBeforeBraces: Linux
AllowShortIfStatementsOnASingleLine: false
IndentCaseLabels: false
SortIncludes: CaseSensitive
IncludeBlocks: Preserve
3 changes: 3 additions & 0 deletions .codespellignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
connectd
crate
mut
4 changes: 4 additions & 0 deletions .codespellrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[codespell]

count = true
ignore-words = .codespellignore
86 changes: 86 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,89 @@ repos:
- id: ruff-format
args: [ --diff ]
exclude: "contrib/pyln-grpc-proto/pyln/grpc/(primitives|node)_pb2(|_grpc).py"

- repo: https://github.com/koalaman/shellcheck-precommit
rev: v0.10.0
hooks:
- id: shellcheck
args: [ -fgcc ]

- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v19.1.4
hooks:
- id: clang-format
description: Runs formatting checks on the c code and and throws errors if suggestions
are detected, without modifying the code. Style is defined in `.clang-format`. When
encountering formatting-related errors, run `clang-format -i <path-to-file>` to make
(destructively) the suggestions and evalute the resulting diff for more context.
args: [ --dry-run, -Werror ]
entry: clang-format
types: [ c ]

- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.30.0
hooks:
- id: check-jsonschema
name: check doc JSON schemas
args: ["--schemafile", "doc/rpc-schema-draft.json"]
files: ^doc/schemas/.*\.json$
types: [ json ]

- id: check-metaschema
name: check doc JSON metaschemas
args: ["--verbose"]
files: ^doc/schemas/.*\.json$
types: [ json ]

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: pretty-format-json
args: [ "--indent", "2", "--no-sort-keys" ]
files: ^doc/schemas/.*\.json$
types: [ json ]

- repo: https://github.com/codespell-project/codespell
rev: v2.3.0
hooks:
- id: codespell
description: Checks for common misspellings.
exclude: ccan|contrib|tests/fuzz/corpora

- repo: https://github.com/compilerla/conventional-pre-commit
rev: v3.6.0
hooks:
- id: conventional-pre-commit
stages: [commit-msg]
args:
- --scopes=askrene,bkpr,channeld,cli,closingd,cln-grpc,cln-rpc,common,connectd,db,gossipd,hsmd,lightningd,onchaind,openingd,pay,pylightning,pyln-client,pyln-spec,pyln-testing,pytest,splice,tools,wallet,wire,xpay
- --verbose
- build
- chore
- ci
- docs
- feat
- fix
- style
- refactor
- perf
- test

- repo: local
hooks:
# Reimplementation of `make check-amount-access` for pygrep.
- id: check-amount-access
name: Check amount_msat and amount_sat members are not accessed directly
description: "Don't access amount_msat and amount_sat members directly without a good reason since it risks overflow."
language: pygrep
entry: (->|\.)(milli)?satoshis(?!.*\/\*\ Raw:)|(?<!sizeof)\(struct\ amount_(m)?sat\)
types: [ c ]
exclude: common/amount|.*/test/.*

# Reimplementation of `make check-discouraged-functions` for pygrep.
- id: check-discouraged-functions
name: Check for usage of discouraged funtions
language: pygrep
entry: '[^a-z_/](?:fgets|fputs|gets|scanf|sprintf)\('
types: [ c ]
exclude: ccan|contrib