diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c7e6c020..3844e9f0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,57 +1,58 @@ exclude: "^swh/web/tests/resources/" repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.1.0 hooks: - id: trailing-whitespace exclude: '.eml$' - id: check-json - id: check-yaml - repo: https://gitlab.com/pycqa/flake8 rev: 4.0.1 hooks: - id: flake8 + additional_dependencies: [flake8-bugbear==22.3.23] - repo: https://github.com/codespell-project/codespell rev: v2.1.0 hooks: - id: codespell name: Check source code spelling exclude: > (?x)^( cypress/integration/directory.spec.js| yarn.lock| package.json )$ args: [-L edn] stages: [commit] - id: codespell name: Check commit message spelling stages: [commit-msg] - repo: local hooks: - id: mypy name: mypy entry: env DJANGO_SETTINGS_MODULE=swh.web.settings.development mypy args: [swh] pass_filenames: false language: system types: [python] - id: eslint name: eslint entry: node_modules/.bin/eslint -c assets/config/.eslintrc language: system types: [javascript] - repo: https://github.com/PyCQA/isort rev: 5.10.1 hooks: - id: isort - repo: https://github.com/python/black - rev: 19.10b0 + rev: 22.3.0 hooks: - id: black diff --git a/setup.cfg b/setup.cfg index 20437a0a..85fa55d3 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,10 +1,12 @@ [radon] exclude = swh/web/tests/resources/* [flake8] # E203: whitespaces before ':' # E231: missing whitespace after ',' +# E501: line too long, use B950 warning from flake8-bugbear instead # W503: line break before binary operator -ignore = E203,E231,W503 +select = C,E,F,W,B950 +ignore = E203,E231,E501,W503 max-line-length = 88 diff --git a/tox.ini b/tox.ini index 19328899..062a46c2 100644 --- a/tox.ini +++ b/tox.ini @@ -1,76 +1,77 @@ [tox] envlist=black,flake8,mypy,py3 [testenv] extras = testing deps = pytest-cov commands = pytest \ slow: --hypothesis-profile=swh-web \ !slow: --hypothesis-profile=swh-web-fast \ --ignore-glob=*random_fixtures_test.py \ --cov {envsitepackagesdir}/swh/web --cov-branch {posargs} {envsitepackagesdir}/swh/web [testenv:flake8] skip_install = true deps = - flake8 + flake8==4.0.1 + flake8-bugbear==22.3.23 commands = {envpython} -m flake8 \ --exclude=.tox,.git,__pycache__,.eggs,*.egg,node_modules [testenv:mypy] setenv = DJANGO_SETTINGS_MODULE = swh.web.settings.development extras = testing deps = mypy==0.920 commands = mypy swh [testenv:black] skip_install = true deps = - black==19.10b0 + black==22.3.0 commands = {envpython} -m black --exclude swh/web/tests/resources --check swh # build documentation outside swh-environment using the current # git HEAD of swh-docs, is executed on CI for each diff to prevent # breaking doc build [testenv:sphinx] whitelist_externals = make usedevelop = true extras = testing deps = # fetch and install swh-docs in develop mode -e git+https://forge.softwareheritage.org/source/swh-docs#egg=swh.docs setenv = SWH_PACKAGE_DOC_TOX_BUILD = 1 # turn warnings into errors SPHINXOPTS = -W commands = make -I ../.tox/sphinx/src/swh-docs/swh/ -C docs # build documentation only inside swh-environment using local state # of swh-docs package [testenv:sphinx-dev] whitelist_externals = make usedevelop = true extras = testing deps = # install swh-docs in develop mode -e ../swh-docs setenv = SWH_PACKAGE_DOC_TOX_BUILD = 1 # turn warnings into errors SPHINXOPTS = -W commands = make -I ../.tox/sphinx-dev/src/swh-docs/swh/ -C docs