about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEduardo Broto <ebroto@tutanota.com>2020-11-29 18:08:47 +0100
committerflip1995 <philipp.krones@embecosm.com>2020-12-10 09:57:29 +0100
commit613333acd537dff5844cd1ed72d4e6f56752ee6a (patch)
tree343699e76348812ac9c81cd6bdcfc0057e393e84
parent6c70133faa059a9e71dc386d70121a23a65715ab (diff)
downloadrust-613333acd537dff5844cd1ed72d4e6f56752ee6a.tar.gz
rust-613333acd537dff5844cd1ed72d4e6f56752ee6a.zip
Pin Clippy to a nightly
-rw-r--r--.github/workflows/clippy.yml3
-rw-r--r--.github/workflows/clippy_bors.yml11
-rw-r--r--CONTRIBUTING.md21
-rw-r--r--doc/basics.md28
-rw-r--r--rust-toolchain4
-rwxr-xr-xsetup-toolchain.sh36
6 files changed, 18 insertions, 85 deletions
diff --git a/.github/workflows/clippy.yml b/.github/workflows/clippy.yml
index cf4aa39e49b..181b3bab421 100644
--- a/.github/workflows/clippy.yml
+++ b/.github/workflows/clippy.yml
@@ -56,9 +56,6 @@ jobs:
         restore-keys: |
           ${{ runner.os }}-x86_64-unknown-linux-gnu
 
-    - name: Master Toolchain Setup
-      run: bash setup-toolchain.sh
-
     # Run
     - name: Set LD_LIBRARY_PATH (Linux)
       run: |
diff --git a/.github/workflows/clippy_bors.yml b/.github/workflows/clippy_bors.yml
index 784463fe0df..f08182365fc 100644
--- a/.github/workflows/clippy_bors.yml
+++ b/.github/workflows/clippy_bors.yml
@@ -105,11 +105,6 @@ jobs:
         restore-keys: |
           ${{ runner.os }}-${{ matrix.host }}
 
-    - name: Master Toolchain Setup
-      run: bash setup-toolchain.sh
-      env:
-        HOST_TOOLCHAIN: ${{ matrix.host }}
-
     # Run
     - name: Set LD_LIBRARY_PATH (Linux)
       if: runner.os == 'Linux'
@@ -192,9 +187,6 @@ jobs:
         restore-keys: |
           ${{ runner.os }}-x86_64-unknown-linux-gnu
 
-    - name: Master Toolchain Setup
-      run: bash setup-toolchain.sh
-
     # Run
     - name: Build Integration Test
       run: cargo test --test integration --features integration --no-run
@@ -273,9 +265,6 @@ jobs:
         restore-keys: |
           ${{ runner.os }}-x86_64-unknown-linux-gnu
 
-    - name: Master Toolchain Setup
-      run: bash setup-toolchain.sh
-
     # Download
     - name: Download target dir
       uses: actions/download-artifact@v1
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f8c26e2d456..29cbe2a08ec 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -182,18 +182,21 @@ That's why the `else_if_without_else` example uses the `register_early_pass` fun
 [early_lint_pass]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_lint/trait.EarlyLintPass.html
 [late_lint_pass]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_lint/trait.LateLintPass.html
 
-## Fixing build failures caused by Rust
+## Syncing changes from [`rust-lang/rust`] to Clippy
 
-Clippy currently gets built with `rustc` of the `rust-lang/rust` `master`
-branch. Most of the times we have to adapt to the changes and only very rarely
-there's an actual bug in Rust.
+Clippy currently gets built with a pinned nightly version.
 
-If you decide to make Clippy work again with a Rust commit that breaks it, you
-have to sync the `rust-lang/rust-clippy` repository with the `subtree` copy of
-Clippy in the `rust-lang/rust` repository.
+In the `rust-lang/rust` repository, where rustc resides, there's a copy of Clippy
+that compiler hackers modify from time to time to adapt to changes in the unstable
+API of the compiler.
 
