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

doc: Clarify supported platforms and tiers #29055

Merged
merged 1 commit into from Oct 21, 2015

Conversation

Projects
None yet
10 participants
@alexcrichton
Copy link
Member

alexcrichton commented Oct 14, 2015

This commit expands the "supported platforms" section of the book to include
documentation on the tiers that Rust currently has as well as organizing all
supported platforms into these various tiers. Infrastructure improvements over
the next few months are likely to change the location of may of these platforms
over, but for now this should faithfully represent what we've got today!

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Oct 14, 2015

r? @steveklabnik

(rust_highfive has picked a reviewer for you, use r? to override)

@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Oct 14, 2015

r? @brson

@rust-highfive rust-highfive assigned brson and unassigned steveklabnik Oct 14, 2015

@alexcrichton alexcrichton force-pushed the alexcrichton:tiers branch 2 times, most recently from 40700be to f5e891a Oct 14, 2015

doesn't work, it is a bug. Please let us know if that happens. Each and every
commit is tested against Windows just like any other platform.
Rust supports a wide variety of platforms each of which is organized into one of
three tiers of support. Each tier brings with it a different set of guarantees,

This comment has been minimized.

@brson

brson Oct 14, 2015

Contributor

This sentence contains 'support' twice, awkward. "The Rust compiler runs on, and compiles to, a great number of platforms, though not all platforms are equally supported. Rust's support levels are organized into three tiers, each with a different set of guarantees." Not sure, tired.

* Automated testing is set up to run tests for the platform.
* Landing changes to the `rust-lang/rust` repository's master branch is gated on
tests passing.
* Official release artifacts provided for the platform.

This comment has been minimized.

@brson

brson Oct 14, 2015

Contributor

"artifacts are provided"

* Landing changes to the `rust-lang/rust` repository's master branch is gated on
tests passing.
* Official release artifacts provided for the platform.
* Native installers are provided for the platform.

This comment has been minimized.

@brson

brson Oct 14, 2015

Contributor

I consider this redundant with the previous bullet.

standard library is compiled, but for others the full bootstrap is run.
* Official release artifacts are provided for the platform.
* Installers are provided for the platform. This may come in the form of
installers of cross-compilers for platforms that do not host a compiler.

This comment has been minimized.

@brson

brson Oct 14, 2015

Contributor

Again, I consider this bullet redundant. 'artifacts' = 'installers'

@brson

This comment has been minimized.

Copy link
Contributor

brson commented Oct 14, 2015

I do think it would be ideal to punt the fine details about specific low-tier platforms somewhere else, but this location is ok for now.

r? @steveklabnik

@rust-highfive rust-highfive assigned steveklabnik and unassigned brson Oct 14, 2015

@alexcrichton alexcrichton force-pushed the alexcrichton:tiers branch from f5e891a to bc6eece Oct 15, 2015

@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Oct 15, 2015

Updated!


* Automated testing is set up to run tests for the platform.
* Landing changes to the `rust-lang/rust` repository's master branch is gated on
tests passing.

This comment has been minimized.

@nagisa

nagisa Oct 15, 2015

Contributor

On that particular configuration buildbots use. There’re some tests that do not pass on certain configurations.

This comment has been minimized.

@alexcrichton

alexcrichton Oct 15, 2015

Author Member

While a good point, I'm not sure if there's a great way to put this succinctly. We test a good deal of configurations but it's basically impossible for us to test every configuration so I'm not sure we'd gain much in breaking down exactly what configurations of what tests are run here.


Tier 2 platforms can be thought of as "guaranteed to build". Automated tests are
not run so it's not guaranteed to produce a working build, but platforms often
work to quite a good degree and patches are always welcome! Specifially, these

This comment has been minimized.

@mdinger

mdinger Oct 16, 2015

Contributor

s/Specifially/Specifically/

@alexcrichton alexcrichton force-pushed the alexcrichton:tiers branch from bc6eece to f241a84 Oct 16, 2015

Tier 2 platforms can be thought of as "guaranteed to build". Automated tests are
not run so it's not guaranteed to produce a working build, but platforms often
work to quite a good degree and patches are always welcome! Specifially, these
platforms satisfy:

