# EXTRAS: optional or useful for development/developers workflow

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

# to use in ./scripts for memory footprint, code coverage, etc.
gitpython>=3.1.41

# used by scripts/footprint/plot.py for generating plots of size reports
plotly

# helper for developers - check git commit messages
gitlint-core

# helper for developers
junit2html

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

# used by NXP platform to generate/flash firmware images
spsdk >= 3.0.0

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

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

# used to generate devicetree dependency graphs
graphviz
