apps/docs/content/docs/support-policy.mdx
Core turbo functionality depends on the package managers in the JavaScript ecosystem and their implementations of Workspaces and
lockfile formats.
| Package manager | Support |
|---|---|
| pnpm 8+ | Stable |
| npm 8+ | Stable |
| yarn 1+ | Stable (Includes Yarn Plug'n'Play) |
| bun 1.2+ | Stable |
turbo is generally supported on Debian-based Linux distributions, macOS, and
Windows on both x86_64 and ARM 64 architectures. Specifically, we build and ship
the following binaries via npm:
turbo-darwin-64 (macOS with Intel chips)turbo-darwin-arm64 (macOS with Apple Silicon)turbo-linux-64turbo-linux-arm64turbo-windows-64*turbo-windows-arm64*Core turbo functionality does not depend on the
active Node.js version on your system, but some packages in the Turborepo ecosystem
such as create-turbo, turbo-ignore, and eslint-config-turbo do. For these features,
we intend to support the Active and Maintenance LTS versions of Node.js.
Turborepo's examples are also expected to work with these Node.js versions.
We support repositories that are version controlled with Git and repositories that don't have version control at all. Any other version control system will be ignored.
Note that we use Git to hash files, so repositories without git may perform and behave differently.
Major versions of Turborepo will be supported for two years from the release date of the next major version.
Changes required for critical security fixes in older versions will be backported. Such situations will be rare and will land as semver-minor releases, even if they are breaking changes.
We highly encourage you to use the most current version of Turborepo whenever possible.
| Major version | Release date | End-of-life date |
|---|---|---|
| 2.x | Jun. 4, 2024 | - |
| 1.x | Dec. 9, 2021 | Jun. 4, 2026 |
Stable builds of Turborepo follow semantic versioning (semver) and are thoroughly tested before being released.
Turborepo also offers specific APIs that may be released in an earlier phase of development. This is to allow early adopters to give valuable feedback and help the core team gain confidence in APIs ahead of their stable release. APIs that are available pre-stable will be marked as such in the documentation and within turbo itself whenever possible.
Not every API will be released in every phase. We use our best judgment to determine the phase for an API based on our confidence for the feature, weighing factors like the feature's complexity, possible use cases, and feedback from early users of the API.
The Turborepo core team would like to thank any users who do use features early and express our appreciation for any feedback you provide.
When an API reaches stability, it is considered ready for use in production. APIs marked as stable will only change in a backward-compatible way in a major release.
Beta APIs require more confidence around reliability before a stable release. In the Beta phase, we are confident about the overall design of the feature and expect to be able to promote the feature to stable with relatively few changes. In rare cases, an API may require a breaking change and will not be covered by semver.
We encourage early adopters to use Beta APIs to help us gain certainty around the feature's design and stability. Depending on your risk tolerance, you can use the feature in production as you see fit.
APIs currently in the Beta phase:
Experimental APIs lack essential capabilities required to be ready for stability. The design of the feature is considered to be under active development and can change at any time.
We encourage you to help us test experimental APIs in side projects, proof-of-concepts, and other environments where stability is non-essential. This gives you the opportunity to aid in the API's development by providing early feedback to the core team as the feature develops. We do not recommend using experimental APIs where reliability is essential.
APIs currently in the Experimental phase:
turbo boundaries and Tags--experimental-write-cache for turbo watch--output=json for turbo ls --affected flagDeprecated APIs are in the process of being removed. Any feature we intend to remove will include documentation for existing users with next steps and information on when to expect the feature to be removed.
APIs that are currently deprecated:
turbo-ignore: Use turbo query affected instead.turbo scan: This command has been removed and will be fully deleted in a future major version.--parallel: Use persistent and with in turbo.json instead.--no-cache: Use --cache=local:r,remote:r instead.TURBO_REMOTE_ONLY and --remote-only: Use TURBO_CACHE or --cache=remote:rw instead.--remote-cache-read-only: Use --cache=local:rw,remote:r instead.--daemon / --no-daemon / daemon key in turbo.json: The daemon is no longer used and these options will be removed in a future major version.--graph with .png, .jpg, .pdf, or .json output: These formats require an external Graphviz installation and will be removed in version 3.0. Use .svg, .html, .mermaid, or .dot instead. For programmatic access to the task graph, use turbo query.--scope for turbo prune: Use positional arguments instead (e.g. turbo prune web).globalDependencies, globalEnv, and globalPassThroughEnv at the root level: Use the globalConfiguration Future Flag to migrate to the new global key.