Switch tooling to uv, ruff, and prek#59
Merged
joelspadin merged 2 commits intozmkfirmware:mainfrom Feb 24, 2026
Merged
Conversation
caksoylar
reviewed
Feb 23, 2026
Switched from Pip to uv for package management, Black, isort, and Pylint to Ruff for linting and formatting, and pre-commit to prek for commit hooks. These are faster and/or easier to work with. Added an initial set of Ruff checks and updated the codebase to address issues detected by them. The minimum Python version of 3.10 was originally set based on what is provided with Ubuntu 22.04 LTS. Now that we're instructing users to install ZMK CLI with uv though, we're no longer dependent on the system Python version. Updated to 3.11 to remove the need for the StrEnum backport.
Enabled a subset of flake8-bandit security rules. Some S6* rules conflict with one another, with some requiring shell=True and others preventing it. We enable S602 and S604 to prevent it. Although we do use Mako templates, they are not used with any file types that can contain executable code, so S7* rules aren't useful.
caksoylar
approved these changes
Feb 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Switched from Pip to uv for package management, Black, isort, and Pylint to Ruff for linting and formatting, and pre-commit to prek for commit hooks. These are faster and/or easier to work with.
Added an initial set of Ruff checks and updated the codebase to address issues detected by them.
The minimum Python version of 3.10 was originally set based on what is provided with Ubuntu 22.04 LTS. Now that we're instructing users to install ZMK CLI with uv though, we're no longer dependent on the system Python version. Updated to 3.11 to remove the need for the StrEnum backport.