Releases: oxsecurity/megalinter
v7.5.0
What's Changed
-
Core
- mega-linter-runner: Convert to ES6 and upgrade npm dependencies. Node 18 minimum version is now required. by @nvuillam in #2976
- Allow to define
COMPILER_ONLY
virtual package as cargo dependency in descriptors to embed rust compiler in the Dockerfile - Optimize
@generated
marker scanning (#2654) by @sanmai-NL in #2654
-
Media
-
Fixes
- build.py: Remove exclusivity between pip, gem & cargo packages
- Salesforce linters: Switch sfdx-cli to @salesforce/cli
- Fixed issue with
actionlint
throwing an error onif
statements in the generated workflow file - Added default
.devskim.json
to mitigate errors introduced when no config exists (closes #3017) by @andrewvaughan in #3024 - Fix: Removed curly-brackets from if (closes #3025) by @andrewvaughan in #3029
-
Doc
-
CI
- Add the other maintainers globally to the CODEOWNERS file (#3008)
- Free disk space earlier in the process to avoid failure during docker build
- Set flavors-stats.json as a generated file in .gitattributes (#3023)
- Update and fix our ChatOps automations to only run on pull request comments, by @echoix in #3034
- Use App::cpm to install perlcritic faster, and clean
.perl-cpm
cache, by @echoix in #3036 - Add failure message in ChatOps build-command and Slash dispatcher, by @echoix in #3037
- TEMPLATES/mega-linter.yml: DRY the ifs by @rasa in #2957
-
Linter versions upgrades
- ansible-lint from 6.20.0 6.21.1
- bicep_linter from 0.21.1 to 0.22.6
- black from 23.9.1 to 23.10.1
- cfn-lint from 0.80.2 to 0.83.0
- checkov from 2.4.48 to 3.0.12
- checkstyle from 10.12.3 to 10.12.4
- clippy from 0.1.72 to 0.1.73
- clj-kondo from 2023.09.07 to 2023.10.20
- cspell from 7.3.6 to 7.3.8
- devskim from 1.0.22 to 1.0.23
- dotnet-format from 6.0.414 to 6.0.416
- editorconfig-checker from 2.7.1 to 2.7.2
- eslint-plugin-jsonc from 2.9.0 to 2.10.0
- eslint from 8.49.0 to 8.52.0
- golangci-lint from 1.54.2 to 1.55.1
- kics from 1.7.8 to 1.7.10
- ktlint from 1.0.0 to 1.0.1
- mypy from 1.5.1 to 1.6.1
- perlcritic from 1.150 to 1.152
- phpstan from 1.10.35 to 1.10.39
- powershell from 7.3.7 to 7.3.9
- powershell_formatter from 7.3.7 to 7.3.9
- protolint from 0.46.0 to 0.46.2
- puppet-lint from 4.2.0 to 4.2.1
- pylint from 2.17.5 to 3.0.2
- pyright from 1.1.327 to 1.1.333
- rubocop from 1.56.3 to 1.57.2
- ruff from 0.1.2 to 0.1.3
- ruff from 0.0.290 to 0.1.2
- semgrep from 1.41.0 to 1.46.0
- sfdx-scanner-apex from 3.16.0 to 3.17.0
- sfdx-scanner-aura from 3.16.0 to 3.17.0
- sfdx-scanner-lwc from 3.16.0 to 3.17.0
- snakefmt from 0.8.4 to 0.8.5
- sqlfluff from 2.3.2 to 2.3.5
- stylelint from 15.10.3 to 15.11.0
- swiftlint from 0.52.4 to 0.53.0
- syft from 0.91.0 to 0.94.0
- terraform-fmt from 1.5.7 to 1.6.2
- terragrunt from 0.51.4 to 0.53.0
- trivy-sbom from 0.45.1 to 0.46.1
- trivy from 0.45.1 to 0.46.1
- trufflehog from 3.56.1 to 3.61.0
- v8r from 2.0.0 to 2.1.0
- vale from 2.29.0 to 2.29.5
New Contributors
- @adhil0 made their first contribution in #2993
- @sanmai-NL made their first contribution in #2654
MegaLinter is graciously provided by
Full Changelog: v7.4.0...v7.5.0
MegaLinter v7.4.0
What's Changed
-
Core
-
Media
-
Fixes
- Fix IGNORE_GITIGNORED_FILES not working anymore , by @iisisrael in #2967
- Fix v7 issue when using MEGALINTER_FILES_TO_LINT (thanks @pfiaux !) by @nvuillam in #2917
- Fix Ignore symlink files when VALIDATE_ALL_CODEBASE is false by @nvuillam in #2964
- Fix rstcheck options & install by @nvuillam in #2899
- Undowngrade Kubescape by @nvuillam in #2901
-
Doc
-
CI
- Reformatted config files to not fail common linters (closes #2890) by @andrewvaughan in #2891
- Workflow job name changed from
build
tomegalinter
to prevent conflicts with other workflows - Add support for master branch in TEMPLATES/mega-linter.yml by @rasa in #2888
- Upgrade editorconfig-checker & setup-node by @nvuillam in #2898
-
Deprecations
- Deprecate SCSS LINT as not maintained anymore (https://github.com/sds/scss-lint#notice-consider-other-tools-before-adopting-scss-lint) by @nvuillam in #2902
-
Linter versions upgrades
- actionlint from 1.6.25 to 1.6.26
- ansible-lint from 6.17.2 to 6.20.0
- bicep_linter from 0.20.4 to 0.21.1
- black from 23.7.0 to 23.9.1
- cfn-lint from 0.79.6 to 0.80.2
- checkov from 2.3.360 to 2.4.10
- checkstyle from 10.12.2 to 10.12.3
- chktex from 1.7.6 to 1.7.8
- clippy from 0.1.71 to 0.1.72
- clj-kondo from 2023.07.13 to 2023.09.07
- cspell from 6.31.3 to 7.3.6
- devskim from 1.0.18 to 1.0.22
- djlint from 1.32.1 to 1.34.0
- dotnet-format from 6.0.413 to 6.0.414
- editorconfig-checker from 2.7.0 to 2.7.1
- eslint from 8.46.0 to 8.49.0
- git_diff from 2.38.5 to 2.40.1
- gitleaks from 8.17.0 to 8.18.0
- golangci-lint from 1.54.0 to 1.54.2
- helm from 3.10.2 to 3.11.3
- jscpd from 3.5.9 to 3.5.10
- kics from 1.7.5 to 1.7.8
- ktlint from 0.50.0 to 1.0.0
- kubescape from 2.3.6 to 2.9.0
- markdownlint from 0.35.0 to 0.36.0
- mypy from 1.4.1 to 1.5.1
- phpstan from 1.10.28 to 1.10.35
- powershell from 7.3.6 to 7.3.7
- powershell_formatter from 7.3.6 to 7.3.7
- prettier from 3.0.1 to 3.0.3
- protolint from 0.45.0 to 0.46.0
- psalm from Psalm.5.14.1@ to Psalm.5.15.0@
- puppet-lint from 4.0.1 to 4.2.0
- pyright from 1.1.321 to 1.1.327
- revive from 1.3.2 to 1.3.4
- rstcheck from 6.1.2 to 6.2.0
- rstfmt from 0.0.13 to 0.0.14
- rubocop from 1.56.0 to 1.56.3
- ruff from 0.0.284 to 0.0.290
- scalafix from 0.11.0 to 0.11.1
- semgrep from 1.34.1 to 1.41.0
- sfdx-scanner-apex from 3.15.0 to 3.16.0
- sfdx-scanner-aura from 3.15.0 to 3.16.0
- sfdx-scanner-lwc from 3.15.0 to 3.16.0
- snakemake from 7.32.3 to 7.32.4
- spectral from 6.10.1 to 6.11.0
- sqlfluff from 2.2.1 to 2.3.2
- stylelint from 15.10.2 to 15.10.3
- syft from 0.86.1 to 0.91.0
- terraform-fmt from 1.5.4 to 1.5.7
- terragrunt from 0.48.6 to 0.51.3
- terrascan from 1.18.2 to 1.18.3
- tflint from 0.47.0 to 0.48.0
- trivy-sbom from 0.44.0 to 0.45.1
- trivy from 0.44.0 to 0.45.1
- trufflehog from 3.47.0 to 3.56.1
- vale from 2.28.1 to 2.29.0
- xmllint from 21004 to 21104
New Contributors
MegaLinter is graciously provided by
Full Changelog: v7.3.0...v7.4.0
MegaLinter v7.3.0
What's Changed
-
Features
-
Media
- Article: Azure Devops & MegaLinter Auto PR, by @EtienneDeneuve
-
Fixes
- Replace
https://megalinter.io/config-file
byhttps://megalinter.io/latest/config-file
to avoid lychee 404 detection, by @nvuillam in #2871 - Improve docs for posting comments to PRs in GitHub Enterprise
- Configured Grype to automatically ignore CVE-2018-20225 which is disputed, by @andrewvaughan in #2864
- docs: improve wording for GHE API endpoint, by @mihaigalos in #2876
- Update Azure Installation doc to handle auto-commit, by @EtienneDeneuve in #2848
- Replace
-
Linter versions upgrades
- bicep_linter from 0.19.5 to 0.20.4
- cfn-lint from 0.79.2 to 0.79.6
- checkov from 2.3.343 to 2.3.360
- checkstyle from 10.12.1 to 10.12.2
- cspell from 6.31.2 to 6.31.3
- devskim from 1.0.1 to 1.0.18
- dotnet-format from 6.0.412 to 6.0.413
- eslint from 8.45.0 to 8.46.0
- flake8 from 6.0.0 to 6.1.0
- golangci-lint from 1.53.3 to 1.54.0
- kics from 1.7.4 to 1.7.5
- phpstan from 1.10.26 to 1.10.28
- prettier from 3.0.0 to 3.0.1
- psalm from Psalm.5.13.1@ to Psalm.5.14.1@
- puppet-lint from 4.0.0 to 4.0.1
- pyright from 1.1.318 to 1.1.321
- rubocop from 1.55.0 to 1.56.0
- ruff from 0.0.280 to 0.0.284
- secretlint from 7.0.3 to 7.0.7
- semgrep from 1.33.2 to 1.34.1
- sfdx-scanner-apex from 3.14.0 to 3.15.0
- sfdx-scanner-aura from 3.14.0 to 3.15.0
- sfdx-scanner-lwc from 3.14.0 to 3.15.0
- snakemake from 7.31.0 to 7.32.3
- spectral from 6.10.0 to 6.10.1
- sqlfluff from 2.1.4 to 2.2.1
- syft from 0.85.0 to 0.86.1
- terraform-fmt from 1.5.3 to 1.5.4
- terragrunt from 0.48.4 to 0.48.6
- terrascan from 1.18.1 to 1.18.2
- trivy-sbom from 0.43.1 to 0.44.0
- trivy from 0.43.1 to 0.44.0
- trufflehog from 3.45.1 to 3.47.0
New Contributors
- @andrewvaughan made their first contribution in #2864
- @mihaigalos made their first contribution in #2876
MegaLinter is graciously provided by
Full Changelog: v7.2.1...v7.3.0
MegaLinter v7.2.1
What's Changed
-
Fixes
- Fix TAP reporter (3 real dots instead if 3 dots character), by @nvuillam & @maxilampert in #2837
- Call trufflehog with
--only-verified
to avoid false positives in .git/config, by @nvuillam , @quotidian-ennui , @iggy & @dochang in #2838- If you added
REPOSITORY_TRUFFLEHOG_ARGUMENTS: "--only-verified"
as workaround, just remove it to upgrade to 7.2.1
- If you added
-
Linter versions upgrades
MegaLinter is graciously provided by
Discover CodeTotal , a new way to use MegaLinter, at BlackHat USA on August 10 !
Full Changelog: v7.2.0...v7.2.1
MegaLinter v7.2.0
Discover CodeTotal , a new way to use MegaLinter, at BlackHat USA on August 10 !
What's Changed
-
New linters
- Add Lychee - links and email addresses checker, by @DariuszPorowski in #2673
- Add grype security linter
- Add trufflehog security linter
-
New flavor dotnetweb: dotnet flavor linters + Javascript & Typescript linters
-
Media
-
Core
- MegaLinter Server for CodeTotal
- Improvements to Gitpod workspace and addition of Makefile for automation, by @ThomasSanson in #2737
-
Fixes
- Handle reporter crashes without making all ML crash
- Devskim: Remove default --ignore-globs argument
- mypy: Use /tmp as cache folder by default with ENV MYPY_CACHE_DIR=/tmp in Dockerfile
- Fix
hadolint
to use its default configuration file properly, by @KihyeokK in #2763 - Remove linters not in flavor before calling reporters
- Undowngrade devskim, by @nvuillam in #2748
- Add ts-standard linter for ts standard, by @janderssonse in #2746
- Remove additional
--update
for apk in Dockerfile by @PeterDaveHello in #2619 - Fix V8R config arg usage (#2756), by @bdovaz in #2819
-
Reporters
- New Redis reporter (beta)
-
CI
- Clean docker build cache to avoid no space left on device during Build Dev job
-
Linter versions upgrades
- actionlint from 1.6.24 to 1.6.25
- ansible-lint from 6.16.2 to 6.17.2
- bicep_linter from 0.17.1 to 0.19.5
- black from 23.3.0 to 23.7.0
- cfn-lint from 0.77.10 to 0.78.2
- checkov from 2.3.285 to 2.3.340
- checkstyle from 10.12.0 to 10.12.1
- clippy from 0.1.70 to 0.1.71
- clj-kondo from 2023.05.26 to 2023.07.13
- csharpier from 0.24.2 to 0.25.0
- cspell from 6.31.1 to 6.31.2
- devskim from 0.7.104 to 1.0.11
- djlint from 1.30.2 to 1.32.1
- dotnet-format from 6.0.408 to 6.0.412
- eslint-plugin-jsonc from 2.8.0 to 2.9.0
- eslint from 8.42.0 to 8.45.0
- gitleaks from 8.16.4 to 8.17.0
- golangci-lint from 1.53.2 to 1.53.3
- grype from 0.63.1 to 0.63.1
- kics from 1.7.1 to 1.7.4
- ktlint from 0.49.1 to 0.50.0
- kubeconform from 0.6.2 to 2.3.6
- markdownlint from 0.34.0 to 0.35.0
- mypy from 1.3.0 to 1.4.1
- npm-package-json-lint from 6.4.0 to 7.0.0
- phpstan from 1.10.18 to 1.10.26
- powershell from 7.3.4 to 7.3.6
- powershell_formatter from 7.3.4 to 7.3.6
- prettier from 2.8.8 to 3.0.0
- protolint from 0.44.0 to 0.45.0
- psalm from Psalm.5.12.0@ to Psalm.5.13.1@
- pyright from 1.1.313 to 1.1.318
- rubocop from 1.52.0 to 1.54.2
- ruff from 0.0.272 to 0.0.280
- secretlint from 6.2.3 to 7.0.3
- semgrep from 1.26.0 to 1.33.2
- sfdx-scanner-apex from 3.13.0 to 3.14.0
- sfdx-scanner-aura from 3.13.0 to 3.14.0
- sfdx-scanner-lwc from 3.13.0 to 3.14.0
- shfmt from 3.6.0 to 3.7.0
- snakemake from 7.26.0 to 7.30.2
- sqlfluff from 2.1.1 to 2.1.3
- stylelint from 15.10.0 to 15.10.0
- swiftlint from 0.52.2 to 0.52.4
- syft from 0.83.0 to 0.85.0
- terraform-fmt from 1.4.6 to 1.5.3
- terragrunt from 0.46.3 to 0.48.4
- tflint from 0.46.1 to 0.47.0
- trivy from 0.42.1 to 0.43.1
- vale from 2.27.0 to 2.28.1
New Contributors
- @KihyeokK made their first contribution in #2763
- @PeterDaveHello made their first contribution in #2619
MegaLinter is graciously provided by
Full Changelog: v7.1.0...v7.2.0
MegaLinter v7.1.0
What's Changed
-
Core
-
Linter enhancements & fixes
- cljstyle: Remove default value for configuration file name, by @nvuillam in #2717
- golangci-lint : Add autofix capability using --fix argument, by @seaneagan in #2700
-
Linter versions upgrades
- cfn-lint from 0.77.5 to 0.77.7
- checkov from 2.3.267 to 2.3.285
- clippy from 0.1.69 to 0.1.70
- clj-kondo from 2023.05.18 to 2023.05.26
- djlint from 1.30.0 to 1.30.2
- eslint from 8.41.0 to 8.42.0
- gitleaks from 8.16.3 to 8.16.4
- golangci-lint from 1.52.2 to 1.53.2
- kubeconform from 0.6.1 to 0.6.2
- kubescape from 2.3.4 to 2.3.5
- luacheck from 1.1.0 to 1.1.1
- markdownlint from 0.33.0 to 0.34.0
- phpstan from 1.10.15 to 1.10.18
- pyright from 1.1.311 to 1.1.313
- rubocop from 1.51.0 to 1.52.0
- ruff from 0.0.270 to 0.0.272
- scalafix from 0.10.4 to 0.11.0
- semgrep from 1.24.0 to 1.26.0
- sfdx-scanner-apex from 3.12.0 to 3.13.0
- sfdx-scanner-aura from 3.12.0 to 3.13.0
- sfdx-scanner-lwc from 3.12.0 to 3.13.0
- stylelint from 15.6.2 to 15.7.0
- syft from 0.82.0 to 0.83.0
- terragrunt from 0.45.17 to 0.46.3
- trivy from 0.41.0 to 0.42.1
New Contributors
- @seaneagan made their first contribution in #2700
MegaLinter is graciously provided by
Full Changelog: v7.0.4...v7.1.0
MegaLinter v7.0.4
What's Changed
-
Core
-
Documentation
-
Linter versions upgrades
MegaLinter is graciously provided by
Full Changelog: v7.0.3...v7.0.4
MegaLinter v7.0.3
What's Changed
-
Linter enhancements & fixes
- New variable TERRAFORM_TFLINT_SECURED_ENV with default value
true
. Set tofalse
to allowtflint --init
to access your env vars.
- New variable TERRAFORM_TFLINT_SECURED_ENV with default value
-
Core
- Secure PRE_COMMANDS and POST_COMMANDS by default
- Can be disabled with secured_env: false in the command definition
- Manage v6 retrocompatibility with FILTER_REGEX_INCLUDE and FILTER_REGEX_EXCLUDE expression
-
Linter versions upgrades
- checkov from 2.3.259 to 2.3.261
- checkstyle from 10.11.0 to 10.12.0
- kubescape from 2.3.3 to 2.3.4
MegaLinter is graciously provided by
Full Changelog: v7.0.2...v7.0.3
MegaLinter v7.0.2
What's Changed
To upgrade to MegaLinter v7, run npx mega-linter-runner@latest --upgrade
, comment here if you have any issue :)
-
MAJOR Updates
- SECURED_ENV_VARIABLES & core scoped configuration by @nvuillam in #2601
- New configuration variables SECURED_ENV_VARIABLES and SECURED_ENV_VARIABLES_DEFAULT to hide your environment sensitive variables to the linters called by MegaLinter
- Read documentation to enhance security using MegaLinter
- Use relative file paths to call linters by @nvuillam in #1877
- This can be a breaking change for customizations, post an issue if you see a problem !
- SECURED_ENV_VARIABLES & core scoped configuration by @nvuillam in #2601
-
New linters
- Add linter cljstyle, Clojure formatter, by @practicalli-john in #2115
- Add kubescape, kubernetes linter, by @muandane in #2531
- Add Vale, a powerful enforcer of writing style, by @wesley-dean-flexion in #2406
-
Removed linters
- KUBERNETES_KUBEVAL: Not maintained anymore (kubeconform recommended by the authors)
- REPOSITORY_GOODCHECK: Not open-source anymore
- SPELL_MISSPELL: Not maintained anymore (last commit in 2018)
- TERRAFORM_CHECKOV: Replaced by REPOSITORY_CHECKOV
- TERRAFORM_KICS: Replaced by REPOSITORY_KICS
-
Medias
- Article: Use the Workflows JSON schema in your IDE, by Google Cloud
- Video: Ortelius Architecture Meeting, with a review of MegaLinter, by Steve Taylor from Ortelius
- Web site: my-devops-lab.com
-
Linter enhancements & fixes
- cspell
- eslint
- Ensure ESLint actually runs in project mode (#1572) by @Kurt-von-Laven in #2455
- jscpd
- Gitleaks
- Add support to scan PR commits only on PRs when
VALIDATE_ALL_CODEBASE
is set tofalse
, by @DariuszPorowski #2504
- Add support to scan PR commits only on PRs when
- KICS
- KubeConform
- PHPLint
- sqlfluff
- Remove old options from SQLFluff config file by @tunetheweb in #2560
- v8r
-
Core
- Upgrade base Docker image to python:3.11.3-alpine3.17 by @nvuillam in #2537
- Allow simultaneous regex filtering at descriptor and linter levels by @nvuillam & @seaneagan in #2669
- Allow MEGALINTER_CONFIG to contain a full path to a MegaLinter config file by @nvuillam in #2649
- Fix issue preventing plugins to work with flavors by @nvuillam in #2532
- Fix crash in case of unreachable symlinks by @nvuillam in #2538
- mega-linter-runner: Use --platform also for docker run by @nvuillam , @Kurt-von-Laven & @cam-barts in #2690
- Replace deprecated distutils.copy_tree by shutil.copytree
-
Reporters
- SARIF_REPORTER
- Add option to skip def_ws prefix in sarif reports by @janderssonse in #2383
- update schema to pass official SARIF validator by @DariuszPorowski in #2645
- CONFIG_REPORTER
- Add support for idea plugins auto-install by @waterfoul in #2553
- CONSOLE_REPORTER
- Updated cases in console/log output to use ⚠
Warning Sign (U+26A0)
instead of ◬White Up-Pointing Triangle with Dot (U+25EC)
, by @Doommius
- Updated cases in console/log output to use ⚠
- GITLAB_COMMENT_REPORTER
- Enhancement & fixes for GitlabCommentReporter by @nvuillam in #2564
- New var GITLAB_COMMENT_REPORTER_OVERWRITE_COMMENT to allow to disable the overwrite of existing MegaLinter comment in case of new run
- In case of overwrite activated (by default), fetch all Merge Request comments, not the first 20.
- Display a different message in log when a Merge Request comment is created or updated.
- Enhancement & fixes for GitlabCommentReporter by @nvuillam in #2564
- AZURE_COMMENT_REPORTER
- SARIF_REPORTER
-
Documentation
- Improve documentation pages split by @nvuillam in #2688
- Now Installation and Configuration menus have their own child menus
- Doc about how to use fine grained PAT by @nvuillam in #2662
- Fixed incorrect link in Azure to Gitlab reporters pages. by @Doommius in #2613
- Added bitbucket job template + Fix icon in console logs by @Doommius in #2617
- Exclude licenses pages from online search results by @nvuillam in #2665
- Improve HTML tables display by @nvuillam in #2670
- Remove ASCII characters from linters helps displayed in MegaLinter documentation
- Improve documentation pages split by @nvuillam in #2688
-
Internal CI
- Upgrade GitHub Actions to change automated comments and increase timeout by @nvuillam in #2536
- Use Github Permissions instead of PAT by @nvuillam in #2652
- Update GitHub Actions workflows environments by @nvuillam in #2657
- Automate External Plugins table generation using .automation/plugins.yml file by @nvuillam in #2667
- Fix MegaLinter build issue by @nvuillam in #2539
- Fix for trivy-action (new naming for input) by @DariuszPorowski in #2541
- Fix
/build
slash command to checkout the correct PR branch by @echoix in #2542 - Fix local run of python test cases by @nvuillam in #2565
- Fix mkdocs documentation generation by downgrading mkdocs-glightbox to 0.3.2 by @nvuillam in #2582
- Do not push to docker from dev PRs by @nvuillam in #2639
- Update stale workflow: remove trigger on comments and explicit permissions by @echoix in #2641
- Decouple updating docker pull stats from building docs by @echoix in #2677
- Review MegaLinter's own cspell word list for outdated exclusions by @echoix in #2676
- Run stale workflow only on schedule, by @echoix in #2641
- Add explicit permissions to stale workflow, by @echoix in #2641
-
Linter versions upgrades
- actionlint from 1.6.23 to 1.6.24
- ansible-lint from 6.14.4 to 6.16.2
- bicep_linter from 0.15.31 to 0.17.1
- cfn-lint from 0.76.1 to 0.77.5
- checkov from 2.3.149 to 2.3.259
- checkstyle from 10.9.3 to 10.11.0
- [clippy](https://git...
MegaLinter v6.22.2
What's Changed
-
Fixes
-
Linter versions upgrades
- ansible-lint from 6.14.3 to 6.14.4
- checkov from 2.3.145 to 2.3.149
- pylint from 2.17.1 to 2.17.2
- rubocop from 1.48.1 to 1.49.0
MegaLinter is graciously provided by
Full Changelog: v6.22.1...v6.22.2