From 30a01adbb5af75ff9f58d44da08a39b7dd3fa83e Mon Sep 17 00:00:00 2001 From: WSH032 <614337162@qq.com> Date: Sun, 15 Jun 2025 01:14:07 +0800 Subject: [PATCH] fix: temporarily suppress plugin build errors on `docs.rs` --- .../ignore-plugin-build-error-on-docsrs.md | 60 +++++++++++++++++++ plugins/autostart/build.rs | 9 ++- plugins/barcode-scanner/build.rs | 5 +- plugins/biometric/build.rs | 5 +- plugins/cli/build.rs | 9 ++- plugins/clipboard-manager/build.rs | 5 +- plugins/deep-link/build.rs | 5 +- plugins/dialog/build.rs | 5 +- plugins/fs/build.rs | 9 ++- plugins/geolocation/build.rs | 5 +- plugins/global-shortcut/build.rs | 9 ++- plugins/haptics/build.rs | 5 +- plugins/http/build.rs | 9 ++- plugins/log/build.rs | 9 ++- plugins/nfc/build.rs | 5 +- plugins/notification/build.rs | 5 +- plugins/opener/build.rs | 9 ++- plugins/os/build.rs | 9 ++- plugins/positioner/build.rs | 9 ++- plugins/process/build.rs | 9 ++- plugins/shell/build.rs | 9 ++- plugins/sql/build.rs | 9 ++- plugins/store/build.rs | 9 ++- plugins/stronghold/build.rs | 9 ++- plugins/updater/build.rs | 9 ++- plugins/upload/build.rs | 9 ++- plugins/websocket/build.rs | 9 ++- plugins/window-state/build.rs | 9 ++- 28 files changed, 213 insertions(+), 54 deletions(-) create mode 100644 .changes/ignore-plugin-build-error-on-docsrs.md diff --git a/.changes/ignore-plugin-build-error-on-docsrs.md b/.changes/ignore-plugin-build-error-on-docsrs.md new file mode 100644 index 00000000..c1db84b4 --- /dev/null +++ b/.changes/ignore-plugin-build-error-on-docsrs.md @@ -0,0 +1,60 @@ +--- +"autostart": patch:fix +"autostart-js": patch:fix +"barcode-scanner": patch:fix +"barcode-scanner-js": patch:fix +"biometric": patch:fix +"biometric-js": patch:fix +"cli": patch:fix +"cli-js": patch:fix +"clipboard-manager": patch:fix +"clipboard-manager-js": patch:fix +"deep-link": patch:fix +"deep-link-js": patch:fix +"dialog: patch:fix +"dialog-js: patch:fix +"autostart": patch:fix +"autostart-js": patch:fix +"fs": patch:fix +"fs-js": patch:fix +"geolocation": patch:fix +"geolocation-js": patch:fix +"global-shortcut": patch:fix +"global-shortcut-js": patch:fix +"haptics": patch:fix +"haptics-js": patch:fix +"http": patch:fix +"http-js": patch:fix +"log": patch:fix +"log-js": patch:fix +"nfc": patch:fix +"nfc-js": patch:fix +"notification": patch:fix +"notification-js": patch:fix +"opener": patch:fix +"opener-js": patch:fix +"os": patch:fix +"os-js": patch:fix +"positioner": patch:fix +"positioner-js": patch:fix +"process": patch:fix +"process-js": patch:fix +"shell": patch:fix +"shell-js": patch:fix +"sql": patch:fix +"sql-js": patch:fix +"store": patch:fix +"store-js": patch:fix +"stronghold": patch:fix +"stronghold-js": patch:fix +"updater": patch:fix +"updater-js": patch:fix +"upload": patch:fix +"upload-js": patch:fix +"websocket": patch:fix +"websocket-js": patch:fix +"window-state": patch:fix +"window-state-js": patch:fix +--- + +When downstream crates depend on `tauri-plugin-*`, the `tauri-plugin` build process may attempt to write to the plugin source directory in certain cases. However, `docs.rs` is a read-only environment, which causes these downstream crates to fail to build on `docs.rs`. Until tauri-apps/tauri#11187 is resolved, we are temporarily suppressing this error. diff --git a/plugins/autostart/build.rs b/plugins/autostart/build.rs index 1460469b..8e9e0473 100644 --- a/plugins/autostart/build.rs +++ b/plugins/autostart/build.rs @@ -5,7 +5,12 @@ const COMMANDS: &[&str] = &["enable", "disable", "is_enabled"]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } } diff --git a/plugins/barcode-scanner/build.rs b/plugins/barcode-scanner/build.rs index 25896b57..10259816 100644 --- a/plugins/barcode-scanner/build.rs +++ b/plugins/barcode-scanner/build.rs @@ -18,8 +18,9 @@ fn main() { .ios_path("ios") .try_build(); - // when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build - if !(cfg!(docsrs) && std::env::var("TARGET").unwrap().contains("android")) { + // - when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { result.unwrap(); } } diff --git a/plugins/biometric/build.rs b/plugins/biometric/build.rs index 070986b2..a099a553 100644 --- a/plugins/biometric/build.rs +++ b/plugins/biometric/build.rs @@ -11,8 +11,9 @@ fn main() { .ios_path("ios") .try_build(); - // when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build - if !(cfg!(docsrs) && std::env::var("TARGET").unwrap().contains("android")) { + // - when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { result.unwrap(); } } diff --git a/plugins/cli/build.rs b/plugins/cli/build.rs index 50d88849..491f9fca 100644 --- a/plugins/cli/build.rs +++ b/plugins/cli/build.rs @@ -5,7 +5,12 @@ const COMMANDS: &[&str] = &["cli_matches"]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } } diff --git a/plugins/clipboard-manager/build.rs b/plugins/clipboard-manager/build.rs index 9bbeddfc..5909be44 100644 --- a/plugins/clipboard-manager/build.rs +++ b/plugins/clipboard-manager/build.rs @@ -18,8 +18,9 @@ fn main() { .ios_path("ios") .try_build(); - // when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build - if !(cfg!(docsrs) && std::env::var("TARGET").unwrap().contains("android")) { + // - when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { result.unwrap(); } } diff --git a/plugins/deep-link/build.rs b/plugins/deep-link/build.rs index 418746b2..21fa5bf2 100644 --- a/plugins/deep-link/build.rs +++ b/plugins/deep-link/build.rs @@ -62,8 +62,9 @@ fn main() { .android_path("android") .try_build(); - // when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build - if !(cfg!(docsrs) && std::env::var("TARGET").unwrap().contains("android")) { + // - when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { result.unwrap(); } diff --git a/plugins/dialog/build.rs b/plugins/dialog/build.rs index 4b3bb871..204c2e77 100644 --- a/plugins/dialog/build.rs +++ b/plugins/dialog/build.rs @@ -11,8 +11,9 @@ fn main() { .ios_path("ios") .try_build(); - // when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build - if !(cfg!(docsrs) && std::env::var("TARGET").unwrap().contains("android")) { + // - when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { result.unwrap(); } } diff --git a/plugins/fs/build.rs b/plugins/fs/build.rs index 47e27003..d5ed073c 100644 --- a/plugins/fs/build.rs +++ b/plugins/fs/build.rs @@ -209,7 +209,7 @@ permissions = [ } } - tauri_plugin::Builder::new( + let result = tauri_plugin::Builder::new( &COMMANDS .iter() // FIXME: https://docs.rs/crate/tauri-plugin-fs/2.1.0/builds/1571296 @@ -220,7 +220,12 @@ permissions = [ .global_api_script_path("./api-iife.js") .global_scope_schema(schemars::schema_for!(FsScopeEntry)) .android_path("android") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } // workaround to include nested permissions as `tauri_plugin` doesn't support it let permissions_dir = autogenerated.join("commands"); diff --git a/plugins/geolocation/build.rs b/plugins/geolocation/build.rs index b5249761..a1090460 100644 --- a/plugins/geolocation/build.rs +++ b/plugins/geolocation/build.rs @@ -17,8 +17,9 @@ fn main() { .ios_path("ios") .try_build(); - // when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build - if !(cfg!(docsrs) && std::env::var("TARGET").unwrap().contains("android")) { + // - when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { result.unwrap(); } } diff --git a/plugins/global-shortcut/build.rs b/plugins/global-shortcut/build.rs index 20b7b7f8..9d2a33bb 100644 --- a/plugins/global-shortcut/build.rs +++ b/plugins/global-shortcut/build.rs @@ -5,7 +5,12 @@ const COMMANDS: &[&str] = &["register", "unregister", "unregister_all", "is_registered"]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } } diff --git a/plugins/haptics/build.rs b/plugins/haptics/build.rs index 2556cb67..396629d3 100644 --- a/plugins/haptics/build.rs +++ b/plugins/haptics/build.rs @@ -16,8 +16,9 @@ fn main() { .ios_path("ios") .try_build(); - // when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build - if !(cfg!(docsrs) && std::env::var("TARGET").unwrap().contains("android")) { + // - when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { result.unwrap(); } } diff --git a/plugins/http/build.rs b/plugins/http/build.rs index a4b802ad..5b19093a 100644 --- a/plugins/http/build.rs +++ b/plugins/http/build.rs @@ -60,8 +60,13 @@ fn _f() { } fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") .global_scope_schema(schemars::schema_for!(HttpScopeEntry)) - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } } diff --git a/plugins/log/build.rs b/plugins/log/build.rs index 5969c1e9..fec7fa12 100644 --- a/plugins/log/build.rs +++ b/plugins/log/build.rs @@ -5,8 +5,13 @@ const COMMANDS: &[&str] = &["log"]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") .ios_path("ios") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } } diff --git a/plugins/nfc/build.rs b/plugins/nfc/build.rs index bdcd84bf..17452411 100644 --- a/plugins/nfc/build.rs +++ b/plugins/nfc/build.rs @@ -11,8 +11,9 @@ fn main() { .ios_path("ios") .try_build(); - // when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build - if !(cfg!(docsrs) && std::env::var("TARGET").unwrap().contains("android")) { + // - when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { result.unwrap(); } diff --git a/plugins/notification/build.rs b/plugins/notification/build.rs index 4b24c755..8901dfdf 100644 --- a/plugins/notification/build.rs +++ b/plugins/notification/build.rs @@ -28,8 +28,9 @@ fn main() { .ios_path("ios") .try_build(); - // when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build - if !(cfg!(docsrs) && std::env::var("TARGET").unwrap().contains("android")) { + // - when building documentation for Android the plugin build result is always Err() and is irrelevant to the crate documentation build + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { result.unwrap(); } } diff --git a/plugins/opener/build.rs b/plugins/opener/build.rs index fbad4d3a..7c6eeda3 100644 --- a/plugins/opener/build.rs +++ b/plugins/opener/build.rs @@ -113,12 +113,17 @@ fn _f() { const COMMANDS: &[&str] = &["open_url", "open_path", "reveal_item_in_dir"]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") .android_path("android") .ios_path("ios") .global_scope_schema(schemars::schema_for!(OpenerScopeEntry)) - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap(); let mobile = target_os == "ios" || target_os == "android"; diff --git a/plugins/os/build.rs b/plugins/os/build.rs index f108f965..86bdae5b 100644 --- a/plugins/os/build.rs +++ b/plugins/os/build.rs @@ -14,7 +14,12 @@ const COMMANDS: &[&str] = &[ ]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } } diff --git a/plugins/positioner/build.rs b/plugins/positioner/build.rs index 830c61fb..75a9d2c3 100644 --- a/plugins/positioner/build.rs +++ b/plugins/positioner/build.rs @@ -9,7 +9,12 @@ const COMMANDS: &[&str] = &[ ]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } } diff --git a/plugins/process/build.rs b/plugins/process/build.rs index e412b34e..1db4ae1d 100644 --- a/plugins/process/build.rs +++ b/plugins/process/build.rs @@ -5,7 +5,12 @@ const COMMANDS: &[&str] = &["exit", "restart"]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } } diff --git a/plugins/shell/build.rs b/plugins/shell/build.rs index 4e19ccd8..5cba5fa2 100644 --- a/plugins/shell/build.rs +++ b/plugins/shell/build.rs @@ -166,12 +166,17 @@ fn _f() { const COMMANDS: &[&str] = &["execute", "spawn", "stdin_write", "kill", "open"]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") .global_scope_schema(schemars::schema_for!(ShellScopeEntry)) .android_path("android") .ios_path("ios") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap(); let mobile = target_os == "ios" || target_os == "android"; diff --git a/plugins/sql/build.rs b/plugins/sql/build.rs index fbbca422..50d86382 100644 --- a/plugins/sql/build.rs +++ b/plugins/sql/build.rs @@ -5,7 +5,12 @@ const COMMANDS: &[&str] = &["load", "execute", "select", "close"]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } } diff --git a/plugins/store/build.rs b/plugins/store/build.rs index 2e88d59a..00892e2e 100644 --- a/plugins/store/build.rs +++ b/plugins/store/build.rs @@ -20,7 +20,12 @@ const COMMANDS: &[&str] = &[ ]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } } diff --git a/plugins/stronghold/build.rs b/plugins/stronghold/build.rs index e9550e25..2a2309a8 100644 --- a/plugins/stronghold/build.rs +++ b/plugins/stronghold/build.rs @@ -17,7 +17,12 @@ const COMMANDS: &[&str] = &[ ]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } } diff --git a/plugins/updater/build.rs b/plugins/updater/build.rs index 30f70b98..276910ce 100644 --- a/plugins/updater/build.rs +++ b/plugins/updater/build.rs @@ -5,9 +5,14 @@ const COMMANDS: &[&str] = &["check", "download", "install", "download_and_install"]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap(); let mobile = target_os == "ios" || target_os == "android"; diff --git a/plugins/upload/build.rs b/plugins/upload/build.rs index 96b5a90a..384744c8 100644 --- a/plugins/upload/build.rs +++ b/plugins/upload/build.rs @@ -5,7 +5,12 @@ const COMMANDS: &[&str] = &["download", "upload"]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } } diff --git a/plugins/websocket/build.rs b/plugins/websocket/build.rs index deadb78f..98215b3d 100644 --- a/plugins/websocket/build.rs +++ b/plugins/websocket/build.rs @@ -5,7 +5,12 @@ const COMMANDS: &[&str] = &["connect", "send"]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } } diff --git a/plugins/window-state/build.rs b/plugins/window-state/build.rs index 2a9354c9..7ff22d49 100644 --- a/plugins/window-state/build.rs +++ b/plugins/window-state/build.rs @@ -5,7 +5,12 @@ const COMMANDS: &[&str] = &["save_window_state", "restore_state", "filename"]; fn main() { - tauri_plugin::Builder::new(COMMANDS) + let result = tauri_plugin::Builder::new(COMMANDS) .global_api_script_path("./api-iife.js") - .build(); + .try_build(); + + // - FIXME: Temporarily ignore writing errors on docs.rs, this is a mitigation for + if !cfg!(docsrs) { + result.unwrap(); + } }