Browse Source

fix(cli): `add` should use 2.0.0-rc for known plugins (#10699)

changes the CLI `add` command to match the CLI major and pre requirements for known plugins

this is required because right now adding the deep-link plugin installs the v1 plugin (latest version known by cargo as the v2 is still in RC), even though we're running the v2 CLI
Lucas Fernandes Nogueira 11 months ago
parent
commit
1a60822a42

+ 6 - 0
.changes/fix-cli-add-plugin-version.md

@@ -0,0 +1,6 @@
+---
+'tauri-cli': 'patch:bug'
+'@tauri-apps/cli': 'patch:bug'
+---
+
+Changed the `add` command to use a version requirement that matches the CLI's stable and prerelease numbers.

+ 2 - 0
tooling/cli/src/add.rs

@@ -68,6 +68,8 @@ pub fn run(options: Options) -> Result<()> {
         .then_some(r#"cfg(any(target_os = "android", target_os = "ios"))"#)
     });
 
+  let version = version.or(metadata.version_req.as_deref());
+
   cargo::install_one(cargo::CargoInstallOptions {
     name: &crate_name,
     version,

+ 36 - 0
tooling/cli/src/helpers/plugins.rs

@@ -10,6 +10,7 @@ pub struct PluginMetadata {
   pub mobile_only: bool,
   pub rust_only: bool,
   pub builder: bool,
+  pub version_req: Option<String>,
 }
 
 // known plugins with particular cases
@@ -55,5 +56,40 @@ pub fn known_plugins() -> HashMap<&'static str, PluginMetadata> {
     plugins.entry(p).or_default().rust_only = true;
   }
 
+  // known, but no particular config
+  for p in [
+    "geolocation",
+    "deep-link",
+    "dialog",
+    "fs",
+    "http",
+    "notification",
+    "os",
+    "process",
+    "shell",
+    "upload",
+    "websocket",
+  ] {
+    plugins.entry(p).or_default();
+  }
+
+  let version_req = version_req();
+  for plugin in plugins.values_mut() {
+    plugin.version_req.replace(version_req.clone());
+  }
+
   plugins
 }
+
+fn version_req() -> String {
+  let pre = env!("CARGO_PKG_VERSION_PRE");
+  if pre.is_empty() {
+    env!("CARGO_PKG_VERSION_MAJOR").to_string()
+  } else {
+    format!(
+      "{}.0.0-{}",
+      env!("CARGO_PKG_VERSION_MAJOR"),
+      pre.split('.').next().unwrap()
+    )
+  }
+}

+ 1 - 3
tooling/cli/src/migrate/migrations/v1/frontend.rs

@@ -65,10 +65,8 @@ pub fn migrate(app_dir: &Path) -> Result<Vec<String>> {
     format!("{}.0.0", env!("CARGO_PKG_VERSION_MAJOR"))
   } else {
     format!(
-      "{}.{}.{}-{}.0",
+      "{}.0.0-{}.0",
       env!("CARGO_PKG_VERSION_MAJOR"),
-      env!("CARGO_PKG_VERSION_MINOR"),
-      env!("CARGO_PKG_VERSION_PATCH"),
       pre.split('.').next().unwrap()
     )
   };

+ 1 - 3
tooling/cli/src/migrate/migrations/v1/manifest.rs

@@ -198,10 +198,8 @@ fn dependency_version() -> String {
     env!("CARGO_PKG_VERSION_MAJOR").to_string()
   } else {
     format!(
-      "{}.{}.{}-{}",
+      "{}.0.0-{}",
       env!("CARGO_PKG_VERSION_MAJOR"),
-      env!("CARGO_PKG_VERSION_MINOR"),
-      env!("CARGO_PKG_VERSION_PATCH"),
       pre.split('.').next().unwrap()
     )
   }