Back to blog

Turborepo 1.12

Tuesday, January 30th, 2024
Mehul Kar
Name
Mehul Kar
X
@mehulkar
Tom Knickman
Name
Tom Knickman
X
@tknickman
Greg Soltis
Name
Greg Soltis
X
@gsoltis

Turborepo 1.12 adds popular community-requested features and feedback improvements, including:

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.

A screenshot of a terminal running a `turbo` task with colors from the underlying shell logs.

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.

A screenshot of a terminal attempting to run a `turbo` task but receiving an informative error that an unknown key `output`, was found in the `turbo.json` file.

In this enhanced UI, we are:

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.

turbo.json
{
  "pipeline": {
    "build": {
      "inputs": ["$TURBO_DEFAULT$", "!README.md", "!**.test.**"]
    }
  }
}

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:

Terminal
turbo telemetry disable

You may also opt-out by setting an environment variable:

Other Improvements

Community

Since releasing Turborepo 1.11 we've seen incredible adoption and community growth:

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.