* chore: add ruff linter with base config * ci: add ruff pre-commit hook * ci: add ruff github actions workflow * ci: run ruff only on changed files