new
improved
fixed
🎁 New
  • trunk config print
    Prints the current merged configuration.
  • trunk config hide
    Hides trunk configuration from git, for users who wish to use trunk but not check the configuration into the repo.
  • trunk config share
    Unhides trunk configuration from git.
  • Add download support for
    .gz
    downloads which are not also tarred.
✨ Improvements
  • Trunk launcher no longer prompts to download the latest version.
  • Text styling improvements in the CLI.
  • Running
    trunk init
    while in single-player mode will ask to put trunk in shared mode.
  • Failures running linters are now shown at the end of CLI output.
  • Auto-detect bazel vs compile_commands.json.
  • Auto-load all compile_commands.json in the
    build/
    directory.
  • Auto-load any compile_commands.json in any parent directory of a file to be linted.
  • When a git hook fails, trunk now communicates the action that was the source of the failure.
🔧 Fixes
  • The
    trunk-check-pre-push
    action now correctly loads compile commands.
  • When trunk creates new configs during init in single-player mode, trunk now ensures they are formatted properly according to the repos configuration.
  • Fix edge case where vscode would not receive updated diagnostics from trunk.
  • Fix edge case where LLVM output paths would not be parsed correctly.
new
🎁 New:
  • Trunk single player mode:
    trunk init --invisible
    will add
    .trunk
    to your local git ignores (.git/info/exclude) so you can use trunk with commiting anything to your repository.
  • trunk init share
    will remove
    .trunk
    from your local git ignores if it exists.
  • trunk init hide
    will add
    .trunk
    to your local git ignores if it doesn't exist.
  • When checking for the latest version of tools, trunk now uses its own caching service to avoid GitHub api limits.
  • New default action: trunk-share-with-everyone, creates a notification to unignore .trunk when it is found in
    .git/info/exclude
    .
  • Swift support (macOS only):
    stringslint
    ,
    swiftlint
    ,
    swiftformat
✨ Improved:
  • Trunk will now watch
    trunk.yaml
    and turn on git hook management automatically when enabling git hooks.
  • Trunk will now stop managing git hooks when the last git hook is disabled.
  • When trunk configuration is invalid, the errors are now presented as diagnostics instead of an error message.
  • Trunk now respects the environment variable
    XDG_CACHE_HOME
    when downloading and installing tools.
  • You can now
    trunk init
    outside a git repo by passing
    --force
    .
  • Trunk now merges all
    plugin.yaml
    found in plugins, allowing self-contained linter directories.
🔧 Fix:
  • Local plugin development ....
  • --jobs
    now works properly with
    --ci
  • TFLint
    configuration now correctly allows exit code 1, without causing errors in Trunk.
new
🔧 Fix:
  • Fixes rare crash when interrupting
    trunk check
new
🎁 New:
  • --output-file
    writes JSON to a file instead of
    stdout
    .
  • Trunk now allows storing any linter configuration file in
    .trunk/config
    instead of at the root of the repo, to hide the mess.
✨ Improved:
  • Arbitrary flags can now be appended to compile commands for C++ linters.
  • trunk-fmt-pre-commit
    action now only formats files that are modified in the index.
  • trunk init
    now writes runtime versions to trunk.yaml.
  • trunk upgrade
    now upgrades trunk, linters, and plugin sources instead of just trunk.
  • trunk init
    now asks the user if they want trunk to manage their git hooks. and if so asks to enable some useful git hooks.
  • trunk init
    now enables some useful default actions.
🔧 Fix:
  • trunk upgrade <linter>
    will no longer enable new linters.
  • Fix where action notifications sometimes would not go away.
  • Fix
    packages_file
    support in Plugins.
  • trunk upgrade --no-progress
    now works.
new
🎁 New:
  • New linter: include-what-you-use
  • Added more file type definitions.
✨ Improved:
  • Semgrep now runs on more file types
  • Trunk now handles inotify overflows in a more robust way!
  • Trunk will not lint files over 4MB (configurable).
  • Changed
    user_trunk.yaml
    to
    user.yaml
  • Trunk will now warn when it can't download for that platform.
  • Plugin repositories can now specify a minimum version of trunk required.
  • Linters using system version may now omit
    @SYSTEM
🔧 Fix:
  • Pylint caching bug fix.
  • Workaround for gitleaks bug on empty files.
  • Trunk pre-commit hook bug fix when used with
    git commit -a
  • Terraform now works in sub-directories
fixed
🔧 Bug Fixes
  • Fix regression in autopep8
  • Fix broken links to documentation
new
fixed
🎁 New
🔧 Bug Fixes
  • Fix occasional crash on first run of trunk after upgrading.
  • Fix parsing errors with some eslint and pylint plugins that wrote to standard output.
  • Trunk will now update .trunk/.gitignore on upgrades.
  • Work-around for some broken lsp clients that re-order events.
0.15.1-beta
new
✨ Improvements
  • It is now possible to re-enable a disabled linter
  • Fix
    check enable
    crash when using the java runtime.
🔧 Bug Fixes
  • LSP backend now never returns empty formatting results
0.15.0-beta
new
🎁 New
  • New linter
    git-diff-check
    : finds conflict markers in your files.
✨ Improvements
  • Trunk now detects when you are using linters configured in pyproject.toml or setup.cfg.
  • /trunk skip-check now supports Trunk Merge.
  • --all now implies --no-fix.
🔧 Bug Fixes
  • Language Server Protocol bug fixes.
  • Truncated line rendering bug fixes.
0.14.1-beta
improved
fixed
✨ Improvements
  • ::group::
    syntax is only used when running on github actions.
  • Trunk now crates a symlink to your logs in
    .trunk/logs
🔧 Bug Fixes
  • Better error message when running
    trunk daemon <command>
    outside a trunk-enabled repository.
  • Lsp server bug fixes.
  • trunk merge
    bug fixes.
Load More