Skip to content

Update infrastructure page #244

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

Merged
merged 12 commits into from
Aug 6, 2019
2 changes: 1 addition & 1 deletion index.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ This site contains supplementary documentation useful to the members of
- [How the channels look on `static.rust-lang.org`](channel-layout.html).
- [Beta backporting](beta-backporting.html). The mystery of the
oft-misinterpreted `beta-nominated` / `beta-accepted` tags finally revealed.
- [Bots, websites and infrastructure](infrastructure.html). A catalog of the IRC
- [Bots, websites and infrastructure](infrastructure.html). A catalog of the
bots, websites and other infrastructure used by the project, what they do, and
who maintains them (i.e. who to contact when they malfunction and go on a bot
rampage).
Expand Down
121 changes: 84 additions & 37 deletions infrastructure.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ title: Rust Infrastructure · The Rust Programming Language
# Rust Infrastructure

Most services in the Rust Infrastructure are deployed via
[rust-central-station][]. Questions about infrastructure, including current
status, should go to the #rust-infra IRC channel.
[rust-central-station]. Questions about infrastructure, including current
status, should go to the [#infra Discord channel](https://discord.gg/rust-lang).

**Our stability guarantees**: many of our services rely on publicly-accessible
storage and APIs, but not all of these are intended for public consumption. At
Expand All @@ -16,15 +16,23 @@ stable**, meaning that those resources will not change without (at least) prior
notice. If you are relying on other parts of the Rust project infrastructure for
your own work, please let the infrastructure team know.

[rust-central-station]: https://github.com/rust-lang/rust-central-station

## Highfive

[Highfive](https://github.com/nrc/highfive) is a bot
[Highfive](https://github.com/rust-lang/highfive) is a bot
([bot user account](https://github.com/rust-highfive)) which welcomes newcomers
and assigns reviewers. It is run by [Nick Cameron](https://github.com/nrc).
and assigns reviewers.

## Rust Log Analyzer

The [Rust Log Analyzer](https://github.com/rust-lang/rust-log-analyzer)
analyzes CI build logs to extract error messages and posts them to the pull
request. It is run by [TimNN](https://github.com/TimNN).

## Homu

[Homu](http://github.com/barosl/homu/) is a bot
[Homu](https://github.com/rust-lang/homu/) is a bot
([bot user account](https://github.com/bors)) which manages pull requests.
Approved pull requests are placed in
[a queue](http://buildbot2.rust-lang.org/homu/queue/rust) from which tests are
Expand All @@ -38,48 +46,87 @@ goes wrong with the bot.

## rfcbot

[rfcbot](https://github.com/dikaiosune/rust-dashboard) is a bot
[rfcbot](https://github.com/rust-lang/rfcbot-rs) is a bot
([bot user account](https://github.com/rfcbot)) which helps manage async
decision making on issues and PRs (typically RFCs). Team members can view any
pending requests for review on [the FCP dashboard](http://rusty-dash.com/fcp).
pending requests for review on [the FCP dashboard](https://rfcbot.rs/).

Documentation on rfcbot commands can be found
[in the dashboard repository](https://github.com/dikaiosune/rust-dashboard/blob/master/RFCBOT.md).
[in the rfcbot repository](https://github.com/rust-lang/rfcbot-rs).

Please contact [Adam Perry](https://github.com/dikaiosune) ("dikaiosune" on IRC)
if something goes wrong with the bot, or open an issue on
[the dashboard repository](https://github.com/dikaiosune/rust-dashboard/).
## rustbot

## nagbot

[nagbot](https://github.com/aturon/nag-rs) is a bot that emails Rust team
members to nag them for reviews. Please contact
[Aaron Turon](https://github.com/aturon) ("aturon" on IRC) if something goes
wrong with the bot, or open an issue on
[its repo](https://github.com/aturon/nag-rs).
[rustbot](https://github.com/rust-lang/triagebot) is a bot ([bot user
account](https://github.com/rustbot)) to assist with managing issues and PRs
to allow users to label and assign without GitHub permissions. See [the
wiki](https://github.com/rust-lang/triagebot/wiki) for more information.

## DXR

[DXR](https://dxr.mozilla.org/rust/source/) is a cross-referenced source index
for Rust, allowing the Rust source tree to be navigated and searched with ease.
It is generated by [rust-dxr](https://github.com/nrc/rust-dxr)

## Others

TODO: Describe these better.

- [perf.rust-lang.org](http://perf.rust-lang.org/). Maintained by nrc.
[Source](https://github.com/nrc/rustc-perf).
- [Rust Release Explorer](http://ashleygwilliams.github.io/rust-release-explorer/)
- [rusty-dash.com](http://rusty-dash.com/).
[Source](https://github.com/dikaiosune/rust-dashboard).
- [buildbot.rust-lang.org](http://buildbot.rust-lang.org/).
[Source](https://github.com/rust-lang/rust-buildbot). Maintained by acrichto.
- [crater.rust-lang.org](https://crater.rust-lang.org/).
[Source](https://github.com/rust-lang-nursery/crater). Maintained by
tomprince.
- [play.rust-lang.org](http://play.rust-lang.org/)
[Source](https://github.com/integer32llc/rust-playground). Maintained by
shepmaster.

[rust-central-station]: https://github.com/alexcrichton/rust-central-station
## perf

[perf](https://github.com/rust-lang-nursery/rustc-perf) offers information
about the performance of `rustc` over time.

It is split into a data [collector] and a [web frontend]. The raw performance
data is available [here](https://github.com/rust-lang-nursery/rustc-timing)
and can be browsed on the [perf website](https://perf.rust-lang.org).

One-off performance runs can done by addressing the [rust-timer
bot](https://github.com/rust-timer). On a PR, do a "try" build (`@bors try`),
wait for it finish, then leave a comment with the merge commit hash like this:

@rust-timer build ac89e0324b48993d6d148f598ea0e7357e229c79

[collector]: https://github.com/rust-lang-nursery/rustc-perf/tree/master/collector
[web frontend]: https://github.com/rust-lang-nursery/rustc-perf/tree/master/site
Copy link
Contributor

Choose a reason for hiding this comment

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

Could we add a quick blurb about the most common use case and commands to achieve that?

@bors try

<wait a bit; copy the $hash from the build>

@rust-timer build $hash

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I've never used the rust-timer bot, but I added a small blurb. Ideally I would think documentation should be on the perf website (I searched around and couldn't find any anywhere, like who has permissions to use it, etc.).

Copy link
Contributor

Choose a reason for hiding this comment

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


## Rust Playground

[Rust Playground](https://github.com/integer32llc/rust-playground) allows you
to experiment with Rust before you install it locally, or in any other case
where you might not have the compiler available. The Rust playground can be
accessed [here](https://play.rust-lang.org).

## Crater

[Crater](https://github.com/rust-lang/crater) is a tool to run
experiments across the whole Rust ecosystem. Its primary purpose is to detect
regressions in the Rust compiler, and it does this by building large number of
crates, running their test suites and comparing the results between two
versions of the Rust compiler.

## docs.rs

[docs.rs](https://docs.rs/) builds and serves the rustdoc documentation for
all crates on [crates.io]. Issues may be filed on the [docs.rs
repository](https://github.com/rust-lang/docs.rs). See the #docs-rs channel on
Discord for discussion or urgent issues.

## Toolstate

The state of tools included with Rust are tracked on the [toolstate
page](https://rust-lang-nursery.github.io/rust-toolstate/). When each PR is
merged via CI, the status of each tool is recorded in a JSON file and stored
in the [toolstate repo](https://github.com/rust-lang-nursery/rust-toolstate).
Copy link
Contributor

Choose a reason for hiding this comment

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

Say something about the toolstate week and when it happens? cc @pietroalbini

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Toolstate is being documented in #243. This can link to that if/when that gets merged.

Copy link
Contributor

Choose a reason for hiding this comment

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

Alright; sounds good.

Copy link
Member

Choose a reason for hiding this comment

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

I added a link from here to the new page in #243.


## Rustup components history

The [rustup components
history](https://rust-lang.github.io/rustup-components-history/) tracks the
status of every rustup component for every platform over time. See [the
repository](https://github.com/rust-lang/rustup-components-history) for more
information.

## CI Timing Tracker

The [CI Timing
Tracker](https://alexcrichton.github.io/rust-ci-timing-tracker/) tracks and
compares how long CI jobs take over time. It is run by [Alex
Crichton](https://github.com/alexcrichton/rust-ci-timing-tracker).

[crates.io]: https://crates.io/