WordPress / openverse

Openverse is a search engine for openly-licensed media. This monorepo includes all application code.
https://openverse.org
MIT License
239 stars 191 forks source link

Remove isort from pre-commit and depend on ruff #2267

Closed sarayourfriend closed 1 year ago

sarayourfriend commented 1 year ago

Problem

Ruff and isort behave differently and sometimes conflict. See this pre-commit output, as an example:

➜  openverse git:(add/sensitive-info-response) ✗ g commit -m 'Fix bad merge'
i18n.................................................(no files to check)Skipped
trim trailing whitespace.................................................Passed
check that executables have shebangs.................(no files to check)Skipped
check json...........................................(no files to check)Skipped
check for case conflicts.................................................Passed
check toml...........................................(no files to check)Skipped
check for merge conflicts................................................Passed
check xml............................................(no files to check)Skipped
check yaml...........................................(no files to check)Skipped
fix end of files.........................................................Passed
check for broken symlinks............................(no files to check)Skipped
mixed line ending........................................................Passed
fix python encoding pragma...............................................Passed
check docstring is first.................................................Passed
fix requirements.txt.................................(no files to check)Skipped
isort....................................................................Failed
- hook id: isort
- files were modified by this hook

Fixing /home/sara/projects/openverse/api/test/unit/serializers/test_media_serializers.py

pyupgrade................................................................Passed
ruff.....................................................................Failed
- hook id: ruff
- files were modified by this hook

Found 2 errors (2 fixed, 0 remaining).

black....................................................................Passed
pydocstyle...............................................................Passed
eslint...............................................(no files to check)Skipped
prettier.................................................................Passed
ShellCheck v0.9.0....................................(no files to check)Skipped
shfmt................................................(no files to check)Skipped
Lint GitHub Actions workflow file Docker.............(no files to check)Skipped
types................................................(no files to check)Skipped
render-release-drafter...............................(no files to check)Skipped
➜  openverse git:(add/sensitive-info-response) ✗ g add .
➜  openverse git:(add/sensitive-info-response) ✗ g commit -m 'Fix bad merge'
i18n.................................................(no files to check)Skipped
trim trailing whitespace.................................................Passed
check that executables have shebangs.................(no files to check)Skipped
check json...........................................(no files to check)Skipped
check for case conflicts.................................................Passed
check toml...........................................(no files to check)Skipped
check for merge conflicts................................................Passed
check xml............................................(no files to check)Skipped
check yaml...........................................(no files to check)Skipped
fix end of files.........................................................Passed
check for broken symlinks............................(no files to check)Skipped
mixed line ending........................................................Passed
fix python encoding pragma...............................................Passed
check docstring is first.................................................Passed
fix requirements.txt.................................(no files to check)Skipped
isort....................................................................Failed
- hook id: isort
- files were modified by this hook

Fixing /home/sara/projects/openverse/api/test/unit/serializers/test_media_serializers.py

pyupgrade................................................................Passed
ruff.....................................................................Passed
black....................................................................Passed
pydocstyle...............................................................Passed
eslint...............................................(no files to check)Skipped
prettier.................................................................Passed
ShellCheck v0.9.0....................................(no files to check)Skipped
shfmt................................................(no files to check)Skipped
Lint GitHub Actions workflow file Docker.............(no files to check)Skipped
types................................................(no files to check)Skipped
render-release-drafter...............................(no files to check)Skipped

Notice how on the first run both isort and ruff made changes, but there were still changes from isort in the second run.

Description

Remove isort entirely and rely exclusively on ruff, which can replace isort (this is part of ruff's feature set).

dhruvkb commented 1 year ago

This is already included in #787 (specifically in https://github.com/WordPress/openverse/issues/787#issuecomment-1448084056).