This repository uses a comprehensive linting setup for TypeScript, Go, Python, and Shell scripts. The goal is to ensure consistent code quality across all supported languages and to provide a portable linting experience that works on most machines.
To run all linters:
npm run lint
To run individual linters:
npm run lint:ts # TypeScript npm run lint:go # Go (runs both fmt and vet) npm run lint:py # Python npm run lint:sh # Shell
lint:ts)eslint.eslintrc.jsnpm. Uses ESLINT_USE_FLAT_CONFIG=false to ensure compatibility with the current configuration format.lint:go)gofmt, go vetnpm run lint:go:fmt executes bazel run //:gofmtnpm run lint:go:vet executes bazel run //:go -- vetlint:py)pylint.pylintrcrequirements.txtrules_python in WORKSPACE uses requirements.txt to fetch exactly the right version of pylint and its dependencies, ensuring that every developer runs the exact same linter regardless of what is installed on their host machine.requirements.txt is functionally required by the build system and cannot be removed without breaking the hermetic Python linting.lint:sh)shellchecknpm. shellcheck is installed as a devDependency in package.json, ensuring a consistent version is used across environments.