Changelog

🎁 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.

🎁 New

  • Trunk actions now support the ${target} substitution in their run command. This will be replaced with all targets that triggered the actions.

  • Trunk actions now support the ${pwd} substitution in their run_from specification. This will be replaced with the user's current working directory.

  • File ignores can now specify the session type for when it should apply.

✨ Improvements

  • During trunk init, the tool will now provide a summary of all issues that currently exist in your repo.

  • trunk init now supports the --allow-existing flag, to gracefully handle the case where a repository was already initialized.

🔧 Fixes

  • LSP Server optimizations.

  • Trunk will now automatically keep you logged in as you use the tool.

  • Fix a bug where batch bisection would not kick in when a linter was killed by a signal.

🎁 New

  • New linter: biome

  • Parse prettier failure messages into issues

✨ Improvements

  • Add support for python@3.11.6

  • Limit default clang-tidy concurrency

  • Enable batching for more linters

  • Add testing for Trunk Actions

🔧 Fixes

  • Fix run_from for include-what-you-use

  • Disable caching for rustfmt

🎁 New

  • Rewrite linters now have the ability to emit diagnostics.

✨ Improvements

  • Git hooks are less noisy when there is nothing to do.

🔧 Fixes

  • Fix for include-what-you-use not running from the correct working directory.

  • When running sub-proccesses at a low priority, trunk will now ensure the priority is never raised.

  • Ensure environment variables for temporary folders are set for Windows sub-processes.

  • Fix for Windows when your repository is not on the C: drive.

  • Shell hooks fix for paths with special characters.

✨ Improvements

  • File items are auto-expanded in the tree view as soon as they have diagnostics

  • The Actions pane is no longer displayed when a repo is not open

🔧 Fixes

  • Fix a crash if the trunk logs directory is deleted.

  • Fix logic for watching for trunk initialization on the command line under certain circumstances