From cad014b152800ef773381bf82e6c30f93bc358d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Mon, 9 Jun 2025 09:00:43 +0200 Subject: [PATCH 1/5] Fix broken links --- src/compiler/cross-team-collaboration.md | 4 ++-- src/compiler/membership.md | 9 ++++----- src/compiler/prioritization.md | 2 +- src/compiler/proposals-and-stabilization.md | 3 ++- src/compiler/reviews.md | 1 + src/compiler/third-party-out-of-tree.md | 10 +++++----- src/compiler/working-areas.md | 18 +++++++++--------- src/infra/service-infrastructure.md | 2 +- src/infra/toolstate.md | 2 +- src/libs/README.md | 2 +- src/policies/crate-ownership.md | 4 ++-- 11 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/compiler/cross-team-collaboration.md b/src/compiler/cross-team-collaboration.md index 196718ec9..2a383d2d3 100644 --- a/src/compiler/cross-team-collaboration.md +++ b/src/compiler/cross-team-collaboration.md @@ -10,7 +10,7 @@ label to a issue (you can include `@rustbot label +I-compiler-nominated` in your comment to do this). Once nominated, the issue will be discussed in a upcoming [triage -meeting](./triage-meeting.html). The compiler team doesn't always get through +meeting](./meetings.md#triage-meeting). The compiler team doesn't always get through all nominated issues each week, so it can take more than one meeting for your issue to be discussed. @@ -60,7 +60,7 @@ Add the `I-compiler-nominated` label to a issue (you can use `@rustbot label +I-compiler-nominated` to do this). Once nominated, the issue will be discussed in a upcoming [triage -meeting](./triage-meeting.html). The compiler team doesn't always get through +meeting](./meetings.md#triage-meeting). The compiler team doesn't always get through all nominated issues each week, so it can take more than one meeting for your issue to be discussed. In the compiler team's discussion, the issue may.. diff --git a/src/compiler/membership.md b/src/compiler/membership.md index 90b54130a..53dfb3b9e 100644 --- a/src/compiler/membership.md +++ b/src/compiler/membership.md @@ -5,7 +5,7 @@ This team discusses membership in the compiler team. There are currently two lev * maintainers: members who have committed themselves to invest in the quality of the compiler and health of the compiler team -[infrastructure]: ../infra/index.html +[infrastructure]: ../infra/README.md ## The path to membership People who are looking to contribute to the compiler typically start in one of two ways. They may @@ -52,9 +52,8 @@ Being promoted to member implies a number of privileges: It also implies some obligations (in some cases, optional obligations): - Members will be asked if they wish to be added to the reviewer rotation. -- Members may take part in various other [maintainer activities] to help the team. -- Members are held to a higher standard than ordinary folk when it comes to the [Code of - Conduct][CoC]. +- Members may take part in various other maintainer activities to help the team. +- Members are held to a higher standard than ordinary folk when it comes to the [Code of Conduct][CoC]. [listed]: https://www.rust-lang.org/governance/teams/compiler @@ -82,7 +81,7 @@ After being a compiler team member for a year, members can request or be asked t actively helping to shape the direction of the team or some part of the compiler (or multiple parts). -- Compiler team maintainers are expected to participate in at least one [maintenance activities]. +- Compiler team maintainers are expected to participate in at least one maintenance activities. - Compiler team maintainers are identified with the "Maintainer" role on the rust-lang website. ## How promotion decisions are made diff --git a/src/compiler/prioritization.md b/src/compiler/prioritization.md index 8f9f59cb3..880e7f277 100644 --- a/src/compiler/prioritization.md +++ b/src/compiler/prioritization.md @@ -217,5 +217,5 @@ After the meeting, there are a few closing tasks: [forge_announce]: https://github.com/rust-lang/rust-forge/issues?q=label%3Afinished-final-comment-period+label%3Ato-announce [fcps]: https://github.com/rust-lang/compiler-team/issues?q=label%3Amajor-change+label%3Ato-announce [mcps]: https://github.com/rust-lang/compiler-team/issues?q=label%3Amajor-change+label%3Ato-announce -[relese_backports]: ../release/backporting.md +[release_backports]: ../release/backporting.md [compiler_nominated]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3AI-compiler-nominated+label%3AT-compiler diff --git a/src/compiler/proposals-and-stabilization.md b/src/compiler/proposals-and-stabilization.md index f5a25a0c6..827845d4d 100644 --- a/src/compiler/proposals-and-stabilization.md +++ b/src/compiler/proposals-and-stabilization.md @@ -64,6 +64,7 @@ the nature of the proposal, described below. [rust-lang/compiler-team]: https://github.com/rust-lang/compiler-team [design meeting proposal]: ./meetings.md#steeringplanning-meeting +[major change template]: https://github.com/rust-lang/compiler-team/issues/new?template=major_change.md #### What kinds of comments should go on a MCP in the compiler-team repo? Please direct technical conversation to the Zulip stream. @@ -360,7 +361,7 @@ See [*Backports*](./backports.md). ### Adding ecosystem/integration test jobs/components to rust-lang/rust CI -See [*Adding ecosystem/integration test jobs/components to rust-lang/rust CI*](./proposals-and-stabilization/custom-test-jobs.md). +See [*Adding ecosystem/integration test jobs/components to rust-lang/rust CI*](./proposals-and-stabilization/ecosystem-integration-tests.md). [stabilization_guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html diff --git a/src/compiler/reviews.md b/src/compiler/reviews.md index 5acc92271..17463c3e4 100644 --- a/src/compiler/reviews.md +++ b/src/compiler/reviews.md @@ -497,3 +497,4 @@ team](https://www.rust-lang.org/governance/teams/moderation) to step in. [coc]: https://www.rust-lang.org/policies/code-of-conduct [rollup]: ../release/rollups.md +[MCP]: ./proposals-and-stabilization.md#how-do-i-submit-an-mcp diff --git a/src/compiler/third-party-out-of-tree.md b/src/compiler/third-party-out-of-tree.md index 33b41c34e..aea8eb73a 100644 --- a/src/compiler/third-party-out-of-tree.md +++ b/src/compiler/third-party-out-of-tree.md @@ -10,7 +10,7 @@ in `rust-lang`) and that the experience is uniform across `rust-lang/rust` and t ### When should parts of the compiler be extracted into an out-of-tree crate? This is left to the discretion of compiler team members but should be discussed with the rest of the team, either through raising the question at the weekly triage meeting or asynchronously using -[an approval decision](./proposals-and-stabilizations.md). If the crate is a product of a working +[an approval decision](./proposals-and-stabilization.md). If the crate is a product of a working group, there should already be agreement within the working group that an out-of-tree crate is suitable. @@ -123,9 +123,9 @@ In summary, the process for establishing an out-of-tree crate is as follows: > This crate is developed and maintained by the [Rust compiler team](https://github.com/rust-lang/compiler-team/tree/master/procedures) for use within > `rustc`, in particular, it is the responsibility of the - > [`.template`](../../working-groups/template) working group. This crate [will have regular - > breaking changes and provides no stability guarantees|is intended to remain stable and have - > limited breaking changes]. + > [`.template`](./working-areas.md) working area. This crate will have regular + > breaking changes and provides no stability guarantees | is intended to remain stable and have + > limited breaking changes. 1. Include the [LICENSE-APACHE][apache] and [LICENSE-MIT][mit] files from `rust-lang/rust`. 1. Include or link the [CODE_OF_CONDUCT][coc] file from `rust-lang/rust`. 1. Create a relevant `.gitignore` ([here's a sane default][gitignore]). @@ -137,7 +137,7 @@ In summary, the process for establishing an out-of-tree crate is as follows: [gitignore]: https://gitignore.io/api/vim,rust,emacs,clion,visualstudio,visualstudiocode [triagebot]: https://github.com/rust-lang/rust/blob/master/triagebot.toml [apache]: https://github.com/rust-lang/rust/blob/master/LICENSE-APACHE -[coc]: ../../about/code_of_conduct +[coc]: https://www.rust-lang.org/policies/code-of-conduct [mit]: https://github.com/rust-lang/rust/blob/master/LICENSE-MIT ## Third-party crates diff --git a/src/compiler/working-areas.md b/src/compiler/working-areas.md index d0f931543..6b44111f9 100644 --- a/src/compiler/working-areas.md +++ b/src/compiler/working-areas.md @@ -2,16 +2,16 @@ Much of the ongoing work and initiatives from the compiler team are performed by groups of people interested in specific areas of work. These groups are a great way for new contributors to get involved as they provide a stream of tasks focused around one area and have designated channels for help and advice. Here is a list of areas where work is being carried on: -Name | Short Description | Code | Zulip Stream ----- | ----------------- | ---------- | ------------ -Async-await Implementation | Implementing async-await | [Link][async-await_code] | [#wg-async][async-await_stream] -Diagnostics | Use crates.io crates for diagnostics rendering and make emitting diagnostics nicer. | [rustc_errors], [rustc_lint], [annotate-snippets] | [#t-compiler/diagnostics][diagnostics_stream] -LLVM | Working with LLVM upstream to represent Rust in its development | [rustc], [LLVM][llvm_code] | [#t-compiler/llvm][llvm_stream] -MIR Optimizations | Write MIR optimizations and refactor the MIR to be more optimizable. | [MIR transform](mir_transform_code) | [#t-compiler/mir-opts][mir-opts-stream] -Parallel-rustc | Making parallel compilation the default for rustc | [rustc] | [#t-compiler/parallel-rustc][parallel-rustc_stream] +Name | Short Description | Code | Zulip Stream +---- | ----------------- |-----------------------------------------------------------------------------| ------------ +Async-await Implementation | Implementing async-await | [Link][async-await_code] | [#wg-async][async-await_stream] +Diagnostics | Use crates.io crates for diagnostics rendering and make emitting diagnostics nicer. | [rustc_errors], [rustc_lint], [annotate-snippets] | [#t-compiler/diagnostics][diagnostics_stream] +LLVM | Working with LLVM upstream to represent Rust in its development | [rustc], [LLVM][llvm_code] | [#t-compiler/llvm][llvm_stream] +MIR Optimizations | Write MIR optimizations and refactor the MIR to be more optimizable. | [MIR transform][mir_transform_code] | [#t-compiler/mir-opts][mir-opts-stream] +Parallel-rustc | Making parallel compilation the default for rustc | [rustc] | [#t-compiler/parallel-rustc][parallel-rustc_stream] Polonius | Exploring the integration of the "NLL 2.0"-like ["Polonius analysis"][Polonius] into rustc | [borrow check][borrowck], [rust-lang/polonius][P], [rust-lang/datafrog][DF] | [#t-types/polonius][polonius_stream] -RLS 2.0 | Experimenting with a new compiler architecture tailored for IDEs | [rust-analyzer][ra-repo] | [#t-compiler/rust-analyzer][rls20_stream] -Rustc Dev Guide | Make the compiler easier to learn by ensuring that rustc-dev-guide is "complete" | [rustc], [rustc-dev-guide][rustc-dev-guide-repo] | [#t-compiler/rustc-dev-guide][rustc-dev-guide_stream] +RLS 2.0 | Experimenting with a new compiler architecture tailored for IDEs | [rust-analyzer][ra-repo] | [#t-compiler/rust-analyzer][rls20_stream] +Rustc Dev Guide | Make the compiler easier to learn by ensuring that rustc-dev-guide is "complete" | [rustc], [rustc-dev-guide][rustc-dev-guide-repo] | [#t-compiler/rustc-dev-guide][rustc-dev-guide_stream] For historical record here's a list of Working Groups that are not active anymore (either because they reached their goals or because work stalled): diff --git a/src/infra/service-infrastructure.md b/src/infra/service-infrastructure.md index 67f73b675..8fa13ba2c 100644 --- a/src/infra/service-infrastructure.md +++ b/src/infra/service-infrastructure.md @@ -49,7 +49,7 @@ Documentation on rfcbot commands can be found [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 -[triagebot](../triagebot/index.html) for more information. +[triagebot](../triagebot) for more information. ## DXR diff --git a/src/infra/toolstate.md b/src/infra/toolstate.md index d49ab646c..cf0eb62da 100644 --- a/src/infra/toolstate.md +++ b/src/infra/toolstate.md @@ -108,4 +108,4 @@ To add a new tool to be tracked, the following steps must be taken: [subup]: https://github.com/ehuss/subup [toolstate]: https://rust-lang-nursery.github.io/rust-toolstate/ [toolstate repository]: https://github.com/rust-lang-nursery/rust-toolstate/ -[forge]: ../index.html +[forge]: ../README.md diff --git a/src/libs/README.md b/src/libs/README.md index 21ee6952b..3120d2f43 100644 --- a/src/libs/README.md +++ b/src/libs/README.md @@ -9,4 +9,4 @@ It has details on current project groups, upcoming meetings, and the status of t The Libs team hangs out primarily in [the rust-lang Zulip](https://rust-lang.zulipchat.com/) these days in the `#t-libs` stream. -You can also find out more details about [Zulip and how the Rust community uses it](../../platforms/zulip.html). +You can also find out more details about [Zulip and how the Rust community uses it](../platforms/zulip.md). diff --git a/src/policies/crate-ownership.md b/src/policies/crate-ownership.md index 3f3bcba2a..144d5bd52 100644 --- a/src/policies/crate-ownership.md +++ b/src/policies/crate-ownership.md @@ -85,11 +85,11 @@ These should by and large not be considered to be "team managed" crates; this ca ## Transitions and new crates -Teams should feel free to create new crates in any of these categories; however "Intentional Artifact" crates must be accompanied with an RFC. As we move towards having team charters, this can transition to being a charter change (which may require an RFC or use its own process). Teams should notify when they've created such crates so that the Leadership Council may track these crates and ensure this policy is applied. +Teams should feel free to create new crates in any of these categories; however "Intentional Artifact" crates must be accompanied with an RFC. As we move towards having team charters, this can transition to being a charter change (which may require an RFC or use its own process). Teams should notify `council@rust-lang.org` when they've created such crates so that the Leadership Council may track these crates and ensure this policy is applied. From time to time a team's plan for a crate may change: experiments may conclude, crates may need to be deprecated, or the team may decide to release something for wider usage. -In general, teams should notify when such a transition is being made. +In general, teams should notify `council@rust-lang.org` when such a transition is being made. Any transition _away_ from "Intentional Artifact" requires an RFC. From 1dafb4c3d7f1f1591cfbc35f8b90a122370bb13d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Mon, 9 Jun 2025 09:01:00 +0200 Subject: [PATCH 2/5] Add support for link checking and run it on CI --- .github/workflows/deploy.yml | 2 -- .github/workflows/test.yml | 20 ++++++++++++++++++++ book.toml | 4 ++++ 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 3fe3259a1..615039ec1 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -16,8 +16,6 @@ jobs: - uses: actions/checkout@v4 - name: Install mdbook run: curl -sSL https://github.com/rust-lang/mdBook/releases/download/v${MDBOOK_VERSION}/mdbook-v${MDBOOK_VERSION}-x86_64-unknown-linux-gnu.tar.gz | tar -xz - - name: Check blacksmith format - run: cargo fmt --check --manifest-path=blacksmith/Cargo.toml - name: Build book run: ./mdbook build - name: Upload artifact diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..1cb58fcba --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,20 @@ +name: Test +on: + pull_request: + +jobs: + test: + name: CI + runs-on: ubuntu-latest + env: + MDBOOK_VERSION: 0.4.51 + steps: + - uses: actions/checkout@v3 + - name: Install mdbook + run: curl -sSL https://github.com/rust-lang/mdBook/releases/download/v${MDBOOK_VERSION}/mdbook-v${MDBOOK_VERSION}-x86_64-unknown-linux-gnu.tar.gz | tar -xz + - name: Install mdbook-linkcheck + run: cargo install mdbook-linkcheck@0.7.7 --locked + - name: Check blacksmith format + run: cargo fmt --check --manifest-path=blacksmith/Cargo.toml + - name: Build book + run: ./mdbook build diff --git a/book.toml b/book.toml index e9cc7a225..7fc6c560f 100644 --- a/book.toml +++ b/book.toml @@ -61,3 +61,7 @@ smart-punctuation = true "platforms/zulip/triagebot.html" = "/triagebot/index.html" "core/blogs.html" = "/platforms/blogs.html" "core/index.html" = "/governance/council.html" + +[output.linkcheck] +follow-web-links = false +optional = true From 48bfb964be1ea41f8c9bbf0c3254b311f241a027 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Mon, 9 Jun 2025 17:32:13 +0200 Subject: [PATCH 3/5] Add instructions for local link checking to README --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 343341ccb..00064ceea 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,12 @@ you to easily see and update changes you make. mdbook serve ``` +## Link checking + +On CI, we automatically check if all intra-doc links in the Forge Markdown files are valid. If you would like to +perform this check locally, install `mdbook-linkcheck` using `cargo install mdbook-linkcheck@0.7.7 --locked` and then +simply run `mdbook build` or `mdbook serve`. + ## JavaScript Forge uses JavaScript to display dates for releases and "no tools breakage From 685260df12e3cbb83681f3cf5c0681facbedae7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Tue, 10 Jun 2025 18:03:53 +0200 Subject: [PATCH 4/5] Update checkout action version --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1cb58fcba..f0ce78678 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: env: MDBOOK_VERSION: 0.4.51 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install mdbook run: curl -sSL https://github.com/rust-lang/mdBook/releases/download/v${MDBOOK_VERSION}/mdbook-v${MDBOOK_VERSION}-x86_64-unknown-linux-gnu.tar.gz | tar -xz - name: Install mdbook-linkcheck From 829774742beb65abe694264f2c4567d57c996ec6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Tue, 10 Jun 2025 18:52:05 +0200 Subject: [PATCH 5/5] Simplify deploy workflow --- .github/workflows/deploy.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 615039ec1..d88728410 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -2,7 +2,6 @@ name: Deploy To GitHub Pages on: schedule: - cron: '0 22 * * *' - pull_request: push: branches: - master @@ -19,13 +18,12 @@ jobs: - name: Build book run: ./mdbook build - name: Upload artifact - if: github.ref == 'refs/heads/master' uses: actions/upload-pages-artifact@v3 with: path: ./book deploy: - if: github.ref == 'refs/heads/master' && github.repository_owner == 'rust-lang' + if: github.repository_owner == 'rust-lang' needs: build permissions: