0.12.1-Beta
new
improved
fixed
Release 0
In this release, we have made major improvements to the discovery process for new linters. When you now run
trunk check upgrade
we will do a full repo scan to discover and enable additional tools that match your repository. This could include tools we've added since you first initialized trunk or tools that are now applicable as you've added new technologies into your repo.
If we suggest a linter you are not interested in running you can block us from suggesting a tool by calling
trunk check disable <linter>
. The enabled/disabled lists are maintained in your
trunk.yaml
file so you can always tweak these entries by hand.
🎁 New Tools
✨ Improvements
  • trunk check enable <linter>
    will now enable a supported linter at the most up-to-date version
  • trunk check disable <linter>
    will mark a linter as disabled and block it from being suggested
  • trunk init
    and
    trunk check upgrade
    now have progress reporting so you can get more detailed information as the tool is running
🔧 Bug Fixes
  • Fixed a rare bug in hold-the-line
  • Fixed several bugs in our parsing of
    clippy
    issues
  • Trunk now recognizes more
    Dockerfile
    filenames
  • trunk ignore-all
    now works correctly for pass_fail style linters
  • We now compute the merge base when using the git branch upstream as your trunk upstream instead of using it directly
  • trunk check upgrade
    will correctly version sub-packages for linters (eg. flake8)
  • trunk will no longer ignore files in a conflicted git state
0.11.0-beta
new
improved
fixed
image 0.11.0
🎁 New
  • Native macOS arm64 support. A launcher upgrade is required to take advantage of this: See https://docs.trunk.io/get-started
  • New command:
    trunk check enable <linter>
    or
    trunk check enable <linter>@<version>
    enables a linter to an autodetected or explicit version respectively.
⚜️ Improvements
  • Linters can now propagate environment variables to execution.
🔧 Bug Fixes
  • trunk init --lock
    works again (requires a launcher upgrade)
0.10.2-beta
fixed
improved
⚜️ Improvements
Added support for optional environment variables. An environment key can now be specified as optional. An optional key will essentially be ignored if it cannot be resolved. So for example, if the system environment does not have FOO defined, that key will be ignored.
environment:
- name: FOO
value: "${env.FOO}"
optional: true
🔧 Bug Fixes
  • Fixed bug in how $PATH was injected for tooling that requires passing full system path through. We now have special casing to ensure that the full host $PATH is always post-pended to the constructed hermetic path.
0.10.1-Beta
fixed
Thanks to the community for reporting these holes to us. Happy to get them quickly patched (pun intended).
🔧 Bug Fixes
  • Fix internal error when a linter failed to run from a sub dir
  • More robust detekt-gradle support
  • Ability to use git branch upstream as the base for changes
  • The
    trunk daemon
    will be now be terminated if it fails a health check
  • Path construction for linters running on system installed runtimes are now constructed in the correct order
  • zsh
    scripts are now managed as a separate class of file from
    bash
    and
    sh
0.10.0-Beta
new
fixed
improved
Changelog 14
We've been doing a lot of behind the scenes work in this release. We tracked down some really fun edge case bugs that we just will not tolerate in our product.
🎁 New Tools
⚜️ Improvements
  • Expanded documentation of configuration options
🔧 Bug Fixes
  • Fixed rare segfault that occurs when modifying trunk.yaml
  • Fixed deleted files sometimes showing up as discards
  • dotenv renamed to dotenv-linter
  • Sanitize execution variables when executing sub-processes. (Hides secrets and increases hermeticity)
  • vscode formatting now respects the run mode.
  • ${workspace} template is now parsable in download phase
0.9.2-Beta
new
improved
fixed
Changelog 16
🔥 Batched Lint Actions
One of the biggest wins of this release is a massive improvement in our ability to parallelize and batch linter executions. Previously, the linting of every file ran in an isolated process, this meant that linters with high startup costs would drag when executing on a large number of files. We solved that by coalescing work into batches and the results are amazing. For example, previously running rubocop on the rubocop repo took over 10 minutes. We shaved that down to 38s - a nearly 20x speed improvement.
📦 System Runtime Support
We’ve always aimed to deliver a completely hermetic toolchain because it leads to highly reproducible results, but some repos already manage some of their runtimes (Ruby is a popular one) and want to leverage/reuse their existing runtime deployments. Now you can! In the root of your trunk.yaml file you can now specify the runtimes you want to explicitly enable and the versions to deploy. When you use a range expression >=3.1.0 we will first check if your machine has a matching instance of ruby available. If the system already has it - we won’t bother installing a hermetic version of ruby. If you don’t have ruby - don’t worry - we’ll take care of installing a version that matches that requirement. Lot’s of other knobs to tinker with here (see docs for full story)
Screen Shot 2022-03-30 at 12
📣 Feature Requests
We love hearing from our users about all the ways we can make trunk better. In order to allow us to better prioritize asks and let people know when the new feature they asked for landed we've started gathering feedback here - features.trunk.io
🎁 New Tools
🔧 Improvements
  • Support for running detekt under gradle
  • check now uses a DAG to more efficiently execute your actions - no more waiting for one tool to download before others can execute
  • Linters can now be configured to run only in certain workflows using the 'run_when' field. This allows you to take greater control of your check runs - if you want to run some tools only in CI - now you have the power to do tha
  • Caching of linter output is now enabled by default
  • trunk print-config now pretty prints enums and uses intelligent field ordering so your trunk configuration is more legible and makes more logical sense to read
  • Trunk launcher is now available for install via npm as as @trunkio/launcher
  • Golang managed linters now use 'install' instead of 'get' for installation
0.8.1-Beta
improved
081
⚜️
Improvements
  • Introduced
    --ci-progress
    which will print progress every 30 seconds instead of a realtime update.
  • Introduced
    --github-annotate-details-url
    which allows you to point to a custom url for check annotation details
  • Internal work to support the trunk check web portal
improved
Making hold-the-line shine…
070
🔧 Improvements
  • Autofixes are only presented to the user for new issues by default.
  • Github annotations only post new issues by default.
  • Duplicate auto-fixes are no longer shown.
  • Hold-the-line results are now shown when checking individual files.
new
improved
fixed
Lot’s of great new features and bug fixes; let’s get to it…
081
🎁
New Tools
  • Support for tflint (terraform linter)
  • Support for terraform-validate
  • Support for better Toml validation and formatting
⚜️
Improvements
  • trunk-ignore now supports block level and file level ignores
  • The maximum number of parallel actions can now be controlled with the jobs flag: –jobs
  • Clippy linting now uses its own build cache and does not interfere with user builds
🔧
Bug Fixes
  • Fixes for detekt, eslint, flake8, ktlint and pylint integrations.
⌨️
Visual Studio Code
  • Added ability to pause trunk background checking with a new pause button
  • Added visualization of check jobs
  • Updated file status icons
new
improved
fixed
Happy New Year! This week’s release packages together a slew of bug fixes and performance improvements we made over the winter break. The engineering team is back to full steam now and cranking on reported issues and feature requests.
050
🎁
New Tools
Support for Detekt kotlin static analysis tool
⚜️
Improvements
  • Support for GitLeaks 8.x.x (previous versions 7.x.x and older are still supported but as always we recommended running the latest versions of tools)
  • Improved zip download support
🔧
CI Improvements
  • Action now supports only annotating new issues when posting to GitHub. Instructions here
  • When triggered by
    Push
    , trunk check will now run only on changed files in the branch (similar to how Pull Requests are processed).
  • Added flag to action to run check on all files. Instruction here
Load More