improved
fixed
✨ Improvements
- The LSP server can now be configured to run fewer linters in the background.
- Stopped hiding the --cache flag from --help.
- Added validation to the lint ignore configuration to ensure both files and linters are specified.
- Ensured that trunk check --sample=N will give a good error message in the case when the configuration has errors.
🔧 Fixes
- Trunk will no longer run uncacheable linters in the background.
- Added extra logic to ensure we never cache a linter run when files have been modified.
- Fixed a bug in the LSP Server that could lead to a corrupted buffer when the editor submits multiple changes in a single edit notification.
- Trunk running in GitHub Actions will no longer result in extra newlines in the log.
fixed
🔧 Fixes
- Fix a segfault in the GitHub Actions integration
The release notes for 1.9.0 are included below:
🎁 New
- Allow users to use their own plugins to define a common set of enabled linters across all their repos: c.f. the linters we enable for ourselves and how we reference them
- Implement trunk upgrade --apply-to=file, to allow upgrading a shared config
- Improved detection of existing vs new issues has been turned on for everyone by default (hold_the_line_modenow defaults toword; see documentation)
🔌Plugins (new in 0.0.16, since 0.0.14)
- We now support gokart, trufflehog, and DJLint (our thanks to gejustin and fsargent for the contributions!)
- Allow specifying a buildifier config, using .buildifier.json(check out this PR for a usage example; specifically, you'll want.trunk/configs/buildifier.jsonand.trunk/configs/buildifier-tables.json)
- Teach cspell to correctly respect its sandboxed config
- Remove a broken hadolintdownload for M1 macs
✨ Improvements
- Introduce new linter config field suggest_ifto control what conditions we use to auto-recommend linters (example)
- Introduce new linter config field sandbox_typeto control how we sandbox linter execution (example)
- Allow individual linter commands to define the applicable files, instead of requiring them to do so in the top-level linter definition
- Surface useful errors when a tool has no matching specified download (e.g. if there is no arm64 download for a given linter and we're running on arm64, say so)
- Support trunk check --uploadwith payload sizes of >128MiB
- Suppress newline spam in GitHub Actions when using trunk check --ci --upload, and also make--ci --uploadwork correctly
- --verboselinter execution reports now include the CLI version
- Introduce debugging knobs for trunk actions and git hooks
🔧 Fixes
- Fix a race condition in how trunk actionoutput is logged
new
improved
fixed
🎁 New
- Allow users to use their own plugins to define a common set of enabled linters across all their repos: c.f. the linters we enable for ourselves and how we reference them
- Implement trunk upgrade --apply-to=file, to allow upgrading a shared config
- Improved detection of existing vs new issues has been turned on for everyone by default (hold_the_line_modenow defaults toword; see documentation)
🔌Plugins (new in 0.0.16, since 0.0.14)
- We now support gokart, trufflehog, and DJLint (our thanks to gejustin and fsargent for the contributions!)
- Allow specifying a buildifier config, using .buildifier.json(check out this PR for a usage example; specifically, you'll want.trunk/configs/buildifier.jsonand.trunk/configs/buildifier-tables.json)
- Teach cspell to correctly respect its sandboxed config
- Remove a broken hadolintdownload for M1 macs
✨ Improvements
- Introduce new linter config field suggest_ifto control what conditions we use to auto-recommend linters (example)
- Introduce new linter config field sandbox_typeto control how we sandbox linter execution (example)
- Allow individual linter commands to define the applicable files, instead of requiring them to do so in the top-level linter definition
- Surface useful errors when a tool has no matching specified download (e.g. if there is no arm64 download for a given linter and we're running on arm64, say so)
- Support trunk check --uploadwith payload sizes of >128MiB
- Suppress newline spam in GitHub Actions when using trunk check --ci --upload, and also make--ci --uploadwork correctly
- --verboselinter execution reports now include the CLI version
- Introduce debugging knobs for trunk actions and git hooks
🔧 Fixes
- Fix a race condition in how trunk actionoutput is logged
new
🎁 New
- Enhanced the hold the linefeature to identify whether issues on modified lines are new or existing. This new mode must currently be turned on in configuration, and will become the default in a future version of trunk. See documentation.
✨ Improvements
- Added support for Rust nightlies when using a system version of Rust.
- The trunk-ignorefeature now supports all comment formats specified in configuration.
- Additional validation logic has been added for custom triggers.
- Upgraded the minimum required launcher version to 1.2.4, which will be automatically upgraded by Trunk.
- Improved the --verboseoutput to show which configuration files are being used for each linter.
- Git hooks now prioritize the Trunk launcher in the repository before searching on the system.
- All fields except cliandpluginsare now merged from plugins.
- The LSP server now gracefully handles non-text files such as images.
- Improved the performance of the LSP server when working with large sets of files.
- Enhanced the LSP server's ability to update diagnostics for files that are produced indirectly.
🔧 Fixes
- Resolved a bug where multiple Git hooks that used the same runtime would hang after the first one.
new
improved
fixed
🎁 New
- Introduced a "negative ignore" feature by prefixing an ignore path glob with !, ensuring matched paths are not ignored despite other pattern matches.
✨ Improvements
- Implemented ${bazel}and${bazel_targets}substitution variables for executing commands.
- Enhanced the Visual Studio Code extension with the capability to separately disregard pre-existing and below-threshold issues.
- Modified the pull request blocking criteria: any new issue will consistently lead to a block, regardless of the ratio of fixed and new issues.
- Adjusted Trunk to replace external/with the Bazel cache external directory when appending arguments to the compiler command line manually.
- The ignoresandenvironmentsconfigurations are now merged from plugin repositories.
- Enhanced trunk initto display file types corresponding to each identified linter.
🔧 Fixes
- Improved Trunk's ability to resolve linter relative paths when executed from a pre-push hook, specifically addressing golangci-lint failures.
- Rectified a regression in the Language Server Protocol (LSP) server for multi-byte UTF characters.
- Resolved an issue where parser runtimes would occasionally fail to install.
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 upgradeandtrunk upgrade runtimesnow 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 checkcompletes 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 shfmtsometimes 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.
Load More
→