sxyazi/yazi · error
Package name `{name}` must be in kebab-case
Error message
Package name `{name}` must be in kebab-case What it means
Dependency-URL parsing guard in `FromStr for Dependency`: the effective package name (the child segment after ':' if present, otherwise the repository name) failed the kebab-case check, which is required for valid crate/package names. The faulting input is the derived `name`.
Source
Thrown at yazi-cli/src/package/dependency.rs:110
}
}
impl FromStr for Dependency {
type Err = anyhow::Error;
fn from_str(s: &str) -> std::result::Result<Self, Self::Err> {
let mut parts = s.splitn(2, ':');
let Some(parent) = parts.next() else { bail!("Package URL cannot be empty") };
let child = parts.next().unwrap_or_default();
let Some((_, repo)) = parent.split_once('/') else {
bail!("Package URL `{parent}` must be in the format `owner/repository`")
};
let name = if child.is_empty() { repo } else { child };
if !name.as_bytes().kebab_cased() {
bail!("Package name `{name}` must be in kebab-case")
}
Ok(Self {
r#use: s.to_owned(),
name: format!("{name}.yazi"),
parent: format!("{parent}{}", if child.is_empty() { ".yazi" } else { "" }),
child: if child.is_empty() { String::new() } else { format!("{child}.yazi") },
..Default::default()
})
}
}
impl<'de> Deserialize<'de> for Dependency {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
#[derive(Deserialize)]View on GitHub (pinned to 5f901b886b)
Solutions
- Rename the package using kebab-case: lowercase letters, digits, and hyphens (e.g. `my-plugin`).
- If using a child name after ':', ensure it is also kebab-case.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at yazi-cli/src/package/dependency.rs:110 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of sxyazi/yazi@5f901b886b (2026-09-02).
Data as JSON: /api/errors/6eca9b51e179fe02.
Report an issue: GitHub.