Turborepo 1.11

Turborepo 1.11

Tuesday, December 5th, 2023

Greg Soltis
Name
Greg Soltis
X
@gsoltis
Chris Olszewski
Name
Chris Olszewski
Nicholas Yang
Name
Nicholas Yang
X
@nicholaslyang
Alexander Lyon
Name
Alexander Lyon
X
@_arlyon

Turborepo 1.11 completes our migration to Rust and ships several developer experience improvements:

Update today by running npx @turbo/codemod migrate.

Unlocking the future of turbo with Rust

As we wrote about in our blog post about the migration (opens in a new tab), we're excited to start seeing the benefits of our porting effort for Turborepo users. Rust has allowed us to surface more complexity in our code so we're able to create a better experience in your codebase in several ways:

  • We've noticed a slight performance improvement right away for some use cases, even without doing much performance tuning in our code yet. We look forward to diving deeper into making turbo even faster soon.
  • We were able to move incidental behaviors of globbing, paths, and encoding support to tested and supported behavior, giving us better confidence that we're handling your configuration as expected. Going forward, we'll be able to build features like validation and automatic bug-fixing codemods into Turborepo for better stability.
  • We've quickly iterated on enhancing error messages in your monorepo as a feature for next release, giving you critical information for find the source of misconfigurations.
  • We've been able to catch possible platform-related bugs much sooner, as Rust forces us to think about the differences between platforms and environments much more closely than Go. This deepened reliability removes an entire category of possible bugs from your repository.

If you find any problems that you believe are related to the new Rust codepath, you can opt back to the Go codepath using the --go-fallback flag and report an issue on GitHub (opens in a new tab).

Group logs for improved readability

To make it easier to review your task logs, we've introduced the --log-order flag to output all logs from a task after it finishes rather than as it writes. This results in logs that are separated per-task, improving readability on a specific task's logs.

Using `--log-order=grouped` to output task logs to the terminal as separated chunks separated by task.

Enable this behavior using --log-order=grouped. Check out the documentation to learn more

Updated examples

Our repository contains an examples directory (opens in a new tab) with starter monorepos for your projects.

To get started with an example, run:

# Two Next.js applications
npx create-turbo@latest
# Next.js and Remix
npx create-turbo@latest -e kitchen-sink
# Vue and Nuxt
npx create-turbo@latest -e with-vue-nuxt

We're putting a renewed effort towards ensuring our examples are kept up-to-date. Additionally, we've re-architected our examples to advocate for best practices in monorepos. For example:

  • In-editor go-to-definition across packages
  • Dependencies updated to latest versions
  • Tooling like ESLint, Prettier, jest, and vitest pre-configured
  • Hot-reloading across packages

Use an example to get started, or browse the code directly (opens in a new tab) for more.

Community

Since releasing Turborepo 1.10 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.