This comment has been minimized.

@mdinger

mdinger Oct 16, 2015

Contributor

I didn't think the list read correctly based on the preceding statement. Satisfy sounds like it should be followed by a series of check marks or something and I couldn't work it in with that. I tried to set it up so each statement starts with a qualified verb (must do/may build/can compile/does not fly) (I don't know what they're actually called so I'm sorta guessing here).

The 3rd bullet may not be exactly what was meant originally though. I'm not really sure.


Specifically, these platforms:
* must be automatically built
* may or may not run the compiler test-suite
* successfully compile the `rust-lang/rust` master branch. This requires either:
  - just compiling the std library or
  - running the full bootstrap
* provide official release artifacts
@larsbergstrom

This comment has been minimized.

Copy link
Contributor

larsbergstrom commented Oct 17, 2015

@alexcrichton One thing that the Gecko tiers page (https://developer.mozilla.org/en/docs/Supported_build_configurations) has is contact names for the community members who are the official maintainer, where such a thing exists. Perhaps that makes sense here, too?

@lambda

This comment has been minimized.

Copy link
Contributor

lambda commented Oct 17, 2015

A questions on this; this appears to indicate the platforms that rustc supports running on, but that can be different than the platforms it supports targeting. In particular, I believe that limited support for targeting Windows XP has landed. Would it be at all useful to make the distinction between level of support for running on vs. targeting a platform in this description, or maybe adding a "Tier 4" for such platforms that can be targeted by a limited subset of the language and stdlib but not necessarily run the compiler or support all of std? Or is XP supposed to be covered by the i686-pc-windows-msvc target? In that case, you may want to update the comment about that target.

@SimonSapin

This comment has been minimized.

Copy link
Contributor

SimonSapin commented Oct 18, 2015

What do the columns mean? I’m guessing that rustc and cargo columns are for "runs on platform X", while std is "can cross-compile targetting platform X", but this should be documented.

@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Oct 19, 2015

@larsbergstrom

Sounds like a good idea to me! I'd want to clear it with everyone before adding them to this page, but I suspect those maintainers can be added here over time.


@lambda

Ah good point! XP support falls into the tier 3 category I believe where it's not guaranteed to build or work but support is in theory there, I'll add a note.


@SimonSapin

It means that the corresponding column is expected to build for that platform. In general there are many ways to cross to a platform (e.g. from any host), but I'll try to clarify.

@alexcrichton alexcrichton force-pushed the alexcrichton:tiers branch from f241a84 to 153aabb Oct 19, 2015

doc: Clarify supported platforms and tiers
This commit expands the "supported platforms" section of the book to include
documentation on the tiers that Rust currently has as well as organizing all
supported platforms into these various tiers. Infrastructure improvements over
the next few months are likely to change the location of may of these platforms
over, but for now this should faithfully represent what we've got today!

@alexcrichton alexcrichton force-pushed the alexcrichton:tiers branch from 153aabb to 93e419c Oct 20, 2015

@steveklabnik

This comment has been minimized.

Copy link
Member

steveklabnik commented Oct 20, 2015

@bors: r+ rollup

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Oct 20, 2015

📌 Commit 93e419c has been approved by steveklabnik

bors added a commit that referenced this pull request Oct 21, 2015

Auto merge of #29055 - alexcrichton:tiers, r=steveklabnik
This commit expands the "supported platforms" section of the book to include
documentation on the tiers that Rust currently has as well as organizing all
supported platforms into these various tiers. Infrastructure improvements over
the next few months are likely to change the location of may of these platforms
over, but for now this should faithfully represent what we've got today!
@bors

This comment has been minimized.

Copy link
Contributor

bors commented Oct 21, 2015

⌛️ Testing commit 93e419c with merge 4aec7c7...

@bors bors merged commit 93e419c into rust-lang:master Oct 21, 2015

1 of 2 checks passed

continuous-integration/travis-ci/pr The Travis CI build could not complete due to an error
Details
homu Test successful
Details

@alexcrichton alexcrichton deleted the alexcrichton:tiers branch Oct 28, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.