-For general information about `subtree`s in the Rust repository see [Rust's
-`CONTRIBUTING.md`][subtree].
+We need to sync these changes back to this repository periodically. If you want
+to help with that, you have to sync the `rust-lang/rust-clippy` repository with 
+the `subtree` copy of Clippy in the `rust-lang/rust` repository, and update
+the `rustc-toolchain` file accordingly.
+
+For general information about `subtree`s in the Rust repository
+see [Rust's `CONTRIBUTING.md`][subtree].
 
 ### Patching git-subtree to work with big repos
 
diff --git a/doc/basics.md b/doc/basics.md
index f25edb793e2..8b2a8a23890 100644
--- a/doc/basics.md
+++ b/doc/basics.md
@@ -1,16 +1,14 @@
 # Basics for hacking on Clippy
 
 This document explains the basics for hacking on Clippy. Besides others, this
-includes how to set-up the development environment, how to build and how to test
-Clippy. For a more in depth description on the codebase take a look at [Adding
-Lints] or [Common Tools].
+includes how to build and test Clippy. For a more in depth description on
+the codebase take a look at [Adding Lints] or [Common Tools].
 
 [Adding Lints]: https://github.com/rust-lang/rust-clippy/blob/master/doc/adding_lints.md
 [Common Tools]: https://github.com/rust-lang/rust-clippy/blob/master/doc/common_tools_writing_lints.md
 
 - [Basics for hacking on Clippy](#basics-for-hacking-on-clippy)
   - [Get the code](#get-the-code)
-  - [Setup](#setup)
   - [Building and Testing](#building-and-testing)
   - [`cargo dev`](#cargo-dev)
   - [PR](#pr)
@@ -38,29 +36,9 @@ git rebase upstream/master
 git push
 ```
 
-## Setup
-
-Next we need to setup the toolchain to compile Clippy. Since Clippy heavily
-relies on compiler internals it is build with the latest rustc master. To get
-this toolchain, you can just use the `setup-toolchain.sh` script or use
-`rustup-toolchain-install-master`:
-
-```bash
-bash setup-toolchain.sh
-# OR
-cargo install rustup-toolchain-install-master
-# For better IDE integration also add `-c rustfmt -c rust-src` (optional)
-rustup-toolchain-install-master -f -n master -c rustc-dev -c llvm-tools
-rustup override set master
-```
-
-_Note:_ Sometimes you may get compiler errors when building Clippy, even if you
-didn't change anything. Normally those will be fixed by a maintainer in a few hours. 
-
 ## Building and Testing
 
-Once the `master` toolchain is installed, you can build and test Clippy like
-every other Rust project:
+You can build and test Clippy like every other Rust project:
 
 ```bash
 cargo build  # builds Clippy
diff --git a/rust-toolchain b/rust-toolchain
index bf867e0ae5b..dba3e57bcf7 100644
--- a/rust-toolchain
+++ b/rust-toolchain
@@ -1 +1,3 @@
-nightly
+[toolchain]
+channel = "nightly-2020-11-29"
+components = ["llvm-tools-preview", "rustc-dev", "rust-src", "rustfmt"]
diff --git a/setup-toolchain.sh b/setup-toolchain.sh
deleted file mode 100755
index 191ea4315a6..00000000000
--- a/setup-toolchain.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-# Set up the appropriate rustc toolchain
-
-set -e
-
-cd "$(dirname "$0")"
-
-RTIM_PATH=$(command -v rustup-toolchain-install-master) || INSTALLED=false
-CARGO_HOME=${CARGO_HOME:-$HOME/.cargo}
-
-# Check if RTIM is not installed or installed in other locations not in ~/.cargo/bin
-if [[ "$INSTALLED" == false || "$RTIM_PATH" == $CARGO_HOME/bin/rustup-toolchain-install-master ]]; then
-    cargo +nightly install rustup-toolchain-install-master
-else
-    VERSION=$(rustup-toolchain-install-master -V | grep -o "[0-9.]*")
-    REMOTE=$(cargo +nightly search rustup-toolchain-install-master | grep -o "[0-9.]*")
-    echo "info: skipping updating rustup-toolchain-install-master at $RTIM_PATH"
-    echo "      current version : $VERSION"
-    echo "      remote version  : $REMOTE"
-fi
-
-RUST_COMMIT=$(git ls-remote https://github.com/rust-lang/rust master | awk '{print $1}')
-
-if rustc +master -Vv 2>/dev/null | grep -q "$RUST_COMMIT"; then
-    echo "info: master toolchain is up-to-date"
-    exit 0
-fi
-
-if [[ -n "$HOST_TOOLCHAIN" ]]; then
-    TOOLCHAIN=('--host' "$HOST_TOOLCHAIN")
-else
-    TOOLCHAIN=()
-fi
-
-rustup-toolchain-install-master -f -n master "${TOOLCHAIN[@]}" -c rustc-dev -c llvm-tools -- "$RUST_COMMIT"
-rustup override set master