diff --git a/.changes/bundler-r-flag.md b/.changes/bundler-r-flag.md
new file mode 100644
index 000000000..01bb177a0
--- /dev/null
+++ b/.changes/bundler-r-flag.md
@@ -0,0 +1,5 @@
+---
+'tauri-bundler': 'patch:bug'
+---
+
+The NSIS uninstaller now won't mindlessly try to remove the whole installation folder when the "Remove application data" checkbox was ticked. This prevents data loss when the app was installed in a folder which contained other files.
diff --git a/.changes/bundler-resources-unix.md b/.changes/bundler-resources-unix.md
new file mode 100644
index 000000000..5c9561848
--- /dev/null
+++ b/.changes/bundler-resources-unix.md
@@ -0,0 +1,5 @@
+---
+'tauri-bundler': 'patch:bug'
+---
+
+Fixed an issue causing the NSIS bundler to install resources incorrectly when the installer was built on a non-Windows system.
diff --git a/.changes/cli-chinese-product-name.md b/.changes/cli-chinese-product-name.md
new file mode 100644
index 000000000..cc036ead8
--- /dev/null
+++ b/.changes/cli-chinese-product-name.md
@@ -0,0 +1,6 @@
+---
+'tauri-cli': 'patch:bug'
+'@tauri-apps/cli': 'patch:bug'
+---
+
+Upgrade `heck` to v0.5 to better support Chinese and Japanese product name, because Chinese do not have word separation.
diff --git a/.changes/runner-config.md b/.changes/runner-config.md
new file mode 100644
index 000000000..c810ccfbb
--- /dev/null
+++ b/.changes/runner-config.md
@@ -0,0 +1,6 @@
+---
+'tauri-cli': 'patch:bug'
+'@tauri-apps/cli': 'patch:bug'
+---
+
+Fixed an issue causing the `build.runner` and `build.features` configs to not take effect.
diff --git a/.github/workflows/covector-version-or-publish-v1.yml b/.github/workflows/covector-version-or-publish-v1.yml
index e018b7bb1..0f73a7dce 100644
--- a/.github/workflows/covector-version-or-publish-v1.yml
+++ b/.github/workflows/covector-version-or-publish-v1.yml
@@ -99,6 +99,7 @@ jobs:
cargo update -p serde_json --precise 1.0.97
cargo update -p petgraph --precise 0.6.3
cargo update -p os_str_bytes --precise 6.5.1
+ cargo update -p thread_local --precise 1.1.7
- name: test build
run: cargo check --target ${{ matrix.platform.target }} --features tracing,compression,wry,linux-protocol-headers,isolation,custom-protocol,api-all,cli,updater,system-tray,windows7-compat,http-multipart,test
diff --git a/Cargo.lock b/Cargo.lock
index 40ae95a78..1990d177a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3558,7 +3558,7 @@ dependencies = [
"cargo_toml",
"dirs-next",
"glob",
- "heck 0.4.1",
+ "heck 0.5.0",
"json-patch",
"quote",
"schemars",
@@ -3687,7 +3687,7 @@ dependencies = [
"dunce",
"getrandom 0.2.12",
"glob",
- "heck 0.4.1",
+ "heck 0.5.0",
"html5ever",
"infer",
"json-patch",
diff --git a/core/tauri-build/Cargo.toml b/core/tauri-build/Cargo.toml
index 3bf723663..6b35f7897 100644
--- a/core/tauri-build/Cargo.toml
+++ b/core/tauri-build/Cargo.toml
@@ -33,7 +33,7 @@ tauri-utils = { version = "2.0.0-beta.12", path = "../tauri-utils", features = [
cargo_toml = "0.17"
serde = "1"
serde_json = "1"
-heck = "0.4"
+heck = "0.5"
json-patch = "1.2"
walkdir = "2"
tauri-winres = "0.1"
diff --git a/core/tauri-runtime-wry/CHANGELOG.md b/core/tauri-runtime-wry/CHANGELOG.md
index 47f382093..98810da0d 100644
--- a/core/tauri-runtime-wry/CHANGELOG.md
+++ b/core/tauri-runtime-wry/CHANGELOG.md
@@ -351,6 +351,12 @@
- Support `with_webview` for Android platform alowing execution of JNI code in context.
- [8ea87e9c](https://www.github.com/tauri-apps/tauri/commit/8ea87e9c9ca8ba4c7017c8281f78aacd08f45785) feat(android): with_webview access for jni execution ([#5148](https://www.github.com/tauri-apps/tauri/pull/5148)) on 2022-09-08
+## \[0.14.5]
+
+### What's Changed
+
+- [`d42668ce`](https://www.github.com/tauri-apps/tauri/commit/d42668ce17494ab778f436aaa9b216d6db3f0b31)([#9003](https://www.github.com/tauri-apps/tauri/pull/9003)) Fix panic during intialization on wayland when using `clipboard` feature, instead propagate the error during API usage.
+
## \[0.14.4]
### Bug Fixes
diff --git a/core/tauri-utils/Cargo.toml b/core/tauri-utils/Cargo.toml
index 613cfe900..8b9ed4f06 100644
--- a/core/tauri-utils/Cargo.toml
+++ b/core/tauri-utils/Cargo.toml
@@ -44,7 +44,7 @@ log = "0.4.21"
cargo_metadata = { version = "0.18", optional = true }
[target."cfg(target_os = \"linux\")".dependencies]
-heck = "0.4"
+heck = "0.5"
[target."cfg(target_os = \"macos\")".dependencies]
swift-rs = { version = "1.0.6", optional = true, features = [ "build" ] }
diff --git a/tooling/bundler/CHANGELOG.md b/tooling/bundler/CHANGELOG.md
index a0c2b1a05..afbb91d69 100644
--- a/tooling/bundler/CHANGELOG.md
+++ b/tooling/bundler/CHANGELOG.md
@@ -225,6 +225,13 @@
- First mobile alpha release!
- [fa3a1098](https://www.github.com/tauri-apps/tauri/commit/fa3a10988a03aed1b66fb17d893b1a9adb90f7cd) feat(ci): prepare 2.0.0-alpha.0 ([#5786](https://www.github.com/tauri-apps/tauri/pull/5786)) on 2022-12-08
+## \[1.5.1]
+
+### Bug Fixes
+
+- [`516386158`](https://www.github.com/tauri-apps/tauri/commit/5163861588b229fe2e13e61bf65fbf5b88743bb3)([#9040](https://www.github.com/tauri-apps/tauri/pull/9040)) On Windows, fix building WiX installer when resources contains an XML charcter that should be escaped.
+- [`97a05145f`](https://www.github.com/tauri-apps/tauri/commit/97a05145fbb24533526eba6589594f03046e11df)([#9119](https://www.github.com/tauri-apps/tauri/pull/9119)) Fix compilation error due to dependency on unstable features of `log` crate.
+
## \[1.5.0]
### New Features
diff --git a/tooling/bundler/Cargo.toml b/tooling/bundler/Cargo.toml
index 2bd4b14b1..36b1e112f 100644
--- a/tooling/bundler/Cargo.toml
+++ b/tooling/bundler/Cargo.toml
@@ -63,7 +63,7 @@ plist = "1"
regex = "1"
[target."cfg(target_os = \"linux\")".dependencies]
-heck = "0.4"
+heck = "0.5"
ar = "0.9.0"
md5 = "0.7.0"
rpm = "0.14.0"
diff --git a/tooling/bundler/src/bundle/windows/msi/wix.rs b/tooling/bundler/src/bundle/windows/msi/wix.rs
index 99904599c..05da41076 100644
--- a/tooling/bundler/src/bundle/windows/msi/wix.rs
+++ b/tooling/bundler/src/bundle/windows/msi/wix.rs
@@ -16,7 +16,7 @@ use crate::bundle::{
},
};
use anyhow::{bail, Context};
-use handlebars::{to_json, Handlebars};
+use handlebars::{html_escape, to_json, Handlebars};
use regex::Regex;
use serde::{Deserialize, Serialize};
use std::{
@@ -121,7 +121,7 @@ impl ResourceDirectory {
r#""#,
id = file.id,
guid = file.guid,
- path = file.path.display()
+ path = html_escape(&file.path.display().to_string())
).as_str()
);
}
@@ -139,7 +139,7 @@ impl ResourceDirectory {
format!(
r#"{files}{directories}"#,
id = Uuid::new_v4().as_simple(),
- name = self.name,
+ name = html_escape(&self.name),
files = files,
directories = directories,
)
diff --git a/tooling/bundler/src/bundle/windows/nsis.rs b/tooling/bundler/src/bundle/windows/nsis.rs
index 5179e37f1..98ed8d6dc 100644
--- a/tooling/bundler/src/bundle/windows/nsis.rs
+++ b/tooling/bundler/src/bundle/windows/nsis.rs
@@ -339,6 +339,31 @@ fn build_nsis_app_installer(
resources_ancestors.sort_by_key(|p| std::cmp::Reverse(p.components().count()));
resources_ancestors.pop(); // Last one is always ""
+ // We need to convert / to \ for nsis to move the files into the correct dirs
+ #[cfg(not(target_os = "windows"))]
+ let resources: ResourcesMap = resources
+ .into_iter()
+ .map(|(r, p)| {
+ (
+ r,
+ (
+ p.0.display().to_string().replace('/', "\\").into(),
+ p.1.display().to_string().replace('/', "\\").into(),
+ ),
+ )
+ })
+ .collect();
+ #[cfg(not(target_os = "windows"))]
+ let resources_ancestors: Vec = resources_ancestors
+ .into_iter()
+ .map(|p| p.display().to_string().replace('/', "\\").into())
+ .collect();
+ #[cfg(not(target_os = "windows"))]
+ let resources_dirs: Vec = resources_dirs
+ .into_iter()
+ .map(|p| p.display().to_string().replace('/', "\\").into())
+ .collect();
+
data.insert("resources_ancestors", to_json(resources_ancestors));
data.insert("resources_dirs", to_json(resources_dirs));
data.insert("resources", to_json(&resources));
diff --git a/tooling/bundler/src/bundle/windows/templates/installer.nsi b/tooling/bundler/src/bundle/windows/templates/installer.nsi
index ea8932ebe..f26bdd31c 100644
--- a/tooling/bundler/src/bundle/windows/templates/installer.nsi
+++ b/tooling/bundler/src/bundle/windows/templates/installer.nsi
@@ -674,14 +674,10 @@ Section Uninstall
; Delete uninstaller
Delete "$INSTDIR\uninstall.exe"
- ${If} $DeleteAppDataCheckboxState == 1
- RMDir /R /REBOOTOK "$INSTDIR"
- ${Else}
- {{#each resources_ancestors}}
- RMDir /REBOOTOK "$INSTDIR\\{{this}}"
- {{/each}}
- RMDir "$INSTDIR"
- ${EndIf}
+ {{#each resources_ancestors}}
+ RMDir /REBOOTOK "$INSTDIR\\{{this}}"
+ {{/each}}
+ RMDir "$INSTDIR"
; Remove start menu shortcut
!insertmacro MUI_STARTMENU_GETFOLDER Application $AppStartMenuFolder
diff --git a/tooling/cli/CHANGELOG.md b/tooling/cli/CHANGELOG.md
index c55ec99f4..7738392cd 100644
--- a/tooling/cli/CHANGELOG.md
+++ b/tooling/cli/CHANGELOG.md
@@ -564,6 +564,17 @@
- First mobile alpha release!
- [fa3a1098](https://www.github.com/tauri-apps/tauri/commit/fa3a10988a03aed1b66fb17d893b1a9adb90f7cd) feat(ci): prepare 2.0.0-alpha.0 ([#5786](https://www.github.com/tauri-apps/tauri/pull/5786)) on 2022-12-08
+## \[1.5.11]
+
+### Bug Fixes
+
+- [`97a05145f`](https://www.github.com/tauri-apps/tauri/commit/97a05145fbb24533526eba6589594f03046e11df)([#9119](https://www.github.com/tauri-apps/tauri/pull/9119)) Fix compilation error due to dependency on unstable features of `log` crate.
+- [`b15948b11`](https://www.github.com/tauri-apps/tauri/commit/b15948b11c0e362eea7ef57a4606f15f7dbd886b)([#8903](https://www.github.com/tauri-apps/tauri/pull/8903)) Fix `.taurignore` failing to ignore in some cases.
+
+### Dependencies
+
+- Upgraded to `tauri-bundler@1.5.1`
+
## \[1.5.10]
### New Features
diff --git a/tooling/cli/Cargo.lock b/tooling/cli/Cargo.lock
index 2667b4ebe..fbec3fb2c 100644
--- a/tooling/cli/Cargo.lock
+++ b/tooling/cli/Cargo.lock
@@ -4866,7 +4866,7 @@ dependencies = [
"flate2",
"glob",
"handlebars 5.1.0",
- "heck 0.4.1",
+ "heck 0.5.0",
"hex",
"image",
"log",
@@ -5023,7 +5023,7 @@ dependencies = [
"dunce",
"getrandom 0.2.12",
"glob",
- "heck 0.4.1",
+ "heck 0.5.0",
"html5ever",
"infer 0.15.0",
"json-patch",
diff --git a/tooling/cli/metadata.json b/tooling/cli/metadata.json
index 604a96d11..e1d2dbfe8 100644
--- a/tooling/cli/metadata.json
+++ b/tooling/cli/metadata.json
@@ -1,8 +1,8 @@
{
"cli.js": {
- "version": "1.5.10",
+ "version": "1.5.11",
"node": ">= 10.0.0"
},
- "tauri": "1.6.0",
+ "tauri": "1.6.1",
"tauri-build": "1.5.1"
}
diff --git a/tooling/cli/node/CHANGELOG.md b/tooling/cli/node/CHANGELOG.md
index f4a511575..7023faa63 100644
--- a/tooling/cli/node/CHANGELOG.md
+++ b/tooling/cli/node/CHANGELOG.md
@@ -528,6 +528,16 @@
- First mobile alpha release!
- [fa3a1098](https://www.github.com/tauri-apps/tauri/commit/fa3a10988a03aed1b66fb17d893b1a9adb90f7cd) feat(ci): prepare 2.0.0-alpha.0 ([#5786](https://www.github.com/tauri-apps/tauri/pull/5786)) on 2022-12-08
+## \[1.5.11]
+
+### Bug Fixes
+
+- [`b15948b11`](https://www.github.com/tauri-apps/tauri/commit/b15948b11c0e362eea7ef57a4606f15f7dbd886b)([#8903](https://www.github.com/tauri-apps/tauri/pull/8903)) Fix `.taurignore` failing to ignore in some cases.
+
+### Dependencies
+
+- Upgraded to `tauri-cli@1.5.11`
+
## \[1.5.10]
### Bug Fixes
diff --git a/tooling/cli/src/interface/rust.rs b/tooling/cli/src/interface/rust.rs
index 4ef204118..ab6a45888 100644
--- a/tooling/cli/src/interface/rust.rs
+++ b/tooling/cli/src/interface/rust.rs
@@ -263,7 +263,11 @@ struct IgnoreMatcher(Vec);
impl IgnoreMatcher {
fn is_ignore(&self, path: &Path, is_dir: bool) -> bool {
for gitignore in &self.0 {
- if gitignore.matched(path, is_dir).is_ignore() {
+ if path.starts_with(gitignore.path())
+ && gitignore
+ .matched_path_or_any_parents(path, is_dir)
+ .is_ignore()
+ {
return true;
}
}