Home
Changelog
fixed
✨ Fixes
  • The vscode extension will not lint any files while git is in a merge or rebase state.
new
improved
fixed
🎁 New
  • The minimum supported version of the plugins repo is now implicitly loaded if not specified in the configuration.
✨ Improvements
  • Tools using the node runtime will now implicitly find extra packages installed by trunk.
  • The LSP server for vscode no longer clears diagnostics on edit and they will be moved around as appropriate.
  • Trunk actions now support an environments section, the same as linters.
  • trunk upgrade
    and
    trunk upgrade runtimes
    now upgrade runtime versions.
  • Plugin repositories can now specify runtimes. Internal runtime specifications will be moved to the trunk plugins repository soon.
🔧 Fixes
  • When using the system ruby, tools are now isolated from system gems.
fixed
🔧 Fixes
  • Fix a 1-minute delay after
    trunk check
    completes if a network firewall is active.
  • Fix a memory leak.
new
improved
fixed
🎁 New
  • Introducing LUV ❤️ (Linter Upgrade Validation). Trunk now periodically scans for new versions of linters and runs them against a suite of tests. Only when these tests pass will Trunk suggest that users upgrade to that version.
  • Trunk releases can now require a minimum version of the plugins repo to be active. If an older version is active, trunk will automatically use the newer version.
  • New Python linter: Ruff
✨ Improvements
  • SARIF parsing now supports autofixes.
  • Clippy now supports repos with multiple crates.
  • Brakeman now supports apps not in the root of the repo.
  • The LSP server now watches for deleted files and stops showing those lint results in vscode.
  • Bump the default Rust version to 1.67.0
  • Bump the default Go version to 1.19.5
  • Linters can now specify in configuration that they run on files or folders other than the input file itself.
🔧 Fixes
  • Fix various edge cases in matching for globs specified configuration.
  • Fix an edge case where the LSP server would not return results if a repo had no changes.
  • Fix auto-fixes not showing the name of the linter.
  • Ensure that runtimes are installed when used only by an action.
fixed
More bug fixes and responsiveness improvements for vscode.
🔧 Fixes
  • Fix for
    shfmt
    sometimes failing to read standard input.
  • Fix a memory leak in the LSP server.
  • Fix a crash on exit in the LSP server.
  • The LSP server now clears diagnostics and progress for closed files.
  • The LSP server now starts linting files sooner after saving and shows the pending status immediately.
improved
fixed
More bug fixes and stability improvements. Keep an eye on the plugins repo for a big new release coming soon!
✨ Improvements
  • When the computer is waking from sleep, don't schedule redundant time-based actions.
  • Ensure that the trunk daemon inherits no file descriptors from calling processes.
  • The
    trunk-fmt-pre-commit
    is now run in non-interactive contexts, such as vscode commit.
🔧 Fixes
  • Fix some trunk commands hanging when firewalls are active.
  • Increased stability of the LSP server.
  • Support parsing all issue levels in pylint.
  • Correctly call out how many new and existing issues have auto-fixes.
  • Support linter versions with pre-release semver tags.
  • Wait for filesystem events to settle down before checking for
    trunk.yaml
    deletion, which triggers daemon shutdown.
  • Fix a regression in spacebar skipping of checks in git hooks.
  • Fix bug where sometimes issues below the defined threshold were counted as blocking.
improved
fixed
Big emphasis on stability and bugfixes for this one!
✨ Improvements
  • Use JDKs instead of JREs for the Java 11 and Java 17 runtimes
  • Add support for
    trunk-ignore
    in SQL files
  • Return lint results in VSCode more responsively
🔧 Fixes
  • Add debug handling when a custom parser errors out
  • Teach
    trunk fmt
    to run
    svgo
  • Fix
    trunk-ignore-end
    parsing bug
  • Fix bug that would cause us to occasionally hang on shutdown
  • Fix
    ansible-lint
    integration starting from
    ansible-lint@5.4.0
  • Stop showing duplicate notices when running
    trunk check
  • Use linter configs from the appropriate commit, not the workspace, when running as a git hook
  • Fix
    trunk init -–lock
  • Make
    trunk check enable
    more resilient
new
fixed
🎁 New
  • Add support for
    clang-tidy@15.0.6
    and
    clang-format@15.0.6
🔧 Fixes
  • Fix internal handling of lint session completion
new
improved
fixed
🎁 New
  • New linter:
    kube-linter
    .
  • Cargo runtime support.
✨ Improvements
  • MacOS release binaries are now signed and notarized.
  • Action run commands now run in a bash shell by default.
  • Improved CLI display of multi-line linter messages.
  • trunk check enable
    now sets up default config files if the user does not already have one.
  • Linter definitions in plugin repositories can now specify default config files for users who don't already have one.
🔧 Fixes
  • Fix shebang scanning to allow arguments to the executable.
  • Fix for plugins finding
    packages_file
    relative to its definition path.
  • svgo now supports svgo.config.{js,mjs,cjs} instead of just .js.
  • Fix an empty file path header when an error occurs when running via a GitHub action.
new
improved
fixed
🎁 New
  • New command
    trunk deinit
    : Remove all traces of trunk from a repo.
  • Ability to save GitHub annotations to file for later uploading. This unlocks posting annotations from GitHub forks.
  • New command
    trunk check list
    : Lets the user know all available linters and how they apply to the current repo.
  • Integrate the Rome tool for formatting and linting.
✨ Improvements
  • If the user passed
    --no-fix
    , don't show auto-fix prompts at all.
  • Add a note to CLI output if there are any failures letting users know they can look at the details files.
  • Auto-fix prompts now have the
    all
    or
    none
    options.
  • trunk check
    now tells the user know how many issues have auto-fixes.
  • trunk check
    now tells the user know how many files were scanned.
  • Improved onboarding flow for enabling git hooks during init.
  • Make it clearer that formatting issues apply to the whole file.
  • Show the number of files each tool applies to on init and upgrade.
  • When a task failure contains a suggestion, show that to the user at the end of check output.
  • Give detailed error messages when trunk cannot determine your upstream git reference automatically.
  • Help text improvements.
  • Plugins will overwrite definitions instead of merging them, including previous plugins.
  • When using
    @SYSTEM
    Ruby, consider rbenv-installed Ruby versions with the highest priority.
  • Add support for additional versions of Python runtimes.
🔧 Fixes
  • Make daemon restarts more resilient.
  • Fix bug where
    trunk fmt
    would error when passed an absolute path outside the repository.
  • When linting C++, allow include scanning to fail for the upstream check.
  • Ensure we always shut down the daemon when trunk.yaml is deleted.
Load More