Super-Linter Upgrade Guide

This document provides instructions for upgrading between major versions of Super-Linter.

Upgrade from v7 to v8

Version 8.0.0 introduced several breaking changes by removing unmaintained linters and dependencies.

Removed Linters and Formatters

The following tools have been removed because they are unmaintained or were causing dependency conflicts:

  • gherkin-lint
  • Kubeconform
  • JavaScript Standard
  • Pyink
  • Raku compiler
  • tekton-lint
  • TypeScript Standard

If you were using these, you will need to find alternative linting solutions. You should remove any of the following environment variables from your configuration as they no longer have any effect:

FIX_JAVASCRIPT_STANDARD
FIX_PYTHON_PYINK
FIX_TYPESCRIPT_STANDARD
KUBERNETES_KUBECONFORM_OPTIONS
PYTHON_PYINK_CONFIG_FILE
TYPESCRIPT_STANDARD_TSCONFIG_FILE
VALIDATE_GHERKIN
VALIDATE_JAVASCRIPT_STANDARD
VALIDATE_KUBERNETES_KUBECONFORM
VALIDATE_PYTHON_PYINK
VALIDATE_RAKU
VALIDATE_TEKTON
VALIDATE_TYPESCRIPT_STANDARD

ESLint Configuration Changes

  • ESLint v9 Upgrade: Super-linter now uses ESLint v9. As part of this, eslint-config-airbnb-typescript and @react-native/eslint-config were removed due to incompatibility.
  • New Default Config File: The default ESLint configuration filename has been updated to align with the new "flat config" format. JAVASCRIPT_ES_CONFIG_FILE and TYPESCRIPT_ES_CONFIG_FILE now default to eslint.config.mjs.

Upgrade from v6 to v7

sql-lint Removal

  • Tool Removed: The sql-lint tool was removed due to being unmaintained and having security vulnerabilities.
  • Recommendation: If you were using VALIDATE_SQL, it is recommended to migrate to sqlfluff, which is also included in Super-Linter. See VALIDATE_SQLFLUFF.
  • Action Required: Remove the VALIDATE_SQL and SQL_CONFIG_FILE environment variables from your configuration.

Upgrade from v5 to v6

Version 6.0.0 introduced significant internal changes, including parallel execution and dependency updates. Key changes to be aware of include:

  • ERROR_ON_MISSING_EXEC_BIT Deprecated: This variable was removed. The VALIDATE_BASH_EXEC check now fails by default if a shell script is not executable. No action is needed other than removing the old variable.
  • JSCPD Behavior Change: The VALIDATE_JSCPD_ALL_CODEBASE variable is deprecated. JSCPD now always scans the entire workspace by default and no longer respects FILTER_REGEX_* variables.
  • Unsupported Configuration: Setting USE_FIND_ALGORITHM=true and VALIDATE_ALL_CODEBASE=false simultaneously is now a fatal error. Previously, this was silently ignored. Adjust your configuration to use only one of these modes for file discovery.
  • Kotlin Android: VALIDATE_KOTLIN_ANDROID is deprecated. Use VALIDATE_KOTLIN and configure ktlint for Android projects via its own configuration file.