{"record":{"id":"d419f27ab382f142","repo":"sxyazi/yazi","slug":"package-url-parent-must-be-in-the-format-owne","errorCode":null,"errorMessage":"Package URL `{parent}` must be in the format `owner/repository`","messagePattern":"Package URL `(.+?)` must be in the format `owner/repository`","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"yazi-cli/src/package/dependency.rs","lineNumber":105,"sourceCode":"\tpub(super) fn flavor_files() -> Vec<String> {\n\t\t[\"LICENSE\", \"LICENSE-tmtheme\", \"README.md\", \"flavor.toml\", \"preview.png\", \"tmtheme.xml\"]\n\t\t\t.into_iter()\n\t\t\t.map(Into::into)\n\t\t\t.collect()\n\t}\n}\n\nimpl FromStr for Dependency {\n\ttype Err = anyhow::Error;\n\n\tfn from_str(s: &str) -> std::result::Result<Self, Self::Err> {\n\t\tlet mut parts = s.splitn(2, ':');\n\n\t\tlet Some(parent) = parts.next() else { bail!(\"Package URL cannot be empty\") };\n\t\tlet child = parts.next().unwrap_or_default();\n\n\t\tlet Some((_, repo)) = parent.split_once('/') else {\n\t\t\tbail!(\"Package URL `{parent}` must be in the format `owner/repository`\")\n\t\t};\n\n\t\tlet name = if child.is_empty() { repo } else { child };\n\t\tif !name.as_bytes().kebab_cased() {\n\t\t\tbail!(\"Package name `{name}` must be in kebab-case\")\n\t\t}\n\n\t\tOk(Self {\n\t\t\tr#use: s.to_owned(),\n\t\t\tname: format!(\"{name}.yazi\"),\n\t\t\tparent: format!(\"{parent}{}\", if child.is_empty() { \".yazi\" } else { \"\" }),\n\t\t\tchild: if child.is_empty() { String::new() } else { format!(\"{child}.yazi\") },\n\t\t\t..Default::default()\n\t\t})\n\t}\n}\n\nimpl<'de> Deserialize<'de> for Dependency {","sourceCodeStart":87,"sourceCodeEnd":123,"githubUrl":"https://github.com/sxyazi/yazi/blob/5f901b886b14de1f17460b6e52e9de5d67f8aba9/yazi-cli/src/package/dependency.rs#L87-L123","documentation":"Dependency-URL parsing guard in `FromStr for Dependency`: the parent segment contains no '/', so it cannot be split into `owner/repository`. The faulting input is the part of the URL before the optional ':' child suffix.","triggerScenarios":"Thrown at yazi-cli/src/package/dependency.rs:105 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use the `owner/repository` format, e.g. `yazi-rs/plugins:full-border`.","Check for typos, missing owner, or URL-encoded slashes in the package URL."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5f901b886b14de1f17460b6e52e9de5d67f8aba9","analyzedAt":"2026-09-02T18:38:25.566Z","contentChangedAt":"2026-09-02T18:38:25.566Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}