Fix compiler warnings (#4053)

* chore(cargo): Update dependencies

for xtask subcommand to remove warnings about unknown compiler
attributes.

* deps(xtask): Remove `lazy_static`

as dependency, since the code we need can now be expressed using rusts
`std` builtin types.

* fix(xtask): Hide deprecated args

so the compiler doesn't complain about dead code any more.

* fix(xtask): Remove needless borrow.

* fix: Remove dead code

across the codebase, as discovered by the rust compiler.

* fix(server): Log previously ignored errors.

* fix(xtask): Remove needless `format!` calls.

* fix(xtask): Remove superfluous return statement.

* fix(client): Remove unused enum variant

from `ClientInstruction` and all code attached to it.

* fix(server): Restore functions needed in tests.

* chore: Apply rustfmt.

* fix(server): Add missing code.

* fix: Remove leftover warnings.

* CHANGELOG: Add MR #4026.

* fix(xtask): Pin `xshell` to version 0.2.2

because release 0.2.3 changed the way stdin is handled, breaking
interactive command invocations (such as we use).
This commit is contained in:
har7an
2025-03-10 16:50:20 +00:00
committed by GitHub
parent 92e209a307
commit 502af243e0
22 changed files with 144 additions and 207 deletions
+7 -2
View File
@@ -6,9 +6,14 @@ edition = "2021"
[dependencies]
anyhow = "1.0"
lazy_static = "1.4"
# TODO(hartan): Update this once we get a new release. See:
# <https://github.com/matklad/xshell/issues/63>
xshell = "= 0.2.2"
xflags = "0.3.1"
xflags = "0.3.2"
which = "4.2"
toml = "0.5"
prost-build = "0.11.9"
[lints.rust]
# Only required because we need to fix `xshell` to `=0.2.2`
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(trick_rust_analyzer_into_highlighting_interpolated_bits)'] }
+4 -6
View File
@@ -22,7 +22,7 @@ pub fn build(sh: &Shell, flags: flags::Build) -> anyhow::Result<()> {
std::process::exit(1);
}
for WorkspaceMember { crate_name, .. } in crate::WORKSPACE_MEMBERS
for WorkspaceMember { crate_name, .. } in crate::workspace_members()
.iter()
.filter(|member| member.build)
{
@@ -32,10 +32,8 @@ pub fn build(sh: &Shell, flags: flags::Build) -> anyhow::Result<()> {
if flags.no_plugins {
continue;
}
} else {
if flags.plugins_only {
continue;
}
} else if flags.plugins_only {
continue;
}
// zellij-utils requires protobuf definition files to be present. Usually these are
@@ -153,7 +151,7 @@ pub fn manpage(sh: &Shell) -> anyhow::Result<()> {
let project_root = crate::project_root();
let asset_dir = &project_root.join("assets").join("man");
sh.create_dir(&asset_dir).context(err_context)?;
sh.create_dir(asset_dir).context(err_context)?;
let _pd = sh.push_dir(asset_dir);
cmd!(sh, "{mandown} {project_root}/docs/MANPAGE.md 1")
+4 -4
View File
@@ -77,7 +77,7 @@ fn e2e_build(sh: &Shell) -> anyhow::Result<()> {
sh.remove_path(&data_dir)
.and_then(|_| sh.create_dir(&data_dir))
.and_then(|_| sh.create_dir(&data_dir.join("plugins")))
.and_then(|_| sh.create_dir(data_dir.join("plugins")))
.context(err_context)?;
for plugin in plugins {
@@ -119,15 +119,15 @@ fn e2e_test(sh: &Shell, args: Vec<OsString>) -> anyhow::Result<()> {
// plugin system tests are run here because they're medium-slow
let _pd = sh.push_dir(Path::new("zellij-server"));
println!("");
let msg = format!(">> Testing Plugin System");
println!();
let msg = ">> Testing Plugin System".to_string();
crate::status(&msg);
println!("{}", msg);
cmd!(sh, "{cargo} test -- --ignored --nocapture --test-threads 1")
.args(args.clone())
.run()
.with_context(|| format!("Failed to run tests for the Plugin System"))?;
.with_context(|| "Failed to run tests for the Plugin System".to_string())?;
Ok(())
})
.context(err_context)
+1 -1
View File
@@ -21,7 +21,7 @@ pub fn clippy(sh: &Shell, _flags: flags::Clippy) -> anyhow::Result<()> {
.and_then(|_| crate::cargo())
.context("failed to run task 'clippy'")?;
for WorkspaceMember { crate_name, .. } in crate::WORKSPACE_MEMBERS.iter() {
for WorkspaceMember { crate_name, .. } in crate::workspace_members().iter() {
let _pd = sh.push_dir(Path::new(crate_name));
// Tell the user where we are now
println!();
+2 -2
View File
@@ -9,7 +9,7 @@ xflags::xflags! {
cmd xtask {
/// Deprecation warning. Compatibility to transition from `cargo make`.
cmd deprecated {
repeated args: OsString
repeated _args: OsString
}
/// Tasks for the CI
@@ -128,7 +128,7 @@ pub enum XtaskCmd {
#[derive(Debug)]
pub struct Deprecated {
pub args: Vec<OsString>,
pub _args: Vec<OsString>,
}
#[derive(Debug)]
+1 -1
View File
@@ -11,7 +11,7 @@ pub fn format(sh: &Shell, flags: flags::Format) -> anyhow::Result<()> {
.and_then(|_| crate::cargo())
.context("failed to run task 'format'")?;
for WorkspaceMember { crate_name, .. } in crate::WORKSPACE_MEMBERS.iter() {
for WorkspaceMember { crate_name, .. } in crate::workspace_members().iter() {
let _pd = sh.push_dir(Path::new(crate_name));
// Tell the user where we are now
println!();
+67 -18
View File
@@ -19,6 +19,7 @@ use anyhow::Context;
use std::{
env,
path::{Path, PathBuf},
sync::OnceLock,
time::Instant,
};
use xshell::Shell;
@@ -28,24 +29,72 @@ pub struct WorkspaceMember {
build: bool,
}
lazy_static::lazy_static! {
pub static ref WORKSPACE_MEMBERS: Vec<WorkspaceMember> = vec![
WorkspaceMember{crate_name: "default-plugins/compact-bar", build: true},
WorkspaceMember{crate_name: "default-plugins/status-bar", build: true},
WorkspaceMember{crate_name: "default-plugins/strider", build: true},
WorkspaceMember{crate_name: "default-plugins/tab-bar", build: true},
WorkspaceMember{crate_name: "default-plugins/fixture-plugin-for-tests", build: true},
WorkspaceMember{crate_name: "default-plugins/session-manager", build: true},
WorkspaceMember{crate_name: "default-plugins/configuration", build: true},
WorkspaceMember{crate_name: "default-plugins/plugin-manager", build: true},
WorkspaceMember{crate_name: "default-plugins/about", build: true},
WorkspaceMember{crate_name: "zellij-utils", build: false},
WorkspaceMember{crate_name: "zellij-tile-utils", build: false},
WorkspaceMember{crate_name: "zellij-tile", build: false},
WorkspaceMember{crate_name: "zellij-client", build: false},
WorkspaceMember{crate_name: "zellij-server", build: false},
WorkspaceMember{crate_name: ".", build: true},
];
fn workspace_members() -> &'static Vec<WorkspaceMember> {
static WORKSPACE_MEMBERS: OnceLock<Vec<WorkspaceMember>> = OnceLock::new();
WORKSPACE_MEMBERS.get_or_init(|| {
vec![
WorkspaceMember {
crate_name: "default-plugins/compact-bar",
build: true,
},
WorkspaceMember {
crate_name: "default-plugins/status-bar",
build: true,
},
WorkspaceMember {
crate_name: "default-plugins/strider",
build: true,
},
WorkspaceMember {
crate_name: "default-plugins/tab-bar",
build: true,
},
WorkspaceMember {
crate_name: "default-plugins/fixture-plugin-for-tests",
build: true,
},
WorkspaceMember {
crate_name: "default-plugins/session-manager",
build: true,
},
WorkspaceMember {
crate_name: "default-plugins/configuration",
build: true,
},
WorkspaceMember {
crate_name: "default-plugins/plugin-manager",
build: true,
},
WorkspaceMember {
crate_name: "default-plugins/about",
build: true,
},
WorkspaceMember {
crate_name: "zellij-utils",
build: false,
},
WorkspaceMember {
crate_name: "zellij-tile-utils",
build: false,
},
WorkspaceMember {
crate_name: "zellij-tile",
build: false,
},
WorkspaceMember {
crate_name: "zellij-client",
build: false,
},
WorkspaceMember {
crate_name: "zellij-server",
build: false,
},
WorkspaceMember {
crate_name: ".",
build: true,
},
]
})
}
fn main() -> anyhow::Result<()> {
+1 -1
View File
@@ -317,7 +317,7 @@ pub fn publish(sh: &Shell, flags: flags::Publish) -> anyhow::Result<()> {
}
// Publish all the crates
for WorkspaceMember { crate_name, .. } in crate::WORKSPACE_MEMBERS.iter() {
for WorkspaceMember { crate_name, .. } in crate::workspace_members().iter() {
if crate_name.contains("plugin") || crate_name.contains("xtask") {
continue;
}
+5 -5
View File
@@ -20,15 +20,15 @@ pub fn test(sh: &Shell, flags: flags::Test) -> anyhow::Result<()> {
)
.context(err_context)?;
for WorkspaceMember { crate_name, .. } in crate::WORKSPACE_MEMBERS.iter() {
for WorkspaceMember { crate_name, .. } in crate::workspace_members().iter() {
// the workspace root only contains e2e tests, skip it
if *crate_name == "." {
if crate_name == &"." {
continue;
}
let _pd = sh.push_dir(Path::new(crate_name));
// Tell the user where we are now
println!("");
println!();
let msg = format!(">> Testing '{}'", crate_name);
crate::status(&msg);
println!("{}", msg);
@@ -60,9 +60,9 @@ pub fn host_target_triple(sh: &Shell) -> anyhow::Result<String> {
return None;
}
if let Some((_, triple)) = line.split_once(": ") {
return Some(triple.to_string());
Some(triple.to_string())
} else {
return None;
None
}
})
.collect::<Vec<String>>();