Move 'npm audit' execution to a dedicated target (and corresponding
step) so that we can modularize it, and avoid that it blocks that whole
test suite.
Move the python base image to a dedicated dependency group because some
Python wheels might not be available for newer Python versions yet. This
will avoid blocking python dependency updates waiting for wheels to be
rebuilt for a given python version.
Add support to run Commitlint against commit messages. It supports the
current modes:
- Lint the commit message of the last commit
- Lint the commit messages of the pushed commits in case there is more
than one pushed commit
This commit also removes stuff that we used to run commitlint as a
standalone tool because we can now use the commitlint instance that
Super-linter ships:
- lint-commit steps in lint-commit the GitHub Actions workflow
- lint-commit Make target
- commitlint and its dependencies in package.json and package-lock.json
- Update devcontainer by setting Prettier as a formatter only for
supported languages.
- Install only the VS Code extensions that we need for Super-linter
development.
- Remove the devcontainer as soon as it's not needed to avoid leaving
leftovers behind.
- Enable proseWrap in Prettier configuration.
- Update documentation about how to configure new linters.
- Fix linting issues.
Automatically append the 'version' configuration parameter to the
scalafmt configuration file when building the image instead of using a
GitHub Actions workflow to keep the scalafmt configuration file up to
date. This makes the building process more reproducible and
self-contained in the Dockerfile, and it also avoid stalling Dependabot
PRs that update scalafmt because when there are automatically added
commits to a PR, they block triggering workflows for that PR.
- Don't set BUILD_VERSION in CI/CD workflows otherwise the
build-metadata script will always fall back to those values instead of
computing new ones.
- When calculating BUILD_REVISION, check if BUILD_REVISION is set before
falling back.
Set BUILD_VERSION to the content of the version descriptor (version.txt)
if it changed in the last commit, assuming that the last commit was a
release preparation commit that updated the version descriptor.
Close#4928
- Remove test leftovers before initializing the workspace
against which fix mode tests run. This prevents ownership issues.
- Pass container image build metadata as outputs of the container image
build job so we can include the validate-container-image-labels target
as other test target when we build the test matrix.
- Manually include the 'test' target when building the test suite matrix
so we run it as part of the test suite to ensure that tests don't
pollute each other's working directory.
Fix#5994
- Add missing fix mode options for: CLANG_FORMAT, ENV,
GOOGLE_JAVA_FORMAT, NATURAL_LANGUAGE, PYTHON_ISORT, RUST_CLIPPY.
- Refactor linter tests to make them shorter because there's no need to
have big test files.
- Refactor 'bad' linter tests for linters that support fix mode so they
contain only automatically fixable issues. This is needed to avoid
adding another set of 'bad' linter tests for fix mode.
- Provide configuration files for linters that support fix mode and for
which the default configuration is not suitable to enable fix mode:
ansible-lint, ESLint, golangci-lint.
- Add a test case for linter commands options for linters that support
fix mode, to ensure that fix mode and check-only mode options have
been defined.
- Refactor the fix mode test to check if linters actually applied
modifications to files.
- Update documentation about adding test cases for linters that support
fix mode.
- Don't exit with a fatal error if VALIDATE_xxx is false when testing
fix mode because not all linters support fix mode. To enable this, set
the new FIX_MODE_TEST_CASE_RUN variable to true.
Remove the H1 heading from the PR template because GitHub automatically
add the commit description before emitting the PR template, so
contributors don't have to manually cut-paste the commit description
after the H1 heading.
Move internal-facing dependency updates out of the main changelog:
- Categorize GitHub Actions and dev dependency updates under the 'ci'
prefix.
- Categorize devcontainers updates under the 'chore' prefix.
- Allow using both Prettier and StandardJS at the same time by removing
JAVASCRIPT_DEFAULT_STYLE and TYPESCRIPT_DEFAULT_STYLE
configuration variables. They create a confusing corner case that
Super-linter already handles with its core logic that's in place to
enable and disable linters.
- Document VALIDATE_JAVASCRIPT_PRETTIER and VALIDATE_TYPESCRIPT_PRETTIER
because they were missing from the README.
- Add missing TYPESCRIPT_PRETTIER tests.
Set up dotenv-linter for the slim image, and not only for the standard
image because it doesn't have dependencies on the Rust SDK, and weights
less than 10MB.
- Always run the job to check if any job of the test matrix failed.
- Check if any job of the test matrix was skipped or cancelled, and not
just failed.
Given the amount of issues due to using outdated versions:
- Require users to reproduce issues with the latest Super-linter
version.
- Remind users to use super-linter/super-linter, and not the deprecated
github/super-linter.
- Ask contributors to check that CI jobs pass.
- Ask maintainers to put a PR in a milestone.
- Run a job after all the jobs in the dynamically built test matrix run
to completion. This job is useful for branch protection rules that
that need the whole test suite to run successfully.
- Fix linting issues.
Fix#5686