# EXTRAS: optional or useful for development/developers workflow

# used by twister for --test-tree option
anytree

# helper for developers - check git commit messages
gitlint

# helper for developers
junit2html

# helper for developers - code formatter
clang-format>=15.0.0

# Script used to build firmware images for NXP LPC MCUs.
lpc_checksum

# used by scripts/build/gen_cfb_font_header.py - helper script for user
Pillow

# can be used to sign a Zephyr application binary for consumption by a bootloader
imgtool>=1.9

# used by nanopb module to generate sources from .proto files
grpcio-tools>=1.47.0
protobuf>=3.20.3

# used by scripts/release/bug_bash.py for generating top ten bug squashers
PyGithub

# used to generate devicetree dependency graphs
graphviz

# used to generate CBOR encoders and decoders, e.g. lwm2m_senml_cbor.
zcbor>=0.6.0
