Turborepo 1.12
Turborepo 1.12 adds popular community-requested features and feedback improvements, including:
- Colors in task logs: Colors from original shell logs used by default
- Errors overhaul: Improved error messages for misconfigurations
- Improved
inputs
ergonomics: Use Turborepo's defaults with your input customizations - Telemetry: Help us focus on what matters most to Turborepo users
We're also done cleaning up our migration to Rust in this release by removing the --go-fallback
flag and shrinking the turbo
binary by 58% compared to 1.11.
Update today by running npx @turbo/codemod migrate
or get started with npx create-turbo@latest
.
Colors in task logs
Color is a great way to quickly surface important information in user interfaces. It's common for developer tooling to highlight success in green, warnings in yellow, or errors in red.
In this release, we're now showing the colors from your underlying tasks in your local environment by default. This has been a popular request from the community and we're excited to ship support for macOS and Linux today. We will be following up with Windows support in a future release.
Errors overhaul
An important part of developer experience is ensuring that, when things go wrong, it's clear how to get back to the happy path. In this release, we've improved the error messages that come from Turborepo misconfigurations.
In this enhanced UI, we are:
- Showing you the errorful code
- Improving the help text in your terminal for each type of error
- Providing a link to documentation when it can provide you with useful context
Improved inputs
ergonomics
Turborepo intelligently understands the inputs to your tasks by default. But there are also situations where you may want to include or exclude specific files or directories from your task inputs.
Importantly, using the inputs
key on a task opts you out of all of the default inputs for a task, like omitting gitignored files from your inputs. Until today, you had to manually bring back these defaults by creating glob patterns for them yourself.
Today, we're adding $TURBO_DEFAULT$
as a special value when used in the inputs
array.
This microsyntax allows you to use the Turborepo defaults you're used to while adding in your own custom globs to fine tune the default input behavior.
Check out the inputs
documentation for more information.
Telemetry
Turborepo was released almost two years ago, and turbo
has developed considerably over the past two years. As the community has grown, the value of your feedback is immeasurable in helping us stay focused on what matters most to Turborepo users.
Until now, our feedback gathering process has been manual, slow, and error prone. While we will always highly appreciate users who file GitHub Issues, speak to us in GitHub Discussions, and chat with the community in Discord, this feedback only captures the sentiment of a small corner of the Turboverse.
Today, we're introducing a completely anonymous, automated approach to feedback to learn more about the ways that the community is using Turborepo. As we continue to iterate on turbo
, this information will help us ensure performance, confirm stability, design new features, and drive the project's direction.
We're creating the build system of the future and this information will be highly valuable to guide us in that effort. For more information, visit turbo.build/repo/docs/telemetry.
If you'd like to opt out of telemetry, run:
You may also opt-out by setting an environment variable:
TURBO_TELEMETRY_DISABLED=1
DO_NOT_TRACK=1
(per the Console Do Not Track (DNT) specification)
Other Improvements
- [Feature]: Enable pty usage (PR)
- [Feature]: Support
$TURBO_DEFAULT$
in inputs (PR) - [Feature]: Support Yarn 4 patches (PR)
- [Feature]: Enable telemetry (PR)
- [Improvement]: Treat empty environment variables as unset (PR)
- [Improvement]: Error out if dependent flags are provided without their parent (PR)
- [Improvement]: Make sure that our concurrency check ignore packages without tasks (PR)
- [Improvement]: Avoid panic on invalid directory filters (PR)
- [Improvement]: Ignore permission errors during globbing (PR)
- [Improvement]: Avoid retry panic (PR)
- [Improvement]: Rewrite prefix after carriage return (PR)
- [Improvement]: Validate graph extension (PR)
- [Improvement]: Truncate metadata file when writing (PR)
- [Improvement]: Correctly create symlinks to directories (PR)
- [Improvement]: Make sure cookie dir exists before writing cookie (PR)
- [Improvement]: Examples turbo.json outputs key (PR)
- [Improvement]: Filter package.json files that are subfolders of other packages (PR)
- [Improvement]: Sort dependents and dependencies during normalization (PR)
- [Improvement]: Swap fallback logs to debug (PR)
- [Improvement]: Include gitignored files in fallback (PR)
- [Improvement]: Include default files in fallback (PR)
Community
Since releasing Turborepo 1.11 we've seen incredible adoption and community growth:
- 24.0k+ GitHub Stars
- 1.9M+ weekly NPM downloads
- 238 years of compute time saved using Vercel Remote Cache
Turborepo is the result of the combined work of all of its contributors, including our core team.
Thank you for your continued support, feedback, and collaboration to make Turborepo your build tool of choice.