From 7cfa0fb876e293515e966fc04e20aae76beb7b05 Mon Sep 17 00:00:00 2001 From: Finn Evers Date: Wed, 28 Jan 2026 14:25:47 +0100 Subject: [PATCH] extension: Ensure that compiled extension provides at least one feature (#47715) This PR adds a check during extension compilation to ensure that every compiled extension provides at least one feature, as otherwise, the extension is useless to have. With this in, compiling an extension that does not provide anything will fail. Release Notes: - N/A --- crates/extension_cli/src/main.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/crates/extension_cli/src/main.rs b/crates/extension_cli/src/main.rs index 7cf327357eed12fcaf61dea86fa39e49d3ab7653..fbffe877e588b4827eb0bb2e8bac3f59b9db334a 100644 --- a/crates/extension_cli/src/main.rs +++ b/crates/extension_cli/src/main.rs @@ -78,6 +78,12 @@ async fn main() -> Result<()> { .await .context("failed to compile extension")?; + let extension_provides = extension_provides(&manifest); + + if extension_provides.is_empty() { + bail!("extension does not provide any features"); + } + let grammars = test_grammars(&manifest, &extension_path, &mut wasm_store)?; test_languages(&manifest, &extension_path, &grammars)?; test_themes(&manifest, &extension_path, fs.clone()).await?; @@ -102,8 +108,6 @@ async fn main() -> Result<()> { ); } - let extension_provides = extension_provides(&manifest); - let manifest_json = serde_json::to_string(&rpc::ExtensionApiManifest { name: manifest.name, version: manifest.version,