Skip to content

Commit

Permalink
feat(docs): document support policy (#6277)
Browse files Browse the repository at this point in the history
  • Loading branch information
mehulkar committed Oct 27, 2023
1 parent 93a4943 commit a70385b
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/pages/repo/docs/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,6 @@
},
"upgrading-to-v1": "Upgrading to v1",
"acknowledgements": "Acknowledgements",
"support": "Support Policy",
"faq": "FAQ"
}
72 changes: 72 additions & 0 deletions docs/pages/repo/docs/support.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
title: Support Policy
description: Our Support Policy for Turborepo and its ecosystem
---

## Support Policy

`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-64
- turbo-linux-arm64
- turbo-windows-64
- turbo-windows-arm64

Darwin builds are intended for macOS on Intel and Apple Silicon. Linux builds
are tested on Ubuntu, but we expect them to work on most [Debian-based][3]
distros. Windows builds are tested on the [`windows-latest` runner][2] in GitHub
Actions.

## Node.js Compatibility

Most core `turbo` functionality (especially `turbo run`) does not depend on the
active Node.js version on your system, but some features of Turborepo and its ecosystem
such as `create-turbo`, `turbo-ignore`, and `eslint-plugin-turbo` do. For these features,
we intend to support the [Active and Maintenance LTS versions of Node.js][1].

## Package Managers

Core `turbo` functionality depends on the package managers in the JS ecosystem
and their implementations of workspace configuration (in monorepos) and
lockfiles formats. We intend to support:

- `npm` (v6+)
- `yarn` (v1+)
- `pnpm` (v6+)
- `bun` (v1+) (beta, doesn't support all features)

It should be noted that package managers themselves have their own release
schedules, bugs, and features. While we intend to keep up with new major
versions, we may not release support immediately.

## Version Control

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.

## Releases

Turborepo "loosely" follows SemVer policy. This means that we generally do not
expect to make intentional "breaking" changes in patch or minor versions.

Some exceptions to this may be:

- Configuration changes in `turbo.json`.

These should usually be accompanied by a codemod that you can run with
`npx @turbo/codemd update` and with at least one minor release that includes a
deprecation message.

- Intentional behavioral changes to `turbo`'s CLI commands.

These should land in minor releases. If the change is large or disruptive enough, we may
include flags to opt into the previous behavior.

[1]: https://nodejs.org/en/about/previous-releases
[2]: https://docs.github.com/en/actions/using-jobs/choosing-the-runner-for-a-job#choosing-github-hosted-runners
[3]: https://en.wikipedia.org/wiki/List_of_Linux_distributions#Debian-based

1 comment on commit a70385b

@vercel
Copy link

@vercel vercel bot commented on a70385b Oct 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.