支持策略

软件包管理器

¥Package managers

核心 turbo 功能依赖于 JavaScript 生态系统中的包管理器及其对工作区和锁文件格式的实现。

¥Core turbo functionality depends on the package managers in the JavaScript ecosystem and their implementations of Workspaces and lockfile formats.

包管理器支持
pnpm 8+
npm 8+
yarn 1+是(包含 Yarn Plug'n'Play)
bun 1.2+Beta 版

软件包管理器有自己的发布计划、错误和功能。虽然我们打算跟上新的主要版本,但我们可能无法立即发布支持。

¥Package managers have their own release schedules, bugs, and features. While we intend to keep up with new major versions, we likely will not be able to release support immediately.

平台

¥Platforms

turbo 通常支持基于 Debian 的 Linux 发行版、macOS 和 Windows 的 x86_64 和 ARM 64 架构。具体来说,我们通过 npm 构建并交付以下二进制文件:

¥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(搭载 Intel 的 macOS 芯片)

    ¥turbo-darwin-64 (macOS with Intel chips)

  • turbo-darwin-arm64(搭载 Apple Silicon 的 macOS)

    ¥turbo-darwin-arm64 (macOS with Apple Silicon)

  • turbo-linux-64

  • turbo-linux-arm64

  • turbo-windows-64*

  • turbo-windows-arm64*

*: 需要 Windows C 运行时库

¥*: Requires Windows C Runtime Libraries

Node.js

核心 turbo 功能不依赖于系统上活动的 Node.js 版本,但 Turborepo 生态系统中的一些包(例如 create-turboturbo-ignoreeslint-config-turbo)依赖于此。对于这些功能,我们打算支持 Node.js 的活跃和维护 LTS 版本

¥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 的 examples 预计也适用于这些 Node.js 版本。

¥Turborepo's examples are also expected to work with these Node.js versions.

版本控制

¥Version control

我们支持使用 Git 进行版本控制的仓库,也支持完全没有版本控制的仓库。任何其他版本控制系统都将被忽略。

¥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.

请注意,我们使用 Git 对文件进行哈希处理,因此没有 Git 的仓库的性能和行为可能会有所不同。

¥Note that we use Git to hash files, so repositories without git may perform and behave differently.

LTS 策略

¥LTS policy

Turborepo 的主要版本将在下一个主要版本发布之日起两年内提供支持。

¥Major versions of Turborepo will be supported for two years from the release date of the next major version.

旧版本中关键安全修复所需的更改将被反向移植。这种情况很少见,即使它们是重大更改,也会以 semver 次要版本的形式发布。

¥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.

我们强烈建议你尽可能使用 Turborepo 的最新版本。

¥We highly encourage you to use the most current version of Turborepo whenever possible.

主版本号发布日期生命周期终止日期
2.x六月4, 2024
1.xDec.9, 2021六月4, 2026

发布阶段

¥Release phases

Turborepo 的稳定版本遵循语义版本控制 (semver),并在发布前经过全面测试。

¥Stable builds of Turborepo follow semantic versioning (semver) and are thoroughly tested before being released.

Turborepo 还提供可能在早期开发阶段发布的特定 API。这是为了让早期采用者能够提供宝贵的反馈,并帮助核心团队在 API 稳定发布之前建立对 API 的信心。在稳定之前可用的 API 将在文档和 turbo 中尽可能标记为稳定。

¥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.

并非所有 API 都会在每个阶段发布。我们会根据对功能的信心,综合考虑功能的复杂性、可能的用例以及 API 早期用户的反馈等因素,运用最佳判断来确定 API 的阶段。

¥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.

Turborepo 核心团队谨感谢所有提前使用功能的用户,并感谢你提供的任何反馈。

¥The Turborepo core team would like to thank any users who do use features early and express our appreciation for any feedback you provide.

稳定版

¥Stable

当 API 达到稳定状态时,即被认为可以在生产环境中使用。标记为稳定的 API 仅在主要版本中以向后兼容的方式进行更改。

¥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.

  • 如果稳定的 API 在即将发布的主要版本中发生重大更改,我们将提供警告和文档,以帮助迁移和后续步骤。

    ¥If a stable API is going to have breaking changes in an upcoming major release, warnings and documentation will be provided to help with migrations and next steps.

  • 如果某个稳定的 API 将在即将发布的主要版本中被移除,它将被标记为 已弃用,以便提前通知未来移除事宜。

    ¥If a stable API is going to be removed in an upcoming major release, it will be marked as Deprecated to provide early notice of future removal.

Beta 版

¥Beta

Beta 版 API 在发布稳定版本之前,需要对可靠性有更高的信心。在 Beta 阶段,我们对该功能的整体设计充满信心,并期望能够通过相对较少的更改将该功能提升到稳定版本。在极少数情况下,API 可能需要进行重大更改,并且不会被 semver 覆盖。

¥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.

我们鼓励早期采用者使用 Beta 版 API,以帮助我们确定该功能的设计和稳定性。根据你的风险承受能力,你可以根据需要在生产环境中使用该功能。

¥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.

当前处于 Beta 阶段的 API:

¥APIs currently in the Beta phase:

  • ¥None

实验性

¥Experimental

实验性 API 缺乏实现稳定性所需的基本功能。该功能的设计被认为处于积极开发阶段,并且可能随时更改。

¥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.

我们鼓励你帮助我们在辅助项目、概念验证和其他稳定性并非至关重要的环境中测试实验性 API。这使你有机会在功能开发过程中向核心团队提供早期反馈,从而协助 API 的开发。我们不建议在可靠性至关重要的情况下使用实验性 API。

¥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.

当前处于实验阶段的 API:

¥APIs currently in the Experimental phase:

已弃用

¥Deprecated

已弃用的 API 正在被移除。我们打算删除的任何功能都将包含面向现有用户的文档,其中包含后续步骤以及有关何时删除该功能的信息。

¥Deprecated 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.

当前已弃用的 API:

¥APIs that are currently deprecated: