diff --git a/src/doc/rustc-dev-guide/.gitignore b/src/doc/rustc-dev-guide/.gitignore
index 160c5f0fe5c7a..f03fcae753f41 100644
--- a/src/doc/rustc-dev-guide/.gitignore
+++ b/src/doc/rustc-dev-guide/.gitignore
@@ -4,3 +4,5 @@ ci/date-check/target/
# Generated by check-in.sh
pulls.json
+
+josh-sync/target
diff --git a/src/doc/rustc-dev-guide/rust-version b/src/doc/rustc-dev-guide/rust-version
index 876c32dcf434d..651db7864b06f 100644
--- a/src/doc/rustc-dev-guide/rust-version
+++ b/src/doc/rustc-dev-guide/rust-version
@@ -1 +1 @@
-dcfa38fe234de9304169afc6638e81d0dd222c06
+9c87288a7d2f03625a813df6d3bfe43c09ad4f5a
diff --git a/src/doc/rustc-dev-guide/src/appendix/glossary.md b/src/doc/rustc-dev-guide/src/appendix/glossary.md
index bf3475a984b03..a7c3236d356ba 100644
--- a/src/doc/rustc-dev-guide/src/appendix/glossary.md
+++ b/src/doc/rustc-dev-guide/src/appendix/glossary.md
@@ -69,7 +69,7 @@ Term | Meaning
rib | A data structure in the name resolver that keeps track of a single scope for names. ([see more](../name-resolution.md))
RPIT | A return-position `impl Trait`. ([see the reference](https://doc.rust-lang.org/reference/types/impl-trait.html#abstract-return-types)).
RPITIT | A return-position `impl Trait` in trait. Unlike RPIT, this is desugared to a generic associated type (GAT). Introduced in [RFC 3425](https://rust-lang.github.io/rfcs/3425-return-position-impl-trait-in-traits.html). ([see more](../return-position-impl-trait-in-trait.md))
-scrutinee | A scrutinee is the expression that is matched on in `match` expressions and similar pattern matching constructs. For example, in `match x { A => 1, B => 2 }`, the expression `x` is the scrutinee.
+scrutinee | A scrutinee is the expression that is matched on in `match` expressions and similar pattern matching constructs. For example, in `match x { A => 1, B => 2 }`, the expression `x` is the scrutinee.
`sess` | The compiler _session_, which stores global data used throughout compilation
side tables | Because the [AST](#ast) and HIR are immutable once created, we often carry extra information about them in the form of hashtables, indexed by the id of a particular node.
sigil | Like a keyword but composed entirely of non-alphanumeric tokens. For example, `&` is a sigil for references.
diff --git a/src/doc/rustc-dev-guide/src/bug-fix-procedure.md b/src/doc/rustc-dev-guide/src/bug-fix-procedure.md
index 4857cf5e0bee4..e6a16df6d2a9c 100644
--- a/src/doc/rustc-dev-guide/src/bug-fix-procedure.md
+++ b/src/doc/rustc-dev-guide/src/bug-fix-procedure.md
@@ -227,7 +227,7 @@ that we use for unstable features:
Ideally, breaking changes should have landed on the **stable branch** of the
compiler before they are finalized.
-
+
### Removing a lint
diff --git a/src/doc/rustc-dev-guide/src/contributing.md b/src/doc/rustc-dev-guide/src/contributing.md
index ad1d33265c55a..9817326f07ba9 100644
--- a/src/doc/rustc-dev-guide/src/contributing.md
+++ b/src/doc/rustc-dev-guide/src/contributing.md
@@ -422,68 +422,8 @@ Just a few things to keep in mind:
## Issue triage
-Sometimes, an issue will stay open, even though the bug has been fixed.
-And sometimes, the original bug may go stale because something has changed in the meantime.
+Please see .
-It can be helpful to go through older bug reports and make sure that they are still valid.
-Load up an older issue, double check that it's still true,
-and leave a comment letting us know if it is or is not.
-The [least recently updated sort][lru] is good for finding issues like this.
-
-[Thanks to `@rustbot`][rustbot], anyone can help triage issues by adding
-appropriate labels to issues that haven't been triaged yet:
-
-[lru]: https://github.com/rust-lang/rust/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-asc
-[rustbot]: ./rustbot.md
-
-
-
-| Labels | Color | Description |
-|--------|-------|-------------|
-| [A-] | Yellow | The **area** of the project an issue relates to. |
-| [B-] | Magenta | Issues which are **blockers**. |
-| [beta-] | Dark Blue | Tracks changes which need to be [backported to beta][beta-backport] |
-| [C-] | Light Purple | The **category** of an issue. |
-| [D-] | Mossy Green | Issues for **diagnostics**. |
-| [E-] | Green | The **experience** level necessary to fix an issue. |
-| [F-] | Peach | Issues for **nightly features**. |
-| [I-] | Red | The **importance** of the issue. |
-| [I-\*-nominated] | Red | The issue has been nominated for discussion at the next meeting of the corresponding team. |
-| [I-prioritize] | Red | The issue has been nominated for prioritization by the team tagged with a **T**-prefixed label. |
-| [L-] | Teal | The relevant **lint**. |
-| [metabug] | Purple | Bugs that collect other bugs. |
-| [O-] | Purple Grey | The **operating system** or platform that the issue is specific to. |
-| [P-] | Orange | The issue **priority**. These labels can be assigned by anyone that understand the issue and is able to prioritize it, and remove the [I-prioritize] label. |
-| [regression-] | Pink | Tracks regressions from a stable release. |
-| [relnotes] | Light Orange | Changes that should be documented in the release notes of the next release. |
-| [S-] | Gray | Tracks the **status** of pull requests. |
-| [S-tracking-] | Steel Blue | Tracks the **status** of [tracking issues]. |
-| [stable-] | Dark Blue | Tracks changes which need to be [backported to stable][stable-backport] in anticipation of a point release. |
-| [T-] | Blue | Denotes which **team** the issue belongs to. |
-| [WG-] | Green | Denotes which **working group** the issue belongs to. |
-
-
-[A-]: https://github.com/rust-lang/rust/labels?q=A
-[B-]: https://github.com/rust-lang/rust/labels?q=B
-[C-]: https://github.com/rust-lang/rust/labels?q=C
-[D-]: https://github.com/rust-lang/rust/labels?q=D
-[E-]: https://github.com/rust-lang/rust/labels?q=E
-[F-]: https://github.com/rust-lang/rust/labels?q=F
-[I-]: https://github.com/rust-lang/rust/labels?q=I
-[L-]: https://github.com/rust-lang/rust/labels?q=L
-[O-]: https://github.com/rust-lang/rust/labels?q=O
-[P-]: https://github.com/rust-lang/rust/labels?q=P
-[S-]: https://github.com/rust-lang/rust/labels?q=S
-[T-]: https://github.com/rust-lang/rust/labels?q=T
-[WG-]: https://github.com/rust-lang/rust/labels?q=WG
[stable-]: https://github.com/rust-lang/rust/labels?q=stable
[beta-]: https://github.com/rust-lang/rust/labels?q=beta
[I-\*-nominated]: https://github.com/rust-lang/rust/labels?q=nominated
diff --git a/src/doc/rustc-dev-guide/src/external-repos.md b/src/doc/rustc-dev-guide/src/external-repos.md
index a7ab3d773acb5..8f9819300372a 100644
--- a/src/doc/rustc-dev-guide/src/external-repos.md
+++ b/src/doc/rustc-dev-guide/src/external-repos.md
@@ -21,6 +21,7 @@ The following external projects are managed using some form of a `subtree`:
* [rustfmt](https://github.com/rust-lang/rustfmt)
* [rust-analyzer](https://github.com/rust-lang/rust-analyzer)
* [rustc_codegen_cranelift](https://github.com/rust-lang/rustc_codegen_cranelift)
+* [rustc-dev-guide](https://github.com/rust-lang/rustc-dev-guide)
In contrast to `submodule` dependencies
(see below for those), the `subtree` dependencies are just regular files and directories which can
@@ -38,8 +39,9 @@ implement a new tool feature or test, that should happen in one collective rustc
* Using the [josh] tool
* `miri` ([sync guide](https://github.com/rust-lang/miri/blob/master/CONTRIBUTING.md#advanced-topic-syncing-with-the-rustc-repo))
* `rust-analyzer` ([sync script](https://github.com/rust-lang/rust-analyzer/blob/2e13684be123eca7181aa48e043e185d8044a84a/xtask/src/release.rs#L147))
+ * `rustc-dev-guide` ([sync guide](https://github.com/rust-lang/rustc-dev-guide#synchronizing-josh-subtree-with-rustc))
-The [josh] tool is an alternative to git subtrees, which manages git history in a different way and scales better to larger repositories. Specific tooling is required to work with josh, you can check out the `miri` or `rust-analyzer` scripts linked above for inspiration. If you want to migrate a subtree from `git subtree` to josh, you can check out [this guide](https://hackmd.io/7pOuxnkdQDaL1Y1FQr65xg).
+The [josh] tool is an alternative to git subtrees, which manages git history in a different way and scales better to larger repositories. Specific tooling is required to work with josh, you can check out the `miri` or `rust-analyzer` scripts linked above for inspiration. If you want to migrate a repository dependency from `git subtree` or `git submodule` to josh, you can check out [this guide](https://hackmd.io/7pOuxnkdQDaL1Y1FQr65xg).
Below you can find a guide on how to perform push and pull synchronization with the main rustc repo using `git subtree`, although these instructions might differ repo from repo.
diff --git a/src/tools/rust-analyzer/Cargo.lock b/src/tools/rust-analyzer/Cargo.lock
index 48b5f3aabfc15..ee5a31b733f39 100644
--- a/src/tools/rust-analyzer/Cargo.lock
+++ b/src/tools/rust-analyzer/Cargo.lock
@@ -40,9 +40,9 @@ checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
[[package]]
name = "arrayvec"
-version = "0.7.4"
+version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
[[package]]
name = "autocfg"