[Bug] layerfs_v2_0_0 在 Linux 上 clippy -D warnings 失败:layerfs-home capacity.rs 多余的 u64::from

Abierto Apto para principiantes
#643 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
75/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
linux, macos, rust

Línea de trabajo

Empieza con control/crates/layerfs-home/src/home/capacity.rs e inspecciona la conversión de blocks_available() indicada por el error de Linux Clippy. Revisa la configuración de CI en ci.yml para entender la brecha de la rama v2. El issue está resuelto cuando la corrección multiplataforma sugerida supera el comando de Linux Clippy indicado sin advertencias y conserva la compatibilidad con macOS.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

现象

在 Ubuntu 24.04、Rust 1.85.1 上对 layerfs_v2_0_0(58c548b3e,最新 bdeb9e91f 仍在)运行:

cargo +1.85.1 clippy --workspace --exclude layerfs-node --all-targets -- -D warnings

layerfs-home 编译失败:

error: useless conversion to the same type: `u64`
 --> control/crates/layerfs-home/src/home/capacity.rs:8:5
    u64::from(filesystem.blocks_available())

依赖 layerfs-home 的 crate(nfs、daemon、sandbox 等)在 Linux 上都因此跑不完 clippy。

原因

nix 的 blocks_available() 返回 libc::fsblkcnt_t:Linux(gnu/b64)上是 u64,macOS 上是 c_uint(u32)。所以这行在 macOS 必需,在 Linux 被 clippy::useless_conversion 拦下。

为什么 CI 没发现

ci.yml 的 Linux clippy 任务在 push 时忽略 layerfs_v2_0_0,pull_request 只对 main 触发,所以 v2 分支的改动没有跑过 Linux clippy。

建议修法

在这一行加 #[allow(clippy::useless_conversion)] 并注明是为 macOS 保留;或按平台用 cfg 区分。另建议考虑让 v2 分支也跑 Linux clippy。

验证

加 -A clippy::useless_conversion 后,layerfs-nfs、layerfs-daemon、layerfs-sandbox、layerfs-sandbox-backend 的 clippy --all-targets -D warnings 均通过,说明只有这一处。

Lenguaje dominante
Rust
Estrellas
2.1k
Forks
110
Merge medio
23 h 52 min
PR fusionados (30 d)
138

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Ephemeral-AI-Lab/layerfs

Todos los issues de Ephemeral-AI-Lab/layerfs

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.