diff --git a/.gitignore b/.gitignore index c0053a07323419..b7a33d86bedf61 100644 --- a/.gitignore +++ b/.gitignore @@ -9,9 +9,11 @@ !deps/**/.* !test/fixtures/**/.* !.clang-format +!.cpplint !.editorconfig !.eslintignore !.eslintrc.js +!.eslintrc.yaml !.flake8 !.gitattributes !.github @@ -19,8 +21,7 @@ !.gitkeep !.mailmap !.nycrc -!.eslintrc.yaml -!.cpplint +!.yamllint.yaml # === Rules for root dir === /core diff --git a/.yamllint.yaml b/.yamllint.yaml new file mode 100644 index 00000000000000..d4af06e4156947 --- /dev/null +++ b/.yamllint.yaml @@ -0,0 +1,8 @@ +extends: relaxed + +rules: + line-length: disable + +ignore: | + /deps/ + node_modules/ diff --git a/Makefile b/Makefile index cc0539d98e8ab9..baae6a3b46bd26 100644 --- a/Makefile +++ b/Makefile @@ -1389,13 +1389,13 @@ cpplint: lint-cpp .PHONY: lint-py-build # python -m pip install flake8 -# Try with '--system' is to overcome systems that blindly set '--user' +# Try with '--system' if it fails without; the system may have set '--user' lint-py-build: $(info Pip installing flake8 linter on $(shell $(PYTHON) --version)...) $(PYTHON) -m pip install --upgrade -t tools/pip/site-packages flake8 || \ $(PYTHON) -m pip install --upgrade --system -t tools/pip/site-packages flake8 -ifneq ("","$(wildcard tools/pip/site-packages)") +ifneq ("","$(wildcard tools/pip/site-packages/flake8)") .PHONY: lint-py # Lints the Python code with flake8. # Flag the build if there are Python syntax errors or undefined names @@ -1407,6 +1407,24 @@ lint-py: $(warning Run 'make lint-py-build') endif +.PHONY: lint-yaml-build +# python -m pip install yamllint +# Try with '--system' if it fails without; the system may have set '--user' +lint-yaml-build: + $(info Pip installing yamllint on $(shell $(PYTHON) --version)...) + $(PYTHON) -m pip install --upgrade -t tools/pip/site-packages yamllint || \ + $(PYTHON) -m pip install --upgrade --system -t tools/pip/site-packages yamllint + +.PHONY: lint-yaml +# Lints the YAML files with yamllint. +lint-yaml: + @if [ -d "tools/pip/site-packages/yamllint" ]; then \ + PYTHONPATH=tools/pip $(PYTHON) -m yamllint .; \ + else \ + echo 'YAML linting with yamllint is not available'; \ + echo "Run 'make lint-yaml-build'"; \ + fi + .PHONY: lint .PHONY: lint-ci ifneq ("","$(wildcard tools/node_modules/eslint/)") @@ -1416,11 +1434,12 @@ lint: ## Run JS, C++, MD and doc linters. $(MAKE) lint-cpp || EXIT_STATUS=$$? ; \ $(MAKE) lint-addon-docs || EXIT_STATUS=$$? ; \ $(MAKE) lint-md || EXIT_STATUS=$$? ; \ + $(MAKE) lint-yaml || EXIT_STATUS=$$? ; \ exit $$EXIT_STATUS CONFLICT_RE=^>>>>>>> [[:xdigit:]]+|^<<<<<<< [[:alpha:]]+ # Related CI job: node-test-linter -lint-ci: lint-js-ci lint-cpp lint-py lint-md lint-addon-docs +lint-ci: lint-js-ci lint-cpp lint-py lint-md lint-addon-docs lint-yaml-build lint-yaml @if ! ( grep -IEqrs "$(CONFLICT_RE)" --exclude="error-message.js" benchmark deps doc lib src test tools ) \ && ! ( $(FIND) . -maxdepth 1 -type f | xargs grep -IEqs "$(CONFLICT_RE)" ); then \ exit 0 ; \