Migrate Python formatting to ruff from black #2026
Open
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.
Migrates Python formatting to ruff from black to speed up formatting by multiples (see below benchmarks); and for robustness improvements; such as those applied by the formatting of this merge request to string formatting, trailing commas rather than a mixture with and without; improved formatting of arguments, whitespace line handling, etc. - though all of which are included with later releases of various Python formatter tools.
The ruff formatter is "designed as a drop-in replacement for Black". The caching in particular improves development workflows with tools such as IDEs and hooks.
Ruff's default configuration is a superset of those specified by the black configuration within the
pyproject.toml; and thus only required extension to the custom pathsrc/buildstream/_protos.Raising based on observation and in case of interest.
Benchmarks
Cold Runs
Screenshots
Black
Ruff
Warm Runs
Screenshots
Black
Ruff