add ruff tests in CI
ruff is a modern linter and code formatter that is a drop-in replacement for both black and flake8
https://github.com/astral-sh/ruff
It is written in rust, much faster than black and flake8, and does additional tests. It also allows to automatically fix some types of bad code.
For now, I add it as an additional stage in the CI. In the future, we could add it to the pre-commit and then drop black and flake8.