Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

supported-platform: define platform support tiers based on CI #273

Merged
merged 1 commit into from
May 10, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions content/en/docs/next/op-guide/supported-platform.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,29 +8,29 @@ description: etcd support status for common architectures & operating systems

The following table lists etcd support status for common architectures and operating systems:

| Architecture | Operating System | Status | Maintainers |
| Architecture | Operating System | Support Tier | Maintainers |
Copy link
Contributor

Choose a reason for hiding this comment

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

  • The Support Tier column only lists tier levels, so the column values can be just numbers. That is, in the table, I'd suggest replacing Tier-x simply by x.
  • It might make more sense to sort the table rows on the Architecture column -- currently it seems sorted on tier (but a reader is more likely to be looking for a specific architecture than a tier).

| ------------ | ---------------- | ------------ | --------------------------- |
| amd64 | Darwin | Experimental | etcd maintainers |
| amd64 | Linux | Stable | etcd maintainers |
| amd64 | Windows | Experimental | |
| arm64 | Linux | Experimental | @glevand |
| arm | Linux | Unstable | |
| 386 | Linux | Unstable | |
| ppc64le | Linux | Stable | etcd maintainers, @mkumatag |
| amd64 | Linux | Tier-1 | etcd maintainers |
| arm64 | Linux | Tier-2 | @gyuho, @glevand |
Copy link
Contributor

Choose a reason for hiding this comment

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

It may be a good idea to make the GitHub usernames in this table links to those users.

Copy link
Contributor

Choose a reason for hiding this comment

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

Furthermore, if you make etcd maintainers into a link, then you can eliminate the "footnote" (which is what I'd suggest).

| amd64 | Darwin | Tier-3 | |
| amd64 | Windows | Tier-3 | |
| arm | Linux | Tier-3 | |
| 386 | Linux | Tier-3 | |
| ppc64le | Linux | Tier-3 | @mkumatag |

* etcd-maintainers are listed in https://github.com/etcd-io/etcd/blob/master/MAINTAINERS.
*etcd-maintainers are listed in [MAINTAINERS](https://github.com/etcd-io/etcd/blob/master/MAINTAINERS).*

Experimental platforms appear to work in practice and have some platform specific code in etcd, but do not fully conform to the stable support policy. Unstable platforms have been lightly tested, but less than experimental. Unlisted architecture and operating system pairs are currently unsupported; caveat emptor.
Tier-1 platforms are fully supported by etcd maintainers and required to pass all tests including functional tests. Tier-2 platforms appear to work in practice but may have some platform specific code in etcd and not fully conform to the stable support policy. To qualify for Tier-2, the platform must pass integration and end-to-end tests in CI (see [github PR](https://github.com/etcd-io/etcd/pull/12928) for adding arm64). Tier-3 platforms or unlisted architectures are either lightly tested or have no testing in place, thus unstable and currently unsupported; caveat emptor.
Copy link
Contributor

Choose a reason for hiding this comment

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

A quick copy-edit pass here. I'd also suggest using bold to set off the tier descriptions to help scannability.

Suggested change
Tier-1 platforms are fully supported by etcd maintainers and required to pass all tests including functional tests. Tier-2 platforms appear to work in practice but may have some platform specific code in etcd and not fully conform to the stable support policy. To qualify for Tier-2, the platform must pass integration and end-to-end tests in CI (see [github PR](https://github.com/etcd-io/etcd/pull/12928) for adding arm64). Tier-3 platforms or unlisted architectures are either lightly tested or have no testing in place, thus unstable and currently unsupported; caveat emptor.
*Tier-1* platforms are fully supported by etcd maintainers and are required to pass all tests including functional ones. *Tier-2* platforms appear to work in practice but may have some platform specific code in etcd and may not fully conform to the stable support policy. To qualify for Tier-2, the platform must pass integration and end-to-end tests in the CI system (see [GitHub PR](https://github.com/etcd-io/etcd/pull/12928) for adding arm64). *Tier-3* platforms, or unlisted architectures, are either lightly tested or have no testing in place, and are thus unstable and currently unsupported; caveat emptor.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think that this paragraph would be easier to read (and it would be easier to "zoom in" on a specific tier's description), if you'd structure it as a bulleted list, with one list item per tier.


## Supporting a new system platform

For etcd to officially support a new platform as stable, a few requirements are necessary to ensure acceptable quality:

1. An "official" maintainer for the platform with clear motivation; someone must be responsible for taking care of the platform.
2. Set up CI for build; etcd must compile.
2. Set up CI for build; etcd must compile. **Requirements for Tier-3**.
3. Set up CI for running unit tests; etcd must pass simple tests.
4. Set up CI (TravisCI, SemaphoreCI or Jenkins) for running integration tests; etcd must pass intensive tests.
5. (Optional) Set up a functional testing cluster; an etcd cluster should survive stress testing.
4. Set up CI for running integration and end-to-end tests. **Requirements for Tier-2**.
5. Set up CI for functional tests, and an etcd cluster should survive stress testing. **Requirements for Tier-1**.

## 32-bit and other unsupported systems

Expand Down