Changelog

🎁 New

Add an option to skip files that are missing compile commands.

✨ Improvements

  • Trunk will now automatically cleanup downloads that have not been used in awhile.

  • Trunk will now enable eslint version >= 9 if you use the new style config files.

  • Trunk now allows running node based tools from node_modules/.bin instead of hermetically managed.

🔧 Fixes

  • Fix Ruby installation on some machines.

🎁 New

- New linter Vale. Thanks @gewenyu99 for the contribution!

- New formatter php-cs-fixer. Thanks @matthewbaggett for the contribution!

- New tools phpunit and paratest. Thanks @matthewbaggett for the contribution!

- New tool docker-credential-ecr-login

✨ Improvements

- Official support for eslint@9.x. For more information, see our migration guide.

- Add missing health checks for several tools

- Fix error handling for biome fmt

- Cleanup contributing and style guide

- More concise `bazel` filetypes

🔧 Fixes

- Support more ruby version formats

- Pin versions for npm-check-pre-push action

- Fix parsing of trivy terraform issues

🎁 New

  • Added a new severity level, note, which is not blocking by default.

  • Trunk can now upload issues to our web app without requiring our GitHub app to be installed.

✨ Improvements

  • Trunk now provides more informative text for many commands.

  • Trunk will now attempt to repair symlinks in the .trunk directory on startup.

  • Added support for gzipped executables via the rename_single_file option. Learn more.

🔧 Fixes

  • Fixed an off-by-one error in the LSP server when a file did not end with a newline.

  • Addressed several edge cases where Trunk would incorrectly complain that a trunk-ignore was not suppressing an issue.

  • A trunk-ignore that is not suppressing a lint issue is now assigned note severity and is not blocking by default.

  • Fixed an edge case involving golangci-lint and Trunk's sandboxing.

🎁 New

  • The extension now has an installed/recommended view for linters and plugins.

🎁 New

  • The extension now has Trunk account integration.

✨ Improvements

  • Improves stability on extension reload.

🎁 New

  • New runtime: php

  • New linter and tool: tofu

  • New linter: phpstan

  • New Poetry git-hook actions

  • New tool: difft

  • New tool: yq

  • New tool: goreleaser. Thanks @matthewbaggett for the contribution!

✨ Improvements

  • Breaking change: Update default commitlint to v19 (updated guide). Thanks @rriski for the contribution!

  • Fixes for trufflehog and buildifier

  • Don't run clang-tidy from LSP by default

  • Run ruff on python-interface files

  • Run prettier on postcss files

  • Run clang-format on cuda files

  • Upgrade ruby-build

  • Don't recommend terrascan by default. Thanks @yu-iskw for the contribution!

  • Add descriptions for each linter

🔧 Fixes

  • Add support for pmd@7.0.0

  • Support React-style comments in JSX/TSX files

Note: We do not yet officially support eslint@9.x. If you want to start using it, see our migration guide.

✨ Improvements

  • Many optimizations to make trunk faster in very large repositories.

  • Improved error reporting for failed upstream detection.

  • Add support for git repositories using the `skipHash` option.

  • Trunk Action execution now respects the order in which they are enabled.

  • Added LSP capabilities to support client implementations.

🔧 Fixes

  • Numerous Windows fixes.

  • Various LSP fixes.

✨ Improvements

  • The extension is more robust to reloads on upgrade.

  • The extension provides error messages if the trunk version is invalid.

🎁 New

  • New linter/formatter: dart

  • New linter: regal

  • New formatter: opa

✨ Improvements

  • Simplify markdownlint default config file

  • Support sqlfluff@>=3.0.0

  • Support python@3.12.2

🔧 Fixes

  • Fix package name in messages from osv-scanner

  • Update prettier parsing to respect syntax errors in whole output

🎁 New

  • Added support for `--color=false` to disable color output in the CLI.

Add experimental support for the new upstream_mode option to better support tools that don't work well with symlinked files.

✨ Improvements

  • Don't exit with status 1 if Trunk fails to post annotations to GitHub.

  • Improve check output when `--ci` is specified.

🔧 Fixes

  • Npm package installs are now correctly passed environment variables.

  • Fix a rare crash when a large number of files are ignored in trunk.yaml.

🎁 New

  • New linter and formatter: psscriptanalyzer. Thanks @natescherer for the contribution!

  • New tool: kubectl

  • New tool: pwsh

✨ Improvements

  • Update trunk-toolbox definition

  • Simplify trunk-check-pre-push-always to use native invocation

✨ Improvements

  • Inline annotation settings changes are now applied dynamically.

  • The extension provides better information to the user if the LSP server fails to launch.

🎁 New

  • Add support for Ruff formatting.

  • Add support for commitizen. Thanks @natescherer for the contribution!

  • Add support for cmake-format. Thanks @tmpsantos for the contribution!

✨ Improvements

  • Eslint and prettier now operate on .mjs files.

  • Trunk now auto-detects all stylelint config file names.

  • Golangci-lint is now exposed as a tool.