build: update ruff and add lint-py-fix

PR-URL: https://github.com/nodejs/node/pull/54410
Reviewed-By: Christian Clauss <cclauss@me.com>
This commit is contained in:
Aviv Keller 2024-09-24 11:20:20 -04:00 committed by GitHub
parent 02e8972169
commit a1cd3c8777
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 9 deletions

View File

@ -1536,17 +1536,22 @@ cpplint: lint-cpp
# Try with '--system' if it fails without; the system may have set '--user' # Try with '--system' if it fails without; the system may have set '--user'
lint-py-build: lint-py-build:
$(info Pip installing ruff on $(shell $(PYTHON) --version)...) $(info Pip installing ruff on $(shell $(PYTHON) --version)...)
$(PYTHON) -m pip install --upgrade --target tools/pip/site-packages ruff==0.5.2 || \ $(PYTHON) -m pip install --upgrade --target tools/pip/site-packages ruff==0.6.5 || \
$(PYTHON) -m pip install --upgrade --system --target tools/pip/site-packages ruff==0.5.2 $(PYTHON) -m pip install --upgrade --system --target tools/pip/site-packages ruff==0.6.5
.PHONY: lint-py .PHONY: lint-py lint-py-fix lint-py-fix-unsafe
ifneq ("","$(wildcard tools/pip/site-packages/ruff)") ifneq ("","$(wildcard tools/pip/site-packages/ruff)")
# Lint the Python code with ruff. # Lint the Python code with ruff.
lint-py: lint-py:
$(info Running Python linter...) $(info Running Python linter...)
tools/pip/site-packages/bin/ruff check . tools/pip/site-packages/bin/ruff check .
lint-py-fix:
tools/pip/site-packages/bin/ruff check . --fix
lint-py-fix-unsafe:
tools/pip/site-packages/bin/ruff check . --fix --unsafe-fixes
else else
lint-py: lint-py lint-py-fix lint-py-fix-unsafe:
$(warning Python linting with ruff is not available) $(warning Python linting with ruff is not available)
$(warning Run 'make lint-py-build') $(warning Run 'make lint-py-build')
endif endif
@ -1604,6 +1609,7 @@ lint-clean:
$(RM) tools/.*lintstamp $(RM) tools/.*lintstamp
$(RM) .eslintcache $(RM) .eslintcache
$(RM) -r tools/eslint/node_modules $(RM) -r tools/eslint/node_modules
$(RM) tools/pip/site_packages
HAS_DOCKER ?= $(shell command -v docker > /dev/null 2>&1; [ $$? -eq 0 ] && echo 1 || echo 0) HAS_DOCKER ?= $(shell command -v docker > /dev/null 2>&1; [ $$? -eq 0 ] && echo 1 || echo 0)

View File

@ -34,7 +34,7 @@ import json
import utils import utils
import signal import signal
import sys import sys
import xml.etree.ElementTree as xml import xml.etree.ElementTree as ET
def IsExitCodeCrashing(exit_code): def IsExitCodeCrashing(exit_code):
if utils.IsWindows(): if utils.IsWindows():
@ -44,22 +44,22 @@ def IsExitCodeCrashing(exit_code):
class JUnitTestOutput: class JUnitTestOutput:
def __init__(self, test_suite_name): def __init__(self, test_suite_name):
self.root = xml.Element("testsuite") self.root = ET.Element("testsuite")
self.root.attrib["name"] = test_suite_name self.root.attrib["name"] = test_suite_name
def HasRunTest(self, test_name, test_cmd, test_duration, test_failure): def HasRunTest(self, test_name, test_cmd, test_duration, test_failure):
test_case_element = xml.Element("testcase") test_case_element = ET.Element("testcase")
test_case_element.attrib["name"] = test_name test_case_element.attrib["name"] = test_name
test_case_element.attrib["cmd"] = test_cmd test_case_element.attrib["cmd"] = test_cmd
test_case_element.attrib["time"] = str(round(test_duration, 3)) test_case_element.attrib["time"] = str(round(test_duration, 3))
if test_failure is not None: if test_failure is not None:
failure_element = xml.Element("failure") failure_element = ET.Element("failure")
failure_element.text = test_failure failure_element.text = test_failure
test_case_element.append(failure_element) test_case_element.append(failure_element)
self.root.append(test_case_element) self.root.append(test_case_element)
def FinishAndWrite(self, f): def FinishAndWrite(self, f):
xml.ElementTree(self.root).write(f, "UTF-8") ET.ElementTree(self.root).write(f, "UTF-8")
def Main(): def Main():