about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <476013+matthiaskrgr@users.noreply.github.com>2025-03-13 10:58:13 +0100
committerGitHub <noreply@github.com>2025-03-13 10:58:13 +0100
commit3b1776dc292d057f59ed94de0d2c14ff43d73a55 (patch)
treed550dc7c4bf08c5bea96fc076d6e712b30cb89c1
parent961351c76c812e3aeb65bfb542742500a6436aed (diff)
parent707d4b7a93fbe0df653bab88e78d2baf4bfd989d (diff)
downloadrust-3b1776dc292d057f59ed94de0d2c14ff43d73a55.tar.gz
rust-3b1776dc292d057f59ed94de0d2c14ff43d73a55.zip
Rollup merge of #126856 - onur-ozkan:remove-rls, r=clubby789
remove deprecated tool `rls`

This tool has been deprecated for two years and now it only gives warning without doing anything useful.

Zulip discussion: https://rust-lang.zulipchat.com/#narrow/stream/241545-t-release/topic/excluding.20rls.20from.20the.20release

try-job: x86_64-gnu-distcheck
-rw-r--r--Cargo.lock7
-rw-r--r--Cargo.toml1
-rw-r--r--src/bootstrap/src/core/build_steps/check.rs1
-rw-r--r--src/bootstrap/src/core/build_steps/clippy.rs1
-rw-r--r--src/bootstrap/src/core/build_steps/dist.rs43
-rw-r--r--src/bootstrap/src/core/build_steps/setup.rs4
-rw-r--r--src/bootstrap/src/core/build_steps/tool.rs2
-rw-r--r--src/bootstrap/src/core/builder/mod.rs4
-rw-r--r--src/bootstrap/src/lib.rs2
-rw-r--r--src/bootstrap/src/utils/change_tracker.rs5
-rw-r--r--src/bootstrap/src/utils/tarball.rs3
-rw-r--r--src/tools/build-manifest/src/main.rs2
-rw-r--r--src/tools/build-manifest/src/versions.rs3
-rw-r--r--src/tools/rls/Cargo.toml8
-rw-r--r--src/tools/rls/README.md6
-rw-r--r--src/tools/rls/src/main.rs102
-rw-r--r--src/tools/tidy/src/walk.rs2
17 files changed, 7 insertions, 189 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 7625b38401d..942f8f43935 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3046,13 +3046,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "rls"
-version = "2.0.0"
-dependencies = [
- "serde_json",
-]
-
-[[package]]
 name = "run_make_support"
 version = "0.2.0"
 dependencies = [
diff --git a/Cargo.toml b/Cargo.toml
index 20a43aaaeeb..915ec2e00ca 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -24,7 +24,6 @@ members = [
   "src/tools/remote-test-server",
   "src/tools/rust-installer",
   "src/tools/rustdoc",
-  "src/tools/rls",
   "src/tools/rustfmt",
   "src/tools/miri",
   "src/tools/miri/cargo-miri",
diff --git a/src/bootstrap/src/core/build_steps/check.rs b/src/bootstrap/src/core/build_steps/check.rs
index 18aa3119842..e67bc62a603 100644
--- a/src/bootstrap/src/core/build_steps/check.rs
+++ b/src/bootstrap/src/core/build_steps/check.rs
@@ -454,7 +454,6 @@ tool_check_step!(Rustdoc { path: "src/tools/rustdoc", alt_path: "src/librustdoc"
 tool_check_step!(Clippy { path: "src/tools/clippy" });
 tool_check_step!(Miri { path: "src/tools/miri" });
 tool_check_step!(CargoMiri { path: "src/tools/miri/cargo-miri" });
-tool_check_step!(Rls { path: "src/tools/rls" });
 tool_check_step!(Rustfmt { path: "src/tools/rustfmt" });
 tool_check_step!(MiroptTestTools { path: "src/tools/miropt-test-tools" });
 tool_check_step!(TestFloatParse { path: "src/etc/test-float-parse" });
diff --git a/src/bootstrap/src/core/build_steps/clippy.rs b/src/bootstrap/src/core/build_steps/clippy.rs
index fe8c89f7a53..d3ab215d1b5 100644
--- a/src/bootstrap/src/core/build_steps/clippy.rs
+++ b/src/bootstrap/src/core/build_steps/clippy.rs
@@ -346,7 +346,6 @@ lint_any!(
     OptDist, "src/tools/opt-dist", "opt-dist";
     RemoteTestClient, "src/tools/remote-test-client", "remote-test-client";
     RemoteTestServer, "src/tools/remote-test-server", "remote-test-server";
-    Rls, "src/tools/rls", "rls";
     RustAnalyzer, "src/tools/rust-analyzer", "rust-analyzer";
     Rustdoc, "src/librustdoc", "clippy";
     Rustfmt, "src/tools/rustfmt", "rustfmt";
diff --git a/src/bootstrap/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs
index ec0edeab996..c393eb55c62 100644
--- a/src/bootstrap/src/core/build_steps/dist.rs
+++ b/src/bootstrap/src/core/build_steps/dist.rs
@@ -1158,48 +1158,6 @@ impl Step for Cargo {
 }
 
 #[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
-pub struct Rls {
-    pub compiler: Compiler,
-    pub target: TargetSelection,
-}
-
-impl Step for Rls {
-    type Output = Option<GeneratedTarball>;
-    const ONLY_HOSTS: bool = true;
-    const DEFAULT: bool = true;
-
-    fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
-        let default = should_build_extended_tool(run.builder, "rls");
-        run.alias("rls").default_condition(default)
-    }
-
-    fn make_run(run: RunConfig<'_>) {
-        run.builder.ensure(Rls {
-            compiler: run.builder.compiler_for(
-                run.builder.top_stage,
-                run.builder.config.build,
-                run.target,
-            ),
-            target: run.target,
-        });
-    }
-
-    fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
-        let compiler = self.compiler;
-        let target = self.target;
-
-        let rls = builder.ensure(tool::Rls { compiler, target });
-
-        let mut tarball = Tarball::new(builder, "rls", &target.triple);
-        tarball.set_overlay(OverlayKind::Rls);
-        tarball.is_preview(true);
-        tarball.add_file(rls.tool_path, "bin", 0o755);
-        tarball.add_legal_and_readme_to("share/doc/rls");
-        Some(tarball.generate())
-    }
-}
-
-#[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
 pub struct RustAnalyzer {
     pub compiler: Compiler,
     pub target: TargetSelection,
@@ -1528,7 +1486,6 @@ impl Step for Extended {
         add_component!("rust-json-docs" => JsonDocs { host: target });
         add_component!("cargo" => Cargo { compiler, target });
         add_component!("rustfmt" => Rustfmt { compiler, target });
-        add_component!("rls" => Rls { compiler, target });
         add_component!("rust-analyzer" => RustAnalyzer { compiler, target });
         add_component!("llvm-components" => LlvmTools { target });
         add_component!("clippy" => Clippy { compiler, target });
diff --git a/src/bootstrap/src/core/build_steps/setup.rs b/src/bootstrap/src/core/build_steps/setup.rs
index f25dfaab0f1..e198a8dd6a5 100644
--- a/src/bootstrap/src/core/build_steps/setup.rs
+++ b/src/bootstrap/src/core/build_steps/setup.rs
@@ -85,9 +85,7 @@ impl FromStr for Profile {
             "lib" | "library" => Ok(Profile::Library),
             "compiler" => Ok(Profile::Compiler),
             "maintainer" | "dist" | "user" => Ok(Profile::Dist),
-            "tools" | "tool" | "rustdoc" | "clippy" | "miri" | "rustfmt" | "rls" => {
-                Ok(Profile::Tools)
-            }
+            "tools" | "tool" | "rustdoc" | "clippy" | "miri" | "rustfmt" => Ok(Profile::Tools),
             "none" => Ok(Profile::None),
             "llvm" | "codegen" => Err("the \"llvm\" and \"codegen\" profiles have been removed,\
                 use \"compiler\" instead which has the same functionality"
diff --git a/src/bootstrap/src/core/build_steps/tool.rs b/src/bootstrap/src/core/build_steps/tool.rs
index e0cf2c12139..016f09cb2a8 100644
--- a/src/bootstrap/src/core/build_steps/tool.rs
+++ b/src/bootstrap/src/core/build_steps/tool.rs
@@ -228,7 +228,6 @@ pub fn prepare_tool_cargo(
     let mut features = extra_features.to_vec();
     if builder.build.config.cargo_native_static {
         if path.ends_with("cargo")
-            || path.ends_with("rls")
             || path.ends_with("clippy")
             || path.ends_with("miri")
             || path.ends_with("rustfmt")
@@ -1231,7 +1230,6 @@ tool_extended!(CargoMiri {
     stable: false,
     add_bins_to_sysroot: ["cargo-miri"]
 });
-tool_extended!(Rls { path: "src/tools/rls", tool_name: "rls", stable: true });
 tool_extended!(Rustfmt {
     path: "src/tools/rustfmt",
     tool_name: "rustfmt",
diff --git a/src/bootstrap/src/core/builder/mod.rs b/src/bootstrap/src/core/builder/mod.rs
index 8e1cecfcd18..0b49751f73c 100644
--- a/src/bootstrap/src/core/builder/mod.rs
+++ b/src/bootstrap/src/core/builder/mod.rs
@@ -895,7 +895,6 @@ impl<'a> Builder<'a> {
                 tool::RemoteTestClient,
                 tool::RustInstaller,
                 tool::Cargo,
-                tool::Rls,
                 tool::RustAnalyzer,
                 tool::RustAnalyzerProcMacroSrv,
                 tool::Rustdoc,
@@ -938,7 +937,6 @@ impl<'a> Builder<'a> {
                 clippy::OptDist,
                 clippy::RemoteTestClient,
                 clippy::RemoteTestServer,
-                clippy::Rls,
                 clippy::RustAnalyzer,
                 clippy::Rustdoc,
                 clippy::Rustfmt,
@@ -956,7 +954,6 @@ impl<'a> Builder<'a> {
                 check::Miri,
                 check::CargoMiri,
                 check::MiroptTestTools,
-                check::Rls,
                 check::Rustfmt,
                 check::RustAnalyzer,
                 check::TestFloatParse,
@@ -1071,7 +1068,6 @@ impl<'a> Builder<'a> {
                 dist::Analysis,
                 dist::Src,
                 dist::Cargo,
-                dist::Rls,
                 dist::RustAnalyzer,
                 dist::Rustfmt,
                 dist::Clippy,
diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs
index 994ccabf0eb..fc408437838 100644
--- a/src/bootstrap/src/lib.rs
+++ b/src/bootstrap/src/lib.rs
@@ -253,7 +253,7 @@ pub enum Mode {
     /// Build a tool which uses the locally built rustc and the target std,
     /// placing the output in the "stageN-tools" directory. This is used for
     /// anything that needs a fully functional rustc, such as rustdoc, clippy,
-    /// cargo, rls, rustfmt, miri, etc.
+    /// cargo, rustfmt, miri, etc.
     ToolRustc,
 }
 
diff --git a/src/bootstrap/src/utils/change_tracker.rs b/src/bootstrap/src/utils/change_tracker.rs
index ec27109c117..8036c592108 100644
--- a/src/bootstrap/src/utils/change_tracker.rs
+++ b/src/bootstrap/src/utils/change_tracker.rs
@@ -375,4 +375,9 @@ pub const CONFIG_CHANGE_HISTORY: &[ChangeInfo] = &[
         severity: ChangeSeverity::Info,
         summary: "There is now a new `gcc` config section that can be used to download GCC from CI using `gcc.download-ci-gcc = true`",
     },
+    ChangeInfo {
+        change_id: 126856,
+        severity: ChangeSeverity::Warning,
+        summary: "Removed `src/tools/rls` tool as it was deprecated long time ago.",
+    },
 ];
diff --git a/src/bootstrap/src/utils/tarball.rs b/src/bootstrap/src/utils/tarball.rs
index 843ea65e838..f1678bacc97 100644
--- a/src/bootstrap/src/utils/tarball.rs
+++ b/src/bootstrap/src/utils/tarball.rs
@@ -22,7 +22,6 @@ pub(crate) enum OverlayKind {
     Clippy,
     Miri,
     Rustfmt,
-    Rls,
     RustAnalyzer,
     RustcCodegenCranelift,
     LlvmBitcodeLinker,
@@ -56,7 +55,6 @@ impl OverlayKind {
                 "src/tools/rustfmt/LICENSE-APACHE",
                 "src/tools/rustfmt/LICENSE-MIT",
             ],
-            OverlayKind::Rls => &["src/tools/rls/README.md", "LICENSE-APACHE", "LICENSE-MIT"],
             OverlayKind::RustAnalyzer => &[
                 "src/tools/rust-analyzer/README.md",
                 "src/tools/rust-analyzer/LICENSE-APACHE",
@@ -90,7 +88,6 @@ impl OverlayKind {
             OverlayKind::Rustfmt => {
                 builder.rustfmt_info.version(builder, &builder.release_num("rustfmt"))
             }
-            OverlayKind::Rls => builder.release(&builder.release_num("rls")),
             OverlayKind::RustAnalyzer => builder
                 .rust_analyzer_info
                 .version(builder, &builder.release_num("rust-analyzer/crates/rust-analyzer")),
diff --git a/src/tools/build-manifest/src/main.rs b/src/tools/build-manifest/src/main.rs
index dfc8f3bc7e0..741d7e3fa16 100644
--- a/src/tools/build-manifest/src/main.rs
+++ b/src/tools/build-manifest/src/main.rs
@@ -386,7 +386,6 @@ impl Builder {
         // NOTE: this profile is effectively deprecated; do not add new components to it.
         let mut complete = default;
         complete.extend([
-            Rls,
             RustAnalyzer,
             RustSrc,
             LlvmTools,
@@ -475,7 +474,6 @@ impl Builder {
                 // but might be marked as unavailable if they weren't built.
                 PkgType::Clippy
                 | PkgType::Miri
-                | PkgType::Rls
                 | PkgType::RustAnalyzer
                 | PkgType::Rustfmt
                 | PkgType::LlvmTools
diff --git a/src/tools/build-manifest/src/versions.rs b/src/tools/build-manifest/src/versions.rs
index 495cab582eb..6ef8a0e83de 100644
--- a/src/tools/build-manifest/src/versions.rs
+++ b/src/tools/build-manifest/src/versions.rs
@@ -51,7 +51,6 @@ pkg_type! {
     Cargo = "cargo",
     HtmlDocs = "rust-docs",
     RustAnalysis = "rust-analysis",
-    Rls = "rls"; preview = true,
     RustAnalyzer = "rust-analyzer"; preview = true,
     Clippy = "clippy"; preview = true,
     Rustfmt = "rustfmt"; preview = true,
@@ -77,7 +76,6 @@ impl PkgType {
     fn should_use_rust_version(&self) -> bool {
         match self {
             PkgType::Cargo => false,
-            PkgType::Rls => false,
             PkgType::RustAnalyzer => false,
             PkgType::Clippy => false,
             PkgType::Rustfmt => false,
@@ -118,7 +116,6 @@ impl PkgType {
             HtmlDocs => HOSTS,
             JsonDocs => HOSTS,
             RustSrc => &["*"],
-            Rls => HOSTS,
             RustAnalyzer => HOSTS,
             Clippy => HOSTS,
             Miri => HOSTS,
diff --git a/src/tools/rls/Cargo.toml b/src/tools/rls/Cargo.toml
deleted file mode 100644
index b7aa659c25a..00000000000
--- a/src/tools/rls/Cargo.toml
+++ /dev/null
@@ -1,8 +0,0 @@
-[package]
-name = "rls"
-version = "2.0.0"
-edition = "2021"
-license = "Apache-2.0/MIT"
-
-[dependencies]
-serde_json = "1.0.83"
diff --git a/src/tools/rls/README.md b/src/tools/rls/README.md
deleted file mode 100644
index 43c331c413f..00000000000
--- a/src/tools/rls/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# RLS Stub
-
-RLS has been replaced with [rust-analyzer](https://rust-analyzer.github.io/).
-
-This directory contains a stub which replaces RLS with a simple LSP server
-which only displays an alert to the user that RLS is no longer available.
diff --git a/src/tools/rls/src/main.rs b/src/tools/rls/src/main.rs
deleted file mode 100644
index 3a95b47cd4d..00000000000
--- a/src/tools/rls/src/main.rs
+++ /dev/null
@@ -1,102 +0,0 @@
-//! RLS stub.
-//!
-//! This is a small stub that replaces RLS to alert the user that RLS is no
-//! longer available.
-
-use std::error::Error;
-use std::io::{BufRead, Write};
-
-use serde_json::Value;
-
-const ALERT_MSG: &str = "\
-RLS is no longer available as of Rust 1.65.
-Consider migrating to rust-analyzer instead.
-See https://rust-analyzer.github.io/ for installation instructions.
-";
-
-fn main() {
-    if let Err(e) = run() {
-        eprintln!("error: {e}");
-        std::process::exit(1);
-    }
-}
-
-struct Message {
-    method: Option<String>,
-}
-
-fn run() -> Result<(), Box<dyn Error>> {
-    let mut stdin = std::io::stdin().lock();
-    let mut stdout = std::io::stdout().lock();
-
-    let init = read_message(&mut stdin)?;
-    if init.method.as_deref() != Some("initialize") {
-        return Err(format!("expected initialize, got {:?}", init.method).into());
-    }
-    // No response, the LSP specification says that `showMessageRequest` may
-    // be posted before during this phase.
-
-    // message_type 1 is "Error"
-    let alert = serde_json::json!({
-        "jsonrpc": "2.0",
-        "id": 1,
-        "method": "window/showMessageRequest",
-        "params": {
-            "message_type": "1",
-            "message": ALERT_MSG
-        }
-    });
-    write_message_raw(&mut stdout, serde_json::to_string(&alert).unwrap())?;
-
-    loop {
-        let message = read_message(&mut stdin)?;
-        if message.method.as_deref() == Some("shutdown") {
-            std::process::exit(0);
-        }
-    }
-}
-
-fn read_message_raw<R: BufRead>(reader: &mut R) -> Result<String, Box<dyn Error>> {
-    let mut content_length: usize = 0;
-
-    // Read headers.
-    loop {
-        let mut line = String::new();
-        reader.read_line(&mut line)?;
-        if line.is_empty() {
-            return Err("remote disconnected".into());
-        }
-        if line == "\r\n" {
-            break;
-        }
-        if line.to_lowercase().starts_with("content-length:") {
-            let value = &line[15..].trim();
-            content_length = usize::from_str_radix(value, 10)?;
-        }
-    }
-    if content_length == 0 {
-        return Err("no content-length".into());
-    }
-
-    let mut buffer = vec![0; content_length];
-    reader.read_exact(&mut buffer)?;
-    let content = String::from_utf8(buffer)?;
-
-    Ok(content)
-}
-
-fn read_message<R: BufRead>(reader: &mut R) -> Result<Message, Box<dyn Error>> {
-    let m = read_message_raw(reader)?;
-    match serde_json::from_str::<Value>(&m) {
-        Ok(message) => Ok(Message {
-            method: message.get("method").and_then(|value| value.as_str().map(String::from)),
-        }),
-        Err(e) => Err(format!("failed to parse message {m}\n{e}").into()),
-    }
-}
-
-fn write_message_raw<W: Write>(mut writer: W, output: String) -> Result<(), Box<dyn Error>> {
-    write!(writer, "Content-Length: {}\r\n\r\n{}", output.len(), output)?;
-    writer.flush()?;
-    Ok(())
-}
diff --git a/src/tools/tidy/src/walk.rs b/src/tools/tidy/src/walk.rs
index edf7658d25f..08ee5c16c12 100644
--- a/src/tools/tidy/src/walk.rs
+++ b/src/tools/tidy/src/walk.rs
@@ -32,8 +32,6 @@ pub fn filter_dirs(path: &Path) -> bool {
         "src/doc/rustc-dev-guide",
         "src/doc/reference",
         "src/gcc",
-        // Filter RLS output directories
-        "target/rls",
         "src/bootstrap/target",
         "vendor",
     ];