Compare commits

...

1192 Commits

Author SHA1 Message Date
github-actions[bot]
0156639db6 apply version updates 2026-04-08 08:36:59 +00:00
Xuhui Zheng
926a57bb08 feat(windows): NSIS uninstaller icon and header image support (#15201)
* feat: NSIS uninstaller support.

* chore: fix typo and update schema.

* fix: comments and alias.

* fix: add pages for uninst sidebar.

* chore: fix typo in comments of fields.

* fix: group HEADERIMAGE.

* fix: remove welcome/finish of uninstaller.

* fix: remove uninstaller_sidebar_image.

* Update crates/tauri-utils/src/config.rs

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* chore: revert comments.

* chore: update schema.

* Update crates/tauri-utils/src/config.rs

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Update crates/tauri-utils/src/config.rs

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* fix: typo of installer_icon.

* chore: add change file.

* fix: typo.

* chore: update config.json.

* Update .changes/feat-uninstaller-icon-image.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* fix: revert alias.

* chore: update comments in settings.rs.

* chore: update comments.

* fix: installer.nsi

* fix: installer.nsi

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2026-04-08 16:10:55 +08:00
signadou
074299c08d feat: add Bring All to Front predefined menu item type (#14307)
* Add Bring All to Front predefined menu item type

* Format and update changefile

* Update .changes/add-bring-all-to-front-predefined-menu-item-type.md
2026-04-07 23:34:01 +08:00
dependabot[bot]
ec5381e951 chore(deps-dev): bump vite from 8.0.0 to 8.0.5 (#15204)
* chore(deps-dev): bump vite from 8.0.0 to 8.0.5

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 8.0.0 to 8.0.5.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.0.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 8.0.5
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix audit

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2026-04-07 12:52:05 +08:00
lanyeeee
b27be063ff feat: add eval_with_callback to Webview and WebviewWindow (#14925)
* feat: add `eval_with_callback` to Webview and WebviewWindow

* docs: fix eval_with_callback docs and add change file

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2026-04-01 12:14:20 +08:00
Fabian-Lars
cdf5276478 chore(deps): update ctor and napi (#15183) 2026-03-31 12:44:38 +02:00
Amr Bashir
e5b00795c2 feat: cover more cases for data-tauri-drag=region="deep", add example for QA (#15164) 2026-03-28 02:03:30 +02:00
Lucas Fernandes Nogueira
5a0ca7edbb feat(bundler): support Liquid Glass icons, closes #14207 (#14671)
* feat(bundler): support Liquid Glass icons, closes #14207

the `icon` config now supports loading an Assets.car directly or a `.icon` (Icon Composer asset) that gets compiled into an Assets.car file

* fmt

* fix build

* add version checks

* fmt

* fix icns fallback

* fmt
2026-03-26 13:58:58 -03:00
Tony
5dc2cee603 fea(wix): add minimum webview2 version support (#14793)
* feat(wix): add minimum webview2 version option

* Add change file

* Format

* Move comments inside `#if` block

* add breaking change notes

* Add deprecation to description schema

* Merge remote-tracking branch 'upstream/dev' into wix-minimum-webview2-version

* Merge branch 'dev' into wix-minimum-webview2-version
2026-03-26 23:39:05 +08:00
renovate[bot]
3b5b2cc125 chore(deps): update dependency rollup to v4.60.0 (#15154) 2026-03-25 22:12:22 +08:00
Thomas Eizinger
e032c3b342 refactor: replace kuchikiki with dom_query (#14959)
* test: add more unit-tests for `html` module

* refactor: remove html dependencies from `tauri-cli`

* feat: introduce `html-manipulation-2` feature

* Remove deprecation

* Use new feature flag

* Unroll `build` feature

* Introduce `build-2` feature

* Reduce diff

* Use `build-2` in more places

* Add docs

* Refactor `inject_script_hashes`

* Refactor `with_head`

* Rename serialize and parse functions

* Add changes file

* Remove unused function

* Update changelog

* Remove test

* Update wry

* Add todo comments
we don't have the git blame data in html2, better do it now or never
find it again

* refactor `with_head` to `ensure_head`

* Remove unused casts

* Avoid using format to construct html elements
which has the potential to get injected

* Feature gate `inline_isolation`

* Keep old prepends appends

* Fix `inline_isolation_replaces_src_with_content` test

* End meta tag

* Mirror test to old html module

* Use back to `append_html` for csp and link issue

* Try out dom query main branch

* Use nodes instead to avoid an extra clone

* Use wry 0.54.4 and dom_query 0.27

* Mark stability

* Remove `PatternObject`

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2026-03-25 20:58:51 +08:00
renovate[bot]
386312c73a chore(deps): update dependency rollup to v4.59.1 (#15150)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-24 17:54:31 +01:00
Tony
d34497ef15 refactor(runtime-wry): remove RefCell hack (#14862)
* refactor(runtime-wry): remove RefCell hack

* Remove `Sync` requirement on `on_new_window`

* Merge branch 'dev' into remove-ref-cell-hack

* Add change file
2026-03-24 23:39:50 +08:00
Joshua Megnauth
4017a7ed73 feat: Allow getting inner PathBuf from SafePathBuf (#14908)
* Allow getting inner PathBuf from SafePathBuf

SafePathBuf implements AsRef<Path> which is ergonomic and useful.
However, some APIs take owned PathBufs. This leads to clunky code where
the caller has to get a &Path from the SafePathBuf then take ownership
of that path. Ideally, if a user has a SafePathBuf and needs a PathBuf,
they won't need to allocate again just to get the inner PathBuf back.

* Apply suggestion from @Legend-Master
2026-03-24 16:35:05 +08:00
Lucas Fernandes Nogueira
093e2b47c0 feat(mobile): multi-window support (#14484)
Co-authored-by: FabianLars <30730186+FabianLars@users.noreply.github.com>
2026-03-23 17:32:02 +01:00
renovate[bot]
f0381b4bdf chore(deps): update rust crate tar to v0.4.45 [security] (#15129)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-21 10:08:33 +08:00
sftse
d730770bb9 Refactors (#15117)
* refactor(tauri-build): make better use of OsString

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* refactor(tauri-build): dont wrap const value in function

* refactor(tauri-build): None codepath is never used, replace Option<Vec> with Vec

* refactor(tauri): use blocking apis where it makes sense

* refactor(tauri): better use of std::fs API

* refactor(tauri): rewind to start

* refactor(tauri): fmt

* add change file
2026-03-20 18:18:29 +08:00
Seto Elkahfi
80c1425af8 fix(cli): fix ios build when Metal Toolchain exist in the system (#14921) 2026-03-20 09:32:24 +01:00
Fabian-Lars
1ef6a119b1 chore(deps): Update cargo-mobile2 and toml crates (#15115)
* chore(deps): Update cargo-mobile2 and toml crates

* remove toml from tauri-build cargotoml

* 0.22.3

* try a range

* json5 and changefile

* Revert "json5 and changefile"

This reverts commit eda416ba79.

* keep changefile
2026-03-18 18:02:04 +01:00
Fabian-Lars
aabb42f949 chore(deps): update wrangler & flatted to fix audit (#15116) 2026-03-18 09:11:44 +01:00
Sam Lidder
fcb702ec4d fix(cli): allow build --bundles nsis arg in linux+macOS (#14954) 2026-03-17 22:12:44 +01:00
Tony
f17240bf6c refactor: reduce nesting in AppManager::get_asset (#15114) 2026-03-17 18:38:42 +08:00
llogiq
1fa1db5cd9 chore: reduce cloning in EmbeddedAssets::get (#15112)
* reduce cloning in `EmbeddedAssets::get`

* Apply suggestion from @Legend-Master

* Fix github suggestion

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2026-03-17 12:10:51 +08:00
William Justin
8db451c791 fix(cli): ignore keystore.properties in Android templates (#14996) 2026-03-16 13:09:02 +01:00
renovate[bot]
15b311155f chore(deps): update dependency vite to v8 and @sveltejs/vite-plugin-svelte to v7 (#15103)
* chore(deps): update dependency @sveltejs/vite-plugin-svelte to v7

* Update vite to v8

* Update devalue

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2026-03-13 20:03:56 +08:00
Tony
812b2990e7 ci: fix duplicated audit runs (#15104) 2026-03-13 19:25:29 +08:00
Shaun Hamilton
c8d7003b23 fix(bundler): set linuxdeploy arch to i386 (#15102)
Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com>
2026-03-12 22:36:04 +01:00
Eden Lundie
2679ddd5eb fix(ios): fix deadlock during Swift plugin command handling (#15101) 2026-03-12 16:27:49 +01:00
Lucas Nogueira
3f77cc1ee6 fix: drag.js generated CSP regression from #15062 2026-03-10 14:39:01 -03:00
Amr Bashir
2dd9b15a2b feat: add data-tauri-drag-region="deep" (#15062)
* feat: add `data-tauri-drag-region="deep"`

supersedes #6362

* Update data-tauri-drag-region-deep.md

* summary is also clickable

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2026-03-10 09:25:41 -03:00
Amr Bashir
eacd36a4ea refactor(macos-sign): use base64 crate instead of Command (#15038)
* refactor(macos-sign): use base64 crate instead of Command

* add base64 crate as a dependency

* add change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2026-03-10 09:14:58 -03:00
Tony
6cb86c9e42 chore(deps): update @rollup/plugin-terser to v1 (#15057) 2026-03-08 10:54:28 +01:00
Fabian-Lars
50833703e4 ci(test-core): split cache per target (#15048) 2026-03-06 13:40:41 +01:00
Tony
8718d08163 enhance(cli): add context before prompting password (#15033)
* enhance(cli): add context before prompting password

* Add change file
2026-03-05 11:38:02 +08:00
Tony
8230973ae8 chore: update js dependencies to fix audit (#15031)
* chore: update js dependencies

* Add serialize-javascript override
2026-03-04 21:10:25 +08:00
Tony
9b17a7aeae fix(ci): bump rustsec/audit-check to v2 and ignore time audit (#15030)
* fix(ci): bump rustsec/audit-check to v2

* Run on pull requests

* Add to ignore list
2026-03-04 18:11:01 +08:00
github-actions[bot]
d86827980d apply version updates (#14897)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-04 16:37:29 +08:00
Tony
3a65cc6885 fix(test): disable resolve_resource_dir on Android (#15026) 2026-03-03 22:37:10 +08:00
Tony
52cf195b78 refactor(cli): reduce some nesting code (#14844)
* refactor(cli): reduce some nesting code

* Handle all paths and config file change not first

* Bring back is_ignore
2026-03-03 21:27:55 +08:00
Tony
c3cbff3f74 fix: resource path handles ./ path differently (#14662)
* fix: resource path handles `./` path differently

* Setup CI for tauri utils

* Wrong job name

* Fix tests

* Always run tests and don't run doc tests

* Add change file

* Re-use `test-core` workflow

* Format

* Avoid path clone by calculating target first

* Test tauri-utils first with step instead of matrix

* Use `matrix.platform.command`

* Document `current_dest` and `current_pattern`

* More docs

* Merge remote-tracking branch 'upstream/dev' into refactor-resource-path-iter

* Test with doc tests

* Revert "Test with doc tests"

This reverts commit 388bee9328.

* Merge branch 'dev' into refactor-resource-path-iter

* Merge branch 'dev' into refactor-resource-path-iter
2026-03-03 21:15:44 +08:00
Tony
33754ae5e3 fix(cli): unusable empty password private keys (#15022)
* fix(cli): unusable empty password private keys

* Bump minisign to 0.9 and revert other changes

* Lock to `=0.7.3`
2026-03-03 20:23:50 +08:00
Tony
3935dee121 Add AI tool policy to contributing guide (#15002)
* Add AI tool policy to contrubuting guide

* Apply suggestions from code review

Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com>

* nonsense -> nonsensical

---------

Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com>
2026-03-03 17:45:42 +08:00
dependabot[bot]
33932a72b2 chore(deps-dev): bump svelte from 5.51.5 to 5.53.5 (#15015)
Bumps [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte) from 5.51.5 to 5.53.5.
- [Release notes](https://github.com/sveltejs/svelte/releases)
- [Changelog](https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/svelte/commits/svelte@5.53.5/packages/svelte)

---
updated-dependencies:
- dependency-name: svelte
  dependency-version: 5.53.5
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-01 11:27:29 +08:00
renovate[bot]
7d3c7593a9 chore(deps): update dependency rollup to v4.59.0 (#15001)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-28 22:07:20 +08:00
BiggerRain
f20256bca5 chore: fix clippy warnings (#14999) 2026-02-26 14:35:45 +01:00
renovate[bot]
03514414d9 chore(deps): update dependency rollup to v4.58.0 (#14991)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-25 11:13:03 +08:00
montyc1999
7b16dafb1d fix(tauri-utils): sort csp/plugin/header config maps during codegen so generate_context! is deterministic (#14986)
* fix(tauri-utils): sort csp/plugin/header config maps during codegen so generate_context! is deterministic

* add comments explaining rationale, and todo for removing the hack in v3
2026-02-23 23:14:56 +08:00
dependabot[bot]
7782c5525a chore(deps-dev): bump svelte from 5.35.6 to 5.51.5 (#14973)
Bumps [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte) from 5.35.6 to 5.51.5.
- [Release notes](https://github.com/sveltejs/svelte/releases)
- [Changelog](https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/svelte/commits/svelte@5.51.5/packages/svelte)

---
updated-dependencies:
- dependency-name: svelte
  dependency-version: 5.51.5
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-20 21:14:55 +08:00
renovate[bot]
aa0bf8bd19 chore(deps): update eslint monorepo to v10 (major) (#14922)
* chore(deps): update eslint monorepo to v10

* Update typescript-eslint and plugin security
2026-02-20 20:58:41 +08:00
dependabot[bot]
91fb0e161f chore(deps): bump keccak from 0.1.5 to 0.1.6 (#14972)
Bumps [keccak](https://github.com/RustCrypto/sponges) from 0.1.5 to 0.1.6.
- [Commits](https://github.com/RustCrypto/sponges/compare/keccak-v0.1.5...keccak-v0.1.6)

---
updated-dependencies:
- dependency-name: keccak
  dependency-version: 0.1.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 19:39:52 +08:00
montyc1999
88c05689c8 fix(deps): disable default-features in objc2 crates (#14967) 2026-02-18 21:31:23 +01:00
Varun Chawla
6252432f07 fix(bundler): swap WIX registry search order to prioritize InstallDir (#14945) 2026-02-16 17:34:58 +01:00
FabianLars
2d0b80eb1c Revert "chore(deps): update rust crate time to v0.3.47 [security] (#14902)"
This reverts commit 86c8c870c8.
2026-02-15 14:19:06 +01:00
renovate[bot]
86c8c870c8 chore(deps): update rust crate time to v0.3.47 [security] (#14902)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-15 14:02:39 +01:00
cui
476e8ee7f3 fix(core): fix content-boundaries start/end order in asset protocol (#14938) 2026-02-15 13:53:01 +01:00
Lucas Fernandes Nogueira
0d1cb83bab fix(cli): missing options on mobile dev/build commands (#14932)
* fix(cli): missing options on mobile dev/build commands

* avoid duplicated flags

* clippy
2026-02-12 21:12:00 -03:00
Lucas Fernandes Nogueira
35c35f27ae fix(cli): features should support a comma separated list (#14931) 2026-02-12 12:24:40 -03:00
renovate[bot]
7d01aa0417 chore(deps): update dependency rollup to v4.57.1 (#14868)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 23:16:42 +08:00
Tony
7be58a1c64 chore(bundler): bring back binary patching log (#14894)
* chore(bundler): bring back binary patching log

* Fix change tag
2026-02-05 17:59:16 +08:00
dependabot[bot]
06374a902a chore(deps): bump bytes from 1.9.0 to 1.11.1 (#14890)
Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.9.0 to 1.11.1.
- [Release notes](https://github.com/tokio-rs/bytes/releases)
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/bytes/compare/v1.9.0...v1.11.1)

---
updated-dependencies:
- dependency-name: bytes
  dependency-version: 1.11.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-04 23:06:29 +08:00
github-actions[bot]
c37368f339 apply version updates (#14884)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-03 11:54:01 -03:00
goosewobbler
06f911aaff fix: don't inherit stdout from parent (#14871) 2026-02-03 11:20:42 -03:00
Lucas Fernandes Nogueira
eb5d88427a fix(codegen): Context generation with custom assets (#14883)
when custom assets are provided (`tauri::generate_context!(assets = my_assets)`) we can't use the fn inner logic directly and capture variables - we must pass them as arguments
2026-02-03 11:01:12 -03:00
FabianLars
540c5b4e59 chore(deps): update wrangler for undici update 2026-02-03 00:56:28 +01:00
FabianLars
5dbb37bab1 chore(api.js): Re-release 2.10.0 as 2.10.1 to fix npm package 2026-02-03 00:32:07 +01:00
FabianLars
19ded696de apply version updates 2026-02-02 23:05:28 +01:00
Fabian-Lars
08558b8ba4 chore(bundler): update gtk3 docs links in code comments (#14872) 2026-02-02 20:15:28 +01:00
Fabian-Lars
ce8fddb464 chore(deps): unlock webkit2gtk patch version (#14873) 2026-02-02 20:15:02 +01:00
Lucas Fernandes Nogueira
517b81e970 chore(api): release 2.10 (#14876)
api, CLI and tauri crates must be in sync
2026-02-02 16:09:22 -03:00
Lucas Fernandes Nogueira
cd68b03ee5 feat(ci): use trusted publishers for NPM publishing (#14874)
* feat(ci): use trusted publishers for NPM publishing

* bump npm version

* update npm

* use empty NODE_AUTH_TOKEN

* entire workflow permissions
2026-02-02 16:09:01 -03:00
github-actions[bot]
8d67af37b6 apply version updates (#14639)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-02 09:15:37 -03:00
Tunglies
9f0306fbcc refactor: rewrite some &String to &str (#14857)
* perf(tauri-build): refactor find_icon to use &str to remove unnecessary clones

* refactor(perf-tauri-build): remove obsolete changelog for find_icon refactor

* refactor(tauri-build): inline find_icon logic to simplify window icon path retrieval

* refactor(context): update find_icon predicate to use &str

* refactor(context): simplify predicate in find_icon to accept &&String

* Update crates/tauri-build/src/lib.rs

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2026-01-31 21:48:00 +08:00
renovate[bot]
f7c083cd41 chore(deps): update dependency rollup to v4.57.0 (#14820) 2026-01-31 20:32:55 +08:00
sftse
32576120fd Fix busy loop (#14839)
* refactor(tauri-cli):  remove unneeded Arc<Mutex>

* fix(tauri-cli): remove busy-looping
2026-01-29 11:13:03 +08:00
sftse
e3fdcb5002 refactor tauri-cli (#14836)
* refactor(tauri-cli): use OsString where possible

* refactor(tauri-cli): remove needless scoping blocks

* refactor(tauri-cli): make return type concrete

* refactor(tauri-cli): use ?

* refactor(tauri-cli): coerce later to trait object

* refactor(tauri-cli): remove clone

* refactor(tauri-cli): make better use of static OnceLock

* fix(tauri-cli): upgrade atomics to SeqCst

* Add change file

* Update .changes/change-pr-14836.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2026-01-29 10:39:00 +08:00
sftse
d453e2e06a refactor(tauri-cli): remove trait implemented only once (#14840) 2026-01-29 10:35:55 +08:00
Fabian-Lars
20b99f9281 refactor: split appimage bundler in multiple files to support new backends (#14841) 2026-01-28 20:27:51 +01:00
sftse
3a4e165b6f Less statics fixup (#14833)
* fix(tauri-cli): be more conservative to preserve behavior (#14804)

* refactor(tauri-cli): move app path initialization into commands
2026-01-27 16:33:11 +08:00
Fabian-Lars
efc4c26ebc chore: fix clippy lints (#14834) 2026-01-26 17:13:08 +01:00
Tony
7fca58230f chore(deps): update nsis_tauri_utils to 0.5.3 (#14830) 2026-01-26 17:55:27 +08:00
Kf637
c769f211fc feat(nsis): add Norwegian language support for installer (#14824)
* feat(nsis): add Norwegian language support for installer

* feat(nsis): add Norwegian language support for installer strings

* Add change file
2026-01-25 16:30:50 +08:00
Oscar Beaumont
4d5d78daf6 fix(specta): don't use #[specta(rename = ...)] with tauri::ipc::Channel (#14812) 2026-01-24 11:00:40 +01:00
renovate[bot]
4794a6ba22 chore(deps): update dependency rollup to v4.55.2 (#14808)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-22 14:09:19 +01:00
dependabot[bot]
09a4e7f55a chore(deps-dev): bump wrangler from 4.20.3 to 4.59.1 (#14806)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-22 14:06:29 +01:00
Fabian-Lars
c862a0bd8c fix(core): update error wording for invalid version field (#14800)
* fix(core): update error wording for invalid version field

fixes #14799

* fmt
2026-01-21 10:42:15 +08:00
Quentin Goinaud
f82594410c feat(cli): allow electron to start tauri (#13253)
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2026-01-20 22:19:05 +01:00
Ishita Singh
853ed4642f fix(android): improve error handling for external storage file access (#14442)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2026-01-20 21:52:11 +01:00
Tony
53611c4d7b fix(cli): only watch dependent workspace members (#14747)
* fix(cli): only watch dependent workspace members

* Use manifest path instead of `workspace_default_members`

* Add change file

* Merge remote-tracking branch 'upstream/dev' into only-watch-dependencies

* `bug` not `fix`

* Merge branch 'dev' into only-watch-dependencies

* Remove `CargoMetadataExpended`

* Merge remote-tracking branch 'upstream/dev' into only-watch-dependencies

* Remove top level `.taurignore`

* Load ignore files from workspace root
2026-01-20 17:52:34 +08:00
Lucas Fernandes Nogueira
62aa13a124 fix(cli): Android build --apk and --aab flags requiring a value (#14629)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2026-01-19 20:32:43 +01:00
Luke
e919a760ed feat(webview-window): add set_simple_fullscreen to WebviewWindow (#14619)
* feat(webview): add set_simple_fullscreen to WebviewWindow

* add changes

* Combine per platform fn to one

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2026-01-19 11:38:37 +08:00
kandrelczyk
0575dd287e fix(bundler): patch bundle type via string replacement (#14521)
Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
Co-authored-by: FabianLars <github@fabianlars.de>
2026-01-18 23:51:02 +01:00
Lucas Fernandes Nogueira
eccff97588 fix(cli): possibly empty associated-domains entitlement (#14779) 2026-01-18 19:01:36 +01:00
Tony
08e35fcda0 refactor(cli): remove mutex on config (#14791)
* refactor(cli): remove mutex on config

* Fix ios

* Clippy

* Fix ios

* Unused import

* Fix ios closure and clippy

* Import `ConfigMetadata`

* Remove life time tags
2026-01-18 21:09:36 +08:00
Tony
10a8066db3 refactor(cli): reorder a few parameters (#14792) 2026-01-18 20:57:36 +08:00
Tony
ea31b07f19 fix(cli): inspect's description (#14789) 2026-01-17 19:23:12 +02:00
sftse
7f7d9aac21 Less statics (#14668)
* refactor(tauri-cli): introduce replacement functions

* refactor(tauri-cli): apply replacement to remove.rs

* refactor(tauri-cli): apply replacement to icon.rs

* refactor(tauri-cli): apply replacement to bundle.rs

* refactor(tauri-cli): apply replacement to build.rs

* refactor(tauri-cli): apply replacement to add.rs

* refactor(tauri-cli): apply replacement to dev.rs

* refactor(tauri-cli): less controlflow

* refactor(tauri-cli): split config loading from locking static

* refactor(tauri-cli): remove duplicate checks covered by if let Some(tauri_dir) = tauri_dir

tauri_dir.is_some() must be true, otherwise the entire block is not run, so the frontend_dir check
is irrelevant

* fmt

* refactor(tauri-cli): apply replacement to inspect.rs

* refactor(tauri-cli): dont use statics for config

* refactor(tauri-cli): finish threading directory paths through functions

* fix: clippy

* fixup CI

* refactor(tauri-cli): dont need mutex

* refactor(tauri-cli): rescope mutex use to minimal necessary

* fix CI, reduce mutex use

* fixup PR #14607

* fix: clippy

* refactor(tauri-cli): remove ConfigHandle

* refactor(tauri-cli): remove more unwraps and panicing functions

* refactor(tauri-cli): less mutexes

* refactor(tauri-cli): undo mistaken change, address review comment

* Split android build to 2 functions

* Pass in dirs to migration v1 like the v2 beta

* Add change file

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2026-01-17 23:52:42 +08:00
yy
7873c4a1c6 docs: fix typos in comments (#14787) 2026-01-17 12:30:14 +01:00
Fabian-Lars
123d63a0c1 chore: change webkit2gtk bump to minor 2026-01-15 17:00:58 +01:00
Fabian-Lars
75057c7c08 chore(deps): update wry to 0.54 and webkit2gtk-rs to 2.0.2 (#14778) 2026-01-15 14:48:45 +01:00
sftse
268bb339f0 build(tauri-macos-sign): remove once-cell-regex (#14766)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2026-01-15 13:14:30 +01:00
renovate[bot]
07788af13f chore(deps): update rust crate signal-hook-tokio to 0.4 (#14729)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <github@fabianlars.de>
2026-01-15 12:53:18 +01:00
renovate[bot]
9a53c84ec0 chore(deps): update dependency globals to v17 (#14730)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 12:28:04 +01:00
renovate[bot]
137576e8a4 chore(deps): update dependency rollup to v4.55.1 (#14746)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 11:51:21 +01:00
Wuelfhis Asuaje
1b0e335d3f Fix: Updater signer failed signing file without extension (#14713)
* fixing bug where updater signer failed signing file withou extension

* removing  unnecessary unwrap()

* Adding change file. Removing commnent. Adding TODO.

* Apply suggestions from code review

---------

Co-authored-by: Wuelfhis Asuaje <wasuaje@shorecg.com>
Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2026-01-14 09:09:45 +08:00
Amr Bashir
84b04c4a8d fix: fix leftover inconsistent env var in tauri signer sign command (#14759) 2026-01-11 20:37:52 +02:00
Tony
897529d7a2 fix: map rustls-tls to reqwest/rustls-no-provider (#14726)
Co-authored-by: FabianLars <github@fabianlars.de>
2026-01-08 15:14:51 +01:00
dependabot[bot]
3d102e0c13 chore(deps): bump rsa from 0.9.7 to 0.9.10 (#14738)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-06 19:26:47 +01:00
Fabian-Lars
fea4d02403 chore(deps): update rkyv, closes #14734 (#14736) 2026-01-06 11:16:00 +01:00
Tony
a03219ca19 refactor(cli): disable jsonschema resolving external resources (#14725)
* refactor(cli): disable jsonschema resolving external resources

* Move `CONFIG_SCHEMA_VALIDATOR` to fn

* Format

* Update ureq to fix compile on linux

* New clippy warnings
2026-01-03 19:30:42 +08:00
renovate[bot]
b75ea5bead chore(deps): update rust crate reqwest to 0.13 (#14724)
* chore(deps): update rust crate reqwest to 0.13

* Fix feature name

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2026-01-03 12:34:59 +08:00
Fabian-Lars
dcd1a65889 chore: fix tests (#14720)
* chore: fix tests

* windows
2026-01-02 16:02:23 +01:00
Camilla F
9b242e40c8 fix: BSD support in tauri-runtime (#14700)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-12-29 17:29:07 +01:00
Bruno Verachten
1dbf6fd067 feat(cli): add RISC-V 64-bit pre-built binary support (#14685)
* feat(cli): add RISC-V 64-bit pre-built binary support

Add riscv64gc-unknown-linux-gnu target to the tauri-cli release workflow,
enabling pre-built binaries for RISC-V 64-bit Linux systems.

This eliminates the multi-hour QEMU compilation time that currently blocks
RISC-V adoption of Tauri apps. Native compilation on RISC-V hardware
takes ~63 minutes.

Changes:
- Add RISC-V entry to build matrix with self-hosted runner support
- Support custom `runs_on` field for matrix entries (falls back to `os`)
- Skip dtolnay/rust-toolchain and rust-cache for self-hosted runners
- Source ~/.cargo/env for self-hosted runners where Rust is pre-installed

Tested on:
- Hardware: Banana Pi F3 (RISC-V64, 16GB RAM)
- OS: Debian Trixie (required for WebKit2GTK RISC-V support)
- Build time: 1h 2m 28s
- Binary: ELF 64-bit RISC-V, 16MB stripped

* feat(cli): use cross for RISC-V cross-compilation

Switch from self-hosted runners to cross-rs for building RISC-V binaries.
This approach is simpler and doesn't require maintaining self-hosted infrastructure.

Local testing confirms cross builds a valid RISC-V binary in ~4 minutes.

* refactor(cli): address review feedback for RISC-V workflow

- Skip Rust toolchain and cache setup for cross builds (unnecessary)
- Pin cross version to 0.2.5 for reproducibility
- Fix Linux dependencies condition to match ubuntu-* variants
2025-12-29 10:21:49 -03:00
Tony
8a43e4f9d9 refactor: use u64 instead of usize for nonce gen (#14708) 2025-12-29 08:43:09 -03:00
sftse
a2abe2e6bc refactor(cli): simplify features: Option<Vec<String>> to Vec<String> (#14607)
* refactor: use empty vector for features instead of None

* refactor: reorder

* add change file

* comment: highlight places where serialization is used

* refactor: simplify serialization

* Update .changes/empty-vec-instead-of-none.md

* Update crates/tauri-cli/src/mobile/ios/mod.rs

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2025-12-29 13:54:51 +08:00
Tony
51f0fcb69c docs: pixel units (#14702) 2025-12-28 10:40:03 +08:00
Tony
0650852d14 docs: things related to WebviewUrl (#14692)
* Typos

* Rename to `handler`/`protocol_handler`

* Fix the `AssetResolver::get` fallback docs

* Refactor and update the docs for `get_url`

* Rename the remaining ones to `get_app_url`

* Apply suggestions from code review

Co-authored-by: Fabian-Lars <github@fabianlars.de>

* Generate schema
2025-12-25 20:05:02 +08:00
Kushal Meghani
c1d82eb3a3 fix(linux): reuse WebContext to prevent WebKitNetworkProcess leak (#14628)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-12-25 13:03:15 +01:00
renovate[bot]
51a0d6d66d chore(deps): update dependency rollup to v4.54.0 (#14688)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-23 22:49:57 +08:00
renovate[bot]
7f48ee9068 chore(deps): update rust crate toml_edit to 0.24 (#14683)
* chore(deps): update rust crate toml_edit to 0.24

* Downgrade indexmap to 2.11.4 for MSRV

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2025-12-21 22:04:33 +08:00
renovate[bot]
e290642fb4 chore(deps): update dependency rollup to v4.53.5 (#14676)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 17:15:17 +08:00
renovate[bot]
b79386010d chore(deps): update dependency rollup to v4.53.4 (#14670)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-18 22:49:52 +08:00
Tony
ff5d76ca21 fix: default WindowConfig::focus to false in Default::default (#14653) 2025-12-14 16:21:44 +08:00
sftse
2d28e3143e Cleanups (#14632)
* refactor(tauri-utils): current_dest and current_pattern always change in-sync, group them to one Option

* refactor(tauri-utils): pass path as explicit argument instead of implicitly through self

* refactor(tauri-utils): remove struct field that is never set to Some

* refactor(tauri-cli): use OsString, OsStr where possible

* refactor(tauri-cli): Deref Arc early

* refactor(tauri-cli): lock config before passing to build::setup()

* refactor(tauri-build, tauri-utils): bettern pattern matching and borrowing

* refactor(tauri-cli): dont need Arc if already have static

* fix(tauri-cli): race condition initializing static flag, remove unnecessary OnceLock

* refactor(tauri-cli): use expect

* refactor(tauri-cli): remove unnecessary OnceLock

* refactor(tauri-cli): better use of dunce api

* refactor(tauri-cli): rename
2025-12-09 21:38:14 +08:00
renovate[bot]
18c69df8c7 chore(deps): update worker-rs crates to 0.7 (#14638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <github@fabianlars.de>
2025-12-09 13:42:27 +01:00
github-actions[bot]
f2e0405dc2 apply version updates (#14592)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-09 12:41:05 +01:00
FabianLars
54e8d93db1 ci(renovate): group worker-rs updates 2025-12-09 12:11:53 +01:00
Tony
251203b896 fix(linux): work area returns logical rect (#14637) 2025-12-09 18:05:12 +08:00
Tony
91becd9e4f fix(nsis): plugins not signed (#14627) 2025-12-08 20:13:52 +08:00
Tony
018b4db22e fix(bundler): skip signing for nsis uninstaller on --no-sign (#14625) 2025-12-08 20:13:43 +08:00
Tony
731dd5bfdc docs: remove $APP and $LOG from FsScope (#14623) 2025-12-07 23:09:11 +08:00
Tony
7b1b3514df changes(cli): log npm package version parse in debug level (#14621) 2025-12-07 21:06:27 +08:00
sftse
546b296405 fix(tauri-bundler): add a bit more context to error message (#14606) 2025-12-05 11:56:34 +08:00
Tunglies
514cf21e14 chore(deps): update num-bigint-dig to version 0.8.6 (#14591)
* chore(deps): update num-bigint-dig to version 0.8.6

* Update .changes/bump-version-num-bigint-dig.md

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2025-12-02 10:20:35 +08:00
renovate[bot]
60174527c0 chore(deps): update rust crate ico to 0.5 (#14589)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-02 10:19:09 +08:00
chfaft
4176f93ae4 feat(bundler): consider extensions defined in main.wxs. (#14570)
* feat(bundler): consider extensions defined in main.wxs.

* chore(bundler): apply nitpick and add a change file.

* Update crates/tauri-bundler/src/bundle/windows/msi/mod.rs

chore(bundler): avoid clone and use reference.

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Update .changes/support-template-extensions.md

chore(bundler): reclassify changes.

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2025-12-02 09:58:35 +08:00
github-actions[bot]
4408f72af6 apply version updates (#14467)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-30 11:22:38 +01:00
Fabian-Lars
1496145f82 fix(bundler): typo in 32bit arch (#14585)
* fix(bundler): typo in 32bit arch

* changefile
2025-11-30 07:49:33 +01:00
hrzlgnm
f022b2d1ae fix(cli): Skip signing bundles entirely if --no-sign is requested (#14582)
Closes #14581
2025-11-30 11:45:43 +08:00
Fabian-Lars
1573c72402 fix: remove \\r from schema files on windows (#14561) 2025-11-26 11:22:45 +01:00
renovate[bot]
dd7e59a495 chore(deps): update dependency rollup to v4.53.3 (#14519)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-24 13:25:01 +08:00
Fabian-Lars
2d2a1be429 docs(cli): fix formatting of paths 2025-11-20 15:02:46 +01:00
Fabian-Lars
afdd288eab chore(deps): update js-yaml (#14498) 2025-11-19 11:53:13 +01:00
Fabian-Lars
79a7d9ec01 fix(cli): change Cargo.toml version check to debug log (#14468) 2025-11-18 16:08:17 +01:00
Tony
f855caf8a3 fix(cli): mismatched versions check for pnpm (#14481) 2025-11-18 18:16:29 +08:00
Tunglies
ee3cc4a91b perf: remove needless clones in various files for improved performance (#14475)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-11-17 15:27:49 +01:00
Tony
b5ef603d84 chore(deps): update NSIS to 3.11 (#14478) 2025-11-16 21:56:05 +08:00
Tunglies
ce98d87ce0 refactor: remove needless collect (#14474)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-11-16 12:49:20 +01:00
Aleksey Ponomarev
ad1dec2e24 fix(core): properly handle async errors in addPluginListener (#14464)
* fix(core): properly handle async errors in addPluginListener

The previous implementation used .then() after invoke() without await, which prevented the catch block from handling rejected promises. Now using await to properly catch errors and allow fallback to camelCase registerListener method.

* Change file and generate `bundle.global.js`

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2025-11-15 12:07:51 +08:00
renovate[bot]
beffcd880f chore(deps): update dependency rollup to v4.53.2 (#14459)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-15 10:23:57 +08:00
github-actions[bot]
956031d73d apply version updates (#14458)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-13 09:14:14 -03:00
Lucas Fernandes Nogueira
4b00130b86 refactor(core): improve iOS log messages from stdout/stderr (#14385)
* refactor(core): improve iOS log messages from stdout/stderr

move the stdout/stderr forward logic to Swift so it does not consume a Rust thread and never deadlocks on the simulator

I had to work on this because i'm facing #12172 again on latest Xcode (26.1)

* patch
2025-11-13 08:18:50 -03:00
Tony
8e3bd63db9 perf(codegen): wrap generated context in a fn (#14457)
* perf(codegen): wrap generated context in a fn

* Add comment about the reasoning
2025-11-13 15:24:10 +08:00
renovate[bot]
cfe47871a5 chore(deps): update dependency rollup to v4.53.1 (#14444)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-12 22:05:17 +08:00
Fabian-Lars
236f55b7aa docs: enable dynamic-acl feature on docs.rs (#14452) 2025-11-12 10:21:18 +01:00
github-actions[bot]
9bb7e79e97 apply version updates (#14425)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-09 12:48:27 +01:00
FabianLars
d566679a99 ci: don't re-generate lockfile on prepublish 2025-11-09 12:08:57 +01:00
Kushal Meghani
3899d456d4 Address review comments (#14426)
* Address review comments

* Revert comments in `impl FromStr for ConfigValue`
2025-11-07 09:38:05 +08:00
Tony
b586ecf1f4 fix(cli): demultiply tiny skia pixels (#14416)
* fix(cli): demultiply tiny skia pixels

* Pull resize out to a function `resize_image`

* Move comments as well

* Use cow for older rust versions
2025-11-06 10:12:10 +08:00
Fabian-Lars
dd70d213cd chore(deps): update minisign to 0.8 (#14415) 2025-11-05 14:58:54 +01:00
Kushal Meghani
d06a1994e9 refactor: improve cli code readability (#14333) 2025-11-05 13:48:32 +01:00
github-actions[bot]
b446a858de apply version updates (#14409)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-04 17:00:19 +01:00
renovate[bot]
85ba5315c2 chore(deps): update dependency @types/node to v24 (#14376)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-04 11:27:01 +01:00
Adam
779612ac84 fix(cli): respect required-features field from Cargo.toml (#14379)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-11-04 11:16:01 +01:00
Fabian-Lars
22edc65aad fix(bundler/cli): set user-agent when fetching build tools (#14408) 2025-11-04 10:53:44 +01:00
Tony
9a19226369 fix(nsis): uninstall fails when manually close app on kill app dialog (#14410) 2025-11-04 17:18:21 +08:00
Chase Knowlden
fd8c30b4f1 fix: premultiply alpha before resizing (fix #14351) (#14353)
* fix: Premultiply alpha before resizing

* feat: Use rayon for process speedup

* Fix change tag

* `cargo fmt`

* Document reasoning & use imageops::resize directly

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2025-11-04 11:16:11 +08:00
renovate[bot]
18464d9481 chore(deps): update dependency vitest to v4 (#14361)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-02 17:21:40 +08:00
Tony
b80f9deb5f chore: fix new clippy warnings (derive default) (#14395)
* chore: fix new clippy warnings (derive default)

* Fix left over `#[cfg(feature = "isolation")]`
2025-10-31 21:12:41 +08:00
Sebastian Neubauer
1afa9df6d5 fix(tauri-utils): Use write_if_changed more (#13621)
Replace `fs::write` with `write_if_changed` in two places. This can
prevent unnecessary rebuilds. (I didn’t encounter any, but this should
be ok nonetheless.)
2025-10-31 09:19:35 +08:00
Fabian-Lars
75a1fec705 ci: don't cache pnpm files in version-or-publish workflow (#14392) 2025-10-30 10:25:12 +01:00
github-actions[bot]
100dc94c48 apply version updates (#14378)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-29 15:15:51 +01:00
Fabian-Lars
7f710b8f3b fix(bundler): inline linuxdeploy plugin scripts (#14390) 2025-10-29 14:50:33 +01:00
Braden Wong
bda1d22369 docs(webviewWindow): fix incorrect import in JSDoc example (#14388)
The getByLabel method is a static method on WebviewWindow, not Webview.
Updated the JSDoc example to import and use the correct class name.
2025-10-29 15:34:16 +08:00
Tony
28b9e7c7b8 fix: throw on custom protocol IPC fails (#14377) 2025-10-28 18:07:50 +08:00
renovate[bot]
3056d44d96 chore(deps): update dependency @rollup/plugin-typescript to v12.3.0 (#14364)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-28 15:57:47 +08:00
kandrelczyk
fc017ee257 add info to error message (fix 14186) (#14368)
* add info to error message

* changes file and  linux only warning

Signed-off-by: Krzysztof Andrelczyk <cristof@curiana.net>

* Update change file

---------

Signed-off-by: Krzysztof Andrelczyk <cristof@curiana.net>
Co-authored-by: Tony <legendmastertony@gmail.com>
2025-10-28 15:03:48 +08:00
github-actions[bot]
67c7418c06 apply version updates (#14348)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-22 13:38:43 +02:00
Fabian-Lars
f59bf9d539 chore: Add missing changefile for tauri-macos-sign (#14337) 2025-10-22 12:28:10 +02:00
Fabian-Lars
4b6b8690ab chore: remove --cfg docsrs to fix docs.rs builds (#14347) 2025-10-22 11:33:30 +02:00
renovate[bot]
cdc5594286 chore(deps): update dependency rollup to v4.52.5 (#14339)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 17:09:40 +08:00
dependabot[bot]
a1c231ec29 chore(deps-dev): bump vite from 7.1.5 to 7.1.11 (#14336)
* chore(deps-dev): bump vite from 7.1.5 to 7.1.11

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.5 to 7.1.11.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.1.11/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.1.11
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Dedupe

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2025-10-21 16:30:28 +08:00
Tony
752c923002 chore: fix some typos (#14334) 2025-10-20 22:51:28 +08:00
github-actions[bot]
cb28f4368c apply version updates (#14137)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-20 09:49:46 -03:00
Lucas Nogueira
6aa7f2d852 chore(deps): minor bump plugin, codegen and macros crates 2025-10-20 09:25:07 -03:00
Lucas Nogueira
06f26bbb24 chore(deps): update tao to 0.34.5 2025-10-20 09:20:13 -03:00
Lucas Fernandes Nogueira
68cb318979 feat(core): add stop, restart, destroy and configuration changed Android hooks (#14328)
* feat(core): add pause, destroy and configuration changed Android hooks

* Apply suggestions from code review
2025-10-20 08:49:26 -03:00
Lucas Fernandes Nogueira
3397fd9bfe feat(core): back button event on Android, closes #8142 (#14133)
* feat(core): back button event and exit on Android, closes #8142

I've used https://github.com/ionic-team/capacitor-plugins/blob/main/app/android/src/main/java/com/capacitorjs/plugins/app/AppPlugin.java as a reference here, checking if there's a back button event handler with a default of webview's goBack implementation

* missing change file

* remove exit impl

* fmt

* update wry

* fix default back press

* add remove_listener
2025-10-15 20:50:15 -03:00
Bipin Pandey
3b4fac2017 feat(android): add auto_increment_version_code option for Android builds (#14194)
* add new api (auto_increment_version_code) in android configuration

* ensure increment is only ran once

* skip on dev

* update doc

* change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-10-14 15:01:54 -03:00
Felix Häcker
684791efa6 fix(macos): Always try to create webview, even if webkit runtime isn't detected correctly (#14276) 2025-10-14 11:58:43 -03:00
Lucas Fernandes Nogueira
25e920e169 fix(cli): wait for dev command to exit with --no-watch, closes #14284 (#14298) 2025-10-14 07:28:18 -03:00
Lucas Nogueira
a279485856 chore(cli): update cargo-mobile2 to 0.21.1
applies https://github.com/tauri-apps/cargo-mobile2/pull/491
2025-10-10 13:44:33 -03:00
Lucas Fernandes Nogueira
7b0d4e7322 fix(core): SHA256 hash for JS scripts CSP on Windows (#14265)
* fix(core): SHA256 hash for JS scripts CSP on Windows

we hash JS scripts as SHA256 for the Content-Security-Policy (CSP) header. The isolation pattern is broken on Windows due to the hash including carriage return characters, which are not processed when the webview checks the script hash to see if the CSP allows the script.

* fmt, clippy
2025-10-10 08:11:38 -03:00
Tony
c5008b829d fix: skip empty script tag for CSP hash properly (#14274)
* fix: skip empty script tag for CSP hash properly

* add change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-10-10 08:11:08 -03:00
Lucas Fernandes Nogueira
b5aa018702 feat(cli): update cargo-mobile2 to 0.21, closes #14238 (#14268) 2025-10-09 08:30:36 -03:00
Tony
55453e8453 enhance(cli): check mismatched packages in info (#14262) 2025-10-08 19:53:55 +08:00
Lucas Fernandes Nogueira
75082cc5b3 feat(cli): add mobile run commands, closes #13196 (#14120)
* feat(cli): add mobile run commands, closes #13196

* headers

* debug by default

* fix android env

* implement watcher

* clippy

* skip ipa build
2025-10-08 07:58:17 -03:00
Lucas Fernandes Nogueira
006d592837 fix(core): parse Android plugin args starting with is, closes #14254 (#14260)
by default Jackson treats the `isX` as a getter, so it looks for the `x` key in the JSON. To match behavior on other platforms we now configure Jackson to treat it as the field name itself.
2025-10-08 07:53:35 -03:00
Tony
d2938486e9 fix(cli): js icon in tauri info (#14261) 2025-10-08 17:58:47 +08:00
DomanskiFilip
19fb6f7cb0 fix(cli): improve Android BuildTask.kt Windows executable detection for nvm4w Fixes #13892 (#14146)
* fix(cli): improve Android BuildTask.kt Windows executable detection

- Fix Android build error on Windows when using nvm4w
- Add robust fallback logic for Windows executable detection
- Prevent 'node.exe.cmd' and 'Cannot find module' errors
- Graceful fallback to cargo when Node.js detection fails

Fixes #13892

* strip extension from project, try exe/cmd/bat

* revert args

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-10-07 15:25:49 -03:00
Lucas Fernandes Nogueira
3d6868d09c feat(cli): UTExportedTypeDeclarations support for file associations (#14128)
* feat(cli): UTExportedTypeDeclarations support for file associations

closes #13314

* update example

* update readme
2025-10-07 13:12:39 -03:00
Lucas Fernandes Nogueira
cc8c0b5317 feat(core): add support to universal app links on macOS (#14031)
* feat(core): add support to universal app links on macOS

follow-up for https://github.com/tauri-apps/tao/pull/1108

* fix ci

* clippy

* ignore empty schemes
2025-10-07 09:27:30 -03:00
renovate[bot]
20e53a4b95 chore(deps): update dependency cross-env to v10.1.0 (#14242)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-07 08:47:31 -03:00
Lucas Fernandes Nogueira
08bda64c25 fix(api): "command not found" error when running addPluginListener (#14132)
* fix(api): "command not found" error when running addPluginListener

the backend expects the command name to be in snake case

we've made this change already for check_permissions and request_permissions, but missed register_listener

* fix check instead

* update bundle.global.js

* code review suggestion

* add note

* adjust change file

* remove unused var

* fmt

* build
2025-10-06 14:55:20 -03:00
Lucas Fernandes Nogueira
28a2f9bc55 fix(cli): ensure Xcode project is up to date with Cargo project name (#14101)
* fix(cli): ensure Xcode project is up to date with Cargo project name

closes #13542

* clippy
2025-10-06 14:06:04 -03:00
Lucas Fernandes Nogueira
ed7c9a4100 feat(core): add config for Info.plist extensions, closes #13667 (#14108)
* feat(core): add config for Info.plist extensions, closes #13667

* add missing tag

* do not lie :)
2025-10-06 14:05:33 -03:00
Lucas Fernandes Nogueira
abf7e8850b fix(cli): mobile init when using pnpm dlx (#14118)
i noticed this when testing #13180 (though the original issue refers to npx, which I could not reproduce yet)
2025-10-06 13:12:00 -03:00
Lucas Fernandes Nogueira
b0012424c5 fix(cli): resolve IP when dev URL host is unspecified, closes #13356 (#14115)
currently the `use_network_address_for_dev_url` function already detects Ipv4Addr::UNSPECIFIED to resolve the local IP address for mobile development when the dev URL host is 0.0.0.0, but we only call it when `--host` is provided or running on a physical device. This change detects the unspecified host early and force the resolution to run even for simulator builds
2025-10-06 13:11:48 -03:00
Fabian-Lars
06d4a4ed6c fix(bundler): set APPIMAGE_EXTRACT_AND_RUN env var as well for linuxdeploy (#14241)
* fix(bundler): set APPIMAGE_EXTRACT_AND_RUN env var as well for linuxdeploy

* Aktualisieren von linuxdeploy-extract.md
2025-10-06 13:11:35 -03:00
renovate[bot]
a99601ee4b chore(deps): update dependency rollup to v4.52.4 (#14256)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-06 19:10:02 +08:00
Vladimir Pankratov
2e089f6acb feat(ios): support async Swift plugin methods (completionHandler:) in PluginManager (#14148)
* Added selector with completionHandler handling

* Added .changes file

* fix change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-10-02 09:00:44 -03:00
Lucas Fernandes Nogueira
6bbb530fd5 chore(cli): warn when product name is missing, closes #14034 (#14105) 2025-10-02 08:28:30 -03:00
Lucas Fernandes Nogueira
b06b3bd091 refactor(cli): improve errors (#14126)
* refactor(cli): improve errors

* update change files

* license

* add errorext with fs_context helper

* update linux

* lint

* fmt

* windows

* revert bundler breaking change

* fix ios mod

* ref

* reduce amount of enum variants

* fix macos build

* Fix windows build

* Clippy

* capitalize cargo [skip ci]

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2025-10-02 06:58:26 -03:00
renovate[bot]
eb60b9966b chore(deps): update dependency rollup to v4.52.3 (#14230)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-02 16:34:29 +08:00
kandrelczyk
94cbd40fc7 Add support for adaptive and themed icons on android (#14223)
* add support for adaptive icons

* fix

* small cleanup

* combine android_bg and android_fg when specified

* Update crates/tauri-cli/src/icon.rs

Co-authored-by: Fabian-Lars <github@fabianlars.de>

* add scale option

* properly generated rounded icons

* covector, clippy

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-10-01 09:41:54 -03:00
Lucas Fernandes Nogueira
673867aa0e feat(cli): detect Android env and install SDK and NDK if needed (#14094)
* feat(cli): detect Android env and install SDK and NDK if needed

changes the Android setup to be a bit more automated - looking up ANDROID_HOME and NDK_HOME from common system paths and installing the Android SDK and NDK if needed using the command line tools

* fix windows

* clippy

* lint

* add prmopts and ci check

* also check ANDROID_SDK_ROOT
2025-10-01 09:33:14 -03:00
Rasmus Mecklenburg
4188ffdafc chore(core): allow clippy::used_underscore_binding lint in command macro (#14225) 2025-09-28 13:21:58 +02:00
renovate[bot]
12a6787110 chore(deps): update dependency rollup to v4.52.2 (#14216)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-27 21:54:42 +08:00
renovate[bot]
6cb73194c4 chore(deps): update dependency rollup to v4.52.0 (#14188)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-25 15:41:58 +02:00
FabianLars
d1892b97ce ci(renovate): group windows-rs and webview2 crates 2025-09-25 14:57:50 +02:00
Fabian-Lars
e446926a6a chore: set minimumReleaseAge to 3 days in renovate and pnpm (#14206) 2025-09-25 11:40:25 +02:00
Kirill Gribunin
b0c493a4ea FIX: Fixed GDI object leak when a resizable window is created and then closed on Windows platform (#14209)
Co-authored-by: Kirill Gribunin <kgribunin@contoso.local>
2025-09-24 21:57:05 +03:00
Ryan Seys
d340b8c8b1 fix(macos): check if path is file or dir or neither (#13793) 2025-09-22 10:25:25 +02:00
Shane Cavanaugh
830146d0be chore: remove spam link in readme (#14197) 2025-09-18 18:52:47 +02:00
dependabot[bot]
fa3771b7bc chore(deps-dev): bump vite from 7.0.4 to 7.0.7 (#14172)
* chore(deps-dev): bump vite from 7.0.4 to 7.0.7

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.0.4 to 7.0.7.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v7.0.7/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.0.7/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.0.7
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Deduplicate

* pnpm dedupe

* Update vite to 7.1.5

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2025-09-11 11:14:50 +08:00
renovate[bot]
9efe474e06 chore(deps): update dependency rollup to v4.50.1 (#14169)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-09 11:12:36 +08:00
Tony
69476d8e23 fix(macros): stack overflow in invoke handler (#14170) 2025-09-08 17:38:15 +08:00
Jamie Ridding
f5851ee00d feat: Expose ScrollBarStyle webview option to tauri. (#14089)
* Expose `ScrollBarStyle` webview option to tauri.

This commit exposes the scroll_bar_style option from wry via the tauri
WebviewWindowBuilder API. By itself, the commit does not include changes
to the configuration file or JavaScript APIs: These will be added in a
later commit.

* Fix a compile error on macOS and Linux.

* Add `scroll_bar_style` to WindowConfig.

This commit exposes the `scroll_bar_style` option in tauri.conf.json/
.json5/.toml as `scrollBarStyle` and `scroll-bar-style`.

* Expose `scroll_bar_style` to JavaScript API.

This commit exposes the `scroll_bar_style` in the options object passed
to the JavaScript API `Webview` and `WebviewWindow` constructors.

While testing this, I discovered that on Windows, attempting to create
a webview from the JavaScript API will cause the hosting window to
immediately hang if it attempts to use the same data directory as
another webview without sharing the same environment options. This
commit includes no mitigation for this behaviour, as I will be opening
a separate issue about it at some point in the near future.

* Document WebView2 environment requirements.

This commit adds a message to the documentation for all components of
the `scroll_bar_style` configuration option, telling users that all
webviews that use the same data directory must use the same value for
this option.

* Fix formatting.

* Add change files to .changes directory.

* Remove `tauri-schema-generator` from change file.

* Remove quotes from change tags.

* Add tags to change files.

I did not realise that these were needed, as the pull request that I
used as my reference when building this feature did not have them.

* update conf

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-09-02 07:14:59 -03:00
FabianLars
66cb1dbbef chore(bench): clippy fixes 2025-09-01 20:28:21 +02:00
Kushal Meghani
a58d461eb0 refactor(bench): improve code style (#14062)
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2025-09-01 20:18:20 +02:00
SHIGRAF SALIK
2a06d10066 feat(bundle): add --no-sign flag to skip code signing in bundling pro… (#14052)
* feat(bundle): add --no-sign flag to skip code signing in bundling process

- Introduce a
o_sign option in bundle settings to allow skipping code signing
- Update macOS and Windows bundler implementations to respect the flag
- Wire up CLI option --no-sign to control signing behavior during bundling
- Add necessary config and type changes to propagate the flag throughout bundler

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* ci: added yml for github action testing

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* fix: fixed field 'digest_algorithm' is already declared error

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* ci: updated to test the new features as well

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* ci: fixed yml issue

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* fix: fixed missing parameter issue in android sign.rs

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* chore: apply linting

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* chore: remove redundant files

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* chore: revert indentations

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* fix: added parameters to ios mobile build.rs

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* docs: updated documentation for settigs.rs

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* docs(cli): add documentation for
o_sign flag in build options

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* chore: apply cargo fmt

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* docs: added CHANGES.md

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* refactor(bundler): make
o_sign private and add getter

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* fix: minor error

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* refactor: revert build_benchmark_jsons.rs

Signed-off-by: ShigrafS <shigrafsalik@proton.me>

* impl for macos too

* fix ci

* fix windows build

---------

Signed-off-by: ShigrafS <shigrafsalik@proton.me>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-09-01 13:59:55 -03:00
Fabian-Lars
59089723fc feat(api): add dataDirectory setting config (#14091)
* feat(api): ad dataDirectory setting config

* changefile fmt

* chain, log if dirs::data_local_dir fails

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-09-01 13:56:26 -03:00
Lucas Fernandes Nogueira
1a6627ee7d feat(cli): set default log level when adding the log plugin (#14122)
* feat(cli): set default log level when adding the log plugin

needs https://github.com/tauri-apps/plugins-workspace/pull/2965

ref #14075

* Update crates/tauri-cli/src/add.rs
2025-09-01 13:55:59 -03:00
Lucas Fernandes Nogueira
f6622a3e34 feat(cli): prompt to install iOS runtime if needed, closes #9186 (#14129)
* feat(cli): prompt to install iOS runtime if needed, closes #9186

* ensure runtime is installed

* only when running directly

* use starts_with
2025-09-01 13:55:51 -03:00
github-actions[bot]
80eadb7387 apply version updates (#14100)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-01 12:44:16 -03:00
Tony
346a420812 docs: improve resources docs (#14136)
* docs: improve resources docs

* Clippy
2025-09-01 12:15:43 -03:00
renovate[bot]
5239d39149 chore(deps): update dependency rollup to v4.50.0 (#14127)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-31 17:51:26 +08:00
Lucas Fernandes Nogueira
0b1da30d28 chore(tauri): update documentation for home_dir on iOS (#14121)
* chore(tauri): update documentation for home_dir on iOS

ref #12497

* update
2025-08-30 08:09:38 -03:00
Lucas Fernandes Nogueira
7db7142f9f fix(cli): empty Android emulator name (#14119)
applies https://github.com/tauri-apps/cargo-mobile2/pull/481
2025-08-29 11:45:04 -03:00
Lucas Fernandes Nogueira
a9b342125d fix(cli): iOS simulator dev/build on Apple Intel, closes #13456 (#14114)
applies https://github.com/tauri-apps/cargo-mobile2/pull/479
2025-08-28 18:16:42 -03:00
Lucas Fernandes Nogueira
bcf000c0a8 fix(cli): ios command failing when running with deno, closes #13547 (#14110)
Deno doesn't set an environment variable to help us, so I had to use the exe path to determine whether we're running under deno or not
2025-08-28 18:02:46 -03:00
Lucas Fernandes Nogueira
61b9b681e8 feat(cli): retain all RUST_* env vars on mobile commands (#14111)
useful to propagate RUST_BACKTRACE to the IDE commands
2025-08-28 18:02:22 -03:00
Lucas Fernandes Nogueira
c37a298331 fix(cli): set package type for Deno (#14112)
without the type Deno assumes that the package is a ESM so it cannot use `require`
we should probably update our minimum Node.js version and use ESM instead, but I want to ship this fix first
2025-08-28 18:02:09 -03:00
Lucas Nogueira
b8b866fcc7 fix(examples): update tauri-plugin-log
fixes iOS deadlock
2025-08-28 15:09:36 -03:00
Lucas Fernandes Nogueira
956b4fd6ff fix(cli): export method on Xcode < 15.4, closes #13818 (#14106)
see https://github.com/fastlane/fastlane/issues/22028 for additional context
2025-08-28 12:37:26 -03:00
Lucas Fernandes Nogueira
07e134f70e feat(core): enhance error message for dev server request, closes #13816 (#14107) 2025-08-28 12:36:49 -03:00
Lucas Fernandes Nogueira
f70b28529d feat(cli): ensure mobile Rust targets are installed (#14093)
currently we only install Rust targets for mobile when initializing the projects.

Users can commit the Android/iOS projects, so running the init command is not a requirement to develop mobile apps. This change ensures the Rust targets are installed before trying to compile them.
2025-08-27 18:05:24 -03:00
Fabian-Lars
c23bec62d6 fix: don't set macos deployment target in dev (#14083)
* fix: don't set macos deployment target in dev.

* doc comment

* Update .changes/skip-deployment-target-in-dev.md

* Apply suggestions from code review

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2025-08-27 17:07:07 -03:00
renovate[bot]
9a35a616f5 chore(deps): update dependency rollup to v4.49.0 (#14098)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-27 23:27:02 +08:00
Fabian-Lars
755eb33d1c docs: use get_webview_window in example (#14082) 2025-08-25 16:19:44 +02:00
Lucas Nogueira
df61fac2b5 fix(ci): bump tauri-cli to 2.8.3 to match @tauri-apps/cli 2025-08-25 10:32:46 -03:00
github-actions[bot]
16348ac2bd apply version updates (#14081)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-25 10:30:08 -03:00
Lucas Fernandes Nogueira
03e7c11932 fix(tauri-runtime-wry): ignore about:blank initial URL (#14080)
* fix(tauri-runtime-wry): ignore about:blank initial URL

fixes a macOS warning when a navigation handler is registered and you choose to create a new window on the on_new_window hook - in this case we shouldn't perform the initial navigation since the URL is provided by the webview configuration from the hook

* change tag

* bump min wry
2025-08-25 10:03:35 -03:00
github-actions[bot]
e81635aa3d apply version updates (#14079)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-25 14:25:58 +02:00
Fabian-Lars
0ac89d3b6c chore(deps): Update cargo-mobile2 for ios 18.6 sim support (#14078) 2025-08-25 14:04:43 +02:00
renovate[bot]
4791d09a0a chore(deps): update dependency rollup to v4.48.1 (#14077)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-25 12:32:49 +02:00
renovate[bot]
bc829ee24d chore(deps): update dependency rollup to v4.48.0 (#14053)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-25 12:55:18 +08:00
renovate[bot]
11800a0071 chore(deps): update rust crate jsonschema to 0.33 (#14074)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-25 09:25:53 +08:00
github-actions[bot]
662b39adb3 apply version updates (#14070)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-24 11:38:07 -03:00
Tony
2aaa801c35 Improve documentation of app > windows (#14058) 2025-08-24 10:55:44 -03:00
Fabian-Lars
5349984064 fix: set webview2 path before initializing runtime (#14054)
* fix: set webview2 path before initializing runtime

* wrong current_exe function
2025-08-24 08:18:14 -03:00
Lucas Nogueira
5f535b4150 fix(bench): lint warnings 2025-08-24 08:17:25 -03:00
Tony
f3df96fb38 fix(windows): binary patching 32 bit updater type (#14065)
* fix(windows): binary patching 32 bit updater type

* Use `get` instead of size check and then assert
2025-08-24 08:16:12 -03:00
Lucas Nogueira
c0d3f9d47e chore(bench): fix build and clippy 2025-08-24 07:14:53 -03:00
Kushal Meghani
d54f3b95a6 refactor(bench): improve utils.rs safety, error handling, and docs (#14057)
- Replace `unwrap` and `expect` with `anyhow::Result` for safer error handling
- Add contextual error messages using `anyhow::Context`
- Fix `home_path` on Windows by using `USERPROFILE` instead of `HOMEPATH`
- Ensure process helpers (`run_collect`, `run`) return `Result` instead of panicking
- Improve parsing logic in `parse_max_mem` and `parse_strace_output`
- Add documentation comments for all public functions
- Add best-effort cleanup and resilience against malformed input
2025-08-22 08:04:57 -03:00
renovate[bot]
1e7aac355f chore(deps): update dependency rollup to v4.46.4 (#14049)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-21 12:01:01 +08:00
github-actions[bot]
8d869717da apply version updates (#14041)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-19 09:08:54 -03:00
Kushal Meghani
f0172a454a fix(app): correct removeDataStore return type, add docs for getBundle… (#14038)
* fix(app): correct removeDataStore return type, add docs for getBundleType

* add change file

* fmt

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-08-19 08:02:21 -03:00
Lucas Fernandes Nogueira
5075b67d36 fix(tauri): build without the wry feature flag (#14039)
* fix(tauri): build without the wry feature flag

* change file

* fix windows
2025-08-19 07:42:41 -03:00
Lucas Nogueira
c3252f72f6 fix(tauri): on_related_view should be behind the wry feature flag 2025-08-18 17:23:06 -03:00
github-actions[bot]
b4abb6cae8 Apply Version Updates From Current Changes (#13887)
* apply version updates

* chore: minor bump codegen, build, macros

* fix audit

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-08-18 15:50:13 -03:00
Will
1a3d1a024e fix(ios): Tauri iOS build with binary XCFramework dependencies (#13995)
* Fix Tauri iOS build not having a PATH variable to access unzip to extract binaryTargets and also not including Frameworks when linking

* Add covector change

* fmt

* Update crates/tauri-utils/src/build.rs

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2025-08-18 07:35:49 -03:00
renovate[bot]
37154ebdcd chore(deps): update dependency rollup to v4.46.3 (#14027)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-18 14:34:25 +08:00
Tony
380656874e Remove AsRef<Window> on WebviewWindow (#14026) 2025-08-18 13:45:43 +08:00
Lucas Fernandes Nogueira
bc4afe7dd4 feat(cli): check plugin versions for incompatibilities (#13993)
* feat(cli): check plugin versions for incompatibilities

check core plugin versions for incompatibilities between Cargo and NPM releases

a plugin NPM/cargo version is considered "incompatible" if their major or minor versions are not equal

on dev we show an warning
on build we error out (with a `--ignore-incompatible-plugins` flag to prevent that)

this is an idea from @oscartbeaumont
we've seen several plugin changes that require updates for both the cargo and the NPM releases of a plugin, and if they are not in sync, the functionality does not work
e.g. https://github.com/tauri-apps/plugins-workspace/pull/2573 where the change actually breaks the app updater if you miss the NPM update

* Use list to get multiple package versions at once

* Fix for older rust versions

* Clippy

* Support yarn classic

* Support yarn berry

* Use `.cmd` only for `npm`, `yarn`, `pnpm`

* Use yarn list without --pattern

* rename

* Extract function `check_incompatible_packages`

* Check `tauri` <-> `@tauri-apps/api`

* incompatible -> mismatched

* run build check in parallel

* rename struct

* Switch back to use sync check and add todo

* Extract to function `cargo_manifest_and_lock`

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2025-08-17 12:24:40 -03:00
Akshanabha Chakraborty
7c2eb31c83 feat: add PluginHandle::run_mobile_plugin_async (#13895)
* add async

* chore: fmt

* feat: add run_mobile_plugin_async

* changes

* chore: fix misplaced `}`

* chore: fix minor pattern matching error

* fix: copy the response handling directly from run_mobile_plugin

* fix android build

* Fix clippy lint

* lint

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-08-17 12:14:16 -03:00
Tony
737364b8d3 fix: a few regressions from previous PRs (#14020)
* fix: a few regressions from previous PRs

* rename with_window_features to window_features

* Clippy

* clippy

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-08-17 12:03:31 -03:00
Robert
68874c68c5 feat(core): webview window focusable property, closes #11130 (#13564)
* Adds the ability to set the focused property from tauri.conf.json -- windows

* add set_focusable, pin tao

* fmt

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-08-17 11:50:17 -03:00
Sean Wang
dfadcb764b feat: add WebView::set_cookie and WebView::delete_cookie (#13661)
* chore: patch wry

* feat: added `Webview::set_cookie` and `Webview::delete_cookie`

* chore: changes-files

* fmt

* owned cookie, re-export crate

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-08-16 23:41:16 -03:00
Sean Wang
22d6bcacbb feat(tauri): impl App::set_device_event_filter for AppHandle also (#14008)
* feat(tauri): impl `App::set_device_event_filter` for `AppHandle` also

* Update .changes/impl-set_device_event_filter-for-apphandle.md

* Update .changes/impl-set_device_event_filter-for-apphandle.md

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2025-08-16 15:30:46 -03:00
Tony
b21d86a8a3 fix(cli): permission add could add duplicated (#13981) 2025-08-16 14:51:45 -03:00
THELOSTSOUL
33d0b3f0c1 feat: add WebviewBuilder::on_new_window and WebviewBuilder::on_document_title_changed (#13876)
* add "new window" and "document title changed" webview handler

* take document title changed handler

* update example, add missing api, change files

* allow creating tauri window for the window.open call

* set size and position, fix linux, example

* enhance document title change

* fix windows deadlock

* wry 0.53

* update wry

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-08-16 14:49:01 -03:00
Petr
f1232671ab feat: expose internal TrayIcon (#13959) 2025-08-17 00:23:23 +08:00
Lucas Fernandes Nogueira
0c402bfb6b feat(cli): increase iOS deployment target to 14.0 (#13997)
* feat(cli): increase iOS deployment target to 14.0

closes https://github.com/tauri-apps/plugins-workspace/issues/1876

ref https://github.com/tauri-apps/tauri-docs/pull/3455

* fix tests
2025-08-16 10:32:26 -03:00
Lucas Fernandes Nogueira
d6d5f37077 feat: add --root-certificate-path option for mobile dev (#13358)
* feat: add `--root-certificate-path` option for mobile dev

lets you use a HTTPS development server

example usage:
```
cargo install tauri-cli --git https://github.com/tauri-apps/tauri --branch feat/mobile-dev-cert
cargo tauri android dev --open --root-certificate-path "/Users/lucas/Library/Application Support/mkcert/rootCA.pem" --features tauri/rustls-tls
```

* Apply suggestions from code review

Co-authored-by: Fabian-Lars <github@fabianlars.de>

---------

Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-08-16 09:13:10 -03:00
Sean Wang
7261a14368 feat: impl AsRef<Window> and on_webview_event for WebviewWindow (#14012) 2025-08-16 11:01:53 +08:00
Sean Wang
0e6b5cbe5f feat(tauri): re-export PixelUnit, PhysicalUnit, LogicalUnit (#14009)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-08-15 15:24:34 +02:00
Sean Wang
a3dc42477a feat(tauri): export TitleBarStyle for all platforms (#14013) 2025-08-15 15:13:05 +02:00
Sean Wang
21ebc6e820 feat(tauri): remove 'static lifetime bound from AppHandle::remove_plugin (#14007) 2025-08-15 15:28:39 +08:00
Lucas Fernandes Nogueira
2d5f5a9230 chore: update tests (#13998) 2025-08-13 13:34:01 -03:00
Fabian-Lars
4475e93e13 feat(bundler/cli): Add feature flag to use system certificates (#13824) 2025-08-12 13:30:23 +02:00
Naman Khandelwal
5110a762e9 feat(window): add macOS window::set_simple_fullscreen (closes #13670) (#13830)
* add implementation of set_simple_fullscreen

* add simple fullscreen API for macos

* register desktop command

* format

* fix errors

* chore: format

* change implementation

* add api

* fix tests

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-08-12 08:03:29 -03:00
Fabian-Lars
a9ec12843a feat: add option to not wait on notarization to finish (#13521)
* feat: add option to not wait on notarization to finish

* cli arg istead of config

* changefile

* fix serde

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-08-11 14:29:41 -03:00
Tony
f0dcf9637c fix(cli): add single-instance autostart init code (#13980) 2025-08-11 19:40:18 +08:00
Tony
196ace3c04 fix: return error on window creation failed (#13970)
* fix: return error on window creation failed

* Add todo about adding error inside `CreateWindow`
2025-08-09 22:43:18 +08:00
Aly Cerruti
82e264552e fix(windows): fix double free (STATUS_HEAP_CORRUPTION) of resizing handler's userdata (#13968)
* fix: double free of resizing handler's userdata on Windows

Using WM_NCDESTROY instead of WM_DESTROY is more correct for freeing userdata, as windows can receive multiple WM_DESTROY events if they're parented.

* chore: add change entry for resizing handler double-free fix
2025-08-09 12:03:21 +08:00
Tony
c134a769ea chore: fix some warnings on new rust version (#13965)
* chore: fix some warnings on new rust version

* No main

* allow dead code on specta Channel
2025-08-09 08:19:03 +08:00
Fabian-Lars
390cb9c36a fix(cli): reduce log level for goblin and handlebars (#13953) 2025-08-07 14:40:41 +02:00
Jaken Herman
9300b59f65 feat: Added fips_compliant field to WixConfig (#13787)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-08-05 20:35:25 +02:00
Jadon Jesse
e1d7be8e57 fix(example): runtime crash when counter less than 0 (#13955) 2025-08-05 18:45:49 +02:00
renovate[bot]
90c1c327ac chore(deps): update dependency cross-env to v10 (#13894)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-05 17:15:22 +02:00
renovate[bot]
83032e273b chore(deps): update rust crate which to v8 (#13711)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-05 14:59:02 +02:00
Tony
a8f1569b04 fix(windows): bundler should not sign non-binaries (#13921)
* fix(windows): bundler should not sign non-binaries

* Fix non Windows
2025-08-05 11:06:43 +08:00
Tony
0ea08e901e fix(example): unminimize window on tray icon click (#13949) 2025-08-05 10:07:16 +08:00
Fabian-Lars
887b8da684 fix(bundler): improve log format of sign command stdout (#13947) 2025-08-04 15:38:56 +02:00
Tony
7d21e3b2fa docs: how security > capabilities works (#13946)
* docs: how `security > capabilities` works

* Add how to use it

* Apply suggestions

* Relative to `Cargo.toml`

* Remove the relative base wording
2025-08-04 18:13:02 +08:00
Sam Lidder
4d270a96a8 fix(windows): patch_binary causing codesigning verification failure (#13943)
* fix(windows): `patch_binary` causing codesigning verification failure

* `cargo fmt`

* add change file

* Update .changes/fix-binary-patching-codesign-verification-failure.md

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2025-08-04 16:58:04 +08:00
renovate[bot]
bcc7a82a3a chore(deps): update rust crate notify-debouncer-full to 0.6 (#13945)
* chore(deps): update rust crate notify-debouncer-full to 0.6

* Bump jsonschema
2025-08-04 10:39:34 +08:00
Fabian-Lars
8b465a12ba fix(bundler/linux): pull latest appimage plugin (#13913) 2025-07-31 20:06:57 +02:00
Tony
ee68c918a1 chore(deps): unpin serialize-to-javascript (#13932) 2025-07-31 17:52:51 +08:00
renovate[bot]
d7075b66bd chore(deps): update rust crate toml to 0.9 (#13784)
* chore(deps): update rust crate toml to 0.9

* Bump toml_edit and cargo_toml

* Update tauri-winres

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2025-07-31 17:14:09 +08:00
xeodus
bbcea1f5e8 fix(cli): improve error messages regarding cargo metadata command (#13918) 2025-07-30 11:23:54 +02:00
Pavel Kuzmin
5ba1c3faa4 feat(menu): add icon support for Submenu in Rust and JS/TS APIs (#13722)
* feat(menu): add icon and nativeIcon support for Submenu in tauri and @tauri-apps/api

* Merge branch 'dev' into dev

* Update muda

* feat(menu): add set_icon and set_native_icon methods to set submenu icons

* feat(menu): unify icon handling by introducing MenuIcon type

* chore: sync bundle.global.js

* Make setIcon actually work

* Regenerate `bundle.global.js`

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2025-07-30 13:48:55 +08:00
renovate[bot]
e27427f795 chore(deps): update dependency rollup to v4.46.2 (#13914)
* chore(deps): update dependency rollup to v4.46.2

* Bump @eslint/plugin-kit

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2025-07-30 09:39:22 +08:00
renovate[bot]
a32a4ce3be chore(deps): update rust crate jsonschema to 0.32 (#13915)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 09:26:04 +08:00
Andrew Voynov
bc6b125b24 fix(bundler): replace empty RPM release value with 1 (#13909)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-07-29 22:20:25 +02:00
Takeaki Kobayashi
9c938be452 fix(cli): properly migrate svelte to v5 in the plugin example template (#13912)
* fix: update vite.config.ts to support Svelte 4 in example app

* Migrate the code to svelte 5 instead

* Add change file

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2025-07-29 17:47:17 +08:00
renovate[bot]
5c8182860c chore(deps): update rust crate jsonschema to 0.31 (#13903)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 23:29:31 +08:00
renovate[bot]
1d31e4647c chore(deps): update dependency rollup to v4.46.1 (#13904)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 15:19:30 +08:00
renovate[bot]
517e7b60e1 chore(deps): update dependency rollup to v4.46.0 (#13897)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-27 20:38:49 +08:00
Robin van Boven
72b4226ee9 feat: reduce Debug format size for binary buffers (#13809)
* feat: reduce Image debug output

For example now:
`Image { rgba: Cow::Borrowed([u8; 4096]), width: 32, height: 32 }) }`

* feat: reduce EmbeddedAssets debug size

For example now:
```
EmbeddedAssets {
    assets: {
        "/index.html": [u8; 1835],
        "/index.js": [u8; 212],
    },
    global_hashes: [
        Script(
            "'sha256-EOd6N98xxmK5s7VvxV7W2w7YG+dmP52MqNiZUq1NLeE='",
        ),
        Style(
            "'sha256-YEercZJImS+vUX2bz7vkQ0aA4rtBIPLuCEWz+yraQ/g='",
        ),
    ],
    html_hashes: {
        "/index.html": [
            Script(
                "'sha256-3g8CfFrjFLGpwD2o+hwMt+lh/hsHbQ3XY+EPJ35fFKk='",
            ),
            Script(
                "'sha256-EOd6N98xxmK5s7VvxV7W2w7YG+dmP52MqNiZUq1NLeE='",
            ),
        ],
    },
}
```

* feat: reduce `app_icon` debug size

* chore: changelog

* chore: include tauri-utils in changelog

* doc: comment had extra closing brackets [skip ci]
2025-07-25 07:55:00 -03:00
Lucas Fernandes Nogueira
d6d941c3a7 chore(cli): update plugin template (#13882) 2025-07-25 07:50:41 -03:00
Lucas Fernandes Nogueira
a0113a8c64 feat(tauri-plugin): add build::mobile::update_info_plist (#13888)
* feat(tauri-plugin): add build::mobile::update_info_plist

needed for https://github.com/tauri-apps/plugins-workspace/pull/2870

* Update .changes/update-info-plist.md
2025-07-25 07:50:24 -03:00
Jack Lavigne
91508c0b8d feat: add config option for custom watch folders (#13881)
* feat: add config option for custom watch folders

* fix: cargo clippy changes

* chore: remove file

* fix: ios dev

* docs: clarify absolute allowed

* refactor: rename variable

* fix: review suggestions

* fix: resolve paths

* fixL use canonicalize

* chore: add changefile

* chore: add error if cant canonicalize

* reformat changelog

* Update .changes/additional-watch-folders.md

* Update crates/tauri-cli/src/interface/rust.rs

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Revert "Update .changes/additional-watch-folders.md"

This reverts commit 98186b1a89.

* Also bump `@tauri-apps/cli`

* Apparently I'm so used to a higher rust version

* Revert "Apparently I'm so used to a higher rust version"

This reverts commit ea1d89e2d3.

* Need to check for existence for abs paths as well

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2025-07-24 22:21:00 +08:00
github-actions[bot]
fd63f229d5 apply version updates (#13871)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-22 12:32:14 +08:00
Krishna Chaitanya
af95fb6014 fix: sign main binary after patching with bundle info (fix #13868) (#13870)
* fixed #13868

* add main binary singing only on windows

* updated readme message
2025-07-22 11:32:49 +08:00
FabianLars
65bb24b9ae fix(cli): fix metadata version 2025-07-21 10:10:12 +02:00
FabianLars
332ec355a1 fix(cli): add default triplets to napi targets config 2025-07-21 09:59:32 +02:00
renovate[bot]
2c46b1873e chore(deps): update dependency eslint-config-prettier to v10.1.8 (#13855)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-21 10:23:19 +08:00
FabianLars
96439c2c42 chore(deps): Update @eslint/plugin-kit to fix pnpm audit 2025-07-21 00:37:41 +02:00
github-actions[bot]
ab97f36b64 apply version updates (#13751)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-21 00:09:52 +02:00
Tony
6a4451bcd9 fix(windows): isolation pattern create iframe loop (#13849) 2025-07-20 23:33:14 +02:00
Tony
56277e4722 chore(deps): update napi to v3 (#13852) 2025-07-20 23:03:51 +02:00
Fabian-Lars
7a6fd5b75d fix(bundler): Move AppRun to mirror (#13863) 2025-07-20 23:00:19 +02:00
Sean Wang
7f3c989111 feat(tauri): add plugin_boxed methods (#13837)
* feat(tauri): add `plugin_dyn` methods

* refactor: rename `plugin_dyn` to `plugin_boxed`
2025-07-18 11:48:10 +08:00
Tony
bda8304107 fix(cli): error out when migrating from v2 alpha (#13833) 2025-07-16 22:06:17 +08:00
Fabian-Lars
fb9d9c7fd1 chore(readme): Update discord invite (#13836) 2025-07-16 11:02:23 +02:00
renovate[bot]
8263b412c6 chore(deps): update dependency rollup to v4.45.1 (#13831)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-15 23:10:12 +08:00
Siddharth
3025d90951 feat: expose some window props from runtime-wry (#13822)
* test: make some of window id + stores public

* test: make window wrapper label pub

* feat: make label accessible for windowwrapper

* chore: adds wry runtime changefile

* chore: avoid forced clone on label

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2025-07-15 14:32:19 +08:00
Joseph Brooksbank
96391467e9 feat(mock): add mock for listen and emit (#13783)
* feat(mock): add mock for listen and emit
* feat(mock): add mock for listen and emit

* feat(mock): add mock for listen and emit

* Add change file

* correctly clear unregisterListener

* format with prettier

* build project

* opt-in to mocking events

* Use a minor bump
2025-07-15 09:30:01 +08:00
kandrelczyk
c0a654b863 failed binary patch warning (#13825)
* failed binary patch warning

* Update crates/tauri-bundler/src/bundle.rs

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2025-07-14 22:24:11 +08:00
Lucas Raposeiras
b821796add docs: add missing trafficLightPosition to WindowOptions (fix #13790) (#13810)
* docs: add missing `trafficLightPosition` to `WindowOptions`

* Change file and tweak docs

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2025-07-13 20:58:39 +08:00
Mohammad Hossein Bagheri
33d079392a feat(cli): allow runner configuration to be an object with cwd and args (#13811)
* Update config.schema.json

* Add RunnerConfig for customizable build runner

Replaces runner String with RunnerConfig in CLI and config, allowing advanced runner configuration via string or object with cmd, cwd, and args. Updates schema and usage to support new format, and adds tests for serialization, deserialization, and API. Enables more flexible build and run command customization.

* Create runner-object-config.md

* Remove unused RunnerConfig import in tests

Cleaned up the test module in config.rs by removing the unused RunnerConfig import from two test functions.

* Fix tests failing

Updates related tests in tauri-utils to improve readability and maintain consistency. Minor import reordering in tauri-cli for clarity.

* Move RunnerConfig enum and impls above BuildConfig

Relocated the RunnerConfig enum and its associated implementations to appear before the BuildConfig definition. This improves code organization and logical grouping of configuration-related types.
2025-07-13 19:28:09 +08:00
Tony
7bc77a038a feat: allow all frame init scripts in plugin (#13609)
* feat: allow all frame init scripts in plugin

* Add change files

* Update crates/tauri/src/plugin.rs

Co-authored-by: Fabian-Lars <github@fabianlars.de>

* Default impl initialization_script_2 from 1

* Update crates/tauri/src/plugin.rs

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>

---------

Co-authored-by: Fabian-Lars <github@fabianlars.de>
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2025-07-13 14:12:39 +08:00
kandrelczyk
371ee34383 make static bundle type var mutable (#13812)
* make static bundle type var mutable

* remove unsafe from no_mangle and link_section
2025-07-12 18:48:13 +08:00
renovate[bot]
22cd1e2846 chore(deps): update dependency rollup to v4.45.0 (#13813)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-12 17:55:16 +08:00
M
1c5df96fe8 fix(protocol): proxy body in mobile dev (#13773)
* proxy body in mobile dev

* add change file, use std::mem::take

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-07-11 07:22:46 -03:00
kandrelczyk
4f96ed41ca add #[used] to __TAURI_BUNDLE_TYPE so that it's not stripped in release builds (#13808) 2025-07-11 15:52:37 +08:00
renovate[bot]
24eb2b1cd3 chore(deps): update dependency @sveltejs/vite-plugin-svelte to v6 (#13803)
* chore(deps): update dependency @sveltejs/vite-plugin-svelte to v6

* Bump vite

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2025-07-11 13:22:46 +08:00
Lucas Fernandes Nogueira
0f248b111f fix(cli): install iOS dependencies when needed (#13799)
currently deps are only installed on init, which might not be executed on someone's machine if the xcode project is commited to the repo. we need to ensure dependencies are installed before running them

applies https://github.com/tauri-apps/cargo-mobile2/pull/468
2025-07-10 10:17:23 -03:00
Lucas Fernandes Nogueira
4ba871c5d2 fix(core): loading remote URLs on mobile, closes #13461 (#13782) 2025-07-09 17:08:38 -03:00
Catalin Andrei Cacuci
f94af90359 fix(nsis): per-machine installer not requesting elevation when run by non-admin users (#13786) 2025-07-09 13:42:07 +02:00
Tony
cfc5bb8196 feat(android): edge to edge in init template (#13780)
* feat(android): edge to edge in init template

* Add androidx.activity:activity-ktx

* androidx.webkit:webkit:1.14.0
2025-07-09 10:05:27 +08:00
Lucas Fernandes Nogueira
916aeaa486 fix(cli): android commands reading iOS config closes #13765 (#13781) 2025-07-08 08:49:47 -03:00
Jeong Min Oh
12e3590613 Fix(package.json) build script, Fix(android) build template (#13759)
* Update compileSdk targetSdk, Fix build cmd

* Add changelog

* Update AGP version

* Update package.json

* Update AGP

* Update SDK

* Update

* Update .changes/update-android-sdk.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Use changes tag in change file

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2025-07-08 17:00:26 +08:00
kandrelczyk
232265c70e feat: bundle type detection at runtime via binary patching (#13209)
* patch binary with bundle type info

* only patch if the updater is included

* fix linux warnings

* patch binary when updaer is configured

* patch binary with bundle type info

only patch if the updater is included

fix linux warnings

patch binary when updaer is configured

* fix formatting

* fix license header

* fix taplo error

* move __TAURI_BUNDLE_TYPE to utils

* export get_current_bundle_type

* macos fix

* cleanup, add api

* update change file

* fix windows

* fmt, fix rust version support

* fix macos

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-07-07 12:08:00 -03:00
renovate[bot]
02440b875c chore(deps): update dependency rollup to v4.44.2 (#13766)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-06 20:39:00 +08:00
Catalin Andrei Cacuci
f2dbe73097 fix(nsis): wrong required files path for nsis_tauri_utils.dll (#13772)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-07-05 23:42:25 +02:00
Tony
152d971bcd fix(mock): expose callback functions (#13744)
* fix(mock): expose callback functions

* Add change file

* Bumped the wrong package

* Fix end quote in comment
2025-07-02 22:23:23 +08:00
Jeong Min Oh
acd7574284 fix(cli/ios): fix CFBundleVersion type (#13743)
Co-authored-by: devfive <devfive@devfiveui-MacStudio.local>
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-07-02 16:01:59 +02:00
renovate[bot]
e296e4bc38 chore(deps): update dependency @rollup/plugin-typescript to v12.1.4 (#13729)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 14:07:17 +02:00
AprilNEA
11b4a03881 fix(cli): remove unnecessary files in npm package, closes #12139 (#13735)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-06-30 14:02:03 +02:00
github-actions[bot]
0277596341 apply version updates (#13731)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-28 17:48:13 -03:00
Lucas Fernandes Nogueira
cbd9629729 fix(cli): load --config values on xcode and android-studio scripts (#13730) 2025-06-28 17:16:36 -03:00
FabianLars
0079d08ba9 chore(worker): Enable observability 2025-06-27 17:20:01 +02:00
FabianLars
effd106adf fix(worker): Fix route syntax 2025-06-27 17:14:34 +02:00
github-actions[bot]
4053ad1b58 apply version updates (#13724)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-27 16:22:27 +02:00
Fabian-Lars
f010ca5e91 fix(core): compile error without common-controls-v6 (#13719) 2025-06-27 15:54:10 +02:00
Fabian-Lars
6b2b9d6cbf chore: clippy 1.88 (#13720) 2025-06-27 15:33:36 +02:00
renovate[bot]
b6de1c89c2 chore(deps): update rust crate md5 to 0.8 (#13712)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-06-26 16:29:19 +02:00
renovate[bot]
a3ae2cebbf chore(deps): update rust crate rand to 0.9 (#13700)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <github@fabianlars.de>
2025-06-26 15:47:42 +02:00
github-actions[bot]
a3f11b4f3b apply version updates (#13693)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-26 20:47:38 +08:00
Fabian-Lars
4b7370e9e0 fix(cli): fix rollup-plugin-typescript v12 compatiblity (#13710)
* fix(cli): fix rollup-plugin-typescript v12 compatiblity

* always the same mistake
2025-06-26 20:13:05 +08:00
Tony
5bbcaaec89 fix: can't set tray menus and icons in js (#13707) 2025-06-26 19:42:01 +08:00
renovate[bot]
3eb3162404 chore(deps): update rust crate muda to 0.17 - tray-icon to 0.21 (#13695)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <github@fabianlars.de>
2025-06-26 12:31:00 +02:00
renovate[bot]
0cbfd8923c chore(deps): update dependency rollup to v4.44.1 (#13696)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-26 15:33:56 +08:00
montyc1999
0a552a868c fix(macros): cache rustc -V output (#13690) 2025-06-26 10:48:52 +08:00
renovate[bot]
560067cd7e chore(deps): update rust crate getrandom to 0.3 (#13685)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <github@fabianlars.de>
2025-06-25 23:05:29 +02:00
Fabian-Lars
6a4ea10274 fix(worker): add workaround to fix build on rust 1.87 2025-06-25 22:19:47 +02:00
Fabian-Lars
349bbfc5c7 chore(deps): update axum to 0.8 and worker to 0.6 (#13677) 2025-06-25 20:57:52 +02:00
Fabian-Lars
32a84650c0 ci: disable renovate for 1.x branch (#13673) 2025-06-25 17:36:07 +02:00
Tony
b19f16aba1 ci: enable create-pull-request sign commits (#13668) 2025-06-25 15:50:45 +02:00
github-actions[bot]
594822aa55 Apply Version Updates From Current Changes (#13282)
* apply version updates

* minor bump for build, plugin, macros and runtime

---------

Co-authored-by: lucasfernog <20051258+lucasfernog@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-06-24 15:50:44 -03:00
Lucas Nogueira
e4aa35e083 fix(cli): init tests 2025-06-24 15:02:22 -03:00
sftse
9c16eefa31 Update kuchikiki, html5ever, tao, wry, webview2-com (#13629)
* fix: dont depend on private schemars api

* tauri-cli/deps: update kuchikiki and html5ever
tauri-utils/deps: update kuchikiki and html5ever
tauri-runtime-wry/deps: update wry to match kuchikiki and html5ever versions

* fix: specify exact patch version of schemars

Without this, cargo resolves the patch version of schemars to one that
does not include the _private module on which tauri-utils v1 depends,
which is a dependency of tauri-cli. As a result of this, the build breaks.

* tauri-utils/fix: inline tauri-utils v1 config module

* deps: upgrade and pin schemars 0.8.21 to pick up crate patch in Cargo.toml

* update tao, wry

* lint, license

* lint

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-06-24 14:39:20 -03:00
Lucas Fernandes Nogueira
3242e1c946 feat(cli): allow passing Cargo commands to mobile dev/build commands (#13659)
* feat(cli): allow passing Cargo commands to mobile dev/build commands

* fmt
2025-06-23 14:47:21 -03:00
Lucas Fernandes Nogueira
4a880ca697 feat(cli): synchronize productName changes with iOS Xcode project (#13658)
* feat(cli): synchronize productName changes with iOS Xcode project

* fmt
2025-06-23 14:47:10 -03:00
Lucas Fernandes Nogueira
d1ce9af628 feat(cli): add --config arg to the mobile init cmds, closes #13284 (#13660) 2025-06-23 12:55:07 -03:00
Lucas Fernandes Nogueira
ec6065fa4a fix(cli): use original identifier to fix mobile options reading (#13625)
* fix(cli): read original identifier to fix mobile options reading

the iOS and Android CLI commands leverage an android_studio_script/xcode_script that is executed by the native IDE or build tool. This script reads the Tauri configuration to find the app identifier used to communicate with the parent Tauri CLI process to read CLI options.

The communication is broken when the `--config` arg is used, since the IDE script does not have access to that value before reaching the parent process, which is impossible without knowing the actual identifier used.

To bypass this we'll agree on using the original identifier. This obviously won't work if the original tauri.conf.json do not have an identifier, so we error out in this case

* fix build, lint
2025-06-23 09:29:46 -03:00
Tony
18b5299952 docs: where does resource dir resolve to (#13640)
* docs: where does resource dir resolve to

* Add note about potential change
2025-06-21 10:22:24 +08:00
Tony
eb3f0248c2 fix: write default permission words if not empty (#13646)
* fix: write default permission words if not empty

* Remove left over format!
2025-06-21 09:52:36 +08:00
Tony
c03cc586e3 chore: check generated file on package lock change (#13641)
* chore: check generated file on package lock change

* Build bundle.global.js

looks like it's already outdated
2025-06-20 20:13:16 +08:00
renovate[bot]
488bcea970 chore(deps): update dependency rollup to v4.44.0 (#13635)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-19 19:20:17 +08:00
kandrelczyk
d48e7a39a7 chore: improve contributing guide (#13594) 2025-06-18 11:34:19 +02:00
renovate[bot]
221254738a chore(deps): update dependency @rollup/plugin-typescript to v12.1.3 (#13628)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-17 23:43:38 +08:00
Naman Khandelwal
9fb0586909 fix(cli) : final changes for macOS identifier issue (fix #12674) (#13627)
* fix(cli) : final changes for macOS identifier issue

* chore:formatted the code
2025-06-17 12:18:50 -03:00
Naman Khandelwal
8ee14a8648 fix(cli): prevent .app identifier (fix #12674) (#13618)
* fix(cli): prevent .app identifier

* chore(cli): changed warn log of non macOS

* Add change file

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2025-06-16 23:48:54 +08:00
renovate[bot]
0f0d6a4e02 chore(deps): update rust crate windows-sys to 0.60 (dev) (#13616)
* chore(deps): update rust crate windows-sys to 0.60

* Fix compile and update lock file

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2025-06-16 17:58:29 +08:00
Tony
f9bdb9b230 fix: failing scope test on Windows (#13596) 2025-06-11 15:10:25 +02:00
renovate[bot]
f34acf161d chore(deps): update dependency rollup to v4.43.0 (dev) (#13604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <github@fabianlars.de>
2025-06-11 14:52:46 +02:00
Emmanuel Ferdman
87b3cdce48 fix: resolve typos in schema (#13591)
* fix: update `English.nsh` reference

Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>

* fix: resolve typos in schema

Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>

* Generate schema

---------

Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2025-06-08 00:50:10 +08:00
renovate[bot]
aa1131a047 chore(deps): update dependency rollup to v4.42.0 (#13583)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-06 23:10:34 +02:00
Pierre de la Martinière
bd8a7cf39d fix(bundler/linux): fix app icon not showing on Gnome+Wayland (#5258) (#13581) 2025-06-06 22:46:24 +02:00
Tony
f1891540bf refactor: simplify future in command IPC structs (#13529) 2025-06-04 20:32:51 +08:00
renovate[bot]
d15da3daae chore(deps): update rust crate duct to v1 (dev) (#13397)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <github@fabianlars.de>
2025-06-03 16:54:27 +02:00
Tunglies
414619c36e feat: add bundleName field to schema and MacConfig (#13110) (#13536) 2025-06-03 15:44:49 +02:00
Fabian-Lars
25757fece4 chore(cli): Remove outdated licensing errata in readme (#13548) 2025-06-03 13:58:40 +02:00
Tony
78d15e892d fix(windows): allow web fullscreen APIs to work (#13558)
* fix(windows): allow web fullscreen APIs to work

* tauri-runtime-wry not tauri-wry

* Remove last clone

* Change file on windows
2025-06-03 19:04:14 +08:00
Tony
6a39f49991 refactor: dynamic dispatch async commands in debug (#13464)
* Dynamic dispatch async commands

* format

* Preserve `'static`

* Use a inner function instead

* Only do it for dev for now

* Add change file

* Tag respond_async_serialized_dyn with debug
2025-05-29 22:02:56 +08:00
Tony
a35600cbd7 docs: fix setAutoResize typo (#13526) 2025-05-29 17:54:22 +08:00
Tunglies
1c53640ac3 fix(schema): update hardened_runtime description to include link (#13512) 2025-05-27 17:38:18 +02:00
Amr Bashir
e7f2d8cba4 chore: remove leftover in utils.nsh (#13507) 2025-05-26 06:20:31 +03:00
Amr Bashir
7322f05792 feat(nsis): allow using CheckIfAppIsRunning macro inside NSIS hooks (#13502) 2025-05-25 23:03:10 +03:00
renovate[bot]
06c75fd98b chore(deps): update dependency rollup to v4.41.1 (#13499)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-24 21:37:42 +08:00
Lucas Fernandes Nogueira
c8a30a61d2 fix(core): capability filtering crashing allowed command generation (#13476)
* fix(core): capability filtering crashing allowed command generation

tauri-plugin and tauri build scripts cannot have access to the capabilities file (generated by tauri-build) and can only infer capabilities from the config path

* cleanup

* unused import

* followup

* fix reassign

* mut

* Update crates/tauri-utils/src/acl/build.rs

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2025-05-22 07:45:32 -03:00
renovate[bot]
650c91c114 chore(deps): update rust crate zip to v4 (#13487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-22 09:11:50 +08:00
Lucas Fernandes Nogueira
5a5291d66c fix(cli): use platform name to detect iOS architecture to build (#13483) 2025-05-21 14:12:44 -03:00
renovate[bot]
dbcfaa18d7 chore(deps): update dependency rollup to v4.41.0 (#13467)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-19 09:10:35 +08:00
WofWca
923b7c7bc6 docs: fix build instructions somewhat (#13463) 2025-05-18 20:43:49 +02:00
Tony
626165eeb4 fix: mock context without dynamic-acl feature (#13455) 2025-05-17 18:08:53 +08:00
Kingsword
638804e9c4 fix: ensure set_window_effects runs on main thread in WindowBuilder (#13422) (#13423)
Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2025-05-16 23:38:12 +02:00
Tony
1686296463 refactor: put dynamic acl to a feature (#13418)
* refactor: put dynamic acl to a feature

* Add change file

* Tweak remove_unused_commands's docs

* License header

* Document the feature

* Merge remote-tracking branch 'upstream/dev' into dynamic-acl-feature

* Use a inner non generic fn for add_capability

* Clippy and macro stability notice

* Merge remote-tracking branch 'upstream/dev' into dynamic-acl-feature

* Format
2025-05-16 22:54:23 +08:00
dependabot[bot]
85baacd18b chore(deps): bump undici from 5.28.5 to 5.29.0 (#13450)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <github@fabianlars.de>
2025-05-15 18:41:01 +02:00
Tony
c31c75fffc docs: fix missing docs for a few methods (#13449) 2025-05-16 00:17:28 +08:00
renovate[bot]
9687a9b4fb chore(deps): update rust crate zip to v3 (#13445)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-15 15:25:25 +08:00
Tony
4acae1ec02 fix(macos): run app.set_theme on main thread (#13443)
* fix(macos): run `app.set_theme` on main thread

* Change file
2025-05-15 15:13:23 +08:00
Tony
d38d90b8d9 refactor: reduce the code in macro pass (#13441) 2025-05-15 09:26:49 +08:00
Tony
b52da29d5d fix: main binary name can't contain dots (#13429)
* fix: main binary name can't contain dots

* Revert the change in tauri.conf.json

* Change file

* Use target platform when matching extension
2025-05-14 16:50:12 +08:00
Tony
574a4d4d36 fix(cli): slow dev startup (#13426)
* fix(cli): slow dev startup

* Use `recv_timeout` instead

* Update crates/tauri-cli/src/interface/rust.rs

Co-authored-by: Fabian-Lars <github@fabianlars.de>

---------

Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-05-14 16:48:05 +08:00
Tony
1777406a16 chore: apply some clippy suggestions (#13424) 2025-05-13 14:18:24 +08:00
MidnightCrowing
d3586a2afa docs(api): fix incorrect example and clarify description for dirname in path API docs (#13417) 2025-05-12 16:35:35 +08:00
Tony
b7cdb3b39e chore: feature gate html manipulation code (#13410)
* Feature gate html manipulation code

* Change file
2025-05-11 00:13:19 +08:00
Amr Bashir
96ecfca428 feat: check if webview runtime is accessible when creating a webview (#13406) 2025-05-10 06:00:09 +03:00
dependabot[bot]
0e616dbbcb chore(deps): bump ring from 0.17.8 to 0.17.14 (#13409)
Bumps [ring](https://github.com/briansmith/ring) from 0.17.8 to 0.17.14.
- [Changelog](https://github.com/briansmith/ring/blob/main/RELEASES.md)
- [Commits](https://github.com/briansmith/ring/commits)

---
updated-dependencies:
- dependency-name: ring
  dependency-version: 0.17.14
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-10 09:58:21 +08:00
Oscar Beaumont
bc2f0e48ac fix(macOS): caculation for work area (#13401)
* remove y offset

* Create change-pr-13401.md
2025-05-09 08:36:12 -03:00
renovate[bot]
efcc840ff0 chore(deps): update dependency eslint-config-prettier to v10.1.5 (#13403)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-09 15:27:18 +08:00
Fabian-Lars
7897ed257d fix(cli): don't canonicalize cargo's target dir in frontendDist verification (#13392) 2025-05-07 23:00:24 +02:00
renovate[bot]
1a018878ab chore(deps): update dependency eslint-config-prettier to v10.1.3 (#13387)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 21:17:19 +08:00
renovate[bot]
e15f665efc chore(deps): update dependency rollup to v4.40.2 (#13381)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 20:12:53 +08:00
Fabian-Lars
479cee3d36 fix(bundler): set ARCH env var for appimagetool (#13260) 2025-05-06 08:48:56 -03:00
39zde
09c19932d2 feat: add support for Service-Woker-Allowed HTTP header (#13304)
* add support for Service-Worker-Allowed headers

* add changes readme

* add service_worker_allowed in to_tokens
2025-05-06 08:15:19 -03:00
Tony
4221124c4e fix: use app's resource table for storing tray icons (#13316)
* Use app's resource table for storing tray icons

* Clean up

* Move remove tray logic to Resource::close
2025-05-06 08:11:49 -03:00
Lucas Fernandes Nogueira
b985eaf0a2 fix(core): immediately unregister event listener on unlisten call (#13306)
* fix(core): immediately unregister event listener on unlisten call

the unlisten function is currently async, but marked as `() => void` in the TypeScript definition. To avoid a breaking change, we're going to immediately unregister the listener function so it's not called.

this fixes a race condition where after calling unlisten() you would still receive events if you do not `await` it and there's a new event triggering while the unlisten command is running

* cleanup

* fix build

* fix ci
2025-05-05 10:46:05 -03:00
Miguel Duarte
c84b162374 docs: Fix description and add example for WebviewWindowBuilder::from_config (#13374)
* Update docs for WebviewWindowBuilder::from_config

The documentation for `WebviewWindowBuilder::from_config` mentions changing the label of the new `WebviewWindowBuilder`, which is not possible.

Instead, the label must be changed in the `WindowConfig` that is passed into `WebviewWindowBuilder::from_config`.

This change fixes that description and adds an example code snippet for this use-case.

* Add reference to function arguments so the type is correctly inferred

* Remove unnecesary reference

* fix tests

* fix doctest

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-05-05 09:37:53 -03:00
geeseofbeverlyroad
4f75bf5bdb docs: Added more detailed comments to menu popup method and DPI-related classes (#13368)
* Detailed function description for popup()

* Expanded DPI class descriptions

* fmt

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-05-05 09:25:30 -03:00
Tony
b5c549d189 refactor: rework transformCallback (#13325)
* refactor: rework `transformCallback`

* Migrate listen and unlisten js

* handlerId -> listener.handlerId

* Update docs

* `transformCallback` change file

* typo
2025-05-05 09:15:38 -03:00
Daniil Oberlev
208f4bcadc changed operator in vite.config.js (#13373)
Prefer using nullish coalescing operator (`??`) instead of a logical or (`||`), as it is a safer operator.
2025-05-04 03:56:28 +03:00
Lucas Fernandes Nogueira
f0662e41f4 fix(tauri-runtime-wry): window prevent overflow monitor check (#13365) 2025-05-03 14:31:43 -03:00
Matthew Richardson
dfacb656d2 fix: Can't register multiple plugin listeners for an event (#13360)
* fix: Can't register multiple listeners for an event

* add change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-05-02 15:43:47 -03:00
Tony
db03f00693 refactor: use WindowConfig for create_webview (#13322)
* refactor: use WindowConfig for `create_webview`

* Pass in label inside options

* Fix compile
2025-05-01 09:43:25 -03:00
Lucas Nogueira
a60a383360 chore(ci): tweak workflow name reference in paths list 2025-05-01 09:20:52 -03:00
Tony
aa8661acfd chore(deps): bump js dependencies (#13355) 2025-05-01 11:29:35 +02:00
Lucas Fernandes Nogueira
e045fe32c9 fix(bundler): custom sign command failing to sign uninstaller executable (#13334) 2025-04-30 15:21:14 -03:00
Kingsword
197da6fe78 docs(window): monitorFromPoint example error (#13340) 2025-04-30 03:24:32 +03:00
Oscar Beaumont
94b77b36e3 fix: use format_callback::format_raw for channels (#13288)
* fix it

* Create change-pr-13288.md

* fixes

* fixes

* fix .change
2025-04-29 08:45:22 +08:00
renovate[bot]
527bf0031e chore(deps): update dependency rollup to v4.40.1 (#13328)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-28 15:03:27 +08:00
Kingsword
35aa7e1218 fix(cli): Allow the use of target dir inside frontendDist/distDir (unless it's cargo's target dir) (#13294)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-04-27 21:37:50 +02:00
Kingsword
23b9da75b9 fix path joining behavior where path.join('', 'a') incorrectly returns "/a" instead of "a" (#13313) (#13324)
* fix path joining behavior where path.join('', 'a') incorrectly returns "/a" instead of "a" (#13313)

* Clean up

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2025-04-27 14:18:27 +08:00
Neriya Cohen
8a8c1f9f3b fix(windows): typos in Hebrew translation for NSIS installer (#13317) 2025-04-27 11:09:20 +08:00
Kingsword
50ebddaa2d feat: expose the setAutoResize API for webviews in @tauri-apps/api (#13318) (#13319) 2025-04-27 10:27:23 +08:00
Lucas Fernandes Nogueira
568efb4568 fix: follow-up fix for monitor work area on macOS (#13310)
follow-up for #13309
2025-04-26 15:03:35 -03:00
Lucas Fernandes Nogueira
6ce10ab773 fix: monitor work_area on macOS (#13309)
macOS uses a different coordinate system for visibleFrame, so to get accurate values we should only get the diff between frame() and visibleFrame() and apply that to the standard monitor position returned by CGDisplayBounds. Size isn't impacted by this, and properly returns the value (accounting for dock position).
2025-04-25 20:08:46 -03:00
Lucas Fernandes Nogueira
039f44b7b1 fix(core): fix TrayIcon.getById returning new resource IDs (#13307)
* fix(core): fix TrayIcon.getById returning new resource IDs

this prevents the close() from working properly if you somehow lose the new() resource ID (for instance when the app reloads) and need to pick it up again and close it.

* cleanup on close
2025-04-25 15:30:53 -03:00
situ2001
00dfc32a2d docs(webview): corrected examples to ensure webview is created after window initialization (#13279)
* fix: typo

* docs(webview): corrected examples to ensure webview is created after window initialization
2025-04-23 04:56:52 +02:00
situ2001
76cbeef208 fix: add proxy URL support to Webview at Rust-side. (#13278)
* fix: add proxy URL support to Webview

* chore: add .changes file

* Change file
2025-04-23 09:38:43 +08:00
Amr Bashir
267368fd4f feat: add workarea getter for monitor (#13276) 2025-04-23 03:29:03 +02:00
situ2001
4e00b27913 docs: update example for in webview ts api (#13272) 2025-04-21 18:15:14 +02:00
github-actions[bot]
766bccc341 apply version updates (#13243)
Co-authored-by: amrbashir <48618675+amrbashir@users.noreply.github.com>
2025-04-21 05:54:30 +02:00
Amr Bashir
31becbd1d1 enhance(core): respect data-tauri-drag-region="false" (#13269) 2025-04-21 05:03:54 +02:00
Tony
da2a6ae5e3 fix(core): raw channel message type regression (#13268)
* Fix raw channel message type regression

* Re-word change file

* Rename formated_bytes to bytes_as_json_array
2025-04-21 10:26:00 +08:00
renovate[bot]
87fdc3b9cd chore(deps): update rust crate jsonschema to 0.30 (#13249)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-20 20:37:48 +08:00
renovate[bot]
30e76c7d3a chore(deps): update rust crate brotli to v8 (#13264)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-20 20:23:13 +08:00
Tony
85b1912529 Make tauri-runtime-wry optional with features (#13241) 2025-04-16 14:50:11 +08:00
Lucas Fernandes Nogueira
82da4f17f5 fix(ci): ubuntu 20.04 no longer exists (#13240) 2025-04-15 17:45:05 -03:00
github-actions[bot]
977c4b496c apply version updates (#13123)
Co-authored-by: lucasfernog <20051258+lucasfernog@users.noreply.github.com>
2025-04-15 14:42:44 -03:00
Lucas Nogueira
48b12b4404 chore: bump crates depending on tauri-utils as minor 2025-04-15 14:18:15 -03:00
Lucas Fernandes Nogueira
9356fa15d8 feat(core): include type name in state panic message (#13239)
* feat(core): include type name in state panic message

* tweak message
2025-04-15 14:15:45 -03:00
Kingsword
2dccfab532 fix: fileAssociations missing LSHandlerRank on macOS (#13159) (#13236) 2025-04-15 13:45:46 -03:00
Lucas Nogueira
5d3687e8c3 chore(tauri-driver): update README 2025-04-15 13:44:07 -03:00
Lucas Fernandes Nogueira
0cf2d9933f fix(tauri-driver): append .exe ext on app path on Windows, closes #11317 (#13238) 2025-04-15 13:43:19 -03:00
Tony
1734273bbe fix: using center and overflow together crashes (#13235) 2025-04-15 16:59:01 +08:00
Tony
690146e311 fix(macros): invoke handler stack overflow (#13217)
* Fix invoke handler stack overflow

* Format and inline iife in release build

* Add change file

* The comment should be one level up
2025-04-14 18:52:23 -03:00
Tony
f888502fd2 fix(core): use Headers in sendIpcMessage (#13227)
* Use `Headers` in `sendIpcMessage`

* Add change file

* Change files

* Don't use optional chaining
Seems like we have changed it in #9530 deliberately,
so preserving it in this change

* do not let the tauri headers to be overwritten

Co-authored-by: Sean Wang <126865849+WSH032@users.noreply.github.com>

* use HeadersInit on the type definition

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: Sean Wang <126865849+WSH032@users.noreply.github.com>
2025-04-14 17:58:20 -03:00
Mateusz Kurowski
577c7ffc45 fix(webdriver): windows: make native webdriver close with parent process (fix #8610) (#10108)
* fix(webdriver): windows: make native webdriver close with parent process

* add change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-14 17:57:44 -03:00
Lucas Fernandes Nogueira
82406c61e0 feat(cli): improve iOS simulator usage and check SDK installation (#13231)
applies https://github.com/tauri-apps/cargo-mobile2/pull/453
2025-04-14 14:57:13 -03:00
Lucas Fernandes Nogueira
07953fb9c3 fix(tauri-runtime-wry): send focused events on multiwebview for Windows (#13222)
* fix(tauri-runtime-wry): send focused events on multiwebview for Windows

closes #9755

follow-up for #12014

* fix mobile build
2025-04-14 14:56:57 -03:00
thewh1teagle
8d994f60fe fix(bundler): sign DLLs (#11676)
* fix: sign nsis plugin DLLs

* also sign DLLs on unix

* fix build

* create copy of nsis dir

* always make a copy of nsis (so linux works, permission error otherwise)

* fix windows build

* fix

* to_path_buf

* also create wix copy

* remove unused toolset change

* fix unused var

* fmt

* fix wix build

* fix build

* fix plugin copy

* fix conflict

* fix file download

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-13 18:46:14 -03:00
sftse
8a1d490820 Clippy (#12485)
* fix: remove unused clones, discovered with clippy nursery lint clippy::redundant_clone

* fix: clippy

* fix: remove no longer used clippy allow directives

* more lint

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-13 08:21:34 -03:00
Lucas Fernandes Nogueira
89c6e436ea chore(api): add typescript dependency (#13220)
I noticed `pnpm ts:check` isn't working on my end, currently only works if the typescript package is globally installed
2025-04-12 22:04:40 -03:00
Neriya Cohen
b0babb6df1 Add Hebrew translation to NSIS languages (#12938)
* Create Hebrew.nsh

* add change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-12 22:04:30 -03:00
Typed SIGTERM
b8f86669ab fix: make isTauri runtime-unrelated (#13145)
* Update core.ts

* Update core.ts

* Update core.ts

* lint

* build

* fix lint, add change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-12 21:30:03 -03:00
Tony
7ed877a0ae chore(example): migrate API example to svelte 5 (#13146)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-12 21:11:21 -03:00
Lucas Fernandes Nogueira
ea36294cbc feat(core): allow changing or disabling the input accessory view on iOS (#13208)
* feat(core): allow changing or disabling the input accessory view on iOS

needs https://github.com/tauri-apps/wry/pull/1544

* remove unused code

* fix imports

* lint

* fix features

* wry 0.51.2
2025-04-12 21:10:07 -03:00
Tony
0d39ff6b09 fix(core): missing core: in referenced commands (#13150) 2025-04-12 21:03:19 -03:00
Tony
ad3fd3890f feat(cli): try detect package manager from env (#13152)
* fix(cli): try detect package manager from env

* Typo
2025-04-12 21:01:06 -03:00
Lucas Fernandes Nogueira
3752fed282 feat(cli): enhance iOS bundle version formatting (#13218)
* feat(cli): enhance iOS bundle version formatting

follow-up for #13030 and https://github.com/tauri-apps/cargo-mobile2/pull/450

the bundle version validation has been updated, now it can actually handle one or two integers (e.g. `100` or `10.7`) instead of just full triple semver strings (e.g. `10.7.1`).

* lint
2025-04-12 20:51:56 -03:00
Tony
b072e2b296 feat(core): add an option for preventing window overflow (#9687)
* Add an option for preventing window overflow

* Fix shadow counted as part of the width

* Enable prevent overflow by default

* Fix crashing when margin is bigger than screen

* Config file support

* Add to ts type

* Add mac implementation

* Should be let some

* Apply suggestions from code review

Co-authored-by: Jason Tsai <jason@pews.dev>

* checked_sub -> saturating_sub

* Revert license header

* Migrate windows 0.58

* Generate schema

* Fix merge conflict

* Try casting to objc2_app_kit::NSScreen

* Add NSScreen feature

* Use cast instead of as

* fmt

* Deref first

* Wrong unsafe block

* Add change file

* Add serde alias

* More docs

* Disable prevent_overflow by default
since we can't make breaking changes anymore right now

* Remove unused default impl

* Missing pub

* Fix mock_runtime on ios

* Match PreventOverflowMargin's description

* Typo

* Apply suggestions from code review

* Move get_work_area_size to seperate files

* Unused imports

* Add prevent_overflow to WebviewWindowBuilder

* Fix mac compile

* MonitorExt is only for desktop

* Rename to work_area

* Use workarea for linux

* Missing `()`

* Convert size

* Import MonitorExt

* as u32

* Re-build API js

* Fix wrong docs for work_area

* Remove linux platform specific note

* Remove left over linux platform specific note

* Use work area API for center as well

* Fix mobile

* Clean up

* small cleanup

* fix codegen

* update docs

* fix generated

---------

Co-authored-by: Jason Tsai <jason@pews.dev>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-12 13:56:43 -03:00
Lucas Fernandes Nogueira
0802529031 fix(cli): iOS dev broken on Xcode 16.3, closes #13128 (#13210)
* fix(cli): iOS dev broken on Xcode 16.3, closes #13128

Looks like we cannot use the arm64-sim custom architecture on Xcode 16.3, as it incorrectly appends the -sim suffix on some clang build scripts which ends up with an invalid target triple.

Currently we do not have automation to update Xcode/Android projects, so a manual intervention is required by our users, either recreating the project or modifying it manually (the arm64-sim arch must be removed and all its references).

ref https://github.com/tauri-apps/cargo-mobile2/pull/445

* fix dev on macOS with intel chip
2025-04-12 12:50:06 -03:00
Tony
66e6325f43 fix: channel callback never cleaned up from window (#13136)
* Fix channel cb never cleaned up from `window`

* Should be `_{id}`

* Still need to manually impl clone

* Regenerate bundle.global.js

* Remove current_index from ChannelInner

* Move phantom to `Channel`

* `Channel` not `Self`

* Clean up

* Clean up

* Fix missing end quote

* Add change file

* Rename id to index to match js side

* Improve channel speed on small data

* do the same perf check for IPC responses and raw bytes

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-12 10:31:25 -03:00
Matthew Richardson
0aa48fb9e4 feat: Support custom CFBundleVersion for iOS and macOS (#13030)
* feat: Add bundleVersion for iOS and macOS

* feat: Use bundleVersion for CFBundleVersion

* feat: Synchronize bundleVersion with Info.plist

* cleanup

* fix bundle version, enhance prerelease/buildnumber support and checks

* fix change file

* tauri-bundler to change file

* expand doc

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-12 09:28:48 -03:00
renovate[bot]
628f4a97e4 chore(deps): update dependency rollup to v4.40.0 (#13214)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-12 18:16:09 +08:00
Tony
fca5154e7a chore(core)!: remove re-exported WebviewAttributes (#13130) 2025-04-11 20:34:15 -03:00
Tony
fbd57a1afd feat(core): make invoke_system take AsRef<str> (#13175)
* feat(core): make `invoke_system` take `AsRef<str>`

* Use minor bump
2025-04-11 20:30:05 -03:00
The1111mp
dd4f13ce4b feat: add set_dock_visibility method (#13185)
* feat: add `set_dock_visibility` method

Signed-off-by: The1111mp <The1111mp@outlook.com>

* add api

* retain focus

* fmt

* make SetDockVisibility message conditional (macos only)

* lint

---------

Signed-off-by: The1111mp <The1111mp@outlook.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-11 15:13:07 -03:00
dependabot[bot]
7b14531f24 chore(deps-dev): bump vite from 6.2.5 to 6.2.6 (#13206)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.5 to 6.2.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.2.6
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-11 23:48:57 +08:00
Trivikram Kamat
7a86e0f8a1 ci: remove redundant corepack enable (#13203) 2025-04-11 09:04:19 -03:00
Simon Laux
c1cd0a2ddb feat: macOS/iOS: add option to disable or enable link previews when building a webview (#13090)
* macOS/iOS: add option to disable or enable link previews when building a webview (the webkit api has it enabled by default)
  -  `WebViewBuilderExtDarwin.allow_link_preview(allow_link_preview: bool)`
  -  `WebViewBuilder.allow_link_preview(allow_link_preview: bool)`
  -  `WebviewWindowBuilder.allow_link_preview(allow_link_preview: bool)`

* also call on iOS

* add api

* fix tests

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-11 09:00:34 -03:00
dependabot[bot]
073dbc3953 chore(deps): bump crossbeam-channel from 0.5.14 to 0.5.15 (#13194)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-10 16:54:11 +02:00
renovate[bot]
47df696dfb chore(deps): update dependency eslint-config-prettier to v10.1.2 (#13192)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-10 15:03:40 +02:00
Tony
9ea76503dc fix(nsis): can't include resources with $ (#13186) 2025-04-09 20:03:35 +08:00
Lucas Fernandes Nogueira
bb5faa21f4 chore: update tao, wry, windows, webview2-com (#13163)
* chore: update tao, wry, windows, webview2-com

* update docs

* Use `impl Into<String>`

* More docs

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2025-04-09 08:15:31 -03:00
renovate[bot]
b32153b437 chore(deps): update rust crate tokio to v1.43.1 [security] (#13172)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-08 09:35:03 +08:00
dependabot[bot]
c71755fd5f chore(deps-dev): bump vite from 6.2.4 to 6.2.5 (#13138)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.4 to 6.2.5.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.5/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.2.5
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-05 10:08:12 +08:00
dependabot[bot]
7b81825144 chore(deps): bump openssl from 0.10.70 to 0.10.72 (#13140)
Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.70 to 0.10.72.
- [Release notes](https://github.com/sfackler/rust-openssl/releases)
- [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.70...openssl-v0.10.72)

---
updated-dependencies:
- dependency-name: openssl
  dependency-version: 0.10.72
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-05 10:07:41 +08:00
Tony
ebd3dcb92f enhance(core): change eval to take Into<String> (#13135) 2025-04-04 10:06:22 +02:00
Tony
80dccb6a2e chore: fix a few internal docs and apply clippy suggestions (#13131)
* chore: fix a few internal docs

* Remove label clone

* Unused allow lint

* No way clippy just updated

* `cargo clippy --fix -- -W clippy::redundant_clone`

* format
2025-04-03 17:57:36 +02:00
WofWca
cf0b3588a3 docs: add SafePathBuf examples (#13122) 2025-04-02 14:02:48 -03:00
Tony
b8c0d7e402 fix: run_return not responding to restart (#13040)
* fix: `run_return` not responding to `restart`

* Document run_return will handle restart requests

* Add change file
2025-04-02 09:54:38 -03:00
renovate[bot]
e4982dff73 chore(deps): update dependency rollup to v4.39.0 (#13125)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-02 17:17:43 +08:00
Simon Laux
8cf662e34b feat: expose api to run initialization scripts on all frames. (#13076)
* api!: expose api to run initialisation scripts on all frames.

* remove breaking change, add new api instead.

* Update .changes/init-script-on-all-frames.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* use struct `InitializationScript` instead of tuple

* Update crates/tauri-runtime/src/webview.rs

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Apply suggestions from code review

* Update crates/tauri/src/webview/webview_window.rs

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2025-04-02 08:41:34 +08:00
github-actions[bot]
b154826881 apply version updates (#13060)
Co-authored-by: lucasfernog <20051258+lucasfernog@users.noreply.github.com>
2025-04-01 13:52:38 -03:00
Lucas Nogueira
dade232592 chore: change bumps to patches 2025-04-01 13:14:28 -03:00
Tony
aa6b4d4edf fix(cli): preserve null when merging patches (#13120)
* fix(cli): preserve null when merging patches

* add test

* remove commented out code

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-01 13:09:50 -03:00
Tony
794af778e4 fix(cli): merge config based on the first one (#13117)
* fix(cli): merge config based on the first one

* Add change file
2025-04-01 17:18:13 +08:00
dependabot[bot]
4e22ae29d3 chore(deps-dev): bump vite from 6.2.3 to 6.2.4 (#13111)
* chore(deps-dev): bump vite from 6.2.3 to 6.2.4

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.3 to 6.2.4.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.4/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update esbuild

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2025-04-01 09:05:10 +08:00
Tony
4ae14bf2f2 fix: suppress deprecated warning in tray icon codegen (#13093) 2025-03-31 09:54:07 +08:00
Pietagorh
f805061d11 feat(cli): allow for toml and json5 files in --config arg (#13079) 2025-03-30 18:11:47 +02:00
Tony
30beb6fee7 fix(cli): tauri info can't find the latest version for rust crates (#13096)
* fix(cli): `tauri info` can't find the latest version for rust crates

* Forget to remove dbg!

* Use strip_suffix

* Add change file
2025-03-29 23:45:38 +08:00
renovate[bot]
22c7a877e3 chore(deps): update dependency rollup to v4.38.0 (#13094)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-29 17:32:15 +08:00
Tony
2138bbc212 fix(nsis): in wrong language if SpanishInternational is included (#13087) 2025-03-28 03:45:13 -07:00
dependabot[bot]
5c2b3b8b65 chore(deps-dev): bump vite from 6.2.0 to 6.2.3 (#13072)
* chore(deps-dev): bump vite from 6.2.0 to 6.2.3

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.0 to 6.2.3.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.3/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.3/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update esbuilds to the same version

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2025-03-26 15:10:34 +08:00
阿豪
dd13728334 enhance(api): add generic parameter to emit and emitTo functions (#13066)
closes #13059
2025-03-25 05:34:20 +02:00
renovate[bot]
f235ec0113 chore(deps): update dependency rollup to v4.37.0 (#13062)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-24 21:14:02 +08:00
Matthew Richardson
f182b0bb93 docs: Update general setup in contributing guide (#13065) 2025-03-24 05:51:09 -07:00
Tony
a851b6597f enhance: include permission group permissions in the generated schema (#13057)
* enhance: include permissions in default permission description

* Only include in schema

* Remove 'which includes` to tauri's build script

* Also bump utils

* Clippy
My local clippy didn't report this, weird

* Use `which enables all commands`
for default permissions that enables everything

* Extract description into a variable

* Generate permissions with or without description

* Tweak the docs and generate 'which includes'

* Simplify to just `includes`

* Docs change change file

* Put the change in minor

* Update .changes/include-permissions-in-schema.md

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>

* Remove unused change file

---------

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2025-03-23 21:35:45 +08:00
WofWca
be31675fbc docs: improve Builder::run docs (#13058)
Otherwise people might use it and not realize
that `App::run` also takes the callback argument,
which could be useful for some.
2025-03-23 15:07:33 +02:00
Lőrik Levente
dea8bbf6cd docs: Improve BaseDirectory documentation (#13043)
* add notes

* Add links

* fix fmt
2025-03-21 13:57:34 +02:00
github-actions[bot]
be3a79c864 apply version updates (#12856)
Co-authored-by: lucasfernog <20051258+lucasfernog@users.noreply.github.com>
2025-03-20 15:34:59 -03:00
Lucas Nogueira
ba42a1f553 chore: pin tao and wry to latest patch versions
they include necessary bug fixes for the 2.4 release
2025-03-20 14:52:38 -03:00
Tony
1cd8f55eed fix: don't ship global api bundle if withGlobalTauri is false (#13033)
* fix: don't ship global api bundle if withGlobalTauri is false

* Comment and prettier
2025-03-20 12:37:31 -03:00
Tony
8603e42a6b fix: channel no longer being always allowed (#13032)
* fix: channel no longer being always allowed

* Prettier

* Don't change the plugin name just yet

* Handle TAURI_CHANNEL as a special case in macro

* remove commented out code

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-20 12:19:55 -03:00
Akshanabha Chakraborty
c32bd722d3 prettify: Remove beta tag and alert users that tauri for android currently doesn't work on android 7 (#12646) 2025-03-18 08:33:47 -03:00
Lucas Fernandes Nogueira
bcdd510254 feat(core): resolve file names from Android content URIs (#13012)
* feat(core): resolve file names from Android content URIs

This PR adds a new Android path plugin function to resolve file names from content URIs. `PathResolver::file_name` was added to expose this API on Rust, and the existing `@tauri-apps/api/path` basename and extname function now leverages it on Android.

Closes https://github.com/tauri-apps/plugins-workspace/issues/1775

Tauri core port from https://github.com/tauri-apps/plugins-workspace/pull/2421

Co-authored-by: VulnX

* update change file [skip ci]

Co-authored-by: VulnX <62636727+VulnX@users.noreply.github.com>

---------

Co-authored-by: VulnX <62636727+VulnX@users.noreply.github.com>
2025-03-18 08:29:07 -03:00
WofWca
71cb1e26d7 docs: update .disable_javascript() docs (#13013)
The initial version of the MR that introduced this to Wry
(https://github.com/tauri-apps/wry/pull/1496)
had no Android implementation, but it has been added
in a later version of the MR, so the comment is no longer valid.
2025-03-18 09:47:27 +02:00
WofWca
b459f1d405 docs: improve Capability docs: mention webviews (#13015) 2025-03-18 09:46:48 +02:00
dependabot[bot]
8cc0067165 chore(deps): bump zip from 2.2.2 to 2.3.0 (#13016)
Bumps [zip](https://github.com/zip-rs/zip2) from 2.2.2 to 2.3.0.
- [Release notes](https://github.com/zip-rs/zip2/releases)
- [Changelog](https://github.com/zip-rs/zip2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zip-rs/zip2/compare/v2.2.2...v2.3.0)

---
updated-dependencies:
- dependency-name: zip
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-18 11:35:36 +08:00
Lucas Fernandes Nogueira
f2c94aaca0 feat(core): add startIntentSenderForResult Android API for plugins (#12682) 2025-03-17 11:52:11 -03:00
WofWca
cefefa930b docs: improve tauri_build::build & try_build (#13001)
* docs: remove outdated `tauri_build::build` docs

The docstring has been unchanged ever since
40ac52971e (2021).
The `build()` function has grown massivly since then,
now it's not only about Windows.

* docs: `tauri_build::build`: see `try_build` for more config

`try_build` is not only about not panicing, but it also takes the
`attributes: Attributes` argument,
which is very important for controlling command permissions.

* Update crates/tauri-build/src/lib.rs

Co-authored-by: Amr Bashir <github@amrbashir.me>

* update docs

---------

Co-authored-by: Amr Bashir <github@amrbashir.me>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-17 09:28:09 -03:00
renovate[bot]
4a01299e31 chore(deps): update dependency rollup to v4.36.0 (#13010)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-17 19:36:29 +08:00
WofWca
5a23146566 docs: clarify Capability::windows/webviews OR nature (#13000)
* docs: clarify Capability::windows/webviews OR nature

It is intuitive to expect that for the capability to be enabled,
_both_ the window label and the webview label have to match.
However, this is not the case: the capability is enabled
if _either_ the window label matches a pattern
in `Capability::windows` _or_ the webview label matches a pattern
in `Capability::webviews`.

This commit should somewhat clarify this oddity
and protect developers from adding excessive permissions.

For reference, `Capability::webviews` was added in
0cb0a15ce2
(https://github.com/tauri-apps/tauri/pull/8789).

* Apply suggestions from code review

Co-authored-by: Amr Bashir <github@amrbashir.me>

* update schemas

---------

Co-authored-by: Amr Bashir <github@amrbashir.me>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-17 08:29:58 -03:00
Tony
4062e49914 fix: always delete auto start registry entry (#13006) 2025-03-17 08:21:14 -03:00
Nano
a483ba7c27 enhance: align log like Cargo (#13002) 2025-03-17 02:39:36 +02:00
Levi Zim
f981a5ee8b feat: basic support for linux riscv64 (#12602) 2025-03-16 16:33:17 -03:00
animesh chaudhri
2b960dfd9f feat(uninstaller): remove autostart entry during uninstallation (#12643)
* feat(uninstaller): remove autostart entry during uninstallation

Signed-off-by: animeshchaudri <animeshchaudhri3@gmail.com>

* add change file

* check when not updating

* delete registry value only if install mode is "currentUser"

---------

Signed-off-by: animeshchaudri <animeshchaudhri3@gmail.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-16 16:28:10 -03:00
Xuan
eec08a18b6 fix: use bun.lock to identify bun's lockfile (fix #12914) (#12998)
* fix: use bun.lock to identify bun's lockfile

* fix: also check bun.lockb

* doc: add changes doc
2025-03-16 18:00:04 +01:00
Tony
35018eed02 chore: fix missing .md on request-restart.md (#12996) 2025-03-16 21:20:25 +08:00
Tony
de7f34bff4 feat: introduce request_restart (#12874)
* Introduce request_restart

* Migrate `restart`

* Add change file

* Save restart_on_exit and add docs

* Tweak docs to include `restart`

* clear restart flow

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-16 08:42:29 -03:00
Tony
72df2e4a04 refactor: remove permission description from runtime (#12994)
* Remove description from runtime

* Just use none instead

* global_scope_schema and add comments about it

* Tweak wording

* remove comments [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-16 07:33:41 -03:00
Fabian-Lars
0d1446857c fix: Don't minify api dist files (#12989) 2025-03-16 07:11:42 -03:00
Thomas Eizinger
658e5f5d1d feat: introduce App::run_return (#12668)
* Introduce `run_return`

* Fix compile error

* Clone web_context

* Refactor to Result API

* Fix clippy

* Impl mock runtime

* Make it desktop-only

* Add changelog entry

* Fix compile error

* Make it semver compatible

* Extend changelog entry

* Undo semver-hack

* Reduce diff

* Remove unnecessary mut

* Make it take `self` by value

* Reduce diff

* Undo diff hack

* Make everything cfg(desktop)

* Rename vars to reduce diff

* Fix clippy

* Extract make_event_handler

* Reduce diff

* Deprecate `App::run_return`

* Update changelog

* Fix compile errors

* Accept reference

* Create event handler first

* Update example

* Update manifest

* Fix example

* Fix example docs

* Call `setup` only upon Ready

* Update changelog entry

* Update docs

* Update changelog

* Add platform-specific note

* update docs

* run_return on mobile

* Apply suggestions from code review

* remove change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-16 07:04:22 -03:00
WofWca
7930dde85c chore: examples: fix & simplify helloworld (#12995)
Remove the cookies code from it.
Firtly, they are not necessary: "Hello, world!" should be simple.
Secondly, it's broken on Windows: `.cookies()` hangs.

The cookies stuff was introduced recently,
in cedb24d494
(https://github.com/tauri-apps/tauri/pull/12665).
This commit reverts the changes to the example.

This supersedes https://github.com/tauri-apps/tauri/pull/12992.
2025-03-16 11:50:06 +02:00
anatawa12
b05f82d35b fix: ensure RunEvent::Exit is triggered on restart (#12313)
* fix: AppHandle::restart() may not send RunEvent::Exit event

* docs: add changelog: `AppHandle::restart()` may not send `RunEvent::Exit` event before exiting the application.

* style: cargo fmt

* avoid deadlock on main thread

* do not let the restart be prevented

leads to a deadlock currently

* Apply suggestions from code review

* lint

* do not emit RunEvent on main thread

* re-export RESTART_EXIT_CODE

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-15 15:49:42 -03:00
Tony
51bcafe323 refactor: use a single closure for filtering in emit_to (#12907)
* Use a single closure for filtering

* clippy

* Update crates/tauri/src/manager/mod.rs

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2025-03-15 13:46:51 -03:00
Tony
013f8f6523 feat: add a new option to remove unused commands (#12890)
* Add a new option to remove unused commands

* Fix compile

* Add markers to all core plugins

* Clippy

* Add allow unused when running with this

* Use build script to generate allowed-commands.json

* Clean up and add proper reruns

* Wrong path

* Revert to #[cfg_attr(not(debug_assertions), allow(unused))]

* Add change files

* Some more docs

* Add version requirement note

* Avoid rerun if no capabilities folder

* Remove unused box

* small cleanup

* fix channel

* implement for app handler too

* rely on core:default for channel perms

* Move this feature to config

* Docs change

* Forget one last remove_unused_commands

* Remove removeUnusedCommands from helloworld

* tell handler that the app ACL manifest exists

* update change file

* update doc

* update change file

* Use a struct to pass the data instead of env var

* Clippy

* Fix can't exclude inlined plugins on Windows
due to UNC paths...

* Apply suggestion from code review

* Remove remove on empty to tauri-build

* Revert "Remove remove on empty to tauri-build"

This reverts commit b727dd621e.

* Centralize remove_file(allowed_commands_file_path)

* Escape glob pattern

* update change file

* remove unused commands for dev too

* Update crates/tauri-utils/src/config.rs

Co-authored-by: Fabian-Lars <github@fabianlars.de>

* regen schema

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-03-15 13:46:08 -03:00
Tobias Assarsson
5591a4f0b4 feature(linux) add mousewheel bindings for zoom functions (#12912)
* add mousewheel bindings commonly used for zooming

* add change file

* update docs

* fmt

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-15 13:29:13 -03:00
Fabian-Lars
2fa33d5c44 chore: Fix example readme instructions. Add pnpm build:debug. (#12983)
* chore: Fix example readme instructions. Add `pnpm build:debug`.

* keep terser on bundle.global.js build to avoid file modifications

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-15 12:51:40 -03:00
Adam Charron
cedb24d494 feat: add Webview::cookies and Webview::cookies_for_url() (#12665)
* Add support for fetching cookies by url

* Add support for fetching all cookies

* add missing getters, update change file

* update docs for windows deadlock

* fix mobile build

* Update crates/tauri-runtime/Cargo.toml

* add docs for stability [skip ci]

---------

Co-authored-by: Adam Charron <acharron@higherlogic.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-15 12:34:41 -03:00
Fabian-Lars
30f5a1553d feat: traffic light position (#12366)
* moving to macbook

* that was so weird to implement

* rm patch

* Discard changes to Cargo.lock

* Create change-pr-12366.md

* add missing builder fn

* remove test

* split change files

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-15 12:18:11 -03:00
Lucas Fernandes Nogueira
08de8a172b chore: remove 2.0.0-rc references (#12987) 2025-03-15 12:03:09 -03:00
Sean Wang
c108024257 feat(tauri): derive Clone for tauri::ExitRequestApi (#12710) 2025-03-15 10:26:22 -03:00
Tobias Assarsson
dc90cd3919 fix(core): add ctrl '+' key as zoom in (#12911)
* add '+' key as zoom in

* add changefile

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-15 10:16:29 -03:00
renovate[bot]
0ec71a844c chore(deps): update dependency wrangler to v4 (#12967)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-15 08:23:47 -03:00
Fabian-Lars
0c4700e990 fix(cli): Remove mention of updater bundle arg in help output (#12985)
* fix(cli): Remove mention of `updater` bundle arg in help output

* allow --bundles updater but hide from help
2025-03-15 08:02:28 -03:00
Lucas Fernandes Nogueira
b83921226c fix(cli): ios command wrong cwd on bun 1.2, closes #12965 (#12977)
bun 1.2 changed the current working directory behavior to match NPM managers, so we must adapt our xcode-script logic to check the bun version

see https://bun.sh/blog/bun-v1.2#bun-run-uses-the-correct-directory
2025-03-14 16:20:39 -03:00
Oscar Beaumont
3cc4ad3c38 fix: allow double -- in permissions as command can have double __ (#12884)
* allow double `--` in permissions as command can have double `__`

* Create change-pr-12884.md

* Update .changes/change-pr-12884.md

Co-authored-by: Fabian-Lars <github@fabianlars.de>

---------

Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-03-14 12:13:48 -03:00
Lucas Fernandes Nogueira
d91bfa5cb9 feat(cli): allow merging multiple configuration values (#12970)
* feat(cli): allow merging multiple configuration values

Currently the dev/build/bundle commands can only merge a single Tauri configuration value (file or raw JSON string), which imposes a limitation in scenarios where you need more flexibility (like multiple app flavors and environments). This changes the config CLI option to allow multiple values, letting you merge multiple Tauri config files with the main one.

* fix ios build
2025-03-14 12:04:58 -03:00
WofWca
f67a4a6bfe fix(core): AssetResolver.get(): don't skip first char (#12971)
That is, it would try to get `sers/john` if you called
`AssetResolver.get("users/john")`.
This commit fixes the bug by only skipping the first character
only if it _is_ a slash (/).

Why it is important:
`tauri::WebviewUrl::App()` docs state that it's OK to specify
the path as `users/john` to get `tauri://localhost/users/john`
in the end.
So if an application developer is using `AssetResolver.get()`
together with `WebviewUrl::App()`, they will would get
inconsistent behavior: for the same path, the latter would work,
while the former would fail.
In fact, we encountered this bug in our code,
[here](c860b0f4c6/packages/target-tauri/src-tauri/src/help_window.rs (L34-L43)).
2025-03-14 05:29:55 +02:00
Simon Laux
d8059bad3c add AppHandle.fetch_data_store_identifiers and AppHandle.remove_data_store (#12900)
* add `AppHandle::fetch_all_data_store_identifiers` and `AppHandle::remove_data_store`

* make it run on main thread, so you can call the function from any thread and it works.

* changes file

* update signature, move functions to RuntimeHandle

* add api

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-13 18:17:22 -03:00
Simon Laux
be2e6b85fe add Window.is_always_on_top() and WebviewWindow.is_always_on_top() (#12944)
* add `Window.is_always_on_top()` and `WebviewWindow.is_always_on_top()`

* add api

* fmt

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-13 18:02:01 -03:00
Chandrasekaran Akash
b9ee806724 feat(tauri-build): set CompanyName for Windows (#12958) 2025-03-13 09:35:56 +02:00
renovate[bot]
339a075e33 chore(deps): update rust crate cargo_toml to 0.22 (#12940)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-12 13:42:37 +01:00
Fabian-Lars
93124ad2eb fix(tauri-utils): Set minimum patch version for glob (#12950) 2025-03-10 21:38:22 +01:00
tk
3a74dc8f34 fix(api): webview.close wrong command error (#12935) 2025-03-10 06:48:02 +02:00
ninjadev64
3626b7a92b fix(bundler): bundle resources to correct path during RPM bundling when resources are specified as a map (#12759)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-03-09 16:19:18 +01:00
renovate[bot]
eea12c196e chore(deps): update dependency rollup to v4.35.0 (#12932)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-09 10:12:56 +08:00
renovate[bot]
4ce5c74ab4 chore(deps): update dependency eslint-config-prettier to v10.1.1 (#12916)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-09 10:12:08 +08:00
Amr Bashir
2d029a9f53 fix(core): remove TSend: Clone for Channel in commands (#12878)
followup on #12876
2025-03-03 17:41:10 +02:00
Lucas Fernandes Nogueira
f268b3dbdf fix(cli): Tauri project path resolution, closes #3527 #12779 (#12871) 2025-03-03 08:18:00 -03:00
Amr Bashir
755533c518 fix(core): implement Clone manually on Channel. (#12876)
ref: https://github.com/tauri-apps/plugins-workspace/pull/2479#discussion_r1976864479
2025-03-03 08:32:17 +02:00
Tony
dc78dfecab chore: ignore vscode settings.json and tasks.json (#12875) 2025-03-03 05:38:47 +02:00
Lucas Fernandes Nogueira
f98598817c fix(core): compatibility check for Android SDK < 24 (#12870) 2025-03-02 17:56:25 -03:00
Niladri Adhikary
060de5bbdd feat(api): implement getIdentifier() to access tauri.conf.json identifier (#12837)
* feat(api): implement getIdentifier() to access tauri.conf.json identifier

* updated

* chore(api): update change file and rebuild bundle

* Update to @since 2.4.0

* added tag

* Update .changes/get-identifier.md

Co-authored-by: Fabian-Lars <github@fabianlars.de>

---------

Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-03-02 15:12:33 -03:00
Simon Laux
c698a6d6f3 feat: add Webview.reload and WebviewWindow.reload (#12818)
* feat: add `Webview.reload` and `WebviewWindow.reload`

* fix tests

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-02 15:11:25 -03:00
Simon Laux
20c1906912 feat: add WebviewBuilder.disable_javascript and WebviewWindowBuilder.disable_javascript (#12821)
* feat: add `WebviewBuilder.disable_javascript` and `WebviewWindowBuilder.disable_javascript`

* wry 0.50.3

* add missing config options and API types

* add change file for api

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-02 14:54:34 -03:00
renovate[bot]
3fb8d7ca6b chore(deps): update dependency rollup to v4.34.9 (#12862)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-01 11:16:25 +01:00
Lucas Fernandes Nogueira
55ffa23c9e fix(core): docs.rs mobile build (#12855) 2025-02-28 15:37:38 -03:00
github-actions[bot]
cab7f76d01 apply version updates (#12826)
Co-authored-by: amrbashir <48618675+amrbashir@users.noreply.github.com>
2025-02-28 14:14:08 +01:00
Amr Bashir
e103e87f15 fix(windows): ensure APIs exist before using it (#12848)
* fix(windows): ensure APIs exist before using it

* fix build on other platforms

* clippy

* use GetSystemMetricsForDpi
2025-02-28 14:46:16 +02:00
Fabian-Lars
bca02967a9 docs: Update wording from #12830 (#12839) 2025-02-28 00:12:19 +02:00
Tony
887db0813f chore(deps): update js dependencies (#12832)
* chore(deps): update js dependencies

* Update lock
2025-02-27 17:15:32 +08:00
Tony
4f26dcf309 fix(deps): os webview not gated in wry feature (#12833) 2025-02-27 16:38:20 +08:00
Simon Laux
4bffc326ea docs: update WebViewBuilder::with_asynchronous_custom_protocol with platform-specific notes (#12830) 2025-02-27 03:10:08 +02:00
renovate[bot]
b859dc43fc chore(deps): update rust crate resvg to 0.45.0 (#12825)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-26 22:00:52 +01:00
renovate[bot]
9332132239 chore(deps): update dependency eslint-config-prettier to v10.0.2 (#12822)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-26 20:46:52 +01:00
Timur Amirov
22e9bf74a4 fix(cli/ios): Configure initial view controller for the launch screen on iOS (#12538)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-02-26 20:42:24 +01:00
Fabian-Lars
b495fe0fdc ci: install corepack in docker (#12824)
* ci: install corepack in docker

this should fix the build errors from https://github.com/tauri-apps/tauri/actions/runs/13548556704/job/37866236681
i only added it outside of docker in my last pr

* remove musl
2025-02-26 13:41:32 -03:00
github-actions[bot]
7d618f12d8 apply version updates (#12518)
Co-authored-by: amrbashir <48618675+amrbashir@users.noreply.github.com>
2025-02-26 12:45:31 -03:00
Amr Bashir
385a41dea2 enhance(windows): disable our in-client resizing for undecorated window with shadows (#12817)
* enhance(windows): disable our in-client resizing for undecorated window with shadows

ref: https://github.com/tauri-apps/tao/pull/1052

* skip hittesting for undeceorated windows
2025-02-26 17:21:46 +02:00
Fabian-Lars
955832e56b ci: Build win-arm64 cli with rustls (#12813) 2025-02-25 21:47:46 +01:00
Fabian-Lars
c116dfcdee fix(cli): Hide updater bundle target in help output (#12801)
ref https://github.com/tauri-apps/tauri/issues/3251#issuecomment-2677139820
2025-02-25 20:25:28 +02:00
Fabian-Lars
d6520a21ce chore(deps): wry@0.50 muda@0.16 tray-icon@0.20 windows@0.60 webview2-com@0.36 objc@0.6 window-vibrancy@0.6 tao@0.32 (#12541)
* chore(deps): Update windows to 0.59. Update webview2-com to 0.35

* wry and other crates and objc2

* window-vibrancy 0.6

* Update windows059-webview035.md

* win compile error

* tao

* tao 0.32.1

* updatus maximus

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-02-25 19:41:00 +02:00
Simon Laux
ab81adb71b docs: improve documentation around incognito and data store (#12806) 2025-02-25 06:17:20 +02:00
kandrelczyk
6e417c9435 fix(linux): Add missing RPM signature (#12786) 2025-02-24 14:52:06 +01:00
Kotkoroid
ddc469367a style: fix Vite and React branding (#12768) 2025-02-22 11:30:31 +01:00
Sean Wang
d7b998fe71 fix(tauri): deprecate Manager::unmanage to fix use-after-free (#12723)
close #12721
2025-02-21 02:38:31 +02:00
renovate[bot]
d9a07e66af chore(deps): update dependency globals to v16 (#12750)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-20 15:26:14 +01:00
renovate[bot]
0adeb4e7c5 chore(deps): update rust crate infer to 0.19 (dev) (#12599)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <github@fabianlars.de>
2025-02-20 14:36:44 +01:00
Jim
70d8557cc3 docs(testing): inform reader about 'tauri://localhost' (#12623) 2025-02-20 12:48:33 +01:00
Tony
95fc3cd424 chore: cleanup a few unneeded clones (#12733) 2025-02-18 18:35:40 +08:00
renovate[bot]
4633705da7 chore(deps): update dependency rollup to v4.34.8 (#12727)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-17 20:12:00 +08:00
Tony
3f680588cd chore: update prettier to 3.5.1 and enable experimentalOperatorPosition (#12715) 2025-02-16 20:34:19 +08:00
Sean Wang
7d8252679d feat(tauri): export struct tauri::ExitRequestApi (#12701) 2025-02-15 16:21:06 +01:00
renovate[bot]
ee95c1b1ed chore(deps): update dependency rollup to v4.34.7 (#12702)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-15 10:19:48 +08:00
Ege Güngördü
741e44b45c fix: fix incorrect example for WebviewBuilder::from_config (#12695) 2025-02-13 00:04:29 +02:00
renovate[bot]
8e9339e880 chore(deps): update rust crate jsonschema to 0.29 (dev) (#12660)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-09 14:19:32 +01:00
renovate[bot]
053b57c1df chore(deps): update dependency rollup to v4.34.6 (dev) (#12647)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-07 20:07:55 +01:00
renovate[bot]
b6a56f3616 chore(deps): update dependency rollup to v4.34.5 (#12641)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-07 10:18:38 +01:00
dependabot[bot]
11945e561c chore(deps-dev): bump vitest from 3.0.3 to 3.0.5 (#12637)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-06 18:48:57 +01:00
renovate[bot]
b6ad316460 chore(deps): update dependency rollup to v4.34.4 (dev) (#12604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <github@fabianlars.de>
2025-02-06 18:32:56 +01:00
Nazar Antoniuk
5eba0785c4 feat: add Ukrainian translation for the custom tauri messages in the nsis bundle (#12605) 2025-02-06 17:44:48 +02:00
dependabot[bot]
6038f09d85 chore(deps): bump openssl from 0.10.68 to 0.10.70 (#12606)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-03 21:30:48 +01:00
renovate[bot]
e3b0260871 chore(deps): update dependency rollup to v4.34.0 (#12593)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-02 19:54:02 +08:00
Antony Kurniawan
a6ada76a9f docs: update devUrl on config schema (#12592) 2025-02-01 23:45:13 +02:00
renovate[bot]
bfc71e845b chore(deps): update rust crate ureq to v3 (dev) (#12524)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <github@fabianlars.de>
2025-01-29 23:23:38 +01:00
renovate[bot]
0a11b8741a chore(deps): update rust crate tauri-winres to 0.3 (dev) (#12559)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 21:51:24 +01:00
renovate[bot]
6b70fbcc84 chore(deps): update dependency rollup to v4.32.1 (dev) (#12548)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <github@fabianlars.de>
2025-01-28 14:46:04 +01:00
Amr Bashir
e9c9c4d6f6 feat: derive Clone for PathResolver (#12529)
closes #12528
2025-01-26 20:11:15 +02:00
Sean Wang
abdd558075 feat(tauri/Emitter): add emit_str* method to emit serialized data directly (#12460)
* feat(tauri/Emitter): add `emit_str*` method to emit serialized data

* style: rust fmt
2025-01-26 17:58:21 +02:00
Sean Wang
3dbcbe7685 fix(tauri): Webview::navigate unnecessarily borrows &mut self (#12461) 2025-01-25 22:21:04 +01:00
Bastian Kistner
a2d36b8c34 feat: disable background throttling (#12181)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-01-25 22:20:31 +01:00
github-actions[bot]
5a3647bdfe Apply Version Updates From Current Changes (#12515)
Co-authored-by: FabianLars <30730186+FabianLars@users.noreply.github.com>
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-01-25 20:51:13 +01:00
Fabian-Lars
477e9c0496 fix(core): Use safe_block_on in mobile proxy (#12514)
fixes #12513
2025-01-25 20:18:46 +01:00
github-actions[bot]
82d634f4a9 Apply Version Updates From Current Changes (#12512)
Co-authored-by: FabianLars <30730186+FabianLars@users.noreply.github.com>
2025-01-25 18:23:32 +01:00
Fabian-Lars
8e9134c4a2 fix(cli): Apply --bins flag on build instead of dev (#12511) 2025-01-25 17:50:46 +01:00
github-actions[bot]
dc1997b77d apply version updates (#12439)
Co-authored-by: FabianLars <30730186+FabianLars@users.noreply.github.com>
2025-01-25 15:29:40 +01:00
bradleat
1a86974aa3 fix(cli): let xcode handle building for ios build --open (#12406)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-01-25 13:42:20 +01:00
bicarlsen
fb294af8e3 fix(tauri-driver): Parse ms:edgeOptions separately (#12383)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-01-25 13:13:13 +01:00
Fabian-Lars
46c7b16111 ci(renovate): Disable oxc_ PRs 2025-01-25 12:10:59 +01:00
Fabian-Lars
9dac2863af fix(bundler): Don't self-sign dmg (#12323) 2025-01-25 11:46:16 +01:00
renovate[bot]
9a9d1205b0 chore(deps): update dependency rollup to v4.32.0 (dev) (#12502)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 11:45:16 +01:00
Fabian-Lars
27096cdc05 fix(cli): don't force native-tls feature on desktop (#12445) 2025-01-25 11:27:29 +01:00
sftse
6cbfc4878d refactor: document Emitter/Listner traits panics, refactor check into internal struct (#12444) 2025-01-24 04:17:17 +02:00
Andzej Korovacki
f5a59b93bf fix(bundler): change build metadata verification into a warning (#12136)
Co-authored-by: akorovacki <andzej.korovacki@geniussports.com>
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-01-23 15:25:11 +01:00
renovate[bot]
5432752e51 chore(deps): update dependency vitest to v3 (dev) (#12421)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2025-01-23 14:03:40 +01:00
renovate[bot]
bf912b8e08 chore(deps): update rust crate dirs to v6 (dev) (#12372)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2025-01-23 13:58:00 +01:00
Trey Smith
9a30bed98c fix(macos): frameworks being signed with entitlements unnecessarily (#12423) 2025-01-23 12:14:33 +01:00
dependabot[bot]
9d02c18ac2 chore(deps-dev): bump vite from 6.0.7 to 6.0.9 (#12469)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.0.7 to 6.0.9.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.0.9/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-23 17:06:41 +08:00
anatawa12
de8600b4d9 fix(bundler): Bump nsis tauri utils to 0.4.2 (#12471)
* chore: bump nsis-tauri-utils

* docs(changelog)): Bump nsis-tauri-utils to 0.4.2
2025-01-22 03:01:04 +02:00
Mads Marquart
0ea8894579 chore(deps): prepare for objc2 frameworks v0.3 (#12468)
These will have a bunch of default features enabled, so let's
pre-emptively disable them.
2025-01-21 22:57:45 +02:00
Fabian-Lars
fbe7c9ead7 fix(bundler): fix injectedbundle search path (#12466) 2025-01-21 16:52:41 +02:00
Tony
b8eb28877f enhance(nsis): clean up reg keys in uninstaller (#12427) 2025-01-20 22:33:54 +02:00
Tomas Tamadamas
90c6546faf chore: Rewrite simply "Localhost free term" in README.md within #10510 (#12415) 2025-01-20 16:22:22 +02:00
renovate[bot]
4ed2ab76e2 chore(deps): update dependency rollup to v4.31.0 (dev) (#12446)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-19 17:59:01 +01:00
Fabian-Lars
bc43c738ba fix(cli): Add clipboard-manager to known plugins (#12442)
* fix(cli): Add `clipboard-manager` to known plugins

fixes #12440

* Update plugins.rs
2025-01-19 14:19:10 +02:00
Jim
0b79af7114 enhance(cli): log message to inform user of DevCommand being used (#12438) 2025-01-18 22:21:21 +02:00
github-actions[bot]
a70e690fe7 apply version updates (#12425)
Co-authored-by: FabianLars <30730186+FabianLars@users.noreply.github.com>
2025-01-18 10:07:28 +01:00
Felix Eckhardt
72748cc45c fix(windows): Resolve broken installation directory handling in MSI & NSIS, preventing duplicate installations during updates (#12365) 2025-01-17 21:25:15 +01:00
Fabian-Lars
cf771bf69a fix(bundler/wix): Prevent dlls from overwriting root resources (#12402) 2025-01-17 16:41:31 +01:00
Fabian-Lars
07ccdc499c fix(bundler/nsis): Include WebView2Loader.dll if found to match msi (#12324)
* fix(bundler/nsis): Include WebView2Loader.dll if found to match msi behavior

* Update fix-nsis-webviewloaderdll.md

* only include dll in gnu builds
2025-01-17 17:12:58 +02:00
mattyg
d2c8f0eb5c fix: run tauri's internal init scripts before user's scripts (#12424) 2025-01-17 03:37:41 +02:00
Fabian-Lars
b643dcc1c4 docs(utils): Fix typo in useLocalToolsDir (#12409) 2025-01-15 14:59:34 +02:00
renovate[bot]
cd7d08b63f chore(deps): update dependency eslint-config-prettier to v10 (#12386)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-15 10:54:33 +08:00
github-actions[bot]
4c3f047735 Apply Version Updates From Current Changes (#12377)
Co-authored-by: FabianLars <30730186+FabianLars@users.noreply.github.com>
2025-01-13 13:08:29 +01:00
Fabian-Lars
61e69db9e4 chore: Add changefile for #12371 (#12376) 2025-01-13 12:23:17 +01:00
Oscar Beaumont
75d56e8364 fix: fix Specta integration (#12371) 2025-01-13 04:03:36 +02:00
github-actions[bot]
a8aca70151 Apply Version Updates From Current Changes (#12355)
Co-authored-by: FabianLars <30730186+FabianLars@users.noreply.github.com>
2025-01-11 18:13:55 +01:00
Fabian-Lars
cad5504455 fix(cli): Fix npm package name in tauri add (#12354) 2025-01-11 17:28:54 +01:00
renovate[bot]
f8e50e8e5b chore(deps): update rust crate tauri-winres to 0.2 (dev) (#12341)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 20:19:48 +01:00
renovate[bot]
cfe1af2848 chore(deps): update rust crate notify to v8 (dev) (#12342)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2025-01-10 20:02:53 +01:00
github-actions[bot]
89c6f08e82 Apply Version Updates From Current Changes (#12218)
Co-authored-by: FabianLars <30730186+FabianLars@users.noreply.github.com>
2025-01-10 15:08:21 +01:00
Fabian-Lars
cde0ff7798 chore: Fix clippy 1.84 warnings (#12328) 2025-01-10 13:47:37 +01:00
renovate[bot]
b0d7527250 chore(deps): update rust crate windows-registry to 0.4 (dev) (#12301)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-07 23:04:03 +01:00
renovate[bot]
a28b5013c5 chore(deps): update rust crate ico to 0.4 (dev) (#12298)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-07 22:38:43 +01:00
Fabian-Lars
b9a99a5c69 fix(cli): Skip File Access events in dev server (#12297) 2025-01-07 21:11:24 +01:00
Marco Mengelkoch
98f62e65a2 fix(cli): tauri add NPM packages for community plugins (#12246)
It currently isn't possible to simply add a community plugin the same was as adding official plugins.
Trying to perform  `npm run tauri add tauri-plugin-python` is trying to install npm package `@tauri-apps/plugin-python`.
But the npm scope `@tauri-apps/` is reserved for official tauri plugins.

The official documentation recommends to name the npm package `tauri-plugin-{name}-api` and it should be possible to have a parameter that makes it possible to install that package.

- closes #12217

This changes the command to check if the plugin is an official tauri plugin or not, using the appropriate npm package name format

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-01-07 10:16:35 -03:00
renovate[bot]
c130af6b06 chore(deps): update dependency rollup to v4.30.1 (dev) (#12291)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-07 13:48:40 +01:00
Lucas Fernandes Nogueira
ef21ed9ac1 fix(cli): iOS build crashing when development team has spaces (#12290)
Even though I couldn't even get the build to succeed when using the team name as the "developmentTeam" configuration (instead of the team ID), I've received reports that our processing of that value is broken and only works when it is escaped using `\"`.
2025-01-07 09:41:56 -03:00
Tony
cd1d026f97 fix: fails to build if the project path contains glob characters (#11961)
* Escape glob patterns

* Add change file

* Reword the change
2025-01-07 09:22:43 -03:00
Aurélien Jacobs
848d0e060e chore(deps): update cargo_toml for edition 2024 [fix #10412] (#12270)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-01-06 20:34:49 +01:00
Max Katz
ae75a353d0 chore: update copyright year (#12170)
Co-authored-by: Max Katz <zrxmax@icloud.com>
2025-01-06 13:46:06 +01:00
gerald
70f96e3222 chore(deps/driver): update hyper to version 1 (#12240)
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-01-06 11:12:08 +01:00
renovate[bot]
3acf679c87 chore(deps): update dependency rollup to v4.30.0 (dev) (#12263)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-06 10:47:03 +01:00
renovate[bot]
22d5852208 chore(deps): update dependency rollup to v4.29.2 (dev) (#12238)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-05 14:58:18 +01:00
renovate[bot]
701778a195 chore(deps): update dependency fast-glob to v3.3.3 (dev) (#12233)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-05 12:46:30 +01:00
Patrick F.
a0f2c84d51 feat(cli): Add 64x64 png to default tauri icon command (#12204) 2025-01-04 23:26:18 +01:00
github-actions[bot]
f86e2387c9 apply version updates (#12183)
Co-authored-by: FabianLars <30730186+FabianLars@users.noreply.github.com>
2025-01-04 01:17:49 +01:00
Fabian-Lars
26fc9558fe fix(cli): Re-add TriggeredKill in dev watcher logic (#12178) 2025-01-04 00:39:07 +01:00
renovate[bot]
90dc7b19fc chore(deps): update rust crate which to v7 (dev) (#12144)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-03 23:28:10 +01:00
renovate[bot]
c681d835d5 chore(deps): update dependency vite to v6 (dev) (#12133)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2025-01-03 23:05:29 +01:00
Fabian-Lars
208d8968ce ci(deps): Update repository-dispatch to v3 (#12169) 2025-01-03 22:34:55 +01:00
Fabian-Lars
aaa7d9bb13 ci: Switch to upstream create-pull-request (#12123)
* ci: Switch to upstream create-pull-request

* what the actual f

* fix version comment

---------

Co-authored-by: Tillmann <28728469+tweidinger@users.noreply.github.com>
2025-01-03 22:48:50 +02:00
github-actions[bot]
d150a40b09 Apply Version Updates From Current Changes (#12165)
Co-authored-by: FabianLars <FabianLars@users.noreply.github.com>
2025-01-03 15:34:54 +01:00
Fabian-Lars
881729448c fix(cli): Ignore file access events (#12164) 2025-01-03 15:00:31 +01:00
github-actions[bot]
cd841d8e33 Apply Version Updates From Current Changes (#11659)
Co-authored-by: FabianLars <FabianLars@users.noreply.github.com>
2025-01-02 19:29:17 +01:00
renovate[bot]
3d8a39aa4a chore(deps): update rust crate resvg to 0.44.0 (dev) (#12126)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-02 16:55:09 +01:00
renovate[bot]
50e92d097b chore(deps): update rust crate worker to 0.5 (dev) (#12127)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2025-01-02 16:44:07 +01:00
renovate[bot]
bc4dfcd798 chore(deps): update rust crate pico-args to 0.5 (dev) (#12125)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-02 16:12:18 +01:00
renovate[bot]
832ad10e3a chore(deps): update rust crate cargo_metadata to 0.19 (dev) (#12113)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2025-01-02 15:54:39 +01:00
renovate[bot]
0198354961 chore(deps): update rust crate oxc crates to 0.38 (dev) (#12122)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2025-01-02 14:56:23 +01:00
renovate[bot]
c0a5a10cff chore(deps): update rust crate notify-debouncer-mini to 0.5 (dev) (#12118)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2025-01-02 14:08:50 +01:00
Dmitry Dygalo
d7f48cb324 chore(deps): Update jsonschema to 0.28 (#12089) 2025-01-02 13:22:08 +01:00
Tony
a16796a555 fix(api): use array for channel queueing (#12069) 2025-01-02 12:19:50 +01:00
renovate[bot]
231e9a5ee1 chore(deps): update rust crate image to 0.25.5 (dev) (#12105)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-01-02 01:11:42 +01:00
renovate[bot]
b0ddee8992 chore(deps): update rust crate wry to 0.48 (dev) (#12101)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2025-01-02 01:01:31 +01:00
renovate[bot]
5319325886 chore(deps): update dependency @napi-rs/cli to v2.18.4 (dev) (#12097)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-01 23:41:07 +01:00
renovate[bot]
ccce63f8c8 chore(config): migrate renovate config (#12099)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-01-01 23:35:57 +01:00
renovate[bot]
da958395ff chore(config): migrate renovate config (#12096)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-01-01 23:28:38 +01:00
renovate[bot]
1737df3e33 chore(deps) Update Tauri Bundler (dev) (#11669)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2025-01-01 23:12:29 +01:00
renovate[bot]
2df426ed1d chore(deps) Update Rust crate syn to v2.0.94 (dev) (#12094)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-01 22:27:28 +01:00
renovate[bot]
361fdb3585 chore(deps) Update Rust crate syn to v2.0.94 (dev) (#12088)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-01 22:16:42 +01:00
renovate[bot]
838b2b8b3b chore(deps) Update Tauri Build (#12087)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-01 22:24:34 +08:00
renovate[bot]
f87e0485ca chore(deps) Update Tauri API Definitions (#12084)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-01 22:21:46 +08:00
renovate[bot]
b794ca4a27 chore(deps) Update Rust crate syn to v2.0.93 (#12083)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-01 22:21:08 +08:00
Dimitris Apostolou
8f282c6305 deps: fix crate vulnerabilities (#12080) 2025-01-01 00:20:15 +02:00
Lieke
ed118da266 fix: fix typo in AndroidConfig docstring (#12003) 2024-12-30 01:25:29 +02:00
Shaun Hamilton
c8700656be fix(tauri-cli): prevent accidental object permission rm (#11985) 2024-12-30 01:18:50 +02:00
renovate[bot]
cdd1ebf81f chore(deps) Update Tauri Codegen (#12049)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-27 11:55:57 +08:00
renovate[bot]
253b1872f1 chore(deps) Update Tauri API Definitions (#12050)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-27 11:40:36 +08:00
renovate[bot]
3ac76bec77 chore(deps) Update Tauri Build to v1.0.95 (#12047)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-27 11:37:27 +08:00
renovate[bot]
faeec8e965 chore(deps) Update Rust crate syn to v2.0.91 (#12046)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-27 11:36:28 +08:00
stringhandler
e349dfe572 fix: fix panic caused by removed_resource.is_none (fix #11955) (#12000) 2024-12-23 16:11:31 +02:00
Andrew Ferreira
fdaf48fc4a chore: fix crates.io link (#12018)
* chore: fix crates.io link

* chore: format file
2024-12-21 02:46:37 +02:00
renovate[bot]
7d38ee987e chore(deps) Update Tauri Codegen (dev) (#11999)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-19 16:22:59 +01:00
renovate[bot]
f1167143cd chore(deps) Update dependency @types/node to v22.10.2 (dev) (#11943)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-19 13:28:50 +01:00
renovate[bot]
2601811cef chore(deps) Update Tauri Build to v1.0.24 (dev) (#11998)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-19 13:22:40 +01:00
Amr Bashir
ca7f025fd8 fix(core): return an error when accessing unmanaged state in command (#11958)
closes #11949
2024-12-12 23:05:32 +02:00
Tony
17bcec8abe chore(deps): update all js dev dependencies (#11941)
- Update vite to v6
- Update svelte to v5
- Bump nanoid to fix audit
- Align api and cli to both use the same node types version
2024-12-11 12:55:38 +02:00
renovate[bot]
f5eacf3283 chore(deps) Update Tauri API Definitions (#11936)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-11 13:45:49 +08:00
renovate[bot]
6bbf3649f9 chore(deps) Update Tauri Codegen (#11939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-11 13:45:08 +08:00
renovate[bot]
22b26a2e36 chore(deps) Update Tauri Build to v1.0.94 (#11938)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-11 13:43:10 +08:00
renovate[bot]
2a120bdcc0 chore(deps) Update Rust crate syn to v2.0.90 (#11935)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-11 12:58:54 +08:00
简静凡
0ae06c5ca8 fix: the exclude path in file Cargo.toml of plugin template generated by cli (#11914) 2024-12-09 15:36:27 +01:00
Amr Bashir
afad8067d1 chore(deps): update tao to 0.31 (#11906) 2024-12-09 12:16:33 +02:00
John Carmack
b37741da6a fix(feature/specta): Resolve error when using latest version of specta with tauri specta feature (#11871)
* Update specta feature to use latest specta version; add specta-util dependency (required in specta v2 rc.20)

* Add .changes file

* Update crates/tauri/Cargo.toml

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-12-05 08:56:16 -03:00
Fabian-Lars
2b8a981050 refactor(cli): use cargo run for tauri dev (#11694)
* x

* todo

* lint

* lint

* rename fn

* lint

* lint

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-12-05 07:38:06 -03:00
Fabian-Lars
1f65fd2bb7 fix(cli): Statically compile msvc runtime (#11769)
* fix(cli): Statically compile msvc runtime

fixes https://github.com/tauri-apps/tauri/issues/11642
ref https://github.com/swc-project/swc/pull/7965

i only added it for x64 for now but we should monitor x32 (swc removed it for this one again) and aarch64 (swc never added it).
x32 is fairly rare as a dev system and aarch64 didn't seem much testing in general (as a dev system) so i'd prefer to wait and see if it's needed.

note that i don't know if any other tooling (rust etc) need the dyn runtime so that's also something to monitor

* 32bit and arm64
2024-12-04 15:32:09 -03:00
renovate[bot]
9f51bbf1de chore(deps) Update Tauri Codegen (#11866)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-04 14:51:30 +08:00
renovate[bot]
475597f97c chore(deps) Update Rust crate syn to v2.0.90 (#11865)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-04 14:49:44 +08:00
renovate[bot]
e61225bcc4 chore(deps) Update Rust crate anyhow to v1.0.94 (#11864)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-04 14:49:21 +08:00
renovate[bot]
01c74f4424 chore(deps) Update Tauri API Definitions (#11867)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-04 14:48:45 +08:00
Fabian-Lars
882b0aded1 chore: apply clippy suggestions. (#11849)
* chore: apply clippy suggestions.

* .

* .
2024-12-02 20:36:06 -03:00
Fabian-Lars
89e30ef20d fix(core): Remove os check on data_store_identifier (#11817)
* fix(core): Remove os check on `data_store_identifier`

* typo
2024-12-02 20:32:02 -03:00
Fabian-Lars
a692c8937f fix(bundler): create tauri tools dir first. make tools executable. (#11852)
* not sure what's going on yet

* .

* fix(bundler): try to create tauri tools dir

* Discard changes to .github/workflows/test-cli-js.yml

* fix
2024-12-02 20:29:42 -03:00
Fabian-Lars
8ba5e16384 ci: msrv compliant lockfile. test cli with 1.77.2 instead of stable. (#11851) 2024-12-02 20:28:45 -03:00
Fabian-Lars
b50a1ac0ef fix(core): Add background color permissions (#11850)
fixes #11848
2024-12-02 20:27:25 -03:00
Shi Yan
0e2f0b29cd docs: Add missing info regarding the drop position offset. (#11406)
* Add missing document regarding the drop position offset.

* Update webview.ts

---------

Co-authored-by: Fabian-Lars <github@fabianlars.de>
2024-12-02 20:40:56 +01:00
renovate[bot]
983634a41f chore(deps) Update dependency @types/node to v22.9.1 (#11750)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 19:48:33 +01:00
renovate[bot]
2c3e000f73 chore(deps) Update Rust crate url to v2.5.4 (#11745)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 15:38:10 +01:00
Elias Sjödin
a6e84f7d2c fix(api.js): wrong command for isAbsolute (#11835) 2024-11-30 22:04:48 +01:00
Fabian-Lars
d6bed20a0e refactor(bundler): Move appimage bundler script logic into rust (#11758) 2024-11-28 04:52:24 +02:00
lars-berger
18bd639f6e feat(macos): Add with_data_store_identifier to WebviewBuilder (#11798) 2024-11-28 04:43:34 +02:00
Fabian-Lars
53f808674b feat(bundler): add option to disable CI for just the dmg bundler (#11799) 2024-11-28 04:41:19 +02:00
renovate[bot]
9f0d902f6b chore(deps) Update Tauri Build to v1.0.215 (#11744)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-27 13:18:33 +08:00
renovate[bot]
df27b4d94c chore(deps) Update Tauri Macros (#11803)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-27 13:10:41 +08:00
Fabian-Lars
5188c0fae2 feat(core): Add Scope::is_forbidden (#11767) 2024-11-26 14:31:48 +02:00
lars-berger
ba6f370147 fix(core): Initialize command cache when a capability is added (#11785) 2024-11-26 14:18:55 +02:00
Amr Bashir
f884bae75b feat: add tauri::Builder::on_tray_icon_event (#11742) 2024-11-21 15:06:57 +02:00
Amr Bashir
fc30b20bea feat(api/tray): add TrayIcon.setShowMenuOnLeftClick method (#11726) 2024-11-21 14:50:41 +02:00
Liigo Zhuang
7a9b920c3e docs: Remove header images from inline docs (#11749) 2024-11-21 14:48:49 +02:00
Amr Bashir
12a48d1e26 fix(api): transform icon when creating icon menu item and predefined about menu item with icon (#11741) 2024-11-21 14:22:51 +02:00
AHQ
020ea05561 feat: Implement Badging API (#11661) 2024-11-20 02:59:28 +02:00
Amr Bashir
a09e48e396 fix(core): manually simplify patterns for fs scope (#11730)
closes #11614

Remove UNC manually, instead of `dunce::simplified` because `path` could have `*` in it and that's not allowed on Windows and `dunce::simplified` will check that and return `path` as is without simplification resulting in a missing pattern in scope

for the scope pattern `\\?\C:\path\to\dir\**`, we expect the scope to have:
- `\\?\C:\path\to\dir\**`
- `C:\path\to\dir\**`

but if we use `dunce::simplified`, it will see `**` as invalid path component on Windows and will not simplify the path resulting in a scope that only has `\\?\C:\path\to\dir\**`
2024-11-20 00:50:10 +02:00
renovate[bot]
b37c208d61 chore(deps) Update Tauri API Definitions (#11668)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-19 13:13:44 +08:00
Fabian-Lars
72feaf99fc refactor(bundler): remove unused fs utils, add http utils (#11716) 2024-11-19 01:23:20 +02:00
Sander Cox
d86aaccb0b enhance: allow show_menu_on_left_click on Windows (#11729) 2024-11-19 00:25:20 +02:00
Kévin TURMEL
93a3a043d3 fix(windows): add Portuguese language in nsis bundle (fix #11725) (#11727) 2024-11-19 00:11:16 +02:00
Fabian-Lars
2bc46b061c docs(examples): fix file-assoc readme cargo build command (#11711)
closes #11703
2024-11-18 19:50:41 +02:00
Fabian-Lars
b63262cd4d fix(api.js): Change cb type in mockIPC to return unknown (#11724) 2024-11-18 17:50:39 +02:00
Amr Bashir
f2814ed538 fix(cli/info): use XDG_SESSION_DESKTOP instead of DESKTOP_SESSION (#11663) 2024-11-14 18:02:22 +02:00
renovate[bot]
ff39ad93b7 chore(deps) Update Tauri Codegen (#11667)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-13 13:36:14 +08:00
renovate[bot]
9cb6cad284 chore(deps) Update Rust crate serde to v1.0.215 (#11666)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-13 13:21:07 +08:00
jLynx
cccb308c7b feat(bundler): create signature for .deb bundle (#11562) 2024-11-13 03:12:06 +02:00
SpikeHD
dc4d794776 feat(windows, linux): add WebviewWindowBuilder/WebviewBuilder::extensions_path (#11628) 2024-11-13 01:20:06 +02:00
Tony
46935212b6 fix: parse json5 capability files when config-json5 is enabled (#11658) 2024-11-12 16:44:37 +02:00
Amr Bashir
74212d40d8 feat(cli): include linux DE and session type in tauri info (#11653) 2024-11-12 15:59:47 +02:00
Del
c3b1fced38 docs: correct payload property for DragDropEvent.over example (#11648) 2024-11-11 17:14:36 +01:00
github-actions[bot]
ef2592b5a8 Apply Version Updates From Current Changes (#11646)
Co-authored-by: amrbashir <amrbashir@users.noreply.github.com>
2024-11-11 16:25:14 +02:00
amrbashir
7f81f05236 chore: rename change file 2024-11-11 15:45:22 +02:00
Amr Bashir
e8a50f6d76 fix(core): hard code BaseDirectory integer values to avoid regressions when reordering the variants (#11645)
closes #11633
2024-11-11 14:58:16 +02:00
Daniel Gerhardt
5e94354875 fix(api/dpi): fix toLogical and toPhysical for positions (#11639) 2024-11-11 14:21:25 +02:00
Kornel
0fcef3f941 docs: document vanilla JS import alternative (#11632) 2024-11-11 14:21:08 +02:00
github-actions[bot]
86f22f0ec9 apply version updates (#11440)
Co-authored-by: amrbashir <amrbashir@users.noreply.github.com>
2024-11-09 15:47:39 +02:00
Amr Bashir
3f6f07a1b8 chore(deps): update wry to 0.47 and tao to 0.30.6 (#11627) 2024-11-09 04:14:22 +02:00
Lucas Fernandes Nogueira
60e86d5f6e fix(cli): android dev not working on Windows without --host (#11624)
ref https://discord.com/channels/616186924390023171/1291159454397628477
2024-11-09 02:57:36 +02:00
renovate[bot]
b28435860c chore(deps) Update Rust crate thiserror to v2 (dev) (#11604)
* chore(deps) Update Rust crate thiserror to v2

* thiserror v2 on all crates

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-11-08 08:21:38 -03:00
Amr Bashir
229d7f8e22 fix(core): fix child webviews on macOS and Windows treated as full webview window (#11616)
* fix(core): fix child webviews on macOS and Windows treated as full webview window

closes #11452

* Update .changes/child-windows-macos.md
2024-11-08 08:04:14 -03:00
Ville Säävuori
c561786844 docs: fix typos in drag&drop event.payload (#11620)
* fix: typo in drag&drop event.payload

'hover' -> 'over'

* fix: another typo

'hover' -> 'over'
2024-11-08 09:50:10 +08:00
Shaun Hamilton
6bf917941f feat(cli): add tauri remove command (#11322) 2024-11-07 19:58:25 +02:00
Tony
8e8312bb82 ci: unpin ravif (#11608) 2024-11-07 09:09:05 +01:00
renovate[bot]
f550a3f471 chore(deps) Update Tauri Bundler (dev) (#11601)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-06 13:25:49 -03:00
Amr Bashir
4d545ab3ca feat: background color APIs (#11486)
* feat: background color APIs

closes #10519
closes #1564

* clippy

* git branch

* bundle

* fix hex color schema pattern

* add missing `^`

* fix iOS

* revert test

* revert apple-codesign bump

* fmt

* add change files

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-11-06 13:21:47 -03:00
39zde
fabc2f283e feat: add HeaderConfig to SecurityConfig (#11485) 2024-11-06 16:16:46 +02:00
renovate[bot]
6b3c82aa90 chore(deps) Update Tauri macOSSign (dev) (#11541)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-06 10:41:34 -03:00
griffi-gh
3781429147 enhance: always check parent directory (fix #8679) (#11429)
* enhance: always check parent directory (fix #8679)

* Update crates/tauri-utils/src/platform.rs

* add change file

* fix crate

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-11-06 10:41:13 -03:00
renovate[bot]
15d6515eb1 chore(deps) Update dependency @types/node to v22 (dev) (#11545)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-06 09:54:52 -03:00
renovate[bot]
b63353bd61 chore(deps) Update Tauri API Definitions (dev) (#11597)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-06 07:49:59 -03:00
renovate[bot]
e8c0c57909 chore(deps) Update Tauri Codegen (dev) (#11596)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-06 07:49:38 -03:00
renovate[bot]
58392a5221 chore(deps) Update Rust crate handlebars to v6.2.0 (dev) (#11544)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-06 07:49:18 -03:00
renovate[bot]
8061fb2da8 chore(deps) Update Rust crate anyhow to v1.0.93 (#11598)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-06 16:04:51 +08:00
renovate[bot]
e835751d4f chore(deps) Update Rust crate syn to v2.0.87 (#11595)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-06 11:40:30 +08:00
renovate[bot]
0a170d0716 chore(deps) Update Rust crate anyhow to v1.0.92 (#11594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-06 11:39:56 +08:00
renovate[bot]
03828587b5 chore(deps) Update Tauri API Definitions (#11543)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-06 11:31:40 +08:00
Amr Bashir
5c4b830843 feat(api): add SERIALIZE_TO_IPC_FN const and implement it for dpi types, add more constructors (#11191) 2024-11-05 23:30:17 +02:00
Amr Bashir
cbc095ec5f feat: add WebviewWindow/Webview::devtools (#11451)
* feat: add `WebviewWindow/Webview::devtools`

closes #10849

* clippy

* fix ToTokens

* document default behavior

* move builder usage

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-11-05 16:00:48 -03:00
Amr Bashir
2a75c64b54 feat(core): add window_class name API on Windows (#11469)
* On Windows, set name of Window Class, closes #7498
allow to customize it instead of current value hard coded "Window Class"

* feat(windows): add window_classname, closes #7498
allow to customize the window class name instead of current value hard coded "Window Class"

    * feat: add window_classname, closes #7498

    * add changes file

    * Update core/tauri-config-schema/schema.json

    * Update tooling/cli/schema.json

* missing pieces after merge

* clippy

---------

Co-authored-by: Géraud-Loup <47665233+geraudloup@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-11-05 15:18:47 -03:00
Amr Bashir
1b6b2cfaa1 feat(cli): process bundle > windows > wix > fragmentPaths with Handlebars (#11521)
* feat(cli): process `bundle > windows > wix > fragmentPaths` with Handlebars

closes #11520

* remove unneeded register_template_string

* Update crates/tauri-bundler/src/bundle/windows/msi/mod.rs

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-11-05 14:46:54 -03:00
Amr Bashir
17c6952aec enhance(core): use diagnostic::on_unimplemented on rustc 1.78 and newer for async commands with references (#11522)
* enhance(core): use `diagnostic::on_unimplemented` on rustc 1.78 and newer for async commands with references

* change file

* clippy

* clippy

* add TODO
2024-11-05 14:20:30 -03:00
Amr Bashir
7af01ff2ce fix(cli): fix tauri migrate failing to install NPM deps when running from Deno (#11523)
* fix(cli): fix `tauri migrate` failing to install NPM deps when running from Deno

* clippy
2024-11-05 14:16:32 -03:00
Amr Bashir
100a4455aa fix(cli): fix yarn berry detection (#11529)
closes #11495
2024-11-05 14:15:48 -03:00
Amr Bashir
4191a7a53d fix(tray): build tray on main thread (#11583) 2024-11-05 17:42:08 +02:00
Amr Bashir
f37e97d410 feat: add use_https_scheme for Windows and Android (#11477)
* feat: add `use_https_scheme` for Windows and Android

closes #11252

* fix compilation

* Apply suggestions from code review

Co-authored-by: Fabian-Lars <github@fabianlars.de>

* change wording

* add migrations

* migrate `dangerousUseHttpScheme`

* fmt

* infer AssetResolver::get https scheme config

* fix tests

---------

Co-authored-by: Fabian-Lars <github@fabianlars.de>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-11-05 09:48:59 -03:00
Amr Bashir
058c0db72f feat(bundler): add option to configure RPM compression (#11584) 2024-11-05 14:08:08 +02:00
Mikkel Tønder
f8994b214e fix(event): handle AnyLabel listeners in emit_to (#11581)
closes #11561
2024-11-04 14:31:18 +02:00
Kornel
c33bbf4574 enhance: include the path in ACL I/O errors (#11575) 2024-11-04 14:30:43 +02:00
Amr Bashir
129414faa4 fix: fix webview not focused by default (#11569)
* fix: fix webview not focused by default

closes #10746

* fix compile

* typo

* fix compile again

* clippy
2024-11-04 13:58:47 +02:00
renovate[bot]
12ffc19ce0 chore(deps) Update Rust crate regex to v1.11.1 (#11542)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-30 12:19:31 +08:00
renovate[bot]
9f472591cc chore(deps) Update Rust crate serde to v1.0.214 (#11540)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-30 12:00:51 +08:00
Andrii Bodnar
d25dd9e31d docs: fix capability configuration examples (#11537) 2024-10-30 00:33:42 +03:00
Lucas Fernandes Nogueira
c43d5df158 feat(cli): associate newly created capability with the main window (#11512)
without this change the capability is not applied to any context and it might be hard for users to figure out why
2024-10-28 14:05:24 +03:00
Alex Adewole
1065f632f2 feat(cli): remove UNC path prefix in TAURI_APP_PATH and TAURI_FRONTEND_PATH (#11514) 2024-10-28 12:21:42 +03:00
Vincent Esche
ac22950f39 fix(cli): Fix mixup of TAURI_APP_PATH and TAURI_FRONTEND_PATH (#11492)
* Fix mixup of `env_tauri_app_path()` and `env_tauri_frontend_path()` in tauri's path resolutions

* Rename functions in `app_paths` to match their corresponding, publicly exposed env var keys

* Rename `app_dir`/`app_path` variables that deal with the frontend app's directory to `frontend_dir

* Rename `APP_DIR` to `FRONTEND_DIR`

* Improve comment on meaning of tauri path env vars
2024-10-27 17:55:23 -03:00
阿良仔
a8105eccb2 docs: fix wrongly rendered links on docs.rs (#11483) 2024-10-24 16:02:49 +03:00
renovate[bot]
888277ec40 chore(deps) Update Rust crate syn to v2.0.85 (#11472)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-24 13:23:24 +08:00
renovate[bot]
0014f9ae69 chore(deps) Update dependency @types/node to v20.17.0 (#11470)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-24 13:15:04 +08:00
Amr Bashir
8036c78e08 feat(core/path): add PathResolver::home_dir on Android (#11455)
ref: https://github.com/tauri-apps/tauri/issues/10478#issuecomment-2383754176
2024-10-24 06:43:02 +03:00
renovate[bot]
516c7d9f63 chore(deps) Update Rust crate syn to v2.0.83 (#11473)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-24 10:39:59 +08:00
Amr Bashir
54cbf59b5a fix(api/menu): fix submenus when created using an object in items field in the object passed to Menu/Submenu.new (#11441)
* fix(api/menu): fix submenus when created using an object in `items` field in the object passed to `Menu/Submenu.new`

closes #11435

also closes #11422 as I included the docs in this PR

* Update .changes/js-submenu-in-options.md

* Update packages/api/src/menu/base.ts

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-10-23 10:47:32 -03:00
renovate[bot]
ce864cebfd chore(deps) Update Rust crate image to v0.25.4 (dev) (#11457)
* chore(deps) Update Rust crate image to v0.25.4

* Also bump json-patch and resvg

* Just json-patch for now

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2024-10-23 17:46:59 +08:00
renovate[bot]
ed78f52cd1 chore(deps) Update Rust crate json-patch to v3 (#11466)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-23 17:25:16 +08:00
renovate[bot]
ccf20eb3ff chore(deps) Update Rust crate json-patch to v3 (#11467)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-23 17:25:08 +08:00
renovate[bot]
d0c1189b91 chore(deps) Update Tauri API Definitions (#11464)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-23 17:04:56 +08:00
renovate[bot]
0d31fe99c7 chore(deps) Update Rust crate thiserror to v1.0.65 (#11463)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-23 16:57:41 +08:00
renovate[bot]
d4b3659523 chore(deps) Update Rust crate proc-macro2 to v1.0.89 (#11459)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-23 16:25:22 +08:00
renovate[bot]
8e083c99c8 chore(deps) Update Tauri Build to v1.0.91 (#11456)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-23 12:25:08 +08:00
Amr Bashir
8c6d1e8e6c fix(runtime-wry): run cursor_position getter on main thread (#11401)
* fix(runtime-wry): run `cursor_position` getter on main thread

closes #10340

* clippy

* clippy

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-22 09:59:21 -03:00
Amr Bashir
6dea12a067 feat(bundler): add recommends for deb and rpm (#11402)
closes #10351
2024-10-21 15:38:14 -03:00
Amr Bashir
1f311832ab enhance(cli): add context to public/secret key decoding errors (#11405)
* enhance(cli): add context to public/secret key decoding errors

closes #10488

* Update .changes/cli-updater-errorr.md

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-10-21 15:37:28 -03:00
Czxck001
e0d1307d3f feat(cli) Make tauri migrate update $schema in tauri.conf.json (#11414)
* Make `tauri migrate` update $schema in tauri.conf.json

* add change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-21 15:24:59 -03:00
Lucas Fernandes Nogueira
f0da0bde87 feat(core): add WebviewWindow::resolve_command_scope (#11439)
* feat(core): add WebviewWindow::resolve_command_scope

This new functionality exposes the `CommandScope` resolution as a function (currently only commands can resolve them as a dependency injection via CommandItem)

This function is useful to validate the configuration at runtime (do some asserts at setup phase to ensure capabilities are properly configured) and to resolve scopes in a separate thread or context

* adjust return type
2024-10-21 15:16:08 -03:00
Lucas Nogueira
a5bf48eab0 fix: CLI version on metadata file 2024-10-21 09:24:34 -03:00
Lucas Nogueira
7a1a3276c4 chore: bump tauri-utils dependency versions 2024-10-21 07:30:06 -03:00
Lucas Nogueira
8ca0e4dd2c chore(ci): bump tauri-utils with WiX version change 2024-10-20 11:13:40 -03:00
github-actions[bot]
1367ff5ec6 apply version updates (#11373)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-10-20 10:29:13 -03:00
Lucas Fernandes Nogueira
fbb45c674c fix(api): broken addPluginListener implementation, closes #8068 (#11423) 2024-10-20 09:07:51 -03:00
Lucas Fernandes Nogueira
eb61d44f9f feat(core): fallback to Window and AppHandle resource table on close (#11398)
this changes the resource plugin close() API to fallback to the parent window and AppHandle resource tables, letting the JS to delete global resources.
The need for this was brought up on https://github.com/tauri-apps/plugins-workspace/pull/1860#issuecomment-2419175001
the store plugin stores the resources in the AppHandle, and we want the existing close() API to work on global resources otherwise every consumer needs their own resource close commands
2024-10-17 12:37:35 -03:00
Amr Bashir
c8f55b615d feat(bundler): add wix > version option (#11388)
* feat(bundler): add `wix > version` option

closes #11253

* Update crates/tauri-bundler/src/bundle/settings.rs

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-10-17 12:37:15 -03:00
renovate[bot]
bd1b2a1e85 chore(deps) Update Tauri API Definitions (#10807)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-17 11:04:06 -03:00
renovate[bot]
37557ffa35 chore(deps) Update Tauri CLI (dev) (#10808)
* chore(deps) Update Tauri CLI

* html5ever 0.26

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-17 11:03:46 -03:00
Amr Bashir
6cd917c227 feat(core): add methods for predefined items with specific text on Menu/SubmenuBuilder (#11390)
closes #11326
2024-10-17 11:03:20 -03:00
renovate[bot]
8278a36318 chore(deps) Update Rust crate uuid to v1.11.0 (#11049)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-17 10:24:00 -03:00
renovate[bot]
f8b559dacd chore(deps) Update Rust crate windows-registry to 0.3.0 (#11193)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-17 10:23:30 -03:00
renovate[bot]
add09c8034 chore(deps) Update Rust crate brotli to v7 (#11195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-17 10:21:30 -03:00
renovate[bot]
ea50f65f89 chore(deps) Update Rust crate brotli to v7 (#11197)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-17 10:07:20 -03:00
Huang Xin
e1bf6ef8cb fix(core): expose content-range header in asset protocol (#11374) 2024-10-17 08:41:27 -03:00
renovate[bot]
20c142f749 chore(deps) Update Rust crate json-patch to v3 (#11377)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-17 08:38:19 -03:00
Vincent Esche
e4c9268b19 feat(cli): make tauri/cli fully support projects with non-standard structure (#11258)
* feat(cli): add support for providing custom app/src paths to tauri's CLI via optional env vars

* fix tests

* rename env vars (app vs src is confusing)

* add change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-17 08:24:20 -03:00
Lucas Fernandes Nogueira
2e88633ba4 chore: remove references to unused __TAURI_INTERNALS__.metadata (#11369) 2024-10-15 13:26:43 -03:00
Lucas Nogueira
25cc5655c0 chore(ci): delete processed change file 2024-10-14 23:20:41 -03:00
github-actions[bot]
df83e5c7fc apply version updates (#11361)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-10-14 22:46:51 -03:00
Lucas Fernandes Nogueira
3cb73d08c6 fix(core): mark event commands as async (#11355)
* fix(core): mark event commands as async

this fixes a deadlock on certain situations

* add tag
2024-10-14 22:44:22 -03:00
Lucas Fernandes Nogueira
ef2482ddec fix(core): crash on macOS older than Sequoia (#11366)
ref https://github.com/tauri-apps/wry/pull/1389
2024-10-14 21:55:42 -03:00
Lucas Fernandes Nogueira
e3b09be7f0 feat(core): add channel interceptor API (#11362) 2024-10-14 19:48:22 -03:00
Amr Bashir
bcf279278d feat(core): add ContextMenu::hpopupmenu on Windows (#11354)
* feat(core): add `ContextMenu::hpopupmenu` on Windows

closes #11339

* Update crates/tauri/src/menu/mod.rs

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-10-14 13:46:21 -03:00
Kartonrad
68d4460361 docs(android): warn users that passing raw bytes over ipc is not possible on android (#11333)
* Warn that android is not supported

* Warn that Android is not supported.

* Update crates/tauri/src/ipc/mod.rs

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-10-14 13:19:46 -03:00
Amr Bashir
f3f521f038 fix(core): fallback to WRY_ANDROID_PACKAGE with backticks replaced (#11348)
ref: https://github.com/tauri-apps/tauri/issues/11332
2024-10-14 13:15:15 -03:00
renovate[bot]
e75f0d27ef chore(deps) Update Rust crate proc-macro2 to v1.0.87 (#11192)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-13 22:44:29 +08:00
Paul
e63432fbfc docs: fix "Capability" documentation example (#11337) 2024-10-13 13:23:58 +02:00
Lucas Fernandes Nogueira
627e90c304 fix(ci): install librsvg2-dev on the publish cli workflow (#11331) 2024-10-12 17:57:18 -03:00
github-actions[bot]
1bfe2485bb Apply Version Updates From Current Changes (#11255)
* apply version updates

* tauri 2.0.3 (patch bump)

---------

Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-12 12:28:16 -03:00
Lucas Fernandes Nogueira
4a2d51a73a fix(ci): add missing librsvg2-dev dependency for e2e tests (#11329) 2024-10-12 11:27:33 -03:00
Lucas Fernandes Nogueira
6a768cb679 fix(cli): verbose output on tests (#11328) 2024-10-12 10:58:42 -03:00
Lucas Fernandes Nogueira
e55bd4ba7a fix(api): docs for core module __TAURI__ usage (#11324) 2024-10-12 16:32:54 +03:00
Amr Bashir
61bffa4feb fix(bundler): match on Path::extension instead of using Path::ends_with (#11327) 2024-10-12 10:31:11 -03:00
Amr Bashir
2d087ee4b7 fix: fix incorrect label passed to ipc protocol (#11268)
* fix: fix incorrect label passed to `ipc` protocol

closes #11171

* update lock file

* Update .changes/incorrect-label-linux-command.md

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>

* Update .changes/incorrect-label-linux-protocol.md

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>

* clippy

* try wry from dev

* fix macos build

* fix ios build

* update wry

* Update .changes/incorrect-label-linux-command.md

* wry 0.46

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-10-12 07:46:51 -03:00
Amr Bashir
069c05e44f fix(cli): resolve bundle > icon glob when searching for .ico for MSI installer (#11315)
* fix(cli): resolve `bundle > icon` glob when searching for `.ico` for MSI installer

closes #11220

* Update crates/tauri-bundler/src/bundle/settings.rs

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>

* Update crates/tauri-bundler/src/bundle/windows/msi/mod.rs

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>

* Update crates/tauri-bundler/src/bundle/windows/msi/mod.rs

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-10-11 23:23:55 -03:00
Amr Bashir
b3563e3d6a feat(cli): add deno support (#11304)
* feat(cli): add deno support

ref: https://github.com/denoland/deno/issues/20738

* Update packages_nodejs.rs

* typo

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-11 16:48:22 -03:00
Amr Bashir
d609bef9fd fix(cli & core): use unescaped package id in proguard file (#11314)
* fix(cli & core): use unescaped package id in proguard file

closes #11310

* add monkey patch for wry proguard

* fix tests

* typo

* remove wry fix

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-10-11 16:17:29 -03:00
Lucas Fernandes Nogueira
4731f0cf31 fix(core): expose ipc::Invoke (#11290) 2024-10-11 08:52:50 -03:00
Lucas Fernandes Nogueira
504bb8ec8c fix(bundler): enhance DMG creation script (#11287) 2024-10-11 08:52:19 -03:00
Amr Bashir
1d3f51e100 feat: add back tauri::Builder::on_menu_event (#11228)
* feat: add back `tauri::Builder::on_menu_event`

* fix build

* fix build and fmt

* fix mobile
2024-10-09 11:09:42 -03:00
Huang Xin
04fd3a7db5 fix(core): return empty body for HEAD requests to asset protocol, closes #11263 (#11264) 2024-10-08 04:07:42 +03:00
Alex Sandri
eda5713eab feat(bundler/nsis): add Italian language (#11242) 2024-10-07 19:56:14 +03:00
Lucas Fernandes Nogueira
3e9fd0665c fix: npm audit (#11243)
the audit failed, so the 2.0.2 release is failing. I'm also adding the latest merged change to the 2.0.2 release in this change so we're in sync in the changelog.
2024-10-07 19:23:28 +03:00
Amr Bashir
a49a19ffa3 fix(bundler): wrap Exec in desktop with quotes, rename appimage main binary if has spaces (#11218)
* fix(bundler): wrap `Exec` in desktop with quotes, rename appimage main binary if has spaces

* Update .changes/main-binary-name-spaces-linux.md [skip ci[

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-10-06 14:08:38 -03:00
github-actions[bot]
9102faa4b3 apply version updates (#11209)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-10-06 08:41:18 -03:00
Lucas Fernandes Nogueira
03e7590429 feat(core): expose invoke key for custom IPC implementations (#11235)
custom IPC systems that manually call Webview::on_message must know the invoke key checked by Tauri. This exposes that key in the App/AppHandle instances.

This is safe because the key is never leaked to remote denied webview URLs
2024-10-06 07:36:00 -03:00
Hamir Mahal
e2a4da027c fix: usage of node12 which is deprecated (#11224) 2024-10-05 13:22:18 -03:00
Lucas Fernandes Nogueira
e968b3d252 fix(api): actually publish with the latest tag (#11219)
we missed one `--tag next` usage in #11199
2024-10-04 10:13:57 -03:00
Krishna Chaitanya
858b3516a0 fix(windows): fix command bug in update elevated task (fix #11216) (#11217) 2024-10-04 10:01:48 +03:00
Lucas Fernandes Nogueira
4475fbb502 chore(cli): update cargo-mobile2 to adjust lib name validation (#11208) 2024-10-03 13:46:49 -03:00
github-actions[bot]
6d98f2462b apply version updates (#11207)
Co-authored-by: tweidinger <tweidinger@users.noreply.github.com>
2024-10-03 09:01:02 -03:00
Lucas Fernandes Nogueira
6f3a2b38f0 chore(tauri): enhance Manager::add_capability documentation (#11206)
* chore(tauri): enhance Manager::add_capability documentation

* enhance example

* add note on config
2024-10-03 20:36:36 +09:00
Lucas Fernandes Nogueira
0ab2b33064 fix: downgrade MSRV to 1.77.2 to support Windows 7 (#11205)
* fix: downgrade MSRV to 1.77.2 to support Windows 7

* add chang file
2024-10-03 08:07:50 -03:00
github-actions[bot]
983e7800b6 apply version updates (#11201)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-10-02 10:54:04 -03:00
Lucas Fernandes Nogueira
be683e2ac3 fix: publish NPM packages with latest tag (#11199) 2024-10-02 10:37:42 -03:00
Lucas Fernandes Nogueira
c7b9a53525 chore: promote to v2 stable (#11198)
* chore: promote to v2 stable

- deletes all RC change files
- adds a new change file to promote all packages to v2 stable
- manually fix the tauri-driver, tauri-macos-sign, tauri-bundler versions so the next covector bump will move them to 2.0.0
- manually patch the metadata-v2.json file so the next covector update will mark all packages as 2.0.0

* ignore audit vuln without fixes

* bump msrv to 1.78

* run covector version

* fix sync lockfile covector

* #[allow(clippy::manual_inspect)]
2024-10-02 09:42:45 -03:00
github-actions[bot]
11b5e9c525 apply version updates (#11175)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-10-02 07:36:42 -03:00
Lucas Fernandes Nogueira
a08e6ffa6f feat(cli): enhance Android dev port forwarding, use host IP for android devices, closes #11137 (#11185)
* feat(cli): enhance Android dev port forwarding, closes #11137

this changes the `android dev` port forwarding (that is actually handled by the `android-studio-script` command - triggered by our Gradle plugin) with some enhancements:

- make the whole process more resilient by checking if the port was actually forwarded and rerunning the `adb reverse` command until it tells us the forward is ready
- if the `adb devices` list is empty, retry a few times (waiting a few seconds) to tolerate devices being booted - slows down "raw builds" (Build Project Android Studio menu for instance) that shouldn't happen often anyway - if you're running `android dev` you're usually running the app on a device instead of simply testing builds

* use host IP to run on android physical device
2024-10-02 07:01:29 -03:00
Lucas Fernandes Nogueira
6cfe7edf63 feat(cli): retain log verbosity when running a mobile IDE script (#11186) 2024-10-02 03:58:54 +03:00
Lucas Fernandes Nogueira
11e9f2eb83 feat(cli): add clap parse test (#11189)
lets us catch runtime errors early on the testing phase - for instance when we add two arguments with the same flag
2024-10-01 20:53:39 -03:00
Lucas Fernandes Nogueira
f5d61822bf fix(cli): iOS app signature not retaining entitlements, closes #11089 (#11184)
* fix(cli): iOS app signature not retaining entitlements, closes #11089

The IPA does not retain the entitlements as a regression from #10854 which removed the signing step from the build() and archive(), deferring to the export() call

To retain the entitlements we need to force sign one of the files in the app bundle. The most reliable way to do this is to use a self signed certificate as a dummy signature - it is replaced by the export() call so we do not rely on any user provided certificate

Additionally the export options are incorrectly configuring a manual signing, preventing Xcode from properly managing provisioning profiles, which is also part of the fix

* fix header
2024-10-01 10:15:42 -03:00
Lucas Fernandes Nogueira
60a5aea53d feat(cli): support Trunk for iOS dev out of the box (#11181) 2024-09-30 13:54:13 -03:00
Amr Bashir
e10fdb786c revert: revert #10969, consistent product_code (#11182)
closes #11178
2024-09-30 19:42:09 +03:00
renovate[bot]
0c87e05513 chore(deps) Update dependency @rollup/plugin-typescript to v12 (#11123)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-29 07:42:43 -03:00
renovate[bot]
25e7833701 chore(deps) Update Tauri Bundler (#11122)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-29 07:42:18 -03:00
Amr Bashir
354be36d4e refactor(core)!: pass webview label to uri scheme protocol handlers (#11163)
* refactor!(core): pass webview label to uri scheme protocol handlers

close #10691

* Add `UriSchemeContext`

* doctests
2024-09-29 07:41:26 -03:00
github-actions[bot]
12de4fa7c7 apply version updates (#11062)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-09-27 17:51:55 -03:00
Lucas Fernandes Nogueira
df24cb9442 fix(cli): pbxproj parser not expecting underlines in build config IDs (#11168) 2024-09-27 14:36:38 -03:00
Amr Bashir
de7414aab9 feat: add Window::set_enabled and Window::is_enabled (#11154)
* feat: add `Window::set_enabled` and `Window::is_enabled`

closes #6660

* license headers

* fix build

* fix mobile and macos

* fix macos

* again

* unsafe

* fix macos is_enabled

* update example

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-09-27 14:35:01 -03:00
Amr Bashir
a49fc999fc fix(core): store the hosting Window directly on Webview and WebviewWindow (#11161)
closes #11159
2024-09-27 14:15:38 -03:00
Amr Bashir
1d8b67b297 feat(core): support async functions in mobile_entry_point macro (#11162)
closes #11158
2024-09-27 14:06:23 -03:00
Amr Bashir
d9d2502b41 feat: add Webview::show and Webview::hide (#11140)
closes #11126
2024-09-27 08:30:29 +03:00
Olivier Lemasle
58bab8b35b docs: fix formatting of JS comments for API reference (#11148) 2024-09-26 15:05:56 +02:00
Fabian-Lars
9e46e07784 Revert "chore(cli/deps): temporarily add tower dependency to fix compile error without --locked (#11136)" (#11146) 2024-09-26 15:05:33 +02:00
Tony
95df53a2ed chore: add missing set theme change file in #10210 (#11143) 2024-09-26 07:26:04 +03:00
Amr Bashir
0b4495996d refactor!: simplify TrayIconEvent in JS by tagging it with type field (#11121)
Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2024-09-26 06:12:02 +03:00
Amr Bashir
544328d5a3 fix(nsis): properly handle Webview2 download return value (#11139)
port of #11131 to 2.x
2024-09-26 04:53:05 +03:00
chip
5621174b05 feat: add ScopeObjectMatch trait for easy scope validation (#11132) 2024-09-26 02:22:37 +03:00
Fabian-Lars
2a654fdb8d chore(cli/deps): temporarily add tower dependency to fix compile error without --locked (#11136) 2024-09-26 02:08:07 +03:00
Amr Bashir
a944b9b05b feat(cli): add --github-workflows (#11118)
closes #11117
2024-09-25 03:11:38 +03:00
thep0y
06718b4569 feat(bundler): improve GitHub mirror URL generation with custom templates (#11096) 2024-09-24 19:04:41 +03:00
Lucas Fernandes Nogueira
9af08f93e4 fix(core): state tests (#11116) 2024-09-24 12:09:34 -03:00
Olivier Lemasle
dfba0ede68 fix(bundler): Detect ARM gnueabi as soft-float (fix: #10970) (#11084)
* Detect ARM gnueabi as soft-float (armel)

Detect ARM gnueabi as soft-float (armel) instead of hard-float (armhf).
Also change the signature of `tauri_bundler::bundle::Settings::binary_arch`
to return an enum instead of a `&str`.

* Update .changes/bundler-gnueabi-armel.md

* fix dmg

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-09-24 11:13:22 -03:00
Lucas Fernandes Nogueira
1efa5e7184 fix(core): rerun build script if platform config changes, closes #10963 (#11099) 2024-09-24 11:02:34 -03:00
Amr Bashir
8f3f010e6d refactor(core): return state in unmanage (#11105)
* refactor(core): return state in `unmanage`

* Update crates/tauri/src/lib.rs [skip ci]

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2024-09-24 10:53:15 -03:00
Fabian-Lars
4078923f6b fix(ios): Don't set macOS deployment target when building for iOS (#11115)
* fix(ios): Don't set macOS deployment target when building for iOS

fixes #11103

* make it look nice :)
2024-09-24 10:51:36 -03:00
Amr Bashir
8d381a71e8 test: add tests for StateManager (#11106)
* test: add tests for StateManager

* clippy

* update lockfile

* fix audit

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-09-24 08:51:54 -03:00
Lucas Fernandes Nogueira
948772a657 refactor(api): change button_state to camelCase (#11114) 2024-09-24 08:18:52 -03:00
Tillmann
e08c4e6888 Change V1 links to V2 site (#11111)
* Change V1 links to V2 site

* update lockfile

---------

Co-authored-by: Lucas Nogueira <118899497+lucasfernog-crabnebula@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@crabnebula.dev>
2024-09-24 08:09:00 -03:00
Amr Bashir
cbe3bd80d8 fix(api): convert Position to PhsyicalPosition for TrayIconEvent (#11104)
* fix(api): convert `Position` to `PhsyicalPosition` for `TrayIconEvent`

ref: https://github.com/tauri-apps/plugins-workspace/pull/1822#issuecomment-2365442240

* fix lint

* Add missing `doubleClick` event type

* change file

* update lockfile

* Update .changes/api-tray-icon-event-value-mismatch-type.md [skip ci]

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-09-24 08:04:53 -03:00
dependabot[bot]
ae12f3cc90 build(deps-dev): bump rollup from 4.21.0 to 4.22.4 in /packages/api (#11109)
Bumps [rollup](https://github.com/rollup/rollup) from 4.21.0 to 4.22.4.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.21.0...v4.22.4)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-24 05:20:45 +03:00
Tony
11db7be6c2 feat(core): add a new function to set theme dynamically (#10210)
closes #5279
2024-09-24 05:18:53 +03:00
Lucas Fernandes Nogueira
8d22c0c814 fix(cli): only modify iOS code sign style when manually signing (#11101) 2024-09-23 18:35:15 -03:00
Lucas Fernandes Nogueira
56e087471a fix(cli): ios xcode-script arg parsing when using bun, closes #10742 (#11100) 2024-09-23 18:31:29 -03:00
Amr Bashir
d369e8db5f chore(deps): update muda to 0.15 and tray-icon to 0.18 (#11097) 2024-09-23 18:20:40 -03:00
Alex
28169ae097 fix(cli): Fix crate type (#11080)
* Fix crate type

Fixes https://github.com/tauri-apps/tauri/issues/9547

* Fix crate type

Fixes https://github.com/tauri-apps/tauri/issues/9547

* Fix crate type

Fixes https://github.com/tauri-apps/tauri/issues/9547

* Fix crate type

Fixes https://github.com/tauri-apps/tauri/issues/9547
2024-09-21 07:57:35 -03:00
Amr Bashir
62b3a5cd1c fix(core): share webcontext between webviews (#11043)
* fix(core): share webcontext between webviews

closes #10981

* update wry version

* Update crates/tauri-runtime-wry/src/lib.rs [skip ci]

* on linux, only register protocol once per context

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-09-21 07:42:07 -03:00
Amr Bashir
67b8a9a17a feat(cli): generate signatures for non-zipped targets with createUpdaterArtifacts: v1Compatible (#10940) 2024-09-20 08:47:36 -03:00
Amr Bashir
f57a729cd8 feat: add upgradeCode config option (#11039)
* feat: add `upgradeCode` config option

* fix build on other platforms

* Update crates/tauri-bundler/src/bundle/settings.rs [skip ci]

* move to subcommand, use same product name fallback as the bundler

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-09-20 08:44:41 -03:00
renovate[bot]
3f1a8a4e7e chore(deps) Update Tauri Bundler (#11048)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 08:21:59 -03:00
Amr Bashir
8ab2e3cc3e refactor(core): simplify and document push_pattern (#11065) 2024-09-20 08:21:30 -03:00
Amr Bashir
9014a3f176 feat: add webview.clear_all_browsing_data (#11066)
* feat: add `webview.clear_all_browsing_data`

closes #6567

* fix build on iOS and android

* fix command name references

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-09-20 08:18:07 -03:00
Amr Bashir
0ddfc59d67 feat(core): add Manager::unmanage (#11071)
* feat(core): add `Manager::unmanage`

closes #10897

* remove state craet

* fix typo

* Update crates/tauri/src/lib.rs

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-09-20 07:53:58 -03:00
Fabian-Lars
b88e22a5fe fix(cli): set ios deployment target only when building for ios (#11063) 2024-09-20 07:31:51 -03:00
Alex Moon
40a45b564d fix(windows): Handle root paths that cannot be canonicalized (#10838) 2024-09-20 02:33:55 +03:00
Amr Bashir
62b52f60a2 fix(cli/add): use >= for npm and ~ for other package managers (#11064)
* fix(cli/add): use `>=` for npm and `~` for other package managers

closes #10906

* headers

* fix audit

* fix headers
2024-09-19 23:11:40 +03:00
SpikeHD
a247170e1f feat: Expose ability to enable browser extensions in WebView2 (#11056) 2024-09-19 18:46:23 +03:00
Amr Bashir
fbff6388ad refactor(bundler): group and organize template file structure (#11046)
This PR groups files in a predictable mannar, so instead of

```
windows/
  |_ templates
     |_ main.wxs
     |_ installer.nsi
  |_ nsis.rs
  |_ msi.rs
```
we group them next to each other
```
windows/
  |_ msi
     |_ main.wxs
     |_ mod.rs
  |_ nsis
    |_ installer.nsi
    |_ mod.rs
```
2024-09-18 17:00:27 +03:00
renovate[bot]
4f374a26a3 chore(deps) Update Tauri Build to v1.0.89 (#11045)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 21:26:58 +08:00
renovate[bot]
4d4e7bf318 chore(deps) Update Rust crate syn to v2.0.77 (#11044)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 21:25:59 +08:00
github-actions[bot]
cbdcee61dc Apply Version Updates From Current Changes (#11029)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-09-17 09:02:10 -03:00
Lucas Fernandes Nogueira
96c1ec3b89 fix(cli): test timeout (#11035) 2024-09-17 08:33:45 -03:00
Amr Bashir
5ff0bbc547 docs: add RELEASING.md handbook (#11026)
* docs: add RELEASING.md handbook

* Update .github/RELEASING.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Update .github/RELEASING.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Update .github/RELEASING.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Update .github/RELEASING.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Update .github/RELEASING.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Update .github/RELEASING.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Update .github/RELEASING.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Update .github/RELEASING.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Update .github/RELEASING.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Update .github/RELEASING.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Update .github/RELEASING.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Update .github/RELEASING.md

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-09-17 07:38:15 -03:00
Amr Bashir
09de8c6593 refactor(cli/node): migrate jest to vitest for tests (#11034)
* refactor(cli/node): migrate `jest` to `vitest` for tests

* fix js audit
2024-09-17 07:36:03 -03:00
Amr Bashir
5f694c3d4c ci: use correct version for cloudflare/wrangler-action action (#11033) 2024-09-17 11:10:46 +02:00
Amr Bashir
a1cce04260 feat: add tauri-schema-worker (#10871) 2024-09-17 00:52:56 +03:00
Amr Bashir
ad294d274d feat(core): add app > windows > create option to disable window creation at startup (#11032)
* feat(core): add `app > windows > create` option to disable window creation at startup

closes #10950

* clippy

* clippy

* update docs

* Update .changes/window-config-create.md

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-09-16 17:03:25 -03:00
Amr Bashir
ddf69157b5 feat(api): add {LogicalPosition,LogicalSize}.toPhysical method (#11031)
closes #11008
2024-09-16 16:43:54 -03:00
Amr Bashir
9bb8fc6189 feat(cli/plugin): add --no-example flag (#11030)
closes #11009
2024-09-16 16:41:21 -03:00
Lucas Fernandes Nogueira
551e0624a9 refactor(core): remove responder from custom invoke systems (#11027)
* refactor(core): remove responder from custom invoke systems

the responder can be set directly in the WebviewWindow::on_message call

* fix tests
2024-09-16 12:20:50 -03:00
Lucas Fernandes Nogueira
e7fd676c27 feat(core): inject invoke key in custom invoke system script (#11025)
* feat(core): inject invoke key in custom invoke system script

* fix fmt
2024-09-16 12:10:01 -03:00
Felix Salazar
e266f2f35e docs: update CONTRIBUTING.md with .changes instructions (#11013) 2024-09-16 16:22:35 +03:00
github-actions[bot]
c530de4fd0 Apply Version Updates From Current Changes (#11019)
Co-authored-by: Legend-Master <Legend-Master@users.noreply.github.com>
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2024-09-16 10:52:24 +02:00
Amr Bashir
e5f0372775 chore: add change file for #11016 (#11018) 2024-09-16 13:17:01 +08:00
Tony
58465d4f7d fix(core): missing NSImage feature on objc2-app-kit (#11016) 2024-09-16 07:40:26 +03:00
github-actions[bot]
b1dacd539a Apply Version Updates From Current Changes (#11014)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-09-15 18:36:42 -03:00
Lucas Nogueira
a12bf148d6 fix(covector): unexpected preminor bump 2024-09-15 17:53:44 -03:00
Mads Marquart
bc4804d484 feat: Migrate to objc2 (#10924)
* Migrate from objc/cocoa to objc2

* Update crates/tauri-runtime-wry/src/webview.rs

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-09-15 17:15:47 -03:00
github-actions[bot]
63264a2914 Apply Version Updates From Current Changes (#11010)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-09-15 16:56:23 -03:00
Amr Bashir
94e9d476ef fix: fix main_binary_name includes .exe regression on Windows (#11011)
* fix: fix `main_binary_name` includes `.exe` regression on Windows

* Update crates/tauri-bundler/src/bundle/settings.rs

* Update .changes/main_binary_name-exe.md

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-09-15 16:30:47 -03:00
Lucas Fernandes Nogueira
5a0e922d40 feat(cli): discover src/main.rs binary automatically (#11007) 2024-09-15 11:21:31 -03:00
github-actions[bot]
4f44ebf8a7 Apply Version Updates From Current Changes (#10953)
* apply version updates

* bundler back to 2.0.0-rc

---------

Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-09-15 09:54:50 -03:00
renovate[bot]
db64d088ba chore(deps) Update Rust crate syn to v2.0.77 (#10954)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 08:37:32 -03:00
renovate[bot]
0b00428365 chore(deps) Update Tauri Build to v1.0.87 (#10955)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 08:37:24 -03:00
renovate[bot]
71f4ca564b chore(deps) Update Tauri Bundler (#10957)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 08:37:10 -03:00
renovate[bot]
184f0ad22b chore(deps) Update Tauri Codegen (#10958)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 08:36:58 -03:00
renovate[bot]
54be2f72d7 chore(deps) Update Tauri macOSSign to v1.0.87 (#10960)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 08:36:47 -03:00
Guilherme Oenning
44d54a0710 fix(bundler): Use appimage files instead of debian files when building appimage (#11005)
* use appimage settings instead of deb

* add changeset
2024-09-15 08:36:04 -03:00
Lucas Fernandes Nogueira
6c5340f8b2 feat(cli): add log plugin to the app template (#11004)
* feat(cli): add log plugin to the app template

The log plugin is really important for mobile development - without it you don't have a clue about logs and stdout for iOS apps

* patch tauri dep for local testing

* clippy
2024-09-15 08:35:38 -03:00
Amr Bashir
35bd9dd3dc feat: add mainBinaryName option (#10977)
* feat: add `mainBinaryName` option

* remove unused imports [skip ci]

* enhance error message [skip ci]

* migrate `mainBinaryName`

* change file

* revert bin src_path

* add link

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-09-15 07:51:01 -03:00
Lucas Fernandes Nogueira
3ad2427dc0 feat(cli): enhance iOS logs (#10961)
enhance simulator and device run output by only displaying app logs by default, and printing full process logs when pedantic verbosity is requested

ref https://github.com/tauri-apps/cargo-mobile2/pull/388
2024-09-15 07:37:56 -03:00
Lucas Fernandes Nogueira
5eb036f339 feat(core): restart() handles binary name change for macOS (#11002) 2024-09-14 13:30:00 -03:00
Amr Bashir
4ba7b94b59 refactor(bundler/nsis): fix migration from MSI to NSIS (#10996)
* refactor(bundler/nsis): fix migration from MSI to NSIS

* read into $OldMainBinaryName
2024-09-14 16:45:58 +03:00
Tony
def875193a fix(nsis): check main binary name is not empty (#11000)
* Check main binary name is not empty

* Missing !=
2024-09-14 13:33:43 +03:00
Amr Bashir
b13cb208a3 fix(bundler): store and remove old main binary on updates if main binary name has change (#10962) 2024-09-13 16:09:17 +03:00
Lucas Fernandes Nogueira
00182ebf89 fix(core): requestPermissions not resolving on Android (#10988)
the checkPermissions command is also a PermissionCallback, and the annotation check is incorrectly ignoring that fact, so the requestPermissions is never resolved for the geolocation plugin
2024-09-13 09:08:31 -03:00
Amr Bashir
63649d82d2 fix(core/acl): fix core:default schema generation (#10971)
* remove dbg! in resources test

* use methods from `fs` and `env` qualified

* share `ACL_MANIFESTS_FILE_NAME` and `CAPABILITIES_FILE_NAME` consts across crates

* simplifiy `Manifest::new` code for better readability

* move reading global api scripts logic next to the function that defines it

* [tauri-build] move acl logic from lib.rs to acl.rs

* use const value for schema instead of enum value with a single variant

* remove unnecessary info from permissions hover

* move related functions next to each other & improve readability of others

* use methods from `fs` and `env` qualified

* fix warning, unused return in test

* document some functions

* improve generated schema for better scope schema completion, simplify, reorganize and document the logic

previously if you had `fs` and `http` plugins added in a project
and then try to write an extended permission for `fs:allow-app-meta`
```json
{
      "identifier": "fs:allow-app-meta",
      "allow": [ <here> ]
}
```
and even though identifier is from `fs` plugin,
the JSON schema suggests `path` and `url`.
Now it will only suggest  relevant field which is `path`

* resolve permissions from other plugins, generate `core:default` as a normal set instead of special logic

* move `PERMISSION_SCHEMAS_FOLDER_NAME` to acl module

* use gneric trait because of MSRV

* ensure `gen/schemas` dir is created

* clippy
2024-09-13 08:58:26 -03:00
Amr Bashir
a1e88d2b57 enhance(bundler/wix): generate consistent product code for MSI installer derived from identifier (#10969)
* enhance(bundler/wix): generate consistent product code for MSI installer derived from identifier

* Update .changes/wix-consistent-product-code.md [skip ci]

* Update .changes/wix-consistent-product-code.md [skip ci]

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-09-13 08:45:03 -03:00
Lucas Fernandes Nogueira
fe5ff1228c refactor(core)!: rename plugin::PermissionState::Unknown to plugin::PermissionState::Prompt (#10978)
* fix(core): plugin::PermissionState::Unknown wrong display impl

* prompt

* rename variant

* fix
2024-09-13 08:38:59 -03:00
Lucas Fernandes Nogueira
be18ed50d8 fix(core): prevent Proguard from optimizing away custom ser/de classes (#10982) 2024-09-12 23:04:25 -03:00
Lucas Fernandes Nogueira
c901d9fdf9 fix(tauri-utils): docs for config::DeepLinkProtocol (#10979) 2024-09-12 23:39:08 +03:00
Fabian-Lars
9d468774a9 fix(core): Use productName for FileDescription (#10975)
* fix(core): Use productName for FileDescription

fixes #10968
fixes #10890

* just unwrap since winres will panic anyway or use the cargo.toml description which we don't want

* regen

* nsis
2024-09-12 20:36:48 +03:00
Amr Bashir
7eb1171e3a fix(bundler/wix): use product name to generate UpgradeCode for MSI (#10967)
The upgrade code generation was changed due to an accidental regression in #9375. Previously `UpgradeCode` was calculated using the main binary name which was `<product_name>.exe`, but #9375 changed the default main binary name to `<cargo-crate-name>.exe` and thus a different UpgradeCode was generetad.

This PR reverts this change to use product name for `UpgradeCode` generation.
2024-09-12 09:22:27 -03:00
thep0y
6566182258 feat(bundler): add TAURI_BUNDLER_TOOLS_GITHUB_MIRRORto specify a GitHub mirror (#10866)
closes #7338
2024-09-11 05:36:12 +03:00
github-actions[bot]
d8ccf9d76a apply version updates (#10949)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-09-10 13:05:58 -03:00
Lucas Fernandes Nogueira
a5848af65b fix(cli): synchronize version with iOS Info.plist (#10944) 2024-09-10 12:31:15 -03:00
Lucas Fernandes Nogueira
fafceec309 fix(core): mobile dev server proxy URL (#10943) 2024-09-10 12:30:58 -03:00
Fabian-Lars
0a47bf0430 fix(core): Mark identifier as a required field. (#10946)
* fix(core): Mark `identifier` as a required field.

* change tag

* inject identifier in tests
2024-09-10 10:08:04 -03:00
github-actions[bot]
ffa33cd28a apply version updates (#10903)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-09-05 14:06:28 -03:00
Lucas Fernandes Nogueira
faa259bacf refactor(core)!: change Assets::iter item to use Cow (#10907)
* refactor(core): change `Assets::iter` item to use `Cow`

make the iterator more flexible to support Assets implementations that do not rely on static assets

* fix test?

* lint

* lint

* clippy again
2024-09-05 13:42:22 -03:00
Tony
d9c8d3cc8d chore(deps): update infer, tray icon, urlpattern, image (#10902) 2024-09-05 14:10:08 +02:00
Lucas Nogueira
e568956e48 fix(ci): pin artifact actions 2024-09-04 19:48:48 -03:00
github-actions[bot]
a655d9c6ce Apply Version Updates From Current Changes (#10865)
* apply version updates

* fix audit

---------

Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-09-04 17:29:03 -03:00
dependabot[bot]
bdfa9534ab build(deps): bump quinn-proto from 0.11.6 to 0.11.8 (#10882)
Bumps [quinn-proto](https://github.com/quinn-rs/quinn) from 0.11.6 to 0.11.8.
- [Release notes](https://github.com/quinn-rs/quinn/releases)
- [Commits](https://github.com/quinn-rs/quinn/compare/quinn-proto-0.11.6...quinn-proto-0.11.8)

---
updated-dependencies:
- dependency-name: quinn-proto
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-04 17:09:04 -03:00
dependabot[bot]
e885c17ab6 build(deps): bump actions/download-artifact in /.github/workflows (#10883)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4.1.7.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v3...v4.1.7)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-04 17:08:39 -03:00
Lucas Fernandes Nogueira
77056b194a chore(tauri-runtime-wry): update tao to 0.30 and wry to 0.43 (#10895) 2024-09-04 09:51:42 -03:00
Amr Bashir
0c46e48860 chore: remove unneeded prettier config (#10885) 2024-09-04 09:59:41 +08:00
Amr Bashir
0899e50831 feat: derive serde::Serialize for SafePathBuf (#10884) 2024-09-04 09:55:19 +08:00
Amr Bashir
976cad97c1 fix(resources): enhance error messages for globs (#10879)
* fix(resources): enhance error messages for globs

ref: https://github.com/tauri-apps/tauri/pull/10293#issuecomment-2326435392

* fmt
2024-09-04 00:58:08 +03:00
Hamir Mahal
11b3ab1468 ci: update setup-python action to v5 to fix deprecated node version (#10881) 2024-09-04 00:57:16 +03:00
Tony
431ca2c776 enhance(core): add FromStr impl for SafePathBuf (#10870) 2024-09-03 05:20:31 +03:00
Lucas Fernandes Nogueira
27d0183431 fix(core): clippy warnings, simplify embed_plist usage (#10844)
* fix(core): clippy warnings

* fix test

* chore: simplify example
2024-09-03 01:09:27 +03:00
Lucas Fernandes Nogueira
9c9644d155 feat(cli): always validate iOS lib (#10845) 2024-09-02 13:13:34 -03:00
Lucas Fernandes Nogueira
b42683592d fix(cli): iOS build targetting the simulator (#10847) 2024-09-02 13:13:22 -03:00
Lucas Fernandes Nogueira
79de4332b6 fix(core): isolation pattern breaks raw postMessage payload (#10841) 2024-09-02 13:12:59 -03:00
Lucas Fernandes Nogueira
5048a7293b feat(core): always use the custom protocol IPC on Linux (#10840) 2024-09-02 13:12:29 -03:00
Lucas Fernandes Nogueira
f0acf504a2 feat(core): validate duplicated capability identifier (#10858)
having duplicate capability identifier lead to unexpected behavior because one of the capabilities gets ignored.
With this change the build script now fails when this happens.
2024-09-02 17:13:13 +03:00
Fabian-Lars
ecc5362c1c docs: Add scope handling in file association example (#10864) 2024-09-02 17:11:55 +03:00
Lucas Fernandes Nogueira
6696e48800 fix(core): Swift warning for null invoke.resolve() iOS plugin values (#10842)
`Any` does allow `nil`,  but must be explicitly set to avoid the Swift warning
2024-09-02 16:51:30 +03:00
github-actions[bot]
c55474f21d apply version updates (#10855)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-09-01 09:50:31 -03:00
Lucas Fernandes Nogueira
6faa032766 fix(cli): iOS code signing failing on CI (#10854)
Looks like Apple cannot handle development profile automatic provisioning well

With this change we now skip code signing for build() and archive(), and let the export() function handle signing

see https://github.com/fastlane/fastlane/discussions/19973#discussioncomment-2688720 for more information
2024-09-01 09:29:48 -03:00
github-actions[bot]
82b084e65c apply version updates (#10828) 2024-08-31 18:19:34 -03:00
Lucas Fernandes Nogueira
5af1f5dec1 fix(cli): automatic signing for iOS on CI (#10851)
ref https://github.com/tauri-apps/cargo-mobile2/pull/381
2024-08-31 17:58:58 -03:00
Lucas Fernandes Nogueira
5ec74456b9 feat(bundler): fallback to publisher for deb maintainer, closes #10777 (#10825) 2024-08-29 15:41:40 -03:00
github-actions[bot]
0d2efd9ff4 apply version updates (#10820)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-08-28 23:03:54 -03:00
Lucas Fernandes Nogueira
d7e5c00e94 feat(core): add plugin::PermissionState (#10817)
* feat(core): add `plugin::mobile::PermissionState`

* move to plugin module

* default, specta::Type
2024-08-28 22:34:03 -03:00
Lucas Fernandes Nogueira
cc799b2cc8 fix(ci): publish CLI workflow wrong target path (#10816) 2024-08-28 17:02:15 -03:00
github-actions[bot]
abfbef4b9d apply version updates (#10750)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-08-28 15:19:54 -03:00
Amr Bashir
d14a2a55f0 ci: fix a few relative paths (#10813)
* ci: fix a few relative paths

* Update .changes/config.json

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-08-28 13:27:33 -03:00
Amr Bashir
ebfe17e264 ci: fix sync-cli-metadata.js path (#10812) 2024-08-28 12:43:55 -03:00
Lucas Fernandes Nogueira
f67a9eb6de feat(cli): synchronize Tauri config and lib name with iOS Xcode project (#10802)
- the Xcode project now uses a fixed output library name, which means changes to the Cargo.toml lib name won't affect it (backwards compatible change, we're checking if this new format is being used or not by reading the project.pbxproj)
- sync config identifier with the pbxproj
- sync development team config with the pbxproj

the sync runs both on dev and on build

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2024-08-28 12:11:50 -03:00
Amr Bashir
431208207b ci: fix building cli in integration test (#10811) 2024-08-28 11:54:35 -03:00
Lucas Fernandes Nogueira
f81929e251 feat(api): permission types for mobile plugins (#10799)
* feat(api): permission types for mobile plugins

let's have a central place to keep the permission types
ref https://github.com/tauri-apps/plugins-workspace/issues/979

* build
2024-08-28 17:49:05 +03:00
Lucas Fernandes Nogueira
d1c97bce7b chore: add root taurignore (#10805)
* chore: add root taurignore

enhances the DX of running `tauri dev` in any of the examples folder - we don't need to watch the entire workspace for changes

* extend ignore list
2024-08-28 17:48:39 +03:00
Lucas Fernandes Nogueira
f4bfd0722e fix(ci): check change tags script (#10803) 2024-08-28 03:20:45 +03:00
Amr Bashir
36eee37220 Restructure the repository (#10796)
* Restructure the repository

* lock file

* fmt

* fix bench

* fix cli template test

* remove accidental file

* fix mv command

* clippy

* upgrade paths-filter github action

* fix cli migration tests

* lockfile

* license headers

* clippy

* scope test-core to tauri crate

* license header

* correct --manifest-path usage

* lockfile

* fix tauri-driver on macOS [skip ci]

* build target ios

* try downgrade env_logger

* downgrade 0.1.7

* try to fix bench

* bench overflow

* revert overflow fix, fix tauri_root_path

* revert env_logger downgrade

* fmt

* raise msrv to 1.71

* fmt

* delete .cargo/config.toml [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-27 18:42:30 -03:00
Lucas Fernandes Nogueira
22d2afa89b fix(core): add proguard rule to keep JSON deserializers (#10800) 2024-08-27 15:30:10 -03:00
Ishaan Goel
c85bb0fb61 fix(docs): typo in documentation of setSize() method in Webview API. (#10798)
The example for the `setSize()` method in the documentation wrongly imports `getCurrent` (I believe as was in tauri v1)
instead of `getCurrentWebview`.
2024-08-27 20:15:08 +03:00
Lucas Fernandes Nogueira
fbe76a955a fix: serialize Uint8Array and ArrayBuffer as number[], closes #10336 (#10797) 2024-08-27 12:49:18 -03:00
Lucas Fernandes Nogueira
83ed090bfa fix(cli): do not exit mobile dev if logger could not be attached (#10790)
I just faced this when I was connected to my iPhone but wireless. Xcode also lets this happen, you only miss the logs in this case.
2024-08-27 12:05:32 -03:00
Lucas Fernandes Nogueira
84070bae92 fix(cli): plugin ios init cmd not generating iOS folder, closes #10661 (#10792) 2024-08-27 12:05:19 -03:00
Lucas Fernandes Nogueira
edb2ca31f7 fix(cli): migrate v1 plugins NPM packages (#10794) 2024-08-27 12:01:15 -03:00
Lucas Fernandes Nogueira
02b2f964a7 fix(cli): add command version requirement for known plugin npm (#10795)
small regression from #10699 - NPM install is now prompting users to select the version
2024-08-27 17:02:14 +03:00
Lucas Fernandes Nogueira
9718dc9e8c fix(cli): readd targetSdk to Android app template, closes #10712 (#10791)
Regression from #10558
2024-08-27 16:04:43 +03:00
Amr Bashir
1e441811ee feat: add DoubleClick variant for TrayIconEvent (#10786)
* feat: add `DoubleClick` variant for `TrayIconEvent`

* revert api example change

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-27 16:03:55 +03:00
Lucas Fernandes Nogueira
3a4972b394 feat(cli): include arch in the tauri info output (#10793) 2024-08-27 16:02:40 +03:00
Amr Bashir
72597a77f9 chore(deps): update cargo-mobile2 to 0.15 (#10788)
* chore(deps): update cargo-mobile2 to 0.15

* fix ios build [skip ci]

* lock file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-27 08:42:42 -03:00
Masahiko Sakakibara
03f2a50981 fix(core): update swift-rs to fix iOS plugin builds (#10718)
* fix(cli): add comment suggest to use patch swift-rs

* Create change-pr-10718.md

* swift-rs 1.0.7 (still not published) [skip ci]

* update lockfile

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-27 08:22:13 -03:00
Lucas Fernandes Nogueira
fd68b7fdea fix(cli): do not generate .cargo/config file (#10785) 2024-08-26 22:15:08 -03:00
Lucas Nogueira
dc0612b156 fix(examples): streaming file path 2024-08-26 21:48:48 -03:00
Amr Bashir
70306dc79b ci: check toml formatting with taplo-cli (#10787)
* ci: check toml formatting with taplo-cli

* change name of job

* { workspace = true } -> .workspace = true

* add taplo.toml
2024-08-26 21:46:05 -03:00
Amr Bashir
ad83d41cb5 chore: cleanup and simplify examples (#10743) 2024-08-27 01:25:36 +03:00
Lucas Nogueira
c50800023e chore(cli): remove println 2024-08-26 18:01:39 -03:00
Masahiko Sakakibara
f86a8146ad feat(core): add plugin methods getArgs and getRawArgs for iOS and Android (#10761)
* feat(api): add method getArgsData

* chore

* return JSObject instead

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-26 16:55:51 -03:00
Masahiko Sakakibara
fb6bf31425 fix(plugin): fix android_package_id to follow cli (#10763)
* fix(plugin): fix android_package_id to follow cli

* Update tooling/cli/templates/plugin/src/mobile.rs

* add change file

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-08-26 13:39:05 -03:00
Masahiko Sakakibara
21c2488d2e fix(cli): change supported URL Type "link:" in plugin template (#10771) 2024-08-26 15:16:14 +03:00
Tony
12e477ac38 fix(ci): missing pnpm on check api action (#10778)
* ci: fix missing pnpm on check api action

* Add set up node action
2024-08-26 15:12:24 +03:00
Lucas Fernandes Nogueira
073bb4f459 refactor(core): remove deprecated webview_fixed_runtime_path option (#10772)
* refactor(core): remove deprecated webview_fixed_runtime_path option

* update migration
2024-08-25 16:35:42 -03:00
Lucas Fernandes Nogueira
792340a73b fix(utils): minimum_webview2_version config kebab-case alias (#10773) 2024-08-25 10:59:33 -03:00
Lucas Fernandes Nogueira
09e9dc1aab feat(cli): allow xcodebuild to manage iOS signing and provisioning (#10752) 2024-08-23 21:12:49 -03:00
renovate[bot]
5c369e6059 chore(deps) Update Tauri CLI (dev) (#10724)
* chore(deps) Update Tauri CLI

* downgrade html5ever

* update lockfile [skip ci]

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-23 12:45:57 -03:00
renovate[bot]
1dab93f000 chore(deps) Update Rust crate syn to v2.0.75 (#10723)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 12:16:30 -03:00
renovate[bot]
8b96eca241 chore(deps) Update Tauri Codegen (#10725)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 12:14:56 -03:00
Lucas Fernandes Nogueira
2d31aef759 fix(cli): ensure gradlew is executable and does not use CRLF (#10751)
* test fix

* ensure gradle is executable and does not use CRLF

* fix import

* add change file

* add 0o111 instead
2024-08-23 10:49:45 -03:00
Tony
58dda44a59 feat(bundler/nsis): add minimum webview2 version checks (#10339) 2024-08-23 15:21:39 +03:00
chip
88bc357325 fix: generate Context inside a thread (#10734)
* generate `Context` inside a thread

fix #9882

this is a workaround for #9882 due to windows having a small
stack size for the main thread (1MiB) versus other platforms which
have 8MiB. the true fix would be to lower the generated code
stack size, but with lots a plugins, there are lots of ACL
configurations.

* add change file [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-08-23 08:46:23 -03:00
Amr Bashir
91e9e784aa feat(cli/info): include plugins info (#10729)
* feat(cli/info): include plugins info

closes #10682

* header

* resolve package manager once

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-08-23 08:29:03 -03:00
Lucas Nogueira
07aff5a2d4 fix(pnpm): ignore micromatch ReDoS vuln CVE-2024-4067 2024-08-22 12:47:48 -03:00
github-actions[bot]
9620c58e5a Apply Version Updates From Current Changes (#10740) 2024-08-22 11:50:17 -03:00
Lucas Fernandes Nogueira
c33adb19a7 Revert "apply version updates (#10715)" (#10739)
This reverts commit dc49cb3d9b.
2024-08-22 09:44:23 -03:00
github-actions[bot]
dc49cb3d9b apply version updates (#10715)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-08-22 09:43:45 -03:00
chip
5f64ed2b78 support 1.x automation env var in tauri-driver (#10738)
* support 1.x and 2.x automation env var

* changefile
2024-08-22 09:29:10 -03:00
Amr Bashir
f4d5241b37 chore: cleanup unnecessary scripts and files (#10731)
* chore: cleanup unnecessary scripts and files

- Removed `.cargo/config` and `__TAURI_WORKSPACE__` workaround
- Removed husky and precommit hooks
- Remove unecessary script files
- Moved `.scripts/covector/sync-cli-metadata.js` to `.scripts/ci/sync-cli-metadata.js`
- Moved `app-icon.png` to `.github/icon.png`
- Enhanced has-diff.sh script to output which files are modified

* lock file

* bring back __TAURI_WORKSPACE__

* add change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-08-22 07:56:52 -03:00
renovate[bot]
1add13b84e chore(deps) Update Tauri CLI (dev) (#10706)
* chore(deps) Update Tauri CLI

* revert html5ever

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-21 13:58:38 -03:00
renovate[bot]
7d9112edc7 chore(deps) Update Rust crate syn to v2.0.75 (#10705)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-21 13:50:37 -03:00
renovate[bot]
620163bf23 chore(deps) Update Tauri API Definitions (#10709)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-21 13:50:13 -03:00
renovate[bot]
660a5cd09e chore(deps) Update Tauri Codegen (#10708)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-21 13:50:03 -03:00
Lucas Fernandes Nogueira
793ee05317 fix(core): allow hyphens and underscores on identifiers, closes #9707 (#10700)
* fix(core): allow hyphens and underscores on identifiers, closes #9707

* fix build

* fix build

* lint

* move replace

* update tao

* update tao-macros
2024-08-21 13:46:25 -03:00
Lucas Fernandes Nogueira
da8c9a7d30 refactor(cli): synchronize pbxproj and export options, handle cert on build (#10669) 2024-08-21 11:38:02 -03:00
Lucas Fernandes Nogueira
9bcff3cd79 fix(core): properly remove isolation script from DOM (#10703) 2024-08-21 09:08:16 -03:00
github-actions[bot]
762cf31a11 apply version updates (#10698)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-08-20 14:25:20 -03:00
Lucas Fernandes Nogueira
1a60822a42 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
2024-08-20 14:09:50 -03:00
Lucas Fernandes Nogueira
da381e07f3 feat(core): resources on mobile apps (#10696)
* feat(core): resources on mobile apps

* resources dir on android
2024-08-20 13:49:17 -03:00
Lucas Nogueira
086271b73e fix(ci): install Linux dependencies on covector workflow 2024-08-19 23:37:43 -03:00
github-actions[bot]
02f85dffbe apply version updates (#10685)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-08-19 21:35:58 -03:00
LiesAuer
30c7685eb8 feat: add Builder::append_invoke_initialization_script (#10295)
* Allow to append a custom initialization script

* docs: add doc for `Builder::append_invoke_initialization_script`

* Update core/tauri/src/app.rs

* Update core/tauri/src/app.rs

* add change file

* fix signature

* fix doc test

* doc fmt

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-08-19 16:41:28 -03:00
Lucas Fernandes Nogueira
ed04cc3d36 feat(core): enhance IPC permission error message (#10664)
* feat(core): enhance IPC permission error message

- include more information about current URL and allowed origins
- enhance formatting of the error message

* plugin not found & command not found

* lint
2024-08-19 16:41:09 -03:00
Lucas Fernandes Nogueira
7796a8fc64 fix(cli): adapt Package.swift to work on older Swift versions (#10687)
I noticed the plugin build fails on older Swift (tested on macOS 12) because the default minimum required macOS version (10.10 in my case) is older than `v10_13` which is set by the Tauri iOS package (and also swift-rs).
So the plugins must explicitly define a minimum macOS version too.
2024-08-19 16:29:16 -03:00
anatawa12
8d148a9e25 feat: Custom sign command with object notation (#10634)
* feat!: Custom sign command with object notation

* implement JsonSchema if schema feature is enabled

* feat: support old string-based custom signing command config

* format: Run cargo fmt inside tooling/bundler folder

* chore: update json schema

* format: cargo fmt again

* small cleanup

* fix change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-19 15:55:58 -03:00
Sebastian Neubauer
5c335ae9ad fix(android): avoid rebuilds if nothing changed (#10648)
* fix(android): avoid rebuilds if nothing changed

Unconditionally overwriting files where the build reruns if they changed
leads to rebuilds every time.
Only overwrite a file if its content is different to not rebuild in such
a case.

* use write_if_changed utils

* use existing function

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-19 13:33:39 -03:00
Masahiko Sakakibara
8ae52a615a fix(cli): change "register_ios_plugin" params to snake case (#10676)
* fix(cli): change "register_ios_plugin" params to snake case

* Create change-pr-10676.md

* Update .changes/change-pr-10676.md

* Update .changes/change-pr-10676.md

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-08-19 13:29:01 -03:00
Norbiros
77844529f3 fix: Correctly export DefaultPermissionsRule (#10678)
* fix: Correctly export `DefaultPermissionsRule`

* Update fix-export-default-permissions.md

* fix: Lint

---------

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2024-08-19 13:10:05 -03:00
Guillaume M
9b99ebab17 fix(cli): do not force architecture when building and archiving iOS app (#10431)
* feat(ios): add a new cli option to dev to use project archs

Add a new option to instruct cargo-mobile2 to use architectures configured in the project for building

* update cargo-mobile2, add change file

* fix change file [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-19 12:36:48 -03:00
github-actions[bot]
b25545c53f apply version updates (#10683)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-08-19 09:48:54 -03:00
Lucas Fernandes Nogueira
c689521a76 fix(api): tslib path (#10681) 2024-08-19 09:27:45 -03:00
martin frances
6b63c75504 For linting and testing auto update the node version to "lts/*" (#10323) 2024-08-18 07:55:38 -03:00
Jacob Bolda
52fdcaaf28 skip prepublish on api (#10658) 2024-08-18 07:55:19 -03:00
Jacob Bolda
ee0b53fbe2 skip pack in publish, use check fetch (#10657)
* skip pack in publish, use check fetch

* remove script

* remove apt, exists in main pipeline

* CLI doesn't need separate check

* no assets for tauri-cli
2024-08-18 07:54:59 -03:00
Lucas Fernandes Nogueira
23a912bb84 fix(ci): @tauri-apps/cli publish workflow (#10659)
* fix(ci): pnpm install

* fix setup-node

* node16 setup fails somehow

* remove unnecessary install deps step

* run nodejs directly

* fix permissions

* fix metadata
2024-08-17 08:21:27 -03:00
Lucas Nogueira
dcc62e6fc4 fix(macos-sign): add kv feature to the log crate 2024-08-17 00:58:34 -03:00
Lucas Nogueira
167a0feb31 fix(ci): missing id-token write permission for provenance 2024-08-17 00:38:09 -03:00
Lucas Nogueira
1142289670 fix(tauri-runtime-wry): docs.rs build 2024-08-17 00:16:07 -03:00
Lucas Nogueira
85c2d6302e fix(ci): set NPM_CONFIG_PROVENANCE to true 2024-08-17 00:15:00 -03:00
Lucas Nogueira
07a5f505d9 fix(ci): run pnpm publish with --no-git-checks 2024-08-17 00:12:24 -03:00
Lucas Nogueira
30667714c0 fix(ci): wrong prepublish scripts for @tauri-apps/api 2024-08-16 23:54:55 -03:00
github-actions[bot]
3522fbd78e Apply Version Updates From Current Changes (#10561)
* apply version updates

* fix versions

---------

Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-16 23:39:49 -03:00
Lucas Nogueira
dd5b081eeb fix(ci): install pnpm on integration tests 2024-08-16 23:13:35 -03:00
Amr Bashir
01f6aa3405 build: migrate repo to use pnpm as the package manager (#10607)
* build: migrate repo to use `pnpm` as the pacakge manager

* corepack enable

* update lock file

* format files

* format .github

* fix audit js

* wrap in quotes

* --frozen-lockfile

* simplify packageManager field

* lockfile

* remove cache from audit workflow
2024-08-16 23:04:08 -03:00
Amr Bashir
9e891933d8 fix(utils): fix resources map becomes directory (#10293)
* fix(utils): fix resources map becomes directory

closes #10187

Fixes the behavior of mapped resources generating extra directory, for example:
`"../resources/user.json": "resources/user.json"` generates this resource `resources/user.json/user.json`
where it should generate `resources/user.json`

This PR includes a refactor of the Iterator implementation which splits it into more scoped functions and relis on recursing instead of a loop which makes the code a lot more readable and easier to maintain.

* clippy

* cover more cases

* clippy

* fix glob into directory, not resolving target correctly

* return error when resource origin path doesn't exist

* fix resources example build

* Update .changes/resources-map-becoming-dirs.md

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-16 23:03:14 -03:00
Lucas Fernandes Nogueira
8deb1966ac feat(bundler): infer signing identity from certificate to import (#10652) 2024-08-16 20:30:49 -03:00
Lucas Fernandes Nogueira
d39c392b7c chore(deps): update tao and wry to latest (#10655) 2024-08-16 20:30:34 -03:00
Amr Bashir
6d7ac65676 chore: use 0.1.0 as version in templates (#10644)
closes #10474
2024-08-16 20:19:04 -03:00
Lucas Fernandes Nogueira
1b0c447fcb fix(macos-sign): missing stdout/stderr in Node.js context (#10654) 2024-08-16 20:16:00 -03:00
Lucas Fernandes Nogueira
10fb027b75 fix(cli): migrate v1 plugin dependencies, prevent dup, closes #10650 (#10656) 2024-08-16 19:58:20 -03:00
Lucas Fernandes Nogueira
255d64e3dc fix(cli): actually check if there are multiple android devices connected (#10642) 2024-08-16 04:12:34 +03:00
Lucas Fernandes Nogueira
d0510f52eb refactor(core): serialize response once, closes #5641 (#10641)
* refactor(core): serialize response once closes #5641

This change impacts both the custom protocol and the postMessage based IPC implementations. Basically it changes the whole IPC mechanism to work on raw JSON strings so we do not need to serialize a serde_json::Value after serializing to it from a user-provided type.

i benchmarked this with a 150MB file response (returning Vec<u8> instead of tauri::ipc::Response since the latter does not serialize at all) and it went from 29s to 23s (custom protocol) and from 54s to 48s (post message) on macOS.

* fix mobile & lint

* clippy
2024-08-15 16:15:11 -03:00
renovate[bot]
d1ee3f4b55 chore(deps) Update Tauri CLI (dev) (#10610)
* chore(deps) Update Tauri CLI

* html5ever 0.28

* update windows-sys

* cast

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-15 15:39:21 -03:00
Lucas Fernandes Nogueira
f712f31d1d fix(cli): add notarize error (#10639)
* fix: add notarize error

* add change file
2024-08-15 14:12:03 -03:00
renovate[bot]
8902dd8137 chore(deps) Update Tauri API Definitions (#10614)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-15 11:14:36 -03:00
renovate[bot]
b5c948f68e chore(deps) Update Tauri Codegen (#10613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-15 10:52:11 -03:00
renovate[bot]
360330136f chore(deps) Update dependency @types/eslint to v9 (#10620)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-15 10:51:46 -03:00
renovate[bot]
659c7d2f5d chore(deps) Update Rust crate syn to v2.0.74 (#10609)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-15 10:50:39 -03:00
Lucas Fernandes Nogueira
9089d97637 fix(cli): properly resolve merge config on mobile build closes #9970 (#10605)
just applying the change from #10600 to xcode to fix the linked issue :)
2024-08-15 10:50:19 -03:00
Lucas Fernandes Nogueira
b6dca99fff refactor(api)!: change window label getters to be async ref #5380 (#10630) 2024-08-15 09:12:40 -03:00
Lucas Fernandes Nogueira
b160f9359d fix(cli): only validate iOS lib on debug builds (#10638) 2024-08-15 09:12:21 -03:00
Broken_Deer
521d1d5cdb fix(bundler): armv7 appimage bundler uses invalid download links [closes #6579] (#10619)
* Update appimage.rs

* Update appimage.rs

* Create change-pr-10619.md

* Update change-pr-10619.md

---------

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2024-08-14 17:39:36 +02:00
Lucas Fernandes Nogueira
9f75d06228 fix(cli): adb port forward error handling, add logs, closes #9509 (#10604) 2024-08-13 22:07:02 -03:00
Amr Bashir
39bf0a1635 refactor: rename TAURI_SIGNTOOL_PATH -> TAURI_WINDOWS_SIGNTOOL_PATH (#10595)
immediately after merging #10588 I noticed that the variable name might be a bit ambigious and could cause confusion on other pl atforms other than Windows
2024-08-13 21:48:12 -03:00
Amr Bashir
78e22bedca feat(cli): support AndroidTV by default (#10602)
closes #10534
2024-08-13 21:47:41 -03:00
Lucas Fernandes Nogueira
f4cd68f040 fix(cli): builtin dev server should also be forwarded for Android (#10600) 2024-08-13 21:11:01 -03:00
Lucas Fernandes Nogueira
f35bcda289 feat(cli): handle known target specific plugins on permission add #10596 (#10598)
Closes #10596
2024-08-13 14:01:10 -03:00
Lucas Fernandes Nogueira
712f1049fa fix(cli): ios dev and ios build support for bun (#10569) 2024-08-13 09:00:41 -03:00
Lucas Fernandes Nogueira
41c7a6646b fix(cli): properly exit with code 0 on panic when running with bun (#10572) 2024-08-13 08:53:04 -03:00
anatawa12
f8d658ea1b feat: TAURI_SIGNTOOL_PATH environment variable for specifying the path to signtool.exe. (#10588) 2024-08-13 14:49:28 +03:00
Lucas Fernandes Nogueira
fedf93eb7e refactor(core): return 200 on any IPC call, closes #10286 (#10585)
* refactor(core): return 200 on any IPC call, closes #10286

By default the webview prints a `Failed to load resource: the server responded with a status of 400 (Bad Request) ipc://localhost` error message when a command returns an error, which is confusing to users.

This changes the IPC to return status 200 on any call, with a header to indicate whether the result was ok or not. This removes the console error, which would only log the actual error result if it isn't caught by the user.

* add change file

* apply code review changes
2024-08-13 08:39:20 -03:00
Lucas Fernandes Nogueira
b1d9ffa1ab fix(core): IPC fallback hanging when sending responses, closes #10327 (#10582)
The IPC fallback system kicks in when the custom protocol implementation cannot be used (e.g. CORS issues).
The fallback uses the postMessage mechanism, which by default uses channels to send large responses. If the custom protocol implementation cannot be used, we should not use channels, but eval the response directly.
2024-08-13 07:38:49 -03:00
Lucas Fernandes Nogueira
794cf8234f chore(cli): change default export method to debugging (#10571) 2024-08-13 04:04:16 +03:00
Lucas Fernandes Nogueira
9fe846615b fix(core): plugin permissions documentation heading (#10547)
Co-authored-by: Tillmann <28728469+tweidinger@users.noreply.github.com>
2024-08-13 03:58:44 +03:00
renovate[bot]
20be073bc4 chore(deps) Update Tauri CLI (dev) (#10308)
* chore(deps) Update Tauri CLI

* fix build

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-12 12:52:16 -03:00
renovate[bot]
f228d3d3d4 chore(deps) Update Tauri Bundler (dev) (#10512)
* chore(deps) Update Tauri Bundler

* fix build

* fix linux

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-12 12:39:33 -03:00
Lucas Fernandes Nogueira
3bec7b1595 feat(cli): add support to Svelte and Vue.js code on v1 migration (#10544)
* feat(cli): add support to Svelte and Vue.js code on v1 migration

* clippy
2024-08-12 13:45:42 +09:00
Lucas Fernandes Nogueira
3998570fd3 fix(cli): manifest v1 migration (#10540)
update features that got removed/renamed, and also migrate any core crate on any dependency table
2024-08-12 12:23:39 +09:00
Lucas Fernandes Nogueira
3beba92b5b fix(cli): incorrect JS generated by frontend migration closes #10500 (#10542)
* fix(cli): incorrect JS generated by frontend migration closes #10500
2024-08-12 12:10:27 +09:00
Lucas Fernandes Nogueira
f3837d5b98 fix(cli): broken v1 updater migration, add TOML support, closes #10508 (#10539)
- make the v1 config migration more resilient by checking null values
- fix "targets: all" incorrectly migrating createUpdaterArtifacts when there's no updater configuration (this is problematic because this targets config is the default)
- migrate Tauri.toml
- add more tests
2024-08-12 11:56:13 +09:00
苏向夜
71d00646a9 feat(cli): detect project NPM package manager on init (#10504)
* feat(cli): improve init behavior to ask once

* chore(cli): bump version

* fix(clippy): fix clippy warning

* feat(cli): add `bun` and fix version bump msg

* refactor(cli): auto detect the package manager

* move function

* update change file

* update change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-11 18:33:26 -03:00
renovate[bot]
416f845784 chore(deps) Update Tauri API Definitions (dev) (#10370)
* chore(deps) Update Tauri API Definitions

* format

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-11 09:47:00 -03:00
Sam Kearney
2d47352a07 fix(cli): make app_dir() logic consistent (#10418)
* fix(cli): Make app_dir() consistent by basing it on the explicit invocation directory rather than the current working directory

* resolve app paths before everything else

* fix xcode script

* fix test

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-11 09:44:15 -03:00
Yuri Astrakhan
0afee5ed80 chore: update brotli dependency to v6 (#10436)
* chore: update brotli dependency to v6

brotli v6 plays nice with other versions of the same crate

* add change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-11 08:23:31 -03:00
AHQ
bfc49cc7a1 refactor(android): Remove targetSdk from gradle config (#10558)
* refactor: remove targetSdk as it is being removed in DSL 9.0

* note

* fix: typo

* update: changelog

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-08-11 07:06:14 -03:00
anatawa12
4bfe4880fb fix: fails to build universal fat binary if main bin is renamed to another name (#10550)
* fix: fails to build universal fat binary if main bin is renamed to another name

* lint

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-11 06:56:53 -03:00
Maarten
bba1a44191 feat(cli): allow skipping rustfmt project reformatting when adding a plugin (#10457)
* feat(cli): allow skipping rustfmt project reformatting

* Apply suggestions from code review

* fixes, change file

* fix change file

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-08-10 17:09:07 -03:00
renovate[bot]
92cac12a92 chore(deps) Update Rust crate zip to v2 (dev) (#10516)
* chore(deps) Update Rust crate zip to v2

* SimpleFileOptions

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-10 16:55:53 -03:00
renovate[bot]
f65990d1d7 chore(deps) Update Rust crate json-patch to v2 (dev) (#10515)
* chore(deps) Update Rust crate json-patch to v2

* update other crates

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-10 16:45:24 -03:00
renovate[bot]
e91550bd86 chore(deps) Update Tauri CLI (dev) (major) (#10517)
* chore(deps) Update Tauri CLI

* update cargo-mobile2

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-10 16:39:55 -03:00
Jonas Kruckenberg
88a9fa23e5 docs: Add hyperlink to localhost-free readme item (#10557) 2024-08-10 21:26:12 +02:00
rwv
008b9f7481 chore: generate provenance statements for npm package (#10477)
* chore: generate provenance statements for npm package

See also https://docs.npmjs.com/generating-provenance-statements#example-github-actions-workflow

* also add --provenance for covector publishes

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-10 15:48:04 -03:00
chip
a975cd7976 yarn prettier --write core (#10471) 2024-08-10 15:44:33 -03:00
Norbiros
0bb7b0f352 feat: Add option to generate default permissions for inlined plugins (#10559)
* feat: Add option to allow all commands by default

* option to use a list of permissions, move logic to tauri-build

* fix plugin

* add utils change file

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-08-10 15:34:49 -03:00
Tillmann
213c0b1b8e add v2 report (#10554) 2024-08-10 14:52:09 -03:00
github-actions[bot]
ab4e56f5d2 apply version updates (#10532)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-08-08 23:52:47 -03:00
Fabian-Lars
f5dfc02800 fix(core/cli): Add custom default implementation for ios config (#10533)
* fix(cli): Add custom `default` implementation for ios config

* fix change
2024-08-08 19:57:56 -03:00
Fabian-Lars
5f56cb0a8b feat(cli): Upgrade gradle to 8.9 and gradle-android to 8.5.1 (#10507)
* feat(cli): Upgrade gradle to 8.9 and gradle-android to 8.5.1

* Update .changes/android-gradle-8-9.md

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
2024-08-08 08:48:54 -03:00
Fabian-Lars
00e5a6ac74 fix(cli): allow actions: write for version-or-publish to fix cli publishing (#10525) 2024-08-08 07:25:59 -03:00
KV
10e30c5139 fix: 'ndecorated' typo in window shadow description (#10527) 2024-08-08 10:47:52 +08:00
github-actions[bot]
393428e5c8 apply version updates (#10524)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-08-07 14:50:33 -03:00
Lucas Nogueira
9ed8fe8c92 fix(cli): allow write on pull-requests for version-or-publish 2024-08-07 14:32:06 -03:00
Lucas Fernandes Nogueira
8dc81b6cc2 feat(core): add option for custom Xcode project template (XcodeGen) (#10496) 2024-08-07 13:17:01 -03:00
Lucas Fernandes Nogueira
02c00abc63 feat(core): add config for the minimum iOS version (#10495)
* feat(core): add config for the minimum iOS version

* revert api exapmle
2024-08-07 13:16:27 -03:00
renovate[bot]
5be7607b26 chore(deps) Update Tauri Codegen to v1.7.0 (#10513)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-07 13:52:44 +08:00
Catalin Andrei Cacuci
a440a3f9d8 fix(bundler): Correct nsis pre-uninstall hook to post-uninstall (#10498)
* fix(bundler): Correct nsis pre-uninstall hook to post-uninstall

* Create change-pr-10498.md

* Update change-pr-10498.md [skip ci]

---------

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2024-08-05 19:15:45 +02:00
Fabian-Lars
ab382f4ca9 ci: Use GITHUB_TOKEN for workflow_dispatch via gh cli (#10493) 2024-08-05 10:12:29 -03:00
Lucas Fernandes Nogueira
2e8ab7bac1 fix(cli): v1 migration should add the updater plugin if it is enabled (#10481)
* fix(cli): v1 migration should add the updater plugin if it is enabled

* fix change tag

* move to process_updater

* Update tooling/cli/src/migrate/migrations/v1/config.rs

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>

---------

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2024-08-05 10:00:33 -03:00
Lucas Fernandes Nogueira
a3cd9779a4 chore(cli): remove android open and ios open commands (#10480)
It is recommended to use `[android|ios] dev --open` or `[android|ios] build --open` instead as it properly sets up the requirements for developing and building apps with Tauri.
2024-08-05 09:57:54 -03:00
chip
e2dc76cfbf set packageManager field in package.json for corepack (#10470) 2024-08-05 09:50:32 -03:00
Lucas Fernandes Nogueira
8e1e15304e feat(cli): check if Rust lib contains required Android and iOS symbols #10094 (#10483)
* feat(cli): check if Rust lib contains required Android symbols #10094

* check for ios aswell
2024-08-05 09:46:28 -03:00
Lucas Fernandes Nogueira
ca68689564 feat(cli): check if project identifier or lib name changed (#10479)
* feat(cli): check if project identifier changed

* implement ios check

* also check lib name

* clippy

* ensure_init from xcode-script

* fill change file [skip ci]
2024-08-05 09:45:18 -03:00
anatawa12
7e810cb2a3 fix: permission file uses ':' in file name (#10485)
* fix: permission file uses ':' in file name

* style: rustfmt
2024-08-05 09:45:00 -03:00
renovate[bot]
725dbb7250 chore(deps) Update Rust crate url to v2.5.2 (#10091)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-05 13:05:43 +02:00
github-actions[bot]
b9a4410516 apply version updates (#10468)
Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
2024-08-03 10:22:38 -03:00
Lucas Fernandes Nogueira
fb1933f174 fix(cli): android dev --open failing due to adb not finding device (#10467) 2024-08-03 10:04:26 -03:00
deadmeu
699319d8a7 docs: Update tauri::app::Builder::setup example (#10463)
This resolves a warning emitted by following the example code: warning:
unused `Result` that must be used.
2024-08-03 09:50:27 -03:00
Lucas Fernandes Nogueira
206914fe8d fix(cli): adb reverse failing in Node.js (#10466) 2024-08-03 09:47:50 -03:00
1187 changed files with 79333 additions and 73752 deletions

11
.cargo/audit.toml Normal file
View File

@@ -0,0 +1,11 @@
[advisories]
ignore = [
# rsa Marvin Attack
"RUSTSEC-2023-0071",
# difference is unmaintained
"RUSTSEC-2020-0095",
# proc-macro-error is unmaintained
"RUSTSEC-2024-0370",
# time crate can't be updated in the repo because of MSRV, users are unaffected
"RUSTSEC-2026-0009",
]

View File

@@ -1,2 +1,4 @@
[env]
# workaround needed to prevent `STATUS_ENTRYPOINT_NOT_FOUND` error in tests
# see https://github.com/tauri-apps/tauri/pull/4383#issuecomment-1212221864
__TAURI_WORKSPACE__ = "true"

View File

@@ -1,6 +0,0 @@
---
"tauri": patch:enhance
"tauri-codegen": patch:enhance
---
Enhance `AssetResolver::get` in development mode by reading distDir directly as a fallback to the embedded assets.

View File

@@ -1,5 +0,0 @@
---
"tauri": patch:bug
---
Fix Specta remote implementation target for `Channel`.

View File

@@ -1,6 +0,0 @@
---
"tauri-cli": "patch:enhance"
"@tauri-apps/cli": "patch:enhance"
---
Changes the default behavior of the `dev` command to only expose to localhost (`127.0.0.1`) instead of the default system interface.

View File

@@ -4,7 +4,7 @@
"feat": "New Features",
"enhance": "Enhancements",
"bug": "Bug Fixes",
"pref": "Performance Improvements",
"perf": "Performance Improvements",
"changes": "What's Changed",
"sec": "Security fixes",
"deps": "Dependencies",
@@ -14,17 +14,14 @@
"pkgManagers": {
"rust": {
"version": true,
"getPublishedVersion": "node ../../.scripts/covector/package-latest-version.js cargo ${ pkgFile.pkg.package.name } ${ pkgFile.pkg.package.version }",
"getPublishedVersion": {
"use": "fetch:check",
"options": {
"url": "https://crates.io/api/v1/crates/${ pkg.pkgFile.pkg.package.name }/${ pkg.pkgFile.version }"
}
},
"prepublish": [
"sudo apt-get update",
"sudo apt-get install -y webkit2gtk-4.1 libayatana-appindicator3-dev",
"cargo install cargo-audit --features=fix",
{
"command": "cargo generate-lockfile",
"dryRunCommand": true,
"runFromRoot": true,
"pipe": true
},
{
"command": "echo '<details>\n<summary><em><h4>Cargo Audit</h4></em></summary>\n\n```'",
"dryRunCommand": true,
@@ -43,11 +40,6 @@
}
],
"publish": [
"sleep 15s",
{
"command": "cargo package --no-verify",
"dryRunCommand": true
},
{
"command": "echo '<details>\n<summary><em><h4>Cargo Publish</h4></em></summary>\n\n```'",
"dryRunCommand": true,
@@ -64,33 +56,34 @@
"pipe": true
}
],
"postpublish": [
"git tag ${ pkg.pkg }-v${ pkgFile.versionMajor } -f",
"git tag ${ pkg.pkg }-v${ pkgFile.versionMajor }.${ pkgFile.versionMinor } -f",
"git push --tags -f"
],
"assets": [
{
"path": "./target/package/${ pkg.pkg }-${ pkgFile.version }.crate",
"name": "${ pkg.pkg }-${ pkgFile.version }.crate"
}
]
"postpublish": {
"use": "fetch:check",
"options": {
"url": "https://crates.io/api/v1/crates/${ pkg.pkgFile.pkg.package.name }/${ pkg.pkgFile.version }"
},
"retries": [5000, 5000, 5000]
}
},
"javascript": {
"version": true,
"getPublishedVersion": "node ../../.scripts/covector/package-latest-version.js npm ${ pkgFile.pkg.name } ${ pkgFile.pkg.version }",
"getPublishedVersion": {
"use": "fetch:check",
"options": {
"url": "https://registry.npmjs.com/${ pkg.pkgFile.pkg.name }/${ pkg.pkgFile.version }"
}
},
"prepublish": [
{
"command": "yarn",
"dryRunCommand": true
},
{
"command": "echo '<details>\n<summary><em><h4>Yarn Audit</h4></em></summary>\n\n```'",
"command": "echo '<details>\n<summary><em><h4>PNPM Audit</h4></em></summary>\n\n```'",
"dryRunCommand": true,
"pipe": true
},
{
"command": "yarn audit",
"command": "pnpm i --frozen-lockfile",
"dryRunCommand": true
},
{
"command": "pnpm audit",
"dryRunCommand": true,
"runFromRoot": true,
"pipe": true
@@ -99,22 +92,17 @@
"command": "echo '```\n\n</details>\n'",
"dryRunCommand": true,
"pipe": true
},
{
"command": "npm pack",
"dryRunCommand": true
}
],
"publish": [
"sleep 15s",
{
"command": "echo '<details>\n<summary><em><h4>Yarn Publish</h4></em></summary>\n\n```'",
"command": "echo '<details>\n<summary><em><h4>PNPM Publish</h4></em></summary>\n\n```'",
"dryRunCommand": true,
"pipe": true
},
{
"command": "yarn publish --access public --loglevel silly --tag next",
"dryRunCommand": "npm publish --dry-run --access public",
"command": "pnpm publish --access public --loglevel silly --no-git-checks",
"dryRunCommand": "npm publish --dry-run --access public --no-git-checks",
"pipe": true
},
{
@@ -123,57 +111,27 @@
"pipe": true
}
],
"postpublish": [
"git tag ${ pkg.pkg }-v${ pkgFile.versionMajor } -f",
"git tag ${ pkg.pkg }-v${ pkgFile.versionMajor }.${ pkgFile.versionMinor } -f",
"git push --tags -f"
]
"postpublish": {
"use": "fetch:check",
"options": {
"url": "https://registry.npmjs.com/${ pkg.pkgFile.pkg.name }/${ pkg.pkgFile.version }"
},
"retries": [5000, 5000, 5000]
}
}
},
"packages": {
"@tauri-apps/api": {
"path": "./tooling/api",
"path": "./packages/api",
"manager": "javascript",
"assets": [
{
"path": "./tooling/api/dist/tauri-apps-api-${ pkgFile.version }.tgz",
"name": "tauri-apps-api-${ pkgFile.version }.tgz"
}
],
"prepublish": [
{
"command": "yarn",
"dryRunCommand": true
},
{
"command": "echo '<details>\n<summary><em><h4>Yarn Audit</h4></em></summary>\n\n```'",
"dryRunCommand": true,
"pipe": true
},
{
"command": "yarn audit",
"dryRunCommand": true,
"runFromRoot": true,
"pipe": true
},
{
"command": "echo '```\n\n</details>\n'",
"dryRunCommand": true,
"pipe": true
},
{
"command": "yarn npm-pack",
"dryRunCommand": true
}
],
"publish": [
{
"command": "echo '<details>\n<summary><em><h4>Yarn Publish</h4></em></summary>\n\n```'",
"command": "echo '<details>\n<summary><em><h4>PNPM Publish</h4></em></summary>\n\n```'",
"dryRunCommand": true,
"pipe": true
},
{
"command": "yarn npm-publish",
"command": "pnpm npm-publish",
"dryRunCommand": true,
"pipe": true
},
@@ -185,61 +143,52 @@
]
},
"tauri-utils": {
"path": "./core/tauri-utils",
"path": "./crates/tauri-utils",
"manager": "rust"
},
"tauri-macos-sign": {
"path": "./tooling/macos-sign",
"path": "./crates/tauri-macos-sign",
"manager": "rust"
},
"tauri-bundler": {
"path": "./tooling/bundler",
"path": "./crates/tauri-bundler",
"manager": "rust",
"dependencies": ["tauri-utils", "tauri-macos-sign"]
},
"tauri-runtime": {
"path": "./core/tauri-runtime",
"path": "./crates/tauri-runtime",
"manager": "rust",
"dependencies": ["tauri-utils"]
},
"tauri-runtime-wry": {
"path": "./core/tauri-runtime-wry",
"path": "./crates/tauri-runtime-wry",
"manager": "rust",
"dependencies": ["tauri-utils", "tauri-runtime"]
},
"tauri-codegen": {
"path": "./core/tauri-codegen",
"path": "./crates/tauri-codegen",
"manager": "rust",
"dependencies": ["tauri-utils"]
},
"tauri-macros": {
"path": "./core/tauri-macros",
"path": "./crates/tauri-macros",
"manager": "rust",
"dependencies": ["tauri-codegen", "tauri-utils"]
},
"tauri-plugin": {
"path": "./core/tauri-plugin",
"path": "./crates/tauri-plugin",
"manager": "rust",
"dependencies": ["tauri-utils"],
"postversion": "node ../../.scripts/covector/sync-cli-metadata.js ${ pkg.pkg } ${ release.type }"
"postversion": "node ../../.scripts/ci/sync-cli-metadata.js ${ pkg.pkg } ${ release.type }"
},
"tauri-build": {
"path": "./core/tauri-build",
"path": "./crates/tauri-build",
"manager": "rust",
"dependencies": ["tauri-codegen", "tauri-utils"],
"postversion": [
"node ../../.scripts/covector/sync-cli-metadata.js ${ pkg.pkg } ${ release.type }",
"cargo build --manifest-path ../tauri-config-schema/Cargo.toml"
],
"assets": [
{
"path": "./tooling/cli/schema.json",
"name": "schema.json"
}
]
"postversion": "node ../../.scripts/ci/sync-cli-metadata.js ${ pkg.pkg } ${ release.type }"
},
"tauri": {
"path": "./core/tauri",
"path": "./crates/tauri",
"manager": "rust",
"dependencies": [
"tauri-macros",
@@ -248,40 +197,28 @@
"tauri-runtime-wry",
"tauri-build"
],
"postversion": "node ../../.scripts/covector/sync-cli-metadata.js ${ pkg.pkg } ${ release.type }"
"postversion": [
"node ../../.scripts/ci/sync-cli-metadata.js ${ pkg.pkg } ${ release.type }",
"cargo build --manifest-path ../tauri-schema-generator/Cargo.toml"
]
},
"@tauri-apps/cli": {
"path": "./tooling/cli/node",
"path": "./packages/cli",
"manager": "javascript",
"getPublishedVersion": "node ../../../.scripts/covector/package-latest-version.js npm ${ pkgFile.pkg.name } ${ pkgFile.pkg.version }",
"dependencies": ["tauri-cli"],
"postversion": [
"node ../../../.scripts/covector/sync-cli-metadata.js ${ pkg.pkg } ${ release.type }",
"cargo build --manifest-path ../../../core/tauri-config-schema/Cargo.toml"
],
"postversion": "node ../../.scripts/ci/sync-cli-metadata.js ${ pkg.pkg } ${ release.type }",
"prepublish": [],
"publish": [],
"postpublish": []
},
"tauri-cli": {
"path": "./tooling/cli",
"path": "./crates/tauri-cli",
"manager": "rust",
"dependencies": ["tauri-bundler", "tauri-utils", "tauri-macos-sign"],
"postversion": [
"cargo check",
"cargo build --manifest-path ../../core/tauri-config-schema/Cargo.toml"
],
"assets": [
{
"path": "${ pkg.path }/target/package/tauri-cli-${ pkgFile.version }.crate",
"name": "${ pkg.pkg }-${ pkgFile.version }.crate"
}
]
"dependencies": ["tauri-bundler", "tauri-utils", "tauri-macos-sign"]
},
"tauri-driver": {
"path": "./tooling/webdriver",
"manager": "rust",
"postversion": "cargo check"
"path": "./crates/tauri-driver",
"manager": "rust"
}
}
}

View File

@@ -1,9 +0,0 @@
---
"tauri": patch:breaking
"tauri-plugin": patch:breaking
"@tauri-apps/cli": patch:breaking
"tauri-cli": patch:breaking
---
Core plugin permissions are now prefixed with `core:`, the `core:default` permission set can now be used and the `core` plugin name is reserved.
The `tauri migrate` tool will automate the migration process, which involves prefixing all `app`, `event`, `image`, `menu`, `path`, `resources`, `tray`, `webview` and `window` permissions with `core:`.

View File

@@ -1,9 +0,0 @@
---
"tauri-cli": patch:breaking
"@tauri-apps/cli": patch:breaking
---
`ios dev` and `android dev` now uses localhost for the development server unless running on an iOS device,
which still requires connecting to the public network address. To conditionally check this on your frontend
framework's configuration you can check for the existence of the `TAURI_DEV_HOST`
environment variable instead of checking if the target is iOS or Android (previous recommendation).

View File

@@ -1,7 +0,0 @@
---
"tauri-utils": "patch:bug"
---
Fixed an issue where configuration parsing errors always displayed 'tauri.conf.json' as the file path, even when using 'Tauri.toml' or 'tauri.conf.json5'.
The error messages now correctly shows the actual config file being used.

View File

@@ -1,6 +0,0 @@
---
"tauri": patch:bug
"tauri-codegen": patch:bug
---
Fixes asset resolving when not using the `compression` feature.

View File

@@ -1,7 +0,0 @@
---
"tauri-utils": patch:feat
"@tauri-apps/cli": patch:feat
"tauri-cli": patch:feat
---
Added `bundle > iOS > frameworks` configuration to define a list of frameworks that are linked to the Xcode project when it is generated.

View File

@@ -1,6 +0,0 @@
---
"tauri": "patch:sec"
"tauri-utils": "patch:sec"
---
Explicitly check that the main frame's origin is the sender of Isolation Payloads

View File

@@ -1,6 +0,0 @@
---
"tauri-utils": "patch:enhance"
"tauri": "patch:enhance"
---
Make the set of gtk application id optional, to allow more then one instance of the app running at the same time.

View File

@@ -1,5 +0,0 @@
---
"tauri": "patch:enhance"
---
Add `tauri::plugin::Builder::try_build` to allow plugins to check if their `TauriPlugin` initialization is valid.

View File

@@ -1,18 +0,0 @@
{
"tag": "rc",
"changes": [
".changes/asset-resolver-dev-fallback.md",
".changes/change-pr-10435.md",
".changes/cli-desktop-port-exposure.md",
".changes/core-plugin-namespace.md",
".changes/dev-url-localhost-mobile.md",
".changes/fix-conf-parsing-error-filepath.md",
".changes/fix-usage-without-compression.md",
".changes/ios-frameworks.md",
".changes/isolation-main-frame-origin.md",
".changes/linux-option-gtk-app-id.md",
".changes/plugin-builder-failable.md",
".changes/rc-migration.md",
".changes/remove-unsecure-configs.md"
]
}

View File

@@ -1,6 +0,0 @@
---
"tauri-cli": patch:feat
"@tauri-apps/cli": patch:feat
---
Added migration from `2.0.0-beta` to `2.0.0-rc`.

View File

@@ -1,8 +0,0 @@
---
"tauri-cli": patch:sec
"@tauri-apps/cli": patch:sec
"tauri": patch:sec
---
Re-enable TLS checks that were previously disabled to support an insecure HTTPS custom protocol on Android which is no longer used.

View File

@@ -5,7 +5,7 @@ FROM mcr.microsoft.com/vscode/devcontainers/base:0-${VARIANT}
# Derived from Tauri contribution and setup guides:
# See: https://github.com/tauri-apps/tauri/blob/dev/.github/CONTRIBUTING.md#development-guide
# See: https://tauri.app/v1/guides/getting-started/prerequisites/#setting-up-linux
# See: https://v2.tauri.app/start/prerequisites/
ARG TAURI_BUILD_DEPS="build-essential curl libappindicator3-dev libgtk-3-dev librsvg2-dev libssl-dev libwebkit2gtk-4.1-dev wget"
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \

View File

@@ -24,7 +24,7 @@ Prerequisites are mainly derived from VS Code's instructions for usage of develo
### A note on filesystem performance
Due to limitations in how Docker shares files between the Docker host and a container, it's also recommended that developers [clone Tauri source code into a container volume](https://code.visualstudio.com/remote/advancedcontainers/improve-performance#_use-clone-repository-in-container-volume). This is optional, but highly advised as many filesystem/IO heavy operations (`cargo build`, `yarn install`, etc) will be very slow if they operate on directories shared with a Docker container from the Docker host.
Due to limitations in how Docker shares files between the Docker host and a container, it's also recommended that developers [clone Tauri source code into a container volume](https://code.visualstudio.com/remote/advancedcontainers/improve-performance#_use-clone-repository-in-container-volume). This is optional, but highly advised as many filesystem/IO heavy operations (`cargo build`, `pnpm install`, etc) will be very slow if they operate on directories shared with a Docker container from the Docker host.
To do this, open your project with VS Code and run **Remote-Containers: Clone Repository in Container Volume...** from the Command Palette (<kbd>F1</kbd>).

View File

@@ -1,4 +1,3 @@
# Contributor Covenant Code of Conduct
## Our Pledge
@@ -18,23 +17,23 @@ diverse, inclusive, and healthy community.
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
- Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or advances of
- The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
@@ -130,4 +129,4 @@ For answers to common questions about this code of conduct, see the FAQ at
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
[translations]: https://www.contributor-covenant.org/translations

View File

@@ -5,6 +5,7 @@ Hi! We, the maintainers, are really excited that you are interested in contribut
- [Issue Reporting Guidelines](#issue-reporting-guidelines)
- [Pull Request Guidelines](#pull-request-guidelines)
- [Development Guide](#development-guide)
- [AI Tool Policy](#ai-tool-policy)
## Issue Reporting Guidelines
@@ -33,13 +34,14 @@ Hi! We, the maintainers, are really excited that you are interested in contribut
- It's OK to have multiple small commits as you work on the PR - we will let GitHub automatically squash it before merging.
- If adding new feature:
- Provide convincing reason to add this feature. Ideally you should open a suggestion issue first and have it greenlighted before working on it.
- If fixing a bug:
- If you are resolving a special issue, add `(fix: #xxxx[,#xxx])` (#xxxx is the issue id) in your PR title for a better release log, e.g. `fix: update entities encoding/decoding (fix #3899)`.
- Provide detailed description of the bug in the PR, or link to an issue that does.
- If the PR is meant to be released, follow the instructions in `.changes/readme.md` to log your changes. ie. [readme.md](https://github.com/tauri-apps/tauri/blob/dev/.changes/README.md)
## Development Guide
**NOTE: If you have any question don't hesitate to ask in our Discord server. We try to keep this guide to up guide, but if something doesn't work let us know.**
@@ -48,37 +50,70 @@ Hi! We, the maintainers, are really excited that you are interested in contribut
First, [join our Discord server](https://discord.gg/SpmNs4S) and let us know that you want to contribute. This way we can point you in the right direction and help ensure your contribution will be as helpful as possible.
To set up your machine for development, follow the [Tauri setup guide](https://tauri.app/v1/guides/getting-started/prerequisites/) to get all the tools you need to develop Tauri apps. The only additional tool you may need is [Yarn](https://yarnpkg.com/), it is only required if you are developing the Node CLI or API packages (`tooling/cli/node` and `tooling/api`). Next, fork and clone this repo. It is structured as a monorepo, which means that all the various Tauri packages are under the same repository. The development process varies depending on what part of Tauri you are contributing to, see the guides below for per-package instructions.
To set up your machine for development, follow the [Tauri setup guide](https://v2.tauri.app/start/prerequisites/) to get all the tools you need to develop Tauri apps. The only additional tool you may need is [PNPM](https://pnpm.io/), it is only required if you are developing the Node CLI or API packages (`packages/cli` and `packages/api`).
Some Tauri packages will be automatically built when running one of the examples. Others, however, will need to be built beforehand. To build these automatically, run the `.scripts/setup.sh` (Linux and macOS) or `.scripts/setup.ps1` (Windows) script. This will install the Rust and Node.js CLI and build the JS API. After that, you should be able to run all the examples. Note that the setup script should be executed from the root folder of the repository in order to run correctly.
Next, [fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) and clone [this repository](https://github.com/tauri-apps).
The development process varies depending on what part of Tauri you are contributing to, see the guides below for per-package instructions.
Some Tauri packages will be automatically built when running one of the examples. Others, however, will need to be built beforehand. To initialize, execute these commands in the repository root:
```bash
pnpm install
pnpm build
```
### Overview
See [Architecture](../ARCHITECTURE.md#major-components) for an overview of the packages in this repository.
### Developing Tauri Core and Related Components (Rust API, Macros, Codegen, and Utils)
The code for the Rust crates, including the Core, Macros, Utils, WRY runtime, and a few more are located in the [main Tauri repository](https://github.com/tauri-apps/tauri/tree/dev/crates).
The easiest way to test your changes is to use the [helloworld](https://github.com/tauri-apps/tauri/tree/dev/examples/helloworld) example app. It automatically rebuilds and uses your local copy of the Tauri core packages. Just run `cargo run --example helloworld` after making changes to test them out.
To test local changes against your own application simply point the Tauri create to your local repository. In `src-tauri/Cargo.toml` file change:
`tauri = { version = "2.1.1" }`
to:
`tauri = { path = "path/to/local/tauri/crates/tauri" }`
If any other crates depend on Tauri you will have to point them to the local repo as well.
### Developing Tauri Bundler and Rust CLI
The code for the bundler is located in `[Tauri repo root]/tooling/bundler`, and the code for the Rust CLI is located in `[Tauri repo root]/tooling/cli`. If you are using your local copy of `@tauri-apps/cli` (see above), any changes you make to the bundler and CLI will be automatically built and applied when running the build or dev command. Otherwise, running `cargo install --path .` in the Rust CLI directory will allow you to run `cargo tauri build` and `cargo tauri dev` anywhere, using the updated copy of the bundler and cli. You will have to run this command each time you make a change in either package.
The code for the bundler is located in [crates/tauri-bundler](https://github.com/tauri-apps/tauri/tree/dev/crates/tauri-bundler), and the code for the Rust CLI is located in [tauri-cli](https://github.com/tauri-apps/tauri/tree/dev/crates/tauri-cli).
Running `cargo install --path .` in the Rust CLI directory will allow you to run `cargo tauri build` and `cargo tauri dev` anywhere, using the updated copy of the bundler and cli. You will have to run this command each time you make a change in either package.
You can use `cargo install --path . --debug` to speed up test builds.
### Developing The Node.js CLI (`@tauri-apps/cli`)
`@tauri-apps/cli` is a wrapper to `tauri-cli` so most changes should be written on the Rust CLI. The `[Tauri repo root]/tooling/cli/node` folder contains only packaging scripts to properly publish the Rust CLI binaries to NPM.
### Developing Tauri Core and Related Components (Rust API, Macros, Codegen, and Utils)
The code for the Rust crates, including the Core, Macros, Utils, WRY runtime, and a few more are located in `[Tauri repo root]/core/tauri-(macros/utils)`. The easiest way to test your changes is to use the `[Tauri repo root]/examples/helloworld` app. It automatically rebuilds and uses your local copy of the Tauri core packages. Just run `cargo run --example helloworld` after making changes to test them out.
[`@tauri-apps/cli`](https://github.com/tauri-apps/tauri/tree/dev/packages/cli) is a small wrapper around `tauri-cli` so most changes should be happen in the Rust CLI (see above).
#### Building the documentation locally
You can build the Rust documentation locally running the following script:
```bash
$ RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --all-features --open
$ cargo +nightly doc --all-features --open
```
### Developing the JS API
The JS API provides bindings between the developer's JS in the Webview and the builtin Tauri APIs, written in Rust. Its code is located in `[Tauri repo root]/tooling/api`. After making changes to the code, run `yarn build` to build it. To test your changes, we recommend using the API example app, located in `[Tauri repo root]/examples/api`. It will automatically use your local copy of the JS API and provides a helpful UI to test the various commands.
The JS API provides bindings between the developer's JS in the Webview and the built-in Tauri APIs, written in Rust. Its code is located in [/packages/api](https://github.com/tauri-apps/tauri/tree/dev/packages/api).
After making changes to the code, run `pnpm build` to build it. To test your changes, we recommend using the API example app, located in [/examples/api](https://github.com/tauri-apps/tauri/tree/dev/examples/api). It will automatically use your local copy of the JS API and provides a helpful UI to test the various commands.
## AI Tool Policy
It takes a lot of time to review a Pull Request while it's very easy to make a nonsensical but plausible looking one using AI tools.
It is unfair for other contributors and the reviewers to spend much of the time dealing with this, hence these rules:
1. Review and test all LLM-generated content before submitting, you're the one responsible for it, not the AI.
2. Don't use AI to respond to review comments (except for translations).
We will close the Pull Request with a `ai-slop` tag if you failed to do so.
## Financial Contribution

View File

@@ -45,7 +45,7 @@ body:
id: info
attributes:
label: Full `tauri info` output
description: "Output of `npm run tauri info` or `cargo tauri info`"
description: 'Output of `npm run tauri info` or `cargo tauri info`'
render: text
validations:
required: true

View File

@@ -1,8 +1,7 @@
---
name: 📚 Docs Report
about: Create a report to help us improve the docs
title: "[docs] "
title: '[docs] '
labels: 'type: documentation'
assignees: ''
---

View File

@@ -5,7 +5,7 @@
name: 💡 Feature Request
title: '[feat] '
description: Suggest an idea
labels: 'type: feature request'
labels: ['type: feature request']
body:
- type: textarea
@@ -22,7 +22,7 @@ body:
attributes:
label: "Describe the solution you'd like"
description: A clear description of what change you would like
placeholder: "I would like to..."
placeholder: 'I would like to...'
validations:
required: true
@@ -31,7 +31,7 @@ body:
attributes:
label: Alternatives considered
description: "Any alternative solutions you've considered"
- type: textarea
id: context
attributes:

View File

@@ -5,7 +5,7 @@ Before submitting a PR, please read https://github.com/tauri-apps/tauri/blob/dev
Examples of good title:
- fix(windows): fix race condition in event loop
- docs: update docstrings
- docs: update example for `App::show`
- feat: add `Window::set_fullscreen`
Examples of bad title:

57
.github/RELEASING.md vendored Normal file
View File

@@ -0,0 +1,57 @@
# Tauri Releasing Handbook
This handbook contains information about our release pipeline and how to deal with common issues.
This document is mainly intended for team members responsible for maintaining the project.
- [Covector](#covector)
- [Version Pull Request](#version-pull-request)
- [Releasing and Publishing](#releasing-and-publishing)
- [Publishing failed, what to do?](#publishing-failed-what-to-do)
## Covector
We use [`covector`](https://github.com/jbolda/covector) to manage our version bumps and release pipeline.
It can be configured in [`.changes/config.json`](../.changes/config.json) which includes how each package should be published step by step.
Some packages can't be published directly using `covector` as it requires to be built on a matrix of platforms
such as `tauri-cli` prebuilt binaries which is published using [publish-cli-rs.yml](./workflows/publish-cli-rs.yml)
and `@tauri-apps/cli` native Node.js modules which is published using using [publish-cli-js.yml](./workflows/publish-cli-js.yml)
both of which are triggered after `covector` has created a github release for both of them, see `Trigger @tauri-apps/cli publishing workflow`
and `Trigger tauri-cli publishing workflow` steps in [covector-version-or-publish.yml](./workflows/covector-version-or-publish.yml)
## Version Pull Request
On each pull request merged, [covector-version-or-publish.yml](./workflows/covector-version-or-publish.yml) workflow will run, and:
When there're change files inside `.changes` folder and they're not all included in `pre.json` (usually this is only when we are in `-alpha` to `-rc` phase), it will open/update an `Apply Version Updates From Current Changes` PR (https://github.com/tauri-apps/tauri/pull/11029 for example) that bumps all packages based on current existing change files and generate `CHANGELOG.md` entries. see `Create Pull Request With Versions Bumped` step in [covector-version-or-publish.yml](./workflows/covector-version-or-publish.yml).
Otherwise, covector will start to publish packages configured in [`.changes/config.json`](../.changes/config.json).
## Releasing and Publishing
Releasing can be as easy as merging the version pull request but here is a checklist to follow:
- [ ] Double check that every package is bumped correctly and there are no accidental major or minor being released unless that is indeed the intention.
- [ ] Make sure that there are no pending or unfinished [covector-version-or-publish.yml](./workflows/covector-version-or-publish.yml) workflow runs.
- [ ] Approve and merge the version pull request
## Publishing failed, what to do?
It is possible and due to many factors that one or many packages release can fail to release, there is no reason to panic, we can fix this.
Did all of the packages fail to release?
- yes?
- [ ] `git checkout -b revert-branch`
- [ ] `git revert HEAD~1`
- no?
- [ ] `git checkout -b revert-branch`
- [ ] `git revert HEAD~1 --no-commit`
- [ ] Edit the commit and revert only changes related to packages that failed to publish
- [ ] `git revert --continue`
Then:
- [ ] Make a pull request with reverted changes, get it approved and merged
- [ ] Fix the issue that caused releases to fail in another PR, get it approved and merged
- [ ] Repeat the release process again.

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -8,13 +8,22 @@ on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
push:
pull_request:
paths:
- '.github/workflows/audit.yml'
- '**/Cargo.lock'
- '**/Cargo.toml'
- '**/package.json'
- '**/yarn.lock'
- '**/pnpm-lock.yaml'
push:
branches:
- dev
paths:
- '.github/workflows/audit.yml'
- '**/Cargo.lock'
- '**/Cargo.toml'
- '**/package.json'
- '**/pnpm-lock.yaml'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
@@ -26,7 +35,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: rust audit
uses: rustsec/audit-check@v1
uses: rustsec/audit-check@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
@@ -34,11 +43,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: audit workspace
run: yarn audit
- name: audit @tauri-apps/api
working-directory: tooling/api
run: yarn audit
- name: audit @tauri-apps/cli
working-directory: tooling/cli/node
run: yarn audit
- run: npm i -g --force corepack
- uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- run: pnpm audit

View File

@@ -8,11 +8,11 @@ on:
push:
branches:
- dev
- 1.x
workflow_dispatch:
pull_request:
paths:
- '.github/workflows/bench.yml'
- 'bench/**'
env:
RUST_BACKTRACE: 1
@@ -45,7 +45,7 @@ jobs:
targets: ${{ matrix.platform.target }}
- name: setup python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.10'
architecture: x64
@@ -55,7 +55,7 @@ jobs:
python -m pip install --upgrade pip
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
libwebkit2gtk-4.1-dev libayatana-appindicator3-dev \
webkit2gtk-4.1 libayatana-appindicator3-dev \
xvfb \
at-spi2-core
wget https://github.com/sharkdp/hyperfine/releases/download/v1.18.0/hyperfine_1.18.0_amd64.deb
@@ -63,15 +63,13 @@ jobs:
pip install memory_profiler
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
core -> ../target
tooling/bench/tests
- name: run benchmarks
run: |
cargo build --release -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --target ${{ matrix.platform.target }} --manifest-path tooling/bench/tests/Cargo.toml
xvfb-run --auto-servernum cargo run --manifest-path tooling/bench/Cargo.toml --bin run_benchmark
cargo build --manifest-path bench/tests/cpu_intensive/src-tauri/Cargo.toml --release -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --target ${{ matrix.platform.target }}
cargo build --manifest-path bench/tests/files_transfer/src-tauri/Cargo.toml --release -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --target ${{ matrix.platform.target }}
cargo build --manifest-path bench/tests/helloworld/src-tauri/Cargo.toml --release -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --target ${{ matrix.platform.target }}
xvfb-run --auto-servernum cargo run --manifest-path bench/Cargo.toml --bin run_benchmark
- name: clone benchmarks_results
if: github.repository == 'tauri-apps/tauri' && github.ref == 'refs/heads/dev'
@@ -84,7 +82,7 @@ jobs:
- name: push new benchmarks
if: github.repository == 'tauri-apps/tauri' && github.ref == 'refs/heads/dev'
run: |
cargo run --manifest-path tooling/bench/Cargo.toml --bin build_benchmark_jsons
cargo run --manifest-path bench/Cargo.toml --bin build_benchmark_jsons
cd gh-pages
git pull
git config user.name "tauri-bench"

View File

@@ -19,7 +19,19 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v2
- name: check change files end with .md
run: |
for file in .changes/*
do
if [[ ! "$file" =~ \.(md|json)$ ]]; then
echo ".changes directory should only contain files that end with .md"
echo "found an invalid file in .changes directory:"
echo "$file"
exit 1
fi
done
- uses: dorny/paths-filter@v3
id: filter
with:
list-files: shell

View File

@@ -8,11 +8,12 @@ on:
pull_request:
paths:
- '.github/workflows/check-generated-files.yml'
- 'tooling/api/src/**'
- 'core/tauri/scripts/bundle.global.js'
- 'core/tauri-utils/src/config.rs'
- 'tooling/cli/schema.json'
- 'core/tauri-config-schema/schema.json'
- 'pnpm-lock.yaml'
- 'packages/api/src/**'
- 'crates/tauri/scripts/bundle.global.js'
- 'crates/tauri-utils/src/config.rs'
- 'crates/tauri-cli/config.schema.json'
- 'crates/tauri-schema-generator/schemas/*.json'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
@@ -26,19 +27,18 @@ jobs:
schema: ${{ steps.filter.outputs.schema }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v2
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
api:
- 'tooling/api/src/**'
- 'core/tauri/scripts/bundle.global.js'
- 'pnpm-lock.yaml'
- 'packages/api/src/**'
- 'crates/tauri/scripts/bundle.global.js'
schema:
- 'core/tauri-utils/src/config.rs'
- 'tooling/cli/schema.json'
- 'core/tauri-config-schema/schema.json'
- 'core/tauri-acl-schema/*.json'
- 'crates/tauri-utils/src/config.rs'
- 'crates/tauri-cli/config.schema.json'
- 'crates/tauri-schema-generator/schemas/*.json'
api:
runs-on: ubuntu-latest
@@ -46,10 +46,17 @@ jobs:
if: needs.changes.outputs.api == 'true'
steps:
- uses: actions/checkout@v4
- run: npm i -g --force corepack
- uses: actions/setup-node@v4
with:
node-version: 'lts/*'
cache: 'pnpm'
- name: install deps
run: pnpm i --frozen-lockfile
- name: build api
working-directory: tooling/api
run: yarn && yarn build
run: pnpm build
working-directory: packages/api
- name: check api
run: ./.scripts/ci/has-diff.sh
@@ -69,14 +76,9 @@ jobs:
sudo apt-get install -y libgtk-3-dev
- uses: Swatinem/rust-cache@v2
with:
workspaces: core -> ../target
- name: generate config schema
run: cargo build --manifest-path ./core/tauri-config-schema/Cargo.toml
- name: generate schemas
run: cargo build --manifest-path ./crates/tauri-schema-generator/Cargo.toml
- name: generate ACL schema
run: cargo build --manifest-path ./core/tauri-acl-schema/Cargo.toml
- name: check schema
- name: check schemas
run: ./.scripts/ci/has-diff.sh

View File

@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v2
- uses: dorny/paths-filter@v3
id: filter
with:
list-files: shell

View File

@@ -27,4 +27,4 @@ jobs:
uses: jbolda/covector/packages/action@covector-v0
with:
token: ${{ secrets.GITHUB_TOKEN }}
command: "status"
command: 'status'

View File

@@ -1,231 +0,0 @@
# Copyright 2019-2024 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: covector version or publish
on:
push:
branches:
- 1.x
jobs:
msrv-list:
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: false
matrix:
platform:
- {
target: x86_64-pc-windows-msvc,
os: windows-latest,
toolchain: '1.61.0'
}
- {
target: x86_64-unknown-linux-gnu,
os: ubuntu-latest,
toolchain: '1.60.0'
}
- {
target: x86_64-apple-darwin,
os: macos-latest,
toolchain: '1.60.0'
}
steps:
- uses: actions/checkout@v4
- name: install rust ${{ matrix.platform.toolchain }}
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.platform.toolchain }}
target: ${{ matrix.platform.target }}
override: true
default: true
- name: install Linux dependencies
if: contains(matrix.platform.target, 'unknown-linux')
run: |
sudo apt-get update
sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev
- uses: Swatinem/rust-cache@v2
- name: delete lockfile
run: rm Cargo.lock
- name: Downgrade crates with MSRV conflict
# The --precise flag can only be used once per invocation.
run: |
cargo update -p system-deps:6.2.0 --precise 6.1.1
cargo update -p toml:0.7.8 --precise 0.7.3
cargo update -p toml_edit:0.19.15 --precise 0.19.8
cargo update -p embed-resource --precise 2.3.0
cargo update -p toml_datetime --precise 0.6.1
cargo update -p serde_spanned --precise 0.6.1
cargo update -p winnow --precise 0.4.1
cargo update -p plist --precise 1.5.1
cargo update -p time --precise 0.3.15
cargo update -p ignore --precise 0.4.18
cargo update -p raw-window-handle --precise 0.5.0
cargo update -p cargo_toml:0.15.3 --precise 0.15.2
cargo update -p zbus --precise 3.13.0
cargo update -p zbus_names --precise 2.5.0
cargo update -p colored --precise 2.0.2
cargo update -p arboard --precise 3.2.1
cargo update -p tempfile --precise 3.6.0
cargo update -p serde_with:3.6.1 --precise 3.0.0
cargo update -p tokio --precise 1.29.0
cargo update -p flate2 --precise 1.0.26
cargo update -p h2 --precise 0.3.20
cargo update -p reqwest --precise 0.11.18
cargo update -p bstr --precise 1.6.2
cargo update -p cfg-expr:0.15.7 --precise 0.15.4
cargo update -p memchr --precise 2.6.2
cargo update -p async-executor --precise 1.5.1
cargo update -p proptest --precise 1.2.0
cargo update -p regex --precise 1.9.6
cargo update -p bstr --precise 1.6.2
cargo update -p backtrace --precise 0.3.68
cargo update -p blocking --precise 1.4.1
cargo update -p ignore --precise 0.4.18
cargo update -p regex --precise 1.9.6
cargo update -p globset --precise 0.4.13
cargo update -p crossbeam-channel --precise 0.5.8
cargo update -p crossbeam-utils --precise 0.8.16
cargo update -p image --precise 0.24.4
cargo update -p async-process --precise 1.7.0
cargo update -p is-terminal --precise 0.4.7
cargo update -p tar --precise 0.4.39
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
run-integration-tests:
runs-on: ${{ matrix.platform }}
needs: msrv-list
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: install stable
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: install Linux dependencies
if: matrix.platform == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y webkit2gtk-4.0 libayatana-appindicator3-dev libfuse2
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
core -> ../target
tooling/cli
- name: build CLI
uses: actions-rs/cargo@v1
with:
command: build
args: --manifest-path ./tooling/cli/Cargo.toml
- name: run integration tests
run: cargo test --test '*' -- --ignored
- name: run CLI tests
timeout-minutes: 30
run: |
cd ./tooling/cli/node
yarn
yarn build
yarn test
version-or-publish:
runs-on: ubuntu-latest
timeout-minutes: 65
outputs:
change: ${{ steps.covector.outputs.change }}
commandRan: ${{ steps.covector.outputs.commandRan }}
successfulPublish: ${{ steps.covector.outputs.successfulPublish }}
needs:
- run-integration-tests
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v2
with:
node-version: 14
registry-url: 'https://registry.npmjs.org'
cache: yarn
cache-dependency-path: tooling/*/yarn.lock
- name: cargo login
run: cargo login ${{ secrets.ORG_CRATES_IO_TOKEN }}
- name: git config
run: |
git config --global user.name "${{ github.event.pusher.name }}"
git config --global user.email "${{ github.event.pusher.email }}"
- name: covector version or publish (publish when no change files present)
uses: jbolda/covector/packages/action@covector-v0
id: covector
env:
NODE_AUTH_TOKEN: ${{ secrets.ORG_NPM_TOKEN }}
CARGO_AUDIT_OPTIONS: ${{ secrets.CARGO_AUDIT_OPTIONS }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
command: 'version-or-publish'
createRelease: true
- name: Create Pull Request With Versions Bumped
if: steps.covector.outputs.commandRan == 'version'
uses: tauri-apps/create-pull-request@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: release/version-updates-v1
title: Apply Version Updates From Current Changes (v1)
commit-message: 'apply version updates'
labels: 'version updates'
body: ${{ steps.covector.outputs.change }}
- name: Trigger doc update
if: |
steps.covector.outputs.successfulPublish == 'true' &&
steps.covector.outputs.packagesPublished != ''
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.ORG_TAURI_BOT_PAT }}
repository: tauri-apps/tauri-docs
event-type: update-docs
- name: Trigger `@tauri-apps/cli` publishing workflow
if: |
steps.covector.outputs.successfulPublish == 'true' &&
contains(steps.covector.outputs.packagesPublished, '@tauri-apps/cli')
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.ORG_TAURI_BOT_PAT }}
event-type: publish-js-cli
client-payload: >-
{"releaseId": "${{ steps.covector.outputs['-tauri-apps-cli-releaseId'] }}" }
- name: Trigger `tauri-cli` publishing workflow
if: |
steps.covector.outputs.successfulPublish == 'true' &&
contains(steps.covector.outputs.packagesPublished, 'tauri-cli')
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.ORG_TAURI_BOT_PAT }}
event-type: publish-clirs

View File

@@ -23,6 +23,12 @@ jobs:
with:
fetch-depth: 0
- run: npm i -g --force corepack
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: install stable
uses: dtolnay/rust-toolchain@stable
@@ -30,16 +36,12 @@ jobs:
if: matrix.platform == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y webkit2gtk-4.1 libayatana-appindicator3-dev libfuse2
sudo apt-get install -y webkit2gtk-4.1 libayatana-appindicator3-dev libfuse2 librsvg2-dev
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
core -> ../target
tooling/cli
- name: build CLI
run: cargo build --manifest-path ./tooling/cli/Cargo.toml
run: cargo build --manifest-path ./crates/tauri-cli/Cargo.toml
- name: run integration tests
run: cargo test --test '*' -- --ignored
@@ -47,14 +49,19 @@ jobs:
- name: run CLI tests
timeout-minutes: 30
run: |
cd ./tooling/cli/node
yarn
yarn build
yarn test
cd ./packages/cli
pnpm i --frozen-lockfile
pnpm build
pnpm test
version-or-publish:
runs-on: ubuntu-latest
timeout-minutes: 65
permissions:
actions: write # required for workflow_dispatch
contents: write # required to create new releases
pull-requests: write # required to open version update pr
id-token: write # pnpm provenance / oidc token
outputs:
change: ${{ steps.covector.outputs.change }}
commandRan: ${{ steps.covector.outputs.commandRan }}
@@ -66,12 +73,10 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v3
- run: npm i -g --force corepack
- uses: actions/setup-node@v6
with:
node-version: 18
registry-url: 'https://registry.npmjs.org'
cache: yarn
cache-dependency-path: tooling/*/yarn.lock
node-version: 24
- name: cargo login
run: cargo login ${{ secrets.ORG_CRATES_IO_TOKEN }}
@@ -80,21 +85,30 @@ jobs:
git config --global user.name "${{ github.event.pusher.name }}"
git config --global user.email "${{ github.event.pusher.email }}"
- name: install Linux dependencies
run: |
sudo apt-get update
sudo apt-get install -y webkit2gtk-4.1 libayatana-appindicator3-dev librsvg2-dev
- name: covector version or publish (publish when no change files present)
uses: jbolda/covector/packages/action@covector-v0
id: covector
env:
NODE_AUTH_TOKEN: ${{ secrets.ORG_NPM_TOKEN }}
CARGO_AUDIT_OPTIONS: ${{ secrets.CARGO_AUDIT_OPTIONS }}
NPM_CONFIG_PROVENANCE: true
with:
command: 'version-or-publish'
token: ${{ secrets.GITHUB_TOKEN }}
createRelease: true
recognizeContributors: true
- name: Sync Cargo.lock
if: steps.covector.outputs.commandRan == 'version'
run: cargo tree --depth 0
- name: Create Pull Request With Versions Bumped
if: steps.covector.outputs.commandRan == 'version'
uses: tauri-apps/create-pull-request@v3
uses: peter-evans/create-pull-request@67ccf781d68cd99b580ae25a5c18a1cc84ffff1f # 7.0.6
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: release/version-updates
@@ -102,12 +116,13 @@ jobs:
commit-message: 'apply version updates'
labels: 'version updates'
body: ${{ steps.covector.outputs.change }}
sign-commits: true
- name: Trigger doc update
if: |
steps.covector.outputs.successfulPublish == 'true' &&
steps.covector.outputs.packagesPublished != ''
uses: peter-evans/repository-dispatch@v1
uses: peter-evans/repository-dispatch@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # 3.0.0
with:
token: ${{ secrets.ORG_TAURI_BOT_PAT }}
repository: tauri-apps/tauri-docs
@@ -119,7 +134,7 @@ jobs:
contains(steps.covector.outputs.packagesPublished, '@tauri-apps/cli')
run: gh workflow run 31554138 -r dev -f releaseId=${{ steps.covector.outputs['-tauri-apps-cli-releaseId'] }}
env:
GH_TOKEN: ${{ secrets.ORG_TAURI_BOT_PAT }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Trigger `tauri-cli` publishing workflow
if: |
@@ -127,4 +142,4 @@ jobs:
contains(steps.covector.outputs.packagesPublished, 'tauri-cli')
run: gh workflow run 31554139 -r dev
env:
GH_TOKEN: ${{ secrets.ORG_TAURI_BOT_PAT }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -0,0 +1,25 @@
# Copyright 2019-2024 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: deploy schema worker
on:
push:
branches:
- dev
paths:
- '.github/workflows/deploy-schema-worker.yml'
- 'crates/tauri-schema-worker/**'
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: cloudflare/wrangler-action@v3
with:
command: deploy
workingDirectory: 'crates/tauri-schema-worker'
apiToken: ${{ secrets.SCHEMA_WORKER_CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.SCHEMA_WORKER_CLOUDFLARE_ACCOUNT_ID }}

View File

@@ -31,20 +31,20 @@ jobs:
run: cargo install cross --git https://github.com/cross-rs/cross
- name: Upload cross
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: cross
path: '~/.cargo/bin/cross'
if-no-files-found: error
- name: build CLI
run: cargo build --manifest-path ./tooling/cli/Cargo.toml
run: cargo build --manifest-path ./crates/tauri-cli/Cargo.toml
- name: Upload CLI
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: cargo-tauri
path: tooling/cli/target/debug/cargo-tauri
path: crates/tauri-cli/target/debug/cargo-tauri
if-no-files-found: error
docker:
@@ -66,19 +66,20 @@ jobs:
with:
targets: ${{ matrix.target.name }}
- run: npm i -g --force corepack
- name: Setup node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 18
node-version: 'lts/*'
- name: Download cross
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4.1.7
with:
name: cross
path: '~/.cargo/bin'
- name: Download CLI
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4.1.7
with:
name: cargo-tauri
path: 'examples/api'
@@ -111,10 +112,10 @@ jobs:
- name: Test
run: |
cd tooling/api
yarn && yarn build
cd packages/api
pnpm i --frozen-lockfile && pnpm build
cd ../../examples/api
yarn
pnpm i --frozen-lockfile
. .setup-cross.sh
chmod +x cargo-tauri
chmod +x $HOME/.cargo/bin/cross

51
.github/workflows/fmt.yml vendored Normal file
View File

@@ -0,0 +1,51 @@
# Copyright 2019-2024 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: check formatting
on:
pull_request:
jobs:
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install Rust stable and rustfmt
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: run cargo fmt
run: cargo fmt --all -- --check
prettier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm i -g --force corepack
- uses: actions/setup-node@v4
with:
node-version: 'lts/*'
cache: 'pnpm'
- run: pnpm i --frozen-lockfile
- run: pnpm format:check
taplo:
name: taplo (.toml files)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: install taplo-cli
uses: taiki-e/install-action@v2
with:
tool: taplo-cli
- run: taplo fmt --check --diff

View File

@@ -1,70 +0,0 @@
# Copyright 2019-2024 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: lint core
on:
push:
branches:
- dev
- 1.x
pull_request:
paths:
- '.github/workflows/lint-core.yml'
- 'core/**'
- '!core/tauri/scripts/**'
- 'examples/**'
env:
RUST_BACKTRACE: 1
CARGO_PROFILE_DEV_DEBUG: 0 # This would add unnecessary bloat to the target folder, decreasing cache efficiency.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install Rust stable and rustfmt
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: run cargo fmt
run: cargo fmt --all -- --check
clippy:
runs-on: ubuntu-latest
strategy:
matrix:
clippy:
- { args: '', key: 'empty' }
- { args: '--all-features', key: 'all' }
- { args: '--features custom-protocol', key: 'custom-protocol' }
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y webkit2gtk-4.1 libayatana-appindicator3-dev
- name: install Rust stable with clippy
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
with:
workspaces: core -> ../target
save-if: ${{ matrix.clippy.key == 'all' }}
- name: Run clippy - ${{ matrix.clippy.key }}
run: cargo clippy --manifest-path ./core/tauri/Cargo.toml --all-targets ${{ matrix.clippy.args }} -- -D warnings

View File

@@ -8,53 +8,33 @@ on:
pull_request:
paths:
- '.github/workflows/lint-js.yml'
- 'tooling/cli/node/**'
- 'tooling/api/**'
- 'packages/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
eslint-cli:
eslint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- run: npm i -g --force corepack
- uses: actions/setup-node@v4
with:
node-version: '18'
cache: yarn
cache-dependency-path: tooling/cli/node/yarn.lock
- name: install deps via yarn
working-directory: ./tooling/cli/node/
run: yarn
# nothing to lint
#- name: run lint
# working-directory: ./tooling/cli/node/
# run: yarn lint
- name: run format
working-directory: ./tooling/cli/node/
run: yarn format:check
node-version: 'lts/*'
cache: 'pnpm'
- run: pnpm i --frozen-lockfile
- run: pnpm eslint:check
eslint-api:
typescript:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- run: npm i -g --force corepack
- uses: actions/setup-node@v4
with:
node-version: '18'
cache: yarn
cache-dependency-path: tooling/api/yarn.lock
- name: install deps via yarn
working-directory: ./tooling/api/
run: yarn
- name: run ts:check
working-directory: ./tooling/api/
run: yarn ts:check
- name: run lint
working-directory: ./tooling/api/
run: yarn lint
- name: run format
working-directory: ./tooling/api/
run: yarn format:check
node-version: 'lts/*'
cache: 'pnpm'
- run: pnpm i --frozen-lockfile
- run: pnpm ts:check

View File

@@ -2,17 +2,16 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: lint cli
name: lint rust
on:
push:
branches:
- dev
- 1.x
pull_request:
paths:
- '.github/workflows/lint-cli.yml'
- 'tooling/cli/**'
- '.github/workflows/lint-rust.yml'
- 'crates/**'
env:
RUST_BACKTRACE: 1
@@ -23,27 +22,13 @@ concurrency:
cancel-in-progress: true
jobs:
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install Rust stable and rustfmt
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Run cargo fmt
run: cargo fmt --manifest-path ./tooling/cli/Cargo.toml --all -- --check
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install Rust stable and clippy
- name: install rust stable and clippy
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
@@ -51,11 +36,8 @@ jobs:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev
sudo apt-get install -y libgtk-3-dev webkit2gtk-4.1 libayatana-appindicator3-dev
- uses: Swatinem/rust-cache@v2
with:
workspaces: tooling/cli
- name: run Clippy
run: cargo clippy --manifest-path ./tooling/cli/Cargo.toml --all-targets --all-features -- -D warnings
- run: cargo clippy --all-targets --all-features -- -D warnings

View File

@@ -18,7 +18,11 @@ on:
defaults:
run:
working-directory: tooling/cli/node/
working-directory: packages/cli/
permissions:
contents: write # update release
id-token: write # oidc token
jobs:
build:
@@ -30,93 +34,102 @@ jobs:
target: x86_64-apple-darwin
architecture: x64
build: |
yarn build:release --target=x86_64-apple-darwin
pnpm build --target=x86_64-apple-darwin
strip -x *.node
- host: windows-latest
build: yarn build:release
build: pnpm build
target: x86_64-pc-windows-msvc
architecture: x64
- host: windows-latest
build: yarn build:release --target i686-pc-windows-msvc
build: pnpm build --target i686-pc-windows-msvc
target: i686-pc-windows-msvc
architecture: x64
- host: windows-latest
architecture: x64
target: aarch64-pc-windows-msvc
build: yarn build:release --target aarch64-pc-windows-msvc --features native-tls-vendored --cargo-flags="--no-default-features"
- host: ubuntu-20.04
build: pnpm build --target aarch64-pc-windows-msvc
- host: ubuntu-22.04
target: x86_64-unknown-linux-gnu
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
build: |
cd tooling/cli/node
yarn build:release --target x86_64-unknown-linux-gnu
npm i -g --force corepack
cd packages/cli
pnpm build --target x86_64-unknown-linux-gnu
strip *.node
- host: ubuntu-20.04
- host: ubuntu-22.04
target: x86_64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: |
cd tooling/cli/node
yarn build:release
cd packages/cli
pnpm build
strip *.node
- host: macos-latest
target: aarch64-apple-darwin
build: |
yarn build:release --features native-tls-vendored --target=aarch64-apple-darwin
pnpm build --features native-tls-vendored --target=aarch64-apple-darwin
strip -x *.node
- host: ubuntu-20.04
- host: ubuntu-22.04
target: aarch64-unknown-linux-gnu
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
build: |
cd tooling/cli/node
yarn build:release --target aarch64-unknown-linux-gnu
npm i -g --force corepack
cd packages/cli
pnpm build --target aarch64-unknown-linux-gnu
aarch64-unknown-linux-gnu-strip *.node
- host: ubuntu-20.04
- host: ubuntu-22.04
architecture: x64
target: armv7-unknown-linux-gnueabihf
setup: |
sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y
build: |
yarn build:release --target=armv7-unknown-linux-gnueabihf
pnpm build --target=armv7-unknown-linux-gnueabihf
arm-linux-gnueabihf-strip *.node
- host: ubuntu-20.04
- host: ubuntu-22.04
architecture: x64
target: aarch64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: |
cd tooling/cli/node
cd packages/cli
rustup target add aarch64-unknown-linux-musl
yarn build:release --target aarch64-unknown-linux-musl
pnpm build --target aarch64-unknown-linux-musl
/aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip *.node
name: stable - ${{ matrix.settings.target }} - node@16
- host: ubuntu-22.04
architecture: x64
target: riscv64gc-unknown-linux-gnu
setup: |
sudo apt-get update
sudo apt-get install gcc-riscv64-linux-gnu g++-riscv64-linux-gnu -y
build: |
pnpm build --target=riscv64gc-unknown-linux-gnu
riscv64-linux-gnu-strip *.node
name: stable - ${{ matrix.settings.target }} - node@20
runs-on: ${{ matrix.settings.host }}
steps:
- uses: actions/checkout@v4
- run: npm i -g --force corepack
- name: Setup node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
if: ${{ !matrix.settings.docker }}
with:
node-version: 16
check-latest: true
cache: yarn
cache-dependency-path: 'tooling/cli/node/yarn.lock'
node-version: 20
cache: 'pnpm'
architecture: ${{ matrix.settings.architecture }}
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
if: ${{ !matrix.settings.docker }}
with:
targets: ${{ matrix.settings.target }}
- uses: Swatinem/rust-cache@v1
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.settings.target }}
working-directory: 'tooling/cli/'
if: ${{ matrix.settings.docker }}
- name: Setup toolchain
run: ${{ matrix.settings.setup }}
if: ${{ matrix.settings.setup }}
shell: bash
- name: Install dependencies
run: yarn install --ignore-scripts --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000
run: pnpm i --frozen-lockfile --ignore-scripts
- name: Build in docker
uses: addnab/docker-run-action@v3
@@ -132,10 +145,10 @@ jobs:
shell: bash
- name: Upload artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: bindings-${{ matrix.settings.target }}
path: tooling/cli/node/${{ env.APP_NAME }}.*.node
path: packages/cli/${{ env.APP_NAME }}.*.node
if-no-files-found: error
# build-freebsd:
# runs-on: macos-10.15
@@ -157,7 +170,7 @@ jobs:
# prepare: |
# pkg install -y curl node14 python2
# curl -qL https://www.npmjs.com/install.sh | sh
# npm install -g yarn
# npm install -g pnpm
# curl https://sh.rustup.rs -sSf --output rustup.sh
# sh rustup.sh -y --profile minimal --default-toolchain stable
# export PATH="/usr/local/cargo/bin:$PATH"
@@ -165,8 +178,8 @@ jobs:
# rustc --version
# echo "~~~~ node -v ~~~~"
# node -v
# echo "~~~~ yarn --version ~~~~"
# yarn --version
# echo "~~~~ pnpm --version ~~~~"
# pnpm --version
# run: |
# export PATH="/usr/local/cargo/bin:$PATH"
# pwd
@@ -174,17 +187,17 @@ jobs:
# whoami
# env
# freebsd-version
# cd ./tooling/cli/node/
# yarn install --ignore-scripts --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000
# yarn build:release
# cd ./packages/cli/
# pnpm i --frozen-lockfile --ignore-scripts
# pnpm build
# strip -x *.node
# rm -rf node_modules
# rm -rf ../target
# rm -rf ../../target
# - name: Upload artifact
# uses: actions/upload-artifact@v3
# uses: actions/upload-artifact@v4
# with:
# name: bindings-freebsd
# path: tooling/cli/node/${{ env.APP_NAME }}.*.node
# path: packages/cli/${{ env.APP_NAME }}.*.node
# if-no-files-found: error
test-macOS-windows-binding:
name: Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }}
@@ -199,31 +212,29 @@ jobs:
- host: windows-latest
target: x86_64-pc-windows-msvc
node:
- '16'
- '18'
- '20'
runs-on: ${{ matrix.settings.host }}
steps:
- uses: actions/checkout@v4
- run: npm i -g --force corepack
- name: Setup node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
check-latest: true
cache: yarn
cache-dependency-path: 'tooling/cli/node/yarn.lock'
cache: 'pnpm'
- name: Install dependencies
run: yarn install --ignore-scripts --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000
run: pnpm i --frozen-lockfile --ignore-scripts
- name: Download artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4.1.7
with:
name: bindings-${{ matrix.settings.target }}
path: 'tooling/cli/node/'
path: 'packages/cli/'
- name: List packages
run: ls -R .
shell: bash
- name: Test bindings
run: yarn test
run: pnpm test
test-linux-x64-gnu-binding:
name: Test bindings on Linux-x64-gnu - node@${{ matrix.node }}
needs:
@@ -232,35 +243,33 @@ jobs:
fail-fast: false
matrix:
node:
- '16'
- '18'
- '20'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm i -g --force corepack
- name: Setup node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
check-latest: true
cache: yarn
cache-dependency-path: 'tooling/cli/node/yarn.lock'
cache: 'pnpm'
- name: Install dependencies
run: yarn install --ignore-scripts --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000
run: pnpm i --frozen-lockfile --ignore-scripts
- name: Download artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4.1.7
with:
name: bindings-x86_64-unknown-linux-gnu
path: 'tooling/cli/node/'
path: 'packages/cli'
- name: List packages
run: ls -R .
shell: bash
- name: install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y webkit2gtk-4.1 libayatana-appindicator3-dev
sudo apt-get install -y webkit2gtk-4.1 libayatana-appindicator3-dev librsvg2-dev
- name: Test bindings
run: yarn test
run: pnpm test
test-linux-x64-musl-binding:
name: Test bindings on x86_64-unknown-linux-musl - node@${{ matrix.node }}
needs:
@@ -269,7 +278,6 @@ jobs:
fail-fast: false
matrix:
node:
- '16'
- '18'
- '20'
runs-on: ubuntu-latest
@@ -277,32 +285,31 @@ jobs:
image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
steps:
- uses: actions/checkout@v4
- run: npm i -g --force corepack
- name: Setup node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
check-latest: true
cache: yarn
cache-dependency-path: 'tooling/cli/node/yarn.lock'
cache: 'pnpm'
- name: Install dependencies
run: yarn install --ignore-scripts --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000
run: pnpm i --frozen-lockfile --ignore-scripts
- name: Download artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4.1.7
with:
name: bindings-x86_64-unknown-linux-musl
path: 'tooling/cli/node/'
path: 'packages/cli/'
- name: List packages
run: ls -R .
shell: bash
- name: Setup and run tests
run: |
yarn tauri --help
pnpm tauri --help
ls -la
#- name: Setup and run tests
# run: |
# rustup install stable
# rustup default stable
# yarn test
# pnpm test
# ls -la
test-linux-arm-bindings:
name: Test bindings on ${{ matrix.image }} - node@${{ matrix.node }}
@@ -312,12 +319,10 @@ jobs:
fail-fast: false
matrix:
node:
- '16'
- '18'
- '20'
image:
- ghcr.io/napi-rs/napi-rs/nodejs:aarch64-16
- ghcr.io/napi-rs/napi-rs/nodejs:armhf-16
runs-on: ubuntu-latest
steps:
- run: docker run --rm --privileged multiarch/qemu-user-static:register --reset
@@ -326,18 +331,16 @@ jobs:
- name: List packages
run: ls -R .
shell: bash
- name: Install dependencies
run: yarn install --ignore-scripts --ignore-platform --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000
- name: Download aarch64-gnu artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4.1.7
with:
name: bindings-aarch64-unknown-linux-gnu
path: 'tooling/cli/node/'
path: 'packages/cli'
- name: Download armv7-gnueabihf artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4.1.7
with:
name: bindings-armv7-unknown-linux-gnueabihf
path: 'tooling/cli/node/'
path: 'packages/cli/'
# TODO: actually run test, blocked by https://github.com/rust-lang/cargo/issues/8719
- uses: addnab/docker-run-action@v3
with:
@@ -355,8 +358,8 @@ jobs:
eval "$(fnm env --use-on-cd)"
fnm install ${{ matrix.node }}
fnm use ${{ matrix.node }}
cd tooling/cli/node
yarn tauri --help
cd packages/cli
node tauri.js --help
ls -la
publish:
name: Publish
@@ -369,29 +372,27 @@ jobs:
#- test-linux-arm-bindings
steps:
- uses: actions/checkout@v4
- run: npm i -g --force corepack
- name: Setup node
uses: actions/setup-node@v3
uses: actions/setup-node@v6
with:
node-version: 20
check-latest: true
cache: yarn
cache-dependency-path: 'tooling/cli/node/yarn.lock'
node-version: 24
cache: 'pnpm'
- name: Install dependencies
run: yarn install --ignore-scripts --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000
run: pnpm i --frozen-lockfile --ignore-scripts
- name: Download all artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4.1.7
with:
path: tooling/cli/node/artifacts
path: packages/cli/artifacts
- name: Move artifacts
run: yarn artifacts
run: pnpm artifacts
- name: List packages
run: ls -R ./npm
shell: bash
- name: Publish
run: |
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
npm publish --tag next
npm publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.ORG_NPM_TOKEN }}
NODE_AUTH_TOKEN: ''
RELEASE_ID: ${{ github.event.client_payload.releaseId || inputs.releaseId }}

View File

@@ -18,7 +18,7 @@ jobs:
fail-fast: false
matrix:
config:
- os: ubuntu-20.04
- os: ubuntu-22.04
rust_target: x86_64-unknown-linux-gnu
ext: ''
args: ''
@@ -37,34 +37,61 @@ jobs:
- os: windows-latest
rust_target: aarch64-pc-windows-msvc
ext: '.exe'
args: '--no-default-features --features native-tls-vendored'
args: ''
- os: ubuntu-22.04
rust_target: riscv64gc-unknown-linux-gnu
ext: ''
args: ''
cross: true
steps:
- uses: actions/checkout@v4
- name: 'Setup Rust'
if: ${{ !matrix.config.cross }}
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.config.rust_target }}
- uses: Swatinem/rust-cache@v2
if: ${{ !matrix.config.cross }}
with:
key: ${{ matrix.config.rust_target }}
- name: install Linux dependencies
if: matrix.config.os == 'ubuntu-latest'
if: ${{ !matrix.config.cross && startsWith(matrix.config.os, 'ubuntu') }}
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev
- name: Install cross
if: ${{ matrix.config.cross }}
uses: taiki-e/install-action@v2
with:
tool: cross@0.2.5
- name: Build CLI
run: cargo build --manifest-path ./tooling/cli/Cargo.toml --profile release-size-optimized ${{ matrix.config.args }}
if: ${{ !matrix.config.cross }}
run: cargo build --manifest-path ./crates/tauri-cli/Cargo.toml --profile release-size-optimized ${{ matrix.config.args }}
- name: Build CLI (cross)
if: ${{ matrix.config.cross }}
run: cross build --manifest-path ./crates/tauri-cli/Cargo.toml --target ${{ matrix.config.rust_target }} --profile release-size-optimized ${{ matrix.config.args }}
- name: Upload CLI
uses: actions/upload-artifact@v3
if: ${{ !matrix.config.cross }}
uses: actions/upload-artifact@v4
with:
name: cargo-tauri-${{ matrix.config.rust_target }}${{ matrix.config.ext }}
path: tooling/cli/target/release-size-optimized/cargo-tauri${{ matrix.config.ext }}
path: target/release-size-optimized/cargo-tauri${{ matrix.config.ext }}
if-no-files-found: error
- name: Upload CLI (cross)
if: ${{ matrix.config.cross }}
uses: actions/upload-artifact@v4
with:
name: cargo-tauri-${{ matrix.config.rust_target }}${{ matrix.config.ext }}
path: target/${{ matrix.config.rust_target }}/release-size-optimized/cargo-tauri${{ matrix.config.ext }}
if-no-files-found: error
upload:
@@ -76,7 +103,7 @@ jobs:
uses: actions/checkout@v4
- name: Download built CLIs
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4.1.7
with:
path: outputs
@@ -84,7 +111,7 @@ jobs:
run: ./.scripts/ci/pack-cli.sh
- name: Get CLI version
run: echo "CLI_VERSION=$(cat tooling/cli/metadata-v2.json | jq '."cli.js".version' -r)" >> $GITHUB_ENV
run: echo "CLI_VERSION=$(cat crates/tauri-cli/metadata-v2.json | jq '."cli.js".version' -r)" >> $GITHUB_ENV
- name: Publish release
uses: softprops/action-gh-release@50195ba7f6f93d1ac97ba8332a178e008ad176aa

View File

@@ -10,7 +10,6 @@ on:
push:
branches:
- dev
- 1.x
paths:
- '.github/workflows/supply-chain.yml'
- '**/Cargo.lock'
@@ -26,7 +25,7 @@ jobs:
- name: Install Rust
run: rustup update stable && rustup default stable
- uses: actions/cache@v2
- uses: actions/cache@v4
with:
path: ${{ runner.tool_cache }}/cargo-vet
key: cargo-vet-bin-${{ env.CARGO_VET_VERSION }}
@@ -37,9 +36,9 @@ jobs:
- name: Ensure that the tool cache is populated with the cargo-vet binary
run: cargo install --root ${{ runner.tool_cache }}/cargo-vet --version ${{ env.CARGO_VET_VERSION }} cargo-vet
# Enable this again to break the workflow once we have a reasonable amount of suggestions to get to a clean base line
# - name: Invoke cargo-vet
# run: cargo vet --locked
# Enable this again to break the workflow once we have a reasonable amount of suggestions to get to a clean base line
# - name: Invoke cargo-vet
# run: cargo vet --locked
- name: Provide audit suggestions
run: cargo vet suggest

View File

@@ -8,13 +8,13 @@ on:
pull_request:
paths:
- '.github/workflows/test-android.yml'
- 'tooling/cli/templates/mobile/android/**'
- 'tooling/cli/src/mobile/**'
- '!tooling/cli/src/mobile/ios.rs'
- '!tooling/cli/src/mobile/ios/**'
- 'core/tauri-build/src/mobile.rs'
- 'core/tauri/mobile/android/**'
- 'core/tauri/mobile/android-codegen/**'
- 'crates/tauri-cli/templates/mobile/android/**'
- 'crates/tauri-cli/src/mobile/**'
- '!crates/tauri-cli/src/mobile/ios.rs'
- '!crates/tauri-cli/src/mobile/ios/**'
- 'crates/tauri-build/src/mobile.rs'
- 'crates/tauri/mobile/android/**'
- 'crates/tauri/mobile/android-codegen/**'
workflow_dispatch:
concurrency:
@@ -33,8 +33,8 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: install Rust 1.77.2
uses: dtolnay/rust-toolchain@1.77.2
- name: install Linux dependencies
if: matrix.platform == 'ubuntu-latest'
@@ -42,20 +42,18 @@ jobs:
sudo apt-get update
sudo apt-get install -y libgtk-3-dev webkit2gtk-4.1
- run: npm i -g --force corepack
- name: setup node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 18
cache: yarn
cache-dependency-path: |
tooling/api/yarn.lock
examples/api/yarn.lock
node-version: lts/*
cache: 'pnpm'
- uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
cache: gradle
cache: 'gradle'
- name: Setup NDK
uses: nttld/setup-ndk@v1
@@ -77,29 +75,23 @@ jobs:
done
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
tooling/cli
examples/api/src-tauri
- name: build CLI
run: cargo build --manifest-path ./tooling/cli/Cargo.toml
run: cargo build --manifest-path ./crates/tauri-cli/Cargo.toml
- name: move CLI to cargo bin dir
if: matrix.platform != 'windows-latest'
run: mv ./tooling/cli/target/debug/cargo-tauri $HOME/.cargo/bin
run: mv ./target/debug/cargo-tauri $HOME/.cargo/bin
- name: move CLI to cargo bin dir
if: matrix.platform == 'windows-latest'
run: mv ./tooling/cli/target/debug/cargo-tauri.exe $HOME/.cargo/bin
run: mv ./target/debug/cargo-tauri.exe $HOME/.cargo/bin
- run: pnpm i --frozen-lockfile
- name: build Tauri API
working-directory: ./tooling/api
run: yarn && yarn build
- name: install API example dependencies
working-directory: ./examples/api
run: yarn
working-directory: ./packages/api
run: pnpm build
- name: init Android Studio project
working-directory: ./examples/api

View File

@@ -8,12 +8,12 @@ on:
push:
branches:
- dev
- 1.x
pull_request:
paths:
- '.github/workflows/test-cli-js.yml'
- 'packages/cli/**'
# currently` @tauri-apps/cli` only tests the template
- 'tooling/cli/templates/app/**'
- 'crates/tauri-cli/templates/app/**'
env:
RUST_BACKTRACE: 1
@@ -38,29 +38,25 @@ jobs:
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
- run: npm i -g --force corepack
- name: setup node
uses: actions/setup-node@v2
uses: actions/setup-node@v4
with:
node-version: 18
cache: yarn
cache-dependency-path: tooling/cli/node/yarn.lock
node-version: 'lts/*'
cache: 'pnpm'
- name: install Linux dependencies
if: matrix.platform == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y webkit2gtk-4.1 libayatana-appindicator3-dev
sudo apt-get install -y webkit2gtk-4.1 libayatana-appindicator3-dev librsvg2-dev
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
tooling/cli
tooling/cli/node/test/jest/fixtures/empty/src-tauri
- name: test
timeout-minutes: 30
run: |
cd ./tooling/cli/node
yarn
yarn build
yarn test
cd ./packages/cli
pnpm i --frozen-lockfile
pnpm build
pnpm test

View File

@@ -8,13 +8,12 @@ on:
push:
branches:
- dev
- 1.x
pull_request:
paths:
- '.github/workflows/test-cli-rs.yml'
- 'core/tauri-utils/**'
- 'tooling/bundler/**'
- 'tooling/cli/**'
- 'crates/tauri-utils/**'
- 'crates/tauri-bundler/**'
- 'crates/tauri-cli/**'
env:
RUST_BACKTRACE: 1
@@ -32,29 +31,20 @@ jobs:
fail-fast: false
matrix:
platform:
- {
target: x86_64-pc-windows-msvc,
os: windows-latest
}
- { target: x86_64-pc-windows-msvc, os: windows-latest }
- {
target: aarch64-pc-windows-msvc,
os: windows-latest,
args: --no-default-features --features native-tls-vendored
}
- {
target: x86_64-unknown-linux-gnu,
os: ubuntu-latest
}
- {
target: x86_64-apple-darwin,
os: macos-latest
}
- { target: x86_64-unknown-linux-gnu, os: ubuntu-latest }
- { target: x86_64-apple-darwin, os: macos-latest }
steps:
- uses: actions/checkout@v4
- name: 'Setup Rust'
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@1.77.2
with:
targets: ${{ matrix.platform.target }}
@@ -62,11 +52,9 @@ jobs:
if: matrix.platform.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev
sudo apt-get install -y libgtk-3-dev webkit2gtk-4.1 libayatana-appindicator3-dev librsvg2-dev
- uses: Swatinem/rust-cache@v2
with:
workspaces: tooling/cli
- name: test CLI
run: cargo test --manifest-path ./tooling/cli/Cargo.toml ${{ matrix.platform.args }}
run: cargo test --manifest-path ./crates/tauri-cli/Cargo.toml ${{ matrix.platform.args }}

View File

@@ -8,12 +8,15 @@ on:
push:
branches:
- dev
- 1.x
pull_request:
paths:
- '.github/workflows/test-core.yml'
- 'core/**'
- '!core/tauri/scripts/**'
- 'crates/**'
- '!crates/tauri/scripts/**'
- '!crates/tauri-cli/**'
- '!crates/tauri-bundler/**'
- '!crates/tauri-macos-sign/**'
- '!crates/tauri-schema-generator/**'
env:
RUST_BACKTRACE: 1
@@ -34,35 +37,35 @@ jobs:
- {
target: x86_64-pc-windows-msvc,
os: windows-latest,
toolchain: '1.70.0',
toolchain: '1.77.2',
cross: false,
command: 'test'
}
- {
target: x86_64-unknown-linux-gnu,
os: ubuntu-latest,
toolchain: '1.70.0',
toolchain: '1.77.2',
cross: false,
command: 'test'
}
- {
target: aarch64-apple-darwin,
os: macos-14,
toolchain: '1.70.0',
toolchain: '1.77.2',
cross: false,
command: 'test'
}
- {
target: aarch64-apple-ios,
os: macos-latest,
toolchain: '1.70.0',
toolchain: '1.77.2',
cross: false,
command: 'build'
}
- {
target: aarch64-linux-android,
os: ubuntu-latest,
toolchain: '1.70.0',
toolchain: '1.77.2',
cross: true,
command: 'build'
}
@@ -87,17 +90,27 @@ jobs:
- uses: Swatinem/rust-cache@v2
with:
prefix-key: v2
workspaces: core -> ../target
key: ${{ matrix.platform.target }}
save-if: ${{ matrix.features.key == 'all' }}
- name: test (using cross)
if: ${{ matrix.platform.cross }}
# update or remove the rev once we update the MSRV from 1.70.0
run: |
cargo install cross --git https://github.com/cross-rs/cross --rev 20c73df79c9aaf78a2ad2e9fe8ae981668a729dc --locked
cross ${{ matrix.platform.command }} --target ${{ matrix.platform.target }} ${{ matrix.features.args }}
- name: test (using cargo)
- name: test tauri-utils
if: ${{ !matrix.platform.cross }}
run: cargo ${{ matrix.platform.command }} --target ${{ matrix.platform.target }} ${{ matrix.features.args }}
# Using --lib --bins --tests to skip doc tests
run: cargo ${{ matrix.platform.command }} --target ${{ matrix.platform.target }} ${{ matrix.features.args }} --lib --bins --tests --manifest-path crates/tauri-utils/Cargo.toml
- name: test tauri-utils (using cross)
if: ${{ matrix.platform.cross }}
# Using --lib --bins --tests to skip doc tests
run: |
cargo install cross --git https://github.com/cross-rs/cross --rev 51f46f296253d8122c927c5bb933e3c4f27cc317 --locked
cross ${{ matrix.platform.command }} --target ${{ matrix.platform.target }} ${{ matrix.features.args }} --lib --bins --tests --manifest-path crates/tauri-utils/Cargo.toml
- name: test tauri
if: ${{ !matrix.platform.cross }}
run: cargo ${{ matrix.features.key == 'no-default' && 'check' || matrix.platform.command }} --target ${{ matrix.platform.target }} ${{ matrix.features.args }} --manifest-path crates/tauri/Cargo.toml
- name: test tauri (using cross)
if: ${{ matrix.platform.cross }}
run: |
cargo install cross --git https://github.com/cross-rs/cross --rev 51f46f296253d8122c927c5bb933e3c4f27cc317 --locked
cross ${{ matrix.features.key == 'no-default' && 'check' || matrix.platform.command }} --target ${{ matrix.platform.target }} ${{ matrix.features.args }} --manifest-path crates/tauri/Cargo.toml

View File

@@ -1,79 +0,0 @@
# Copyright 2019-2024 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: test and lint bundler
on:
push:
branches:
- dev
- 1.x
pull_request:
paths:
- '.github/workflows/test-bundler.yml'
- 'tooling/bundler/**'
env:
RUST_BACKTRACE: 1
CARGO_PROFILE_DEV_DEBUG: 0 # This would add unnecessary bloat to the target folder, decreasing cache efficiency.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- name: install stable
uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
workspaces: tooling/bundler
- name: test
run: |
cd ./tooling/bundler
cargo test
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install Rust stable and rustfmt
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Run cargo fmt
run: cargo fmt --manifest-path ./tooling/bundler/Cargo.toml --all -- --check
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install Rust stable and clippy
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
with:
workspaces: tooling/bundler
- name: clippy check
run: cargo clippy --manifest-path ./tooling/bundler/Cargo.toml --all-targets -- -D warnings

View File

@@ -8,7 +8,6 @@ on:
push:
branches:
- dev
- 1.x
env:
RUST_BACKTRACE: 1
@@ -33,29 +32,31 @@ jobs:
cli: ${{ steps.filter.outputs.cli }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v2
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
tauri:
- 'core/tauri/**'
- '!core/tauri/scripts/**'
- 'crates/tauri/**'
- '!crates/tauri/scripts/**'
build:
- 'core/tauri-build/**'
- 'crates/tauri-build/**'
codegen:
- 'core/tauri-codegen/**'
- 'crates/tauri-codegen/**'
macros:
- 'core/tauri-macros/**'
- 'crates/tauri-macros/**'
runtime:
- 'core/tauri-runtime/**'
- 'crates/tauri-runtime/**'
wry:
- 'core/tauri-runtime-wry/**'
- 'crates/tauri-runtime-wry/**'
utils:
- 'core/tauri-utils/**'
- 'crates/tauri-utils/**'
bundler:
- 'tooling/bundler/**'
- 'crates/tauri-bundler/**'
cli:
- 'tooling/cli/**'
- 'crates/tauri-cli/**'
macossign:
- 'crates/tauri-macos-sign/**'
setup:
runs-on: ubuntu-latest
@@ -69,7 +70,8 @@ jobs:
needs.changes.outputs.wry == 'true' ||
needs.changes.outputs.utils == 'true' ||
needs.changes.outputs.bundler == 'true' ||
needs.changes.outputs.cli == 'true'
needs.changes.outputs.cli == 'true' ||
needs.changes.outputs.macossign == 'true'
steps:
- uses: actions/checkout@v4
@@ -81,7 +83,7 @@ jobs:
run: cargo install cargo-udeps --locked --force
- name: Upload udeps
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: udeps
path: '~/.cargo/bin/cargo-udeps'
@@ -99,17 +101,19 @@ jobs:
UTILS: ${{ needs.changes.outputs.utils == 'true' }}
BUNDLER: ${{ needs.changes.outputs.bundler == 'true' }}
CLI: ${{ needs.changes.outputs.cli == 'true' }}
MACOSSIGN: ${{ needs.changes.outputs.macossign == 'true' }}
run: |
crates=()
if [ "${TAURI}" == "true" ]; then crates[${#crates[@]}]="\"./core/tauri\""; fi
if [ "${BUILD}" == "true" ]; then crates[${#crates[@]}]="\"./core/tauri-build\""; fi
if [ "${CODEGEN}" == "true" ]; then crates[${#crates[@]}]="\"./core/tauri-codegen\""; fi
if [ "${MACROS}" == "true" ]; then crates[${#crates[@]}]="\"./core/tauri-macros\""; fi
if [ "${RUNTIME}" == "true" ]; then crates[${#crates[@]}]="\"./core/tauri-runtime\""; fi
if [ "${WRY}" == "true" ]; then crates[${#crates[@]}]="\"./core/tauri-runtime-wry\""; fi
if [ "${UTILS}" == "true" ]; then crates[${#crates[@]}]="\"./core/tauri-utils\""; fi
if [ "${BUNDLER}" == "true" ]; then crates[${#crates[@]}]="\"./tooling/bundler\""; fi
if [ "${CLI}" == "true" ]; then crates[${#crates[@]}]="\"./tooling/cli\""; fi
if [ "${TAURI}" == "true" ]; then crates[${#crates[@]}]="\"./crates/tauri\""; fi
if [ "${BUILD}" == "true" ]; then crates[${#crates[@]}]="\"./crates/tauri-build\""; fi
if [ "${CODEGEN}" == "true" ]; then crates[${#crates[@]}]="\"./crates/tauri-codegen\""; fi
if [ "${MACROS}" == "true" ]; then crates[${#crates[@]}]="\"./crates/tauri-macros\""; fi
if [ "${RUNTIME}" == "true" ]; then crates[${#crates[@]}]="\"./crates/tauri-runtime\""; fi
if [ "${WRY}" == "true" ]; then crates[${#crates[@]}]="\"./crates/tauri-runtime-wry\""; fi
if [ "${UTILS}" == "true" ]; then crates[${#crates[@]}]="\"./crates/tauri-utils\""; fi
if [ "${BUNDLER}" == "true" ]; then crates[${#crates[@]}]="\"./crates/tauri-bundler\""; fi
if [ "${CLI}" == "true" ]; then crates[${#crates[@]}]="\"./crates/tauri-cli\""; fi
if [ "${MACOSSIGN}" == "true" ]; then crates[${#crates[@]}]="\"./crates/tauri-macos-sign\""; fi
echo "matrix=[$crates]" >> "$GITHUB_OUTPUT"
outputs:
matrix: ${{ steps.create-matrix.outputs.matrix }}
@@ -132,14 +136,9 @@ jobs:
sudo apt-get install -y libgtk-3-dev
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
core -> ../target
tooling/cli
tooling/bundler
- name: Download udeps
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4.1.7
with:
name: udeps
path: '~/.cargo/bin'

144
.gitignore vendored
View File

@@ -1,89 +1,55 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# smoke-tests repo
/smoke-tests
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# node-waf configuration
.lock-wscript
# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Typescript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional yarn cache directory
.yarn
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
/.vs
.DS_Store
.Thumbs.db
*.sublime*
.idea
debug.log
package-lock.json
.vscode/settings.json
*/.vscode/
proptest-regressions/
TODO.md
# rust compiled folders
target
# lock for libs
#/Cargo.lock Committed to prevent msrv checks from failing
/tooling/bench/tests/Cargo.lock
/yarn.lock
# ignore frida handlers
__handlers__/
# benches
gh-pages
test_video.mp4
# old cli directories
/tooling/cli.js
/tooling/cli.rs
# dependency directories
node_modules/
# Optional npm and yarn cache directory
.npm/
.yarn/
# Output of 'npm pack'
*.tgz
# dotenv environment variables file
.env
# .vscode workspace settings file
.vscode/settings.json
.vscode/launch.json
.vscode/tasks.json
# npm, yarn and bun lock files
package-lock.json
yarn.lock
bun.lockb
# rust compiled folders
target/
# test video for streaming example
streaming_example_test_video.mp4
# examples /gen directory
/examples/**/src-tauri/gen/
/bench/**/src-tauri/gen/
# logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# runtime data
pids
*.pid
*.seed
*.pid.lock
# miscellaneous
/.vs
.DS_Store
.Thumbs.db
*.sublime*
.idea
debug.log
TODO.md
.aider*

1
.husky/.gitignore vendored
View File

@@ -1 +0,0 @@
_

View File

@@ -1,24 +0,0 @@
#!/bin/sh
# Copyright 2019-2024 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
. "$(dirname "$0")/_/husky.sh"
if [ -z "$(git diff --name-only tooling/api)" ]; then
echo "skipping api - no changes detected"
else
cd tooling/api
yarn format
yarn lint:fix
cd ../..
fi
if [ -z "$(git diff --name-only tooling/cli/node)" ]; then
echo "skipping \`@tauri-apps/cli\` - no changes detected"
else
cd tooling/cli/node
yarn format
cd ../../..
fi

View File

@@ -1,17 +1,40 @@
/.github
/.husky
/.vscode
/audits
node_modules
target
dist
/core/tauri/scripts/bundle.global.js
/tooling/cli/templates
/tooling/cli/node
/tooling/cli/schema.json
/core/tauri-config-schema/schema.json
/.vscode
# change files are hand-written and shouldn't be formatted
/.changes/*
!/.changes/config.json
# dependcies and artifacts directories
node_modules/
target/
dist/
# lock files
pnpm-lock.yaml
# autogenerated and minimized js file
crates/tauri/scripts/bundle.global.js
# this file is an IIFE, shouldn't be formatted
crates/tauri/scripts/process-ipc-message-fn.js
# cli templates should be formatted manually
# it also includes invalid json files that
# prettier can't handle
crates/tauri-cli/templates
# autogenerated files
**/autogenerated/**/*.md
packages/cli/index.js
packages/cli/index.d.ts
crates/tauri-schema-worker/.wrangler
CHANGELOG.md
*.wxs
**/reference.md
*schema.json
core/tauri/scripts/process-ipc-message-fn.js
# WiX templates
*.wxs
# examples /gen directory
examples/**/src-tauri/gen
bench/**/src-tauri/gen

View File

@@ -2,7 +2,5 @@
"singleQuote": true,
"semi": false,
"trailingComma": "none",
"overrides": [
{ "files": [".changes/**.md"], "options": { "singleQuote": false } }
]
"experimentalOperatorPosition": "start"
}

View File

@@ -1,55 +0,0 @@
#!/usr/bin/env pwsh
# Copyright 2019-2024 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
# note: you can pass in the cargo sub-commands used to check manually.
# allowed commands: check, clippy, fmt, test
# default: clippy, fmt, test
# set the script arguments if none are found
if(-Not $args) {
$args=@("clippy","fmt","test")
}
# exit the script early if the last command returned an error
function check_error {
if($LASTEXITCODE -ne 0 ) {
Exit $LASTEXITCODE
}
}
function run {
$command, $_args = $args
Write-Output "[$command]"
cargo $command --workspace --all-targets --all-features $_args
check_error
}
foreach ($command in $args) {
Switch ($command) {
"check" {
run check
break
}
"test" {
run test
break
}
"clippy" {
run clippy "--" -D warnings
break
}
"fmt" {
Write-Output "[$command] checking formatting"
cargo +nightly fmt "--" --check
check_error
}
default {
Write-Output "[cargo-check.ps1] Unknown cargo sub-command: $command"
Exit 1
}
}
}

View File

@@ -1,45 +0,0 @@
#!/usr/bin/env sh
# Copyright 2019-2024 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
# note: you can pass in the cargo sub-commands used to check manually.
# allowed commands: check, clippy, fmt, test
# default: clippy, fmt, test
# exit the script early if any of the commands return an error
set -e
# set the script arguments if none are found
if [ -z "$*" ]; then
set -- "clippy" "fmt" "test"
fi
# run n+1 times, where n is the amount of mutually exclusive features.
# the extra run is for all the crates without mutually exclusive features.
# as many features as possible are enabled at for each command
run() {
command=$1
shift 1
cargo "$command" --workspace --all-targets --all-features "$@"
}
for command in "$@"; do
case "$command" in
check | test)
run "$command"
;;
clippy)
run clippy -- -D warnings
;;
fmt)
echo "[$command] checking formatting"
cargo +nightly fmt -- --check
;;
*)
echo "[cargo-check.sh] Unknown cargo sub-command: $command"
exit 1
;;
esac
done

View File

@@ -57,7 +57,7 @@ function checkChangeFiles(changeFiles) {
for (const [file, packages] of unknownTagsEntries) {
for (const { package, tag } of packages) {
console.error(
`Package \`${package}\` has an uknown change tag ${tag} in ${file} `
`Package \`${package}\` has an unknown change tag ${tag} in ${file} `
)
}
}

View File

@@ -28,8 +28,8 @@ const ignore = [
async function checkFile(file) {
if (
extensions.some((e) => file.endsWith(e)) &&
!ignore.some((i) => file.includes(`/${i}/`) || path.basename(file) == i)
extensions.some((e) => file.endsWith(e))
&& !ignore.some((i) => file.includes(`/${i}/`) || path.basename(file) === i)
) {
const fileStream = fs.createReadStream(file)
const rl = readline.createInterface({
@@ -42,11 +42,11 @@ async function checkFile(file) {
for await (let line of rl) {
// ignore empty lines, allow shebang and bundler license
if (
line.length === 0 ||
line.startsWith('#!') ||
line.startsWith('// swift-tools-version:') ||
line === bundlerLicense ||
line === denoLicense
line.length === 0
|| line.startsWith('#!')
|| line.startsWith('// swift-tools-version:')
|| line === bundlerLicense
|| line === denoLicense
) {
continue
}

View File

@@ -4,10 +4,12 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
if git diff --quiet --ignore-submodules HEAD
git_output=$(git diff --ignore-submodules --name-only HEAD)
if [ -z "$git_output" ];
then
echo "working directory is clean"
echo "working directory is clean"
else
echo "found diff"
echo "found diff:"
echo "$git_output"
exit 1
fi

View File

@@ -10,7 +10,7 @@ for o in outputs/*; do
pushd "$o"
chmod +x cargo-tauri*
cp ../../tooling/cli/LICENSE* ../../tooling/cli/README.md .
cp ../../crates/tauri-cli/LICENSE* ../../crates/tauri-cli/README.md .
target=$(basename "$o" | cut -d. -f1)
if grep -qE '(apple|windows)' <<< "$target"; then

View File

@@ -6,7 +6,7 @@
/*
This script is solely intended to be run as part of the `covector version` step to
keep the `../tooling/cli/metadata.json` up to date with other version bumps. Long term
keep the `../../crates/tauri-cli/metadata-v2.json` up to date with other version bumps. Long term
we should look to find a more "rusty way" to import / "pin" a version value in our tauri-cli
rust binaries.
*/
@@ -15,10 +15,7 @@ const { readFileSync, writeFileSync } = require('fs')
const { resolve } = require('path')
const packageNickname = process.argv[2]
const filePath =
packageNickname === '@tauri-apps/cli'
? `../../../tooling/cli/metadata-v2.json`
: `../../tooling/cli/metadata-v2.json`
const filePath = resolve(__dirname, '../../crates/tauri-cli/metadata-v2.json')
const bump = process.argv[3]
let index = null
@@ -52,7 +49,7 @@ const inc = (version) => {
}
if (bump === 'premajor') {
const pre = JSON.parse(
readFileSync(resolve(filePath, '../../../.changes/pre.json'), 'utf-8')
readFileSync(resolve(__dirname, '../../.changes/pre.json'), 'utf-8')
)
return `${v.join('.')}-${pre.tag}.0`
}

View File

@@ -1,58 +0,0 @@
#!/usr/bin/env node
// Copyright 2019-2024 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
/*
This script is solely intended to be run as part of the `covector publish` step to
check the latest version of a crate, considering the current minor version.
*/
const https = require('https')
const kind = process.argv[2]
const packageName = process.argv[3]
const packageVersion = process.argv[4]
const target = packageVersion.substring(0, packageVersion.lastIndexOf('.'))
let url = null
switch (kind) {
case 'cargo':
url = `https://crates.io/api/v1/crates/${packageName}`
break
case 'npm':
url = `https://registry.npmjs.org/${packageName}`
break
default:
throw new Error('unexpected kind ' + kind)
}
const options = {
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
'User-Agent': 'tauri (https://github.com/tauri-apps/tauri)'
}
}
https.get(url, options, (response) => {
let chunks = []
response.on('data', function (chunk) {
chunks.push(chunk)
})
response.on('end', function () {
const data = JSON.parse(chunks.join(''))
if (kind === 'cargo') {
const versions =
data.versions?.filter((v) => v.num.startsWith(target)) ?? []
console.log(versions.length ? versions[0].num : '0.0.0')
} else if (kind === 'npm') {
const versions = Object.keys(data.versions).filter((v) =>
v.startsWith(target)
)
console.log(versions[versions.length - 1] || '0.0.0')
}
})
})

View File

@@ -1,7 +0,0 @@
#!/bin/sh
# Copyright 2019-2024 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
docker build -t aarch64-unknown-linux-gnu:latest --file .docker/cross/aarch64.Dockerfile .docker/cross

View File

@@ -1,30 +0,0 @@
#!/usr/bin/env pwsh
# Copyright 2019-2024 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
echo "Building API definitions..."
cd tooling\api
yarn; yarn build
cd ..\..
echo "Installing the Tauri Rust CLI..."
cd tooling\cli
cargo install --path .
cd ..\..
echo "Tauri Rust CLI installed. Run it with '$ cargo tauri [COMMAND]'."
$yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes"
$no = New-Object System.Management.Automation.Host.ChoiceDescription "&No"
$options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)
$result = $host.ui.PromptForChoice("Node.js CLI", "Do you want to install the Node.js CLI?", $options, 1)
switch ($result) {
0{
cd tooling\cli\node
yarn; yarn build; yarn link
cd ..\..
echo "Tauri Node.js CLI installed. use `yarn link @tauri-apps/cli` and run it with '$ yarn tauri [COMMAND]'."
}
}

View File

@@ -1,29 +0,0 @@
#!/usr/bin/env bash
# Copyright 2019-2024 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
echo "Building API definitions..."
cd tooling/api
yarn && yarn build
cd ../..
echo "Building the Tauri Rust CLI..."
cd tooling/cli
cargo install --path .
cd ../..
echo "Tauri Rust CLI installed. Run it with '$ cargo tauri [COMMAND]'."
echo "Do you want to install the Node.js CLI?"
select yn in "Yes" "No"; do
case $yn in
Yes )
cd tooling/cli/node
yarn && yarn build && yarn link
cd ../../..
echo "Tauri Node.js CLI installed. use `yarn link @tauri-apps/cli` and run it with '$ yarn tauri [COMMAND]'."
break;;
No ) break;;
esac
done

View File

@@ -1,24 +0,0 @@
#!/usr/bin/env sh
# Copyright 2019-2024 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
declare -a examples=("api" "sidecar" "resources" "tauri-dynamic-lib" "workspace")
declare -a tooling=("bench" "cli" "webdriver")
for example in "${examples[@]}"
do
cd examples/$example/src-tauri
cargo update
cargo build
cd ../../..
done
for tooling in "${tooling[@]}"
do
cd tooling/$tooling
cargo update
cargo build
cd ../..
done

View File

@@ -1,66 +0,0 @@
: Copyright 2019-2024 Tauri Programme within The Commons Conservancy
: SPDX-License-Identifier: Apache-2.0
: SPDX-License-Identifier: MIT
@ECHO OFF
REM Copyright 2019-2024 Tauri Programme within The Commons Conservancy
REM SPDX-License-Identifier: Apache-2.0
REM SPDX-License-Identifier: MIT
ECHO Make EXE From BAT
ECHO.
ECHO.
REM Usage:
REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] [...]
REM
REM Required Parameters:
REM BatFileToConvert
REM Source batch file to use to produce the output Exe file.
REM
REM Optional Parameters:
REM IncludeFile
REM Additional files to include in the Exe file.
REM You can include external tools used by the batch file so they are available on the executing machine.
SETLOCAL
REM Configuration (no quotes needed):
SET PathTo7Zip=
REM ---- Do not modify anything below this line ----
SET OutputFile="%~n1.exe"
SET SourceFiles="%TEMP%MakeEXE_files.txt"
SET Config="%TEMP%MakeEXE_config.txt"
SET Source7ZFile="%Temp%MakeEXE.7z"
REM Remove existing files
IF EXIST %OutputFile% DEL %OutputFile%
REM Build source archive
ECHO "%~dpnx1" > %SourceFiles%
:AddInclude
IF {%2}=={} GOTO EndInclude
ECHO "%~dpnx2" >> %SourceFiles%
SHIFT /2
GOTO AddInclude
:EndInclude
"%PathTo7Zip%7za.exe" a %Source7ZFile% @%SourceFiles%
REM Build config file
ECHO ;!@Install@!UTF-8! > %Config%
ECHO RunProgram="%~nx1" >> %Config%
ECHO ;!@InstallEnd@! >> %Config%
REM Build EXE
COPY /B "%PathTo7Zip%7zsd.sfx" + %Config% + %Source7ZFile% %OutputFile%
REM Clean up
IF EXIST %SourceFiles% DEL %SourceFiles%
IF EXIST %Config% DEL %Config%
IF EXIST %Source7ZFile% DEL %Source7ZFile%
ENDLOCAL

View File

@@ -1,7 +1,8 @@
{
"recommendations": [
"ms-vscode-remote.vscode-remote-extensionpack",
"rust-lang.rust-analyzer",
"EditorConfig.EditorConfig",
"esbenp.prettier-vscode"
"esbenp.prettier-vscode",
"tamasfe.even-better-toml"
]
}

View File

@@ -21,50 +21,50 @@ The following section briefly describes the roles of the various parts of Tauri.
### Tauri Core [STABLE RUST]
#### [tauri](https://github.com/tauri-apps/tauri/tree/dev/core/tauri)
#### [tauri](https://github.com/tauri-apps/tauri/tree/dev/crates/tauri)
This is the major crate that holds everything together. It brings the runtimes, macros, utilities and API into one final product. It reads the `tauri.conf.json` file at compile time in order to bring in features and undertake actual configuration of the app (and even the `Cargo.toml` file in the project's folder). It handles script injection (for polyfills / prototype revision) at runtime, hosts the API for systems interaction, and even manages updating.
#### [tauri-build](https://github.com/tauri-apps/tauri/tree/dev/core/tauri-build)
#### [tauri-build](https://github.com/tauri-apps/tauri/tree/dev/crates/tauri-build)
Apply the macros at build-time in order to rig some special features needed by `cargo`.
#### [tauri-codegen](https://github.com/tauri-apps/tauri/tree/dev/core/tauri-codegen)
#### [tauri-codegen](https://github.com/tauri-apps/tauri/tree/dev/crates/tauri-codegen)
- Embed, hash, and compress assets, including icons for the app as well as the system-tray.
- Parse `tauri.conf.json` at compile time and generate the Config struct.
#### [tauri-macros](https://github.com/tauri-apps/tauri/tree/dev/core/tauri-macros)
#### [tauri-macros](https://github.com/tauri-apps/tauri/tree/dev/crates/tauri-macros)
Create macros for the context, handler, and commands by leveraging the `tauri-codegen` crate.
#### [tauri-runtime](https://github.com/tauri-apps/tauri/tree/dev/core/tauri-runtime)
#### [tauri-runtime](https://github.com/tauri-apps/tauri/tree/dev/crates/tauri-runtime)
This is the glue layer between tauri itself and lower level webview libraries.
#### [tauri-runtime-wry](https://github.com/tauri-apps/tauri/tree/dev/core/tauri-runtime-wry)
#### [tauri-runtime-wry](https://github.com/tauri-apps/tauri/tree/dev/crates/tauri-runtime-wry)
This crate opens up direct systems-level interactions specifically for WRY, such as printing, monitor detection, and other windowing related tasks. `tauri-runtime` implementation for WRY.
#### [tauri-utils](https://github.com/tauri-apps/tauri/tree/dev/core/tauri-utils)
#### [tauri-utils](https://github.com/tauri-apps/tauri/tree/dev/crates/tauri-utils)
This is common code that is reused in many places and offers useful utilities like parsing configuration files, detecting platform triples, injecting the CSP, and managing assets.
### Tauri Tooling
#### [@tauri-apps/api](https://github.com/tauri-apps/tauri/tree/dev/tooling/api) [TS -> JS]
#### [@tauri-apps/api](https://github.com/tauri-apps/tauri/tree/dev/packages/api) [TS -> JS]
A TypeScript library that creates `cjs` and `esm` JavaScript endpoints for you to import into your Frontend framework so that the Webview can call and listen to backend activity. We also ship the pure TypeScript, because for some frameworks this is more optimal. It uses the message passing of webviews to their hosts.
#### [bundler](https://github.com/tauri-apps/tauri/tree/dev/tooling/bundler) [RUST / SHELL]
#### [bundler](https://github.com/tauri-apps/tauri/tree/dev/crates/tauri-bundler) [RUST / SHELL]
The bundler is a library that builds a Tauri App for the platform triple it detects / is told. At the moment it currently supports macOS, Windows and Linux - but in the near future will support mobile platforms as well. May be used outside of Tauri projects.
#### [@tauri-apps/cli](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli/node) [JS]
#### [@tauri-apps/cli](https://github.com/tauri-apps/tauri/tree/dev/packages/cli) [JS]
It is a wrapper around [tauri-cli](https://github.com/tauri-apps/tauri/blob/dev/tooling/cli) using [napi-rs](https://github.com/napi-rs/napi-rs) to produce NPM packages for each platform.
It is a wrapper around [tauri-cli](https://github.com/tauri-apps/tauri/blob/dev/crates/tauri-cli) using [napi-rs](https://github.com/napi-rs/napi-rs) to produce NPM packages for each platform.
#### [tauri-cli](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli) [RUST]
#### [tauri-cli](https://github.com/tauri-apps/tauri/tree/dev/crates/tauri-cli) [RUST]
This rust executable provides the full interface to all of the required activities for which the CLI is required. It will run on macOS, Windows, and Linux.
@@ -103,7 +103,7 @@ This plugin allows you to very quickly install tauri in a vue-cli project.
This project enhances the VS Code interface with several nice-to-have features.
# Tauri Plugins [documentation](https://tauri.app/v1/guides/features/plugin/)
# Tauri Plugins [documentation](https://v2.tauri.app/develop/plugins/)
Generally speaking, plugins are authored by third parties (even though there may be official, supported plugins). A plugin generally does 3 things:
@@ -128,7 +128,7 @@ Because of the many ways to build front-ends, we will stick with a common node.j
The easiest way to do this is to run the following:
```
npx create-tauri-app
npm create tauri-app
```
Which will ask you a bunch of questions about the framework you want to install and then create everything you need in a single folder - some via the placement of template files and some through normal installation procedures of your framework.
@@ -138,6 +138,8 @@ Which will ask you a bunch of questions about the framework you want to install
Once everything is installed, you can run:
```
pnpm tauri dev
-or-
yarn tauri dev
-or-
npm run tauri dev
@@ -157,7 +159,7 @@ If you modify your rust code or anything in the Cargo.toml, the window will clos
If you need to get deeper insight into your current project, or triage requires investigation of installed components, just run:
```
yarn tauri info
pnpm tauri info
```
## What does the Release flow look like?
@@ -169,7 +171,7 @@ Depending upon the operating system that the developer (or CI) is building the a
To kick off this process, just:
```
yarn tauri build
pnpm tauri build
```
After some time, the process will end and you can see the results in the `./src-tauri/target/release` folder.

8744
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,32 +1,40 @@
[workspace]
resolver = "2"
members = [
# core
"core/tauri",
"core/tauri-runtime",
"core/tauri-runtime-wry",
"core/tauri-macros",
"core/tauri-utils",
"core/tauri-build",
"core/tauri-codegen",
"core/tauri-config-schema",
"core/tauri-acl-schema",
"core/tauri-plugin",
"crates/tauri",
"crates/tauri-runtime",
"crates/tauri-runtime-wry",
"crates/tauri-macros",
"crates/tauri-utils",
"crates/tauri-build",
"crates/tauri-codegen",
"crates/tauri-plugin",
"crates/tauri-schema-generator",
"crates/tauri-schema-worker",
"crates/tauri-cli",
"crates/tauri-bundler",
"crates/tauri-macos-sign",
"crates/tauri-driver",
# @tauri-apps/cli rust project
"packages/cli",
# integration tests
"core/tests/restart",
"core/tests/acl",
]
"crates/tests/restart",
"crates/tests/acl",
exclude = [
# examples that can be compiled with the tauri CLI
"examples/api/src-tauri",
"examples/resources/src-tauri",
"examples/web/core",
# bench
"bench",
"bench/tests/cpu_intensive/src-tauri",
"bench/tests/files_transfer/src-tauri",
"bench/tests/helloworld/src-tauri",
# examples
"examples/file-associations/src-tauri",
"examples/workspace",
"examples/plugins/tauri-plugin-example",
"examples/resources/src-tauri",
"examples/api/src-tauri",
"examples/api/src-tauri/tauri-plugin-sample",
]
resolver = "2"
[workspace.package]
authors = ["Tauri Programme within The Commons Conservancy"]
@@ -35,7 +43,7 @@ repository = "https://github.com/tauri-apps/tauri"
categories = ["gui", "web-programming"]
license = "Apache-2.0 OR MIT"
edition = "2021"
rust-version = "1.70"
rust-version = "1.77.2"
# default to small, optimized workspace release binaries
[profile.release]
@@ -44,8 +52,23 @@ codegen-units = 1
lto = true
incremental = false
opt-level = "s"
strip = true
# profiles for tauri-cli
[profile.dev.package.miniz_oxide]
opt-level = 3
[profile.release-size-optimized]
inherits = "release"
codegen-units = 1
lto = true
incremental = false
opt-level = "s"
# Temporary patch to schemars to preserve newlines in docstrings for our reference docs schemas
# See https://github.com/GREsau/schemars/issues/120 for reference
[patch.crates-io]
schemars_derive = { git = 'https://github.com/tauri-apps/schemars.git', branch = 'feat/preserve-description-newlines' }
tauri = { path = "./crates/tauri" }
tauri-plugin = { path = "./crates/tauri-plugin" }
tauri-utils = { path = "./crates/tauri-utils" }

View File

@@ -6,7 +6,7 @@ PackageSupplier: Organization: The Tauri Programme in the Commons Conservancy
PackageHomePage: https://tauri.app
PackageLicenseDeclared: Apache-2.0
PackageLicenseDeclared: MIT
PackageCopyrightText: 2019-2024, The Tauri Programme in the Commons Conservancy
PackageCopyrightText: 2019-2025, The Tauri Programme in the Commons Conservancy
PackageSummary: <text>Tauri is a rust project that enables developers to make secure
and small desktop applications using a web frontend.
</text>

View File

@@ -4,7 +4,7 @@
[![License](https://img.shields.io/badge/License-MIT%20or%20Apache%202-green.svg)](https://opencollective.com/tauri)
[![test core](https://img.shields.io/github/actions/workflow/status/tauri-apps/tauri/test-core.yml?label=test%20core&logo=github)](https://github.com/tauri-apps/tauri/actions/workflows/test-core.yml)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Ftauri-apps%2Ftauri.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Ftauri-apps%2Ftauri?ref=badge_shield)
[![Chat Server](https://img.shields.io/badge/chat-discord-7289da.svg)](https://discord.gg/SpmNs4S)
[![Chat Server](https://img.shields.io/badge/chat-discord-7289da.svg)](https://discord.com/invite/tauri)
[![website](https://img.shields.io/badge/website-tauri.app-purple.svg)](https://tauri.app)
[![https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg](https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg)](https://good-labs.github.io/greater-good-affirmation)
[![support](https://img.shields.io/badge/sponsor-Open%20Collective-blue.svg)](https://opencollective.com/tauri)
@@ -21,7 +21,7 @@ To learn more about the details of how all of these pieces fit together, please
If you are interested in making a tauri app, please visit the [documentation website](https://tauri.app).
The quickest way to get started is to install the [prerequisites](https://tauri.app/v1/guides/getting-started/prerequisites) for your system and create a new project with [`create-tauri-app`](https://github.com/tauri-apps/create-tauri-app/#usage). For example with `npm`:
The quickest way to get started is to install the [prerequisites](https://v2.tauri.app/start/prerequisites/) for your system and create a new project with [`create-tauri-app`](https://github.com/tauri-apps/create-tauri-app/#usage). For example with `npm`:
```sh
npm create tauri-app@latest
@@ -35,7 +35,7 @@ The list of Tauri's features includes, but is not limited to:
- Built-in self updater (desktop only)
- System tray icons
- Native notifications
- Localhost free (🔥)
- Native WebView Protocol (tauri doesn't create a localhost http(s) server to serve the WebView contents)
- GitHub action for streamlined CI
- VS Code extension
@@ -43,13 +43,13 @@ The list of Tauri's features includes, but is not limited to:
Tauri currently supports development and distribution on the following platforms:
| Platform | Versions |
| :----------------- | :-------------------------------------------------------------------------------------------------------------- |
| Windows | 7 and above |
| macOS | 10.15 and above |
| Linux | webkit2gtk 4.0 for Tauri v1 (for example Ubuntu 18.04). webkit2gtk 4.1 for Tauri v2 (for example Ubuntu 22.04). |
| iOS/iPadOS (beta) | 9 and above |
| Android (beta) | 7 and above |
| Platform | Versions |
| :--------- | :-------------------------------------------------------------------------------------------------------------- |
| Windows | 7 and above |
| macOS | 10.15 and above |
| Linux | webkit2gtk 4.0 for Tauri v1 (for example Ubuntu 18.04). webkit2gtk 4.1 for Tauri v2 (for example Ubuntu 22.04). |
| iOS/iPadOS | 9 and above |
| Android | 7 and above (currently 8 and above) |
## Contributing
@@ -81,7 +81,7 @@ For the complete list of sponsors please visit our [website](https://tauri.app#s
## Organization
Tauri aims to be a sustainable collective based on principles that guide [sustainable free and open software communities](https://sfosc.org). To this end it has become a Programme within the [Commons Conservancy](https://commonsconservancy.org/), and you can contribute financially via [Open Collective](https://opencollective.com/tauri).
Tauri aims to be a sustainable collective based on principles that guide sustainable free and open software communities. To this end it has become a Programme within the [Commons Conservancy](https://commonsconservancy.org/), and you can contribute financially via [Open Collective](https://opencollective.com/tauri).
## Licenses

Binary file not shown.

View File

@@ -1,21 +1,19 @@
workspace = {}
[package]
name = "tauri_bench"
version = "0.1.0"
authors = [ "Tauri Programme within The Commons Conservancy" ]
authors = ["Tauri Programme within The Commons Conservancy"]
edition = "2021"
rust-version = "1.70"
rust-version = "1.77.2"
license = "Apache-2.0 OR MIT"
description = "Cross-platform WebView rendering library"
repository = "https://github.com/tauri-apps/wry"
[dependencies]
anyhow = "1.0.40"
anyhow = "1"
time = { version = "0.3", features = ["formatting"] }
tempfile = "3.2.0"
serde_json = "1.0"
serde = { version = "1.0", features = [ "derive" ] }
tempfile = "3"
serde_json = "1"
serde = { version = "1", features = ["derive"] }
[[bin]]
name = "run_benchmark"

View File

@@ -1,6 +1,6 @@
# Tauri Bench
<img align="right" src="https://github.com/tauri-apps/tauri/raw/dev/app-icon.png" height="128" width="128">
<img align="right" src="https://github.com/tauri-apps/tauri/raw/dev/.github/icon.png" height="128" width="128">
[![status](https://img.shields.io/badge/Status-beta-green.svg)](https://github.com/tauri-apps/tauri)
[![License](https://img.shields.io/badge/License-MIT%20or%20Apache%202-green.svg)](https://opencollective.com/tauri)

View File

@@ -2,16 +2,16 @@
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
//! [![](https://github.com/tauri-apps/tauri/raw/dev/.github/splash.png)](https://tauri.app)
//!
//! This Rust binary runs on CI and provides internal metrics results of Tauri. To learn more see [benchmark_results](https://github.com/tauri-apps/benchmark_results) repository.
//!
//! ***_Internal use only_**
#![doc(
html_logo_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png",
html_favicon_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png"
html_logo_url = "https://github.com/tauri-apps/tauri/raw/dev/.github/icon.png",
html_favicon_url = "https://github.com/tauri-apps/tauri/raw/dev/.github/icon.png"
)]
// file is used by multiple binaries
#![allow(dead_code)]
use std::{fs::File, io::BufReader};
mod utils;
@@ -54,7 +54,7 @@ fn main() {
.expect("Something wrong with tauri_data"),
&serde_json::to_value(all_data).expect("Unable to build final json (all)"),
)
.unwrap_or_else(|_| panic!("Unable to write {:?}", tauri_data));
.unwrap_or_else(|_| panic!("Unable to write {tauri_data:?}"));
utils::write_json(
tauri_recent
@@ -62,5 +62,5 @@ fn main() {
.expect("Something wrong with tauri_recent"),
&serde_json::to_value(recent).expect("Unable to build final json (recent)"),
)
.unwrap_or_else(|_| panic!("Unable to write {:?}", tauri_recent));
.unwrap_or_else(|_| panic!("Unable to write {tauri_recent:?}"));
}

384
bench/src/run_benchmark.rs Normal file
View File

@@ -0,0 +1,384 @@
// Copyright 2019-2024 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
//! This Rust binary runs on CI and provides internal metrics results of Tauri.
//! To learn more see [benchmark_results](https://github.com/tauri-apps/benchmark_results) repository.
//!
//! ***_Internal use only_***
#![doc(
html_logo_url = "https://github.com/tauri-apps/tauri/raw/dev/.github/icon.png",
html_favicon_url = "https://github.com/tauri-apps/tauri/raw/dev/.github/icon.png"
)]
use anyhow::{Context, Result};
use std::{
collections::{HashMap, HashSet},
env,
path::Path,
process::{Command, Stdio},
};
mod utils;
/// The list of examples for benchmarks
fn get_all_benchmarks(target: &str) -> Vec<(String, String)> {
vec![
(
"tauri_hello_world".into(),
format!("../target/{target}/release/bench_helloworld"),
),
(
"tauri_cpu_intensive".into(),
format!("../target/{target}/release/bench_cpu_intensive"),
),
(
"tauri_3mb_transfer".into(),
format!("../target/{target}/release/bench_files_transfer"),
),
]
}
fn run_strace_benchmarks(new_data: &mut utils::BenchResult, target: &str) -> Result<()> {
use std::io::Read;
let mut thread_count = HashMap::<String, u64>::new();
let mut syscall_count = HashMap::<String, u64>::new();
for (name, example_exe) in get_all_benchmarks(target) {
let mut file = tempfile::NamedTempFile::new()
.context("failed to create temporary file for strace output")?;
let exe_path = utils::bench_root_path().join(&example_exe);
let exe_path_str = exe_path
.to_str()
.context("executable path contains invalid UTF-8")?;
let temp_path_str = file
.path()
.to_str()
.context("temporary file path contains invalid UTF-8")?;
Command::new("strace")
.args(["-c", "-f", "-o", temp_path_str, exe_path_str])
.stdout(Stdio::inherit())
.spawn()
.context("failed to spawn strace process")?
.wait()
.context("failed to wait for strace process")?;
let mut output = String::new();
file
.as_file_mut()
.read_to_string(&mut output)
.context("failed to read strace output")?;
let strace_result = utils::parse_strace_output(&output);
// Count clone/clone3 syscalls as thread creation indicators
let clone_calls = strace_result.get("clone").map(|d| d.calls).unwrap_or(0)
+ strace_result.get("clone3").map(|d| d.calls).unwrap_or(0);
if let Some(total) = strace_result.get("total") {
thread_count.insert(name.clone(), clone_calls);
syscall_count.insert(name, total.calls);
}
}
new_data.thread_count = thread_count;
new_data.syscall_count = syscall_count;
Ok(())
}
fn run_max_mem_benchmark(target: &str) -> Result<HashMap<String, u64>> {
let mut results = HashMap::<String, u64>::new();
for (name, example_exe) in get_all_benchmarks(target) {
let benchmark_file = utils::target_dir().join(format!("mprof{name}_.dat"));
let benchmark_file_str = benchmark_file
.to_str()
.context("benchmark file path contains invalid UTF-8")?;
let exe_path = utils::bench_root_path().join(&example_exe);
let exe_path_str = exe_path
.to_str()
.context("executable path contains invalid UTF-8")?;
let proc = Command::new("mprof")
.args(["run", "-C", "-o", benchmark_file_str, exe_path_str])
.stdout(Stdio::null())
.stderr(Stdio::piped())
.spawn()
.with_context(|| format!("failed to spawn mprof for benchmark {name}"))?;
let proc_result = proc
.wait_with_output()
.with_context(|| format!("failed to wait for mprof {name}"))?;
if !proc_result.status.success() {
eprintln!(
"mprof failed for {name}: {}",
String::from_utf8_lossy(&proc_result.stderr)
);
}
if let Some(mem) = utils::parse_max_mem(benchmark_file_str)
.with_context(|| format!("failed to parse mprof data for {name}"))?
{
results.insert(name, mem);
}
// Clean up the temporary file
if let Err(e) = std::fs::remove_file(&benchmark_file) {
eprintln!("Warning: failed to remove temporary file {benchmark_file_str}: {e}");
}
}
Ok(results)
}
fn rlib_size(target_dir: &Path, prefix: &str) -> Result<u64> {
let mut size = 0;
let mut seen = HashSet::new();
let deps_dir = target_dir.join("deps");
for entry in std::fs::read_dir(&deps_dir).with_context(|| {
format!(
"failed to read target deps directory: {}",
deps_dir.display()
)
})? {
let entry = entry.context("failed to read directory entry")?;
let name = entry.file_name().to_string_lossy().to_string();
if name.starts_with(prefix) && name.ends_with(".rlib") {
if let Some(start) = name.split('-').next() {
if seen.insert(start.to_string()) {
size += entry
.metadata()
.context("failed to read file metadata")?
.len();
}
}
}
}
if size == 0 {
anyhow::bail!(
"no rlib files found for prefix {prefix} in {}",
deps_dir.display()
);
}
Ok(size)
}
fn get_binary_sizes(target_dir: &Path, target: &str) -> Result<HashMap<String, u64>> {
let mut sizes = HashMap::<String, u64>::new();
let wry_size = rlib_size(target_dir, "libwry")?;
sizes.insert("wry_rlib".to_string(), wry_size);
for (name, example_exe) in get_all_benchmarks(target) {
let exe_path = utils::bench_root_path().join(&example_exe);
let meta = std::fs::metadata(&exe_path)
.with_context(|| format!("failed to read metadata for {}", exe_path.display()))?;
sizes.insert(name, meta.len());
}
Ok(sizes)
}
/// (target OS, target triple)
const TARGETS: &[(&str, &[&str])] = &[
(
"Windows",
&[
"x86_64-pc-windows-gnu",
"i686-pc-windows-gnu",
"i686-pc-windows-msvc",
"x86_64-pc-windows-msvc",
],
),
(
"Linux",
&[
"x86_64-unknown-linux-gnu",
"i686-unknown-linux-gnu",
"aarch64-unknown-linux-gnu",
],
),
("macOS", &["x86_64-apple-darwin", "aarch64-apple-darwin"]),
];
fn cargo_deps() -> HashMap<String, usize> {
let mut results = HashMap::new();
for (os, targets) in TARGETS {
for target in *targets {
let mut cmd = Command::new("cargo");
cmd.arg("tree");
cmd.arg("--no-dedupe");
cmd.args(["--edges", "normal"]);
cmd.args(["--prefix", "none"]);
cmd.args(["--target", target]);
cmd.current_dir(utils::tauri_root_path());
match cmd.output() {
Ok(output) if output.status.success() => {
let full_deps = String::from_utf8_lossy(&output.stdout);
let count = full_deps
.lines()
.collect::<HashSet<_>>()
.len()
.saturating_sub(1); // output includes wry itself
// set the count to the highest count seen for this OS
let existing = results.entry(os.to_string()).or_default();
*existing = count.max(*existing);
if count <= 10 {
eprintln!("Warning: dependency count for {target} seems low: {count}");
}
}
Ok(output) => {
eprintln!(
"cargo tree failed for {target}: {}",
String::from_utf8_lossy(&output.stderr)
);
}
Err(e) => {
eprintln!("Failed to run cargo tree for {target}: {e}");
}
}
}
}
results
}
const RESULT_KEYS: &[&str] = &["mean", "stddev", "user", "system", "min", "max"];
fn run_exec_time(target: &str) -> Result<HashMap<String, HashMap<String, f64>>> {
let target_dir = utils::target_dir();
let benchmark_file = target_dir.join("hyperfine_results.json");
let benchmark_file_str = benchmark_file
.to_str()
.context("benchmark file path contains invalid UTF-8")?;
let mut command = vec![
"hyperfine",
"--export-json",
benchmark_file_str,
"--show-output",
"--warmup",
"3",
];
let benchmarks = get_all_benchmarks(target);
let mut benchmark_paths = Vec::new();
for (_, example_exe) in &benchmarks {
let exe_path = utils::bench_root_path().join(example_exe);
let exe_path_str = exe_path
.to_str()
.context("executable path contains invalid UTF-8")?;
benchmark_paths.push(exe_path_str.to_string());
}
for path in &benchmark_paths {
command.push(path.as_str());
}
utils::run(&command)?;
let mut results = HashMap::<String, HashMap<String, f64>>::new();
let hyperfine_results = utils::read_json(benchmark_file_str)?;
if let Some(results_array) = hyperfine_results
.as_object()
.and_then(|obj| obj.get("results"))
.and_then(|val| val.as_array())
{
for ((name, _), data) in benchmarks.iter().zip(results_array.iter()) {
if let Some(data_obj) = data.as_object() {
let filtered_data: HashMap<String, f64> = data_obj
.iter()
.filter(|(key, _)| RESULT_KEYS.contains(&key.as_str()))
.filter_map(|(key, val)| val.as_f64().map(|v| (key.clone(), v)))
.collect();
results.insert(name.clone(), filtered_data);
}
}
}
Ok(results)
}
fn main() -> Result<()> {
let json_3mb = utils::home_path().join(".tauri_3mb.json");
if !json_3mb.exists() {
println!("Downloading test data...");
utils::download_file(
"https://github.com/lemarier/tauri-test/releases/download/v2.0.0/json_3mb.json",
json_3mb,
)
.context("failed to download test data")?;
}
println!("Starting tauri benchmark");
let target_dir = utils::target_dir();
let target = utils::get_target();
env::set_current_dir(utils::bench_root_path())
.context("failed to set working directory to bench root")?;
let now = std::time::SystemTime::now()
.duration_since(std::time::UNIX_EPOCH)
.context("failed to get current time")?;
let timestamp = format!("{}", now.as_secs());
println!("Running execution time benchmarks...");
let exec_time = run_exec_time(target)?;
println!("Getting binary sizes...");
let binary_size = get_binary_sizes(&target_dir, target)?;
println!("Analyzing cargo dependencies...");
let cargo_deps = cargo_deps();
let mut new_data = utils::BenchResult {
created_at: timestamp,
sha1: {
let output = utils::run_collect(&["git", "rev-parse", "HEAD"])?;
output.0.trim().to_string()
},
exec_time,
binary_size,
cargo_deps,
..Default::default()
};
if cfg!(target_os = "linux") {
println!("Running Linux-specific benchmarks...");
run_strace_benchmarks(&mut new_data, target)?;
new_data.max_memory = run_max_mem_benchmark(target)?;
}
println!("===== <BENCHMARK RESULTS>");
serde_json::to_writer_pretty(std::io::stdout(), &new_data)
.context("failed to serialize benchmark results")?;
println!("\n===== </BENCHMARK RESULTS>");
let bench_file = target_dir.join("bench.json");
if let Some(filename) = bench_file.to_str() {
utils::write_json(filename, &serde_json::to_value(&new_data)?)
.context("failed to write benchmark results to file")?;
println!("Results written to: {filename}");
} else {
eprintln!("Cannot write bench.json, path contains invalid UTF-8");
}
Ok(())
}

275
bench/src/utils.rs Normal file
View File

@@ -0,0 +1,275 @@
// Copyright 2019-2024 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
//! Utility functions for benchmarking tasks in the Tauri project.
//!
//! This module provides helpers for:
//! - Paths to project directories and targets
//! - Running and collecting process outputs
//! - Parsing memory profiler (`mprof`) and syscall profiler (`strace`) outputs
//! - JSON read/write utilities
//! - File download utilities (via `curl` or file copy)
use anyhow::{bail, Context, Result};
use serde::{Deserialize, Serialize};
use serde_json::Value;
use std::{
collections::HashMap,
fs,
io::{BufRead, BufReader},
path::PathBuf,
process::{Command, Output, Stdio},
};
/// Holds the results of a benchmark run.
#[derive(Default, Clone, Serialize, Deserialize, Debug)]
pub struct BenchResult {
pub created_at: String,
pub sha1: String,
pub exec_time: HashMap<String, HashMap<String, f64>>,
pub binary_size: HashMap<String, u64>,
pub max_memory: HashMap<String, u64>,
pub thread_count: HashMap<String, u64>,
pub syscall_count: HashMap<String, u64>,
pub cargo_deps: HashMap<String, usize>,
}
/// Represents a single line of parsed `strace` output.
#[derive(Debug, Clone, Serialize)]
pub struct StraceOutput {
pub percent_time: f64,
pub seconds: f64,
pub usecs_per_call: Option<u64>,
pub calls: u64,
pub errors: u64,
}
/// Get the compilation target triple for the current platform.
pub fn get_target() -> &'static str {
#[cfg(target_os = "macos")]
return if cfg!(target_arch = "aarch64") {
"aarch64-apple-darwin"
} else {
"x86_64-apple-darwin"
};
#[cfg(target_os = "ios")]
return if cfg!(target_arch = "aarch64") {
"aarch64-apple-ios"
} else {
"x86_64-apple-ios"
};
#[cfg(target_os = "linux")]
return "x86_64-unknown-linux-gnu";
#[cfg(target_os = "windows")]
unimplemented!("Windows target not implemented yet");
}
/// Get the `target/release` directory path for benchmarks.
pub fn target_dir() -> PathBuf {
bench_root_path()
.join("..")
.join("target")
.join(get_target())
.join("release")
}
/// Get the root path of the current benchmark crate.
pub fn bench_root_path() -> PathBuf {
PathBuf::from(env!("CARGO_MANIFEST_DIR"))
}
/// Get the home directory of the current user.
pub fn home_path() -> PathBuf {
#[cfg(any(target_os = "macos", target_os = "ios", target_os = "linux"))]
{
PathBuf::from(std::env::var("HOME").unwrap_or_default())
}
#[cfg(target_os = "windows")]
{
PathBuf::from(std::env::var("USERPROFILE").unwrap_or_default())
}
}
/// Get the root path of the Tauri repository.
pub fn tauri_root_path() -> PathBuf {
bench_root_path().parent().map(|p| p.to_path_buf()).unwrap()
}
/// Run a command and collect its stdout and stderr as strings.
/// Returns an error if the command fails or exits with a non-zero status.
pub fn run_collect(cmd: &[&str]) -> Result<(String, String)> {
let output: Output = Command::new(cmd[0])
.args(&cmd[1..])
.stdin(Stdio::piped())
.stdout(Stdio::piped())
.stderr(Stdio::piped())
.output()
.with_context(|| format!("failed to execute command: {cmd:?}"))?;
if !output.status.success() {
bail!(
"Command {:?} exited with {:?}\nstdout:\n{}\nstderr:\n{}",
cmd,
output.status.code(),
String::from_utf8_lossy(&output.stdout),
String::from_utf8_lossy(&output.stderr)
);
}
Ok((
String::from_utf8_lossy(&output.stdout).to_string(),
String::from_utf8_lossy(&output.stderr).to_string(),
))
}
/// Parse a memory profiler (`mprof`) output file and return the maximum
/// memory usage in bytes. Returns `None` if no values are found.
pub fn parse_max_mem(file_path: &str) -> Result<Option<u64>> {
let file = fs::File::open(file_path)
.with_context(|| format!("failed to open mprof output file {file_path}"))?;
let output = BufReader::new(file);
let mut highest: u64 = 0;
for line in output.lines().map_while(Result::ok) {
let split: Vec<&str> = line.split(' ').collect();
if split.len() == 3 {
if let Ok(mb) = split[1].parse::<f64>() {
let current_bytes = (mb * 1024.0 * 1024.0) as u64;
highest = highest.max(current_bytes);
}
}
}
// Best-effort cleanup
let _ = fs::remove_file(file_path);
Ok(if highest > 0 { Some(highest) } else { None })
}
/// Parse the output of `strace -c` and return a summary of syscalls.
pub fn parse_strace_output(output: &str) -> HashMap<String, StraceOutput> {
let mut summary = HashMap::new();
let mut lines = output
.lines()
.filter(|line| !line.is_empty() && !line.contains("detached ..."));
let count = lines.clone().count();
if count < 4 {
return summary;
}
let total_line = lines.next_back().unwrap();
lines.next_back(); // Drop separator
let data_lines = lines.skip(2);
for line in data_lines {
let syscall_fields: Vec<&str> = line.split_whitespace().collect();
let len = syscall_fields.len();
if let Some(&syscall_name) = syscall_fields.last() {
if (5..=6).contains(&len) {
let output = StraceOutput {
percent_time: syscall_fields[0].parse().unwrap_or(0.0),
seconds: syscall_fields[1].parse().unwrap_or(0.0),
usecs_per_call: syscall_fields[2].parse().ok(),
calls: syscall_fields[3].parse().unwrap_or(0),
errors: if len < 6 {
0
} else {
syscall_fields[4].parse().unwrap_or(0)
},
};
summary.insert(syscall_name.to_string(), output);
}
}
}
let total_fields: Vec<&str> = total_line.split_whitespace().collect();
let total = match total_fields.len() {
5 => StraceOutput {
percent_time: total_fields[0].parse().unwrap_or(0.0),
seconds: total_fields[1].parse().unwrap_or(0.0),
usecs_per_call: None,
calls: total_fields[2].parse().unwrap_or(0),
errors: total_fields[3].parse().unwrap_or(0),
},
6 => StraceOutput {
percent_time: total_fields[0].parse().unwrap_or(0.0),
seconds: total_fields[1].parse().unwrap_or(0.0),
usecs_per_call: total_fields[2].parse().ok(),
calls: total_fields[3].parse().unwrap_or(0),
errors: total_fields[4].parse().unwrap_or(0),
},
_ => {
panic!("Unexpected total field count: {}", total_fields.len());
}
};
summary.insert("total".to_string(), total);
summary
}
/// Run a command and wait for completion.
/// Returns an error if the command fails.
pub fn run(cmd: &[&str]) -> Result<()> {
let status = Command::new(cmd[0])
.args(&cmd[1..])
.stdin(Stdio::piped())
.status()
.with_context(|| format!("failed to execute command: {cmd:?}"))?;
if !status.success() {
bail!("Command {:?} exited with {:?}", cmd, status.code());
}
Ok(())
}
/// Read a JSON file into a [`serde_json::Value`].
pub fn read_json(filename: &str) -> Result<Value> {
let f =
fs::File::open(filename).with_context(|| format!("failed to open JSON file {filename}"))?;
Ok(serde_json::from_reader(f)?)
}
/// Write a [`serde_json::Value`] into a JSON file.
pub fn write_json(filename: &str, value: &Value) -> Result<()> {
let f =
fs::File::create(filename).with_context(|| format!("failed to create JSON file {filename}"))?;
serde_json::to_writer(f, value)?;
Ok(())
}
/// Download a file from either a local path or an HTTP/HTTPS URL.
/// Falls back to copying the file if the URL does not start with http/https.
pub fn download_file(url: &str, filename: PathBuf) -> Result<()> {
if !url.starts_with("http:") && !url.starts_with("https:") {
fs::copy(url, &filename).with_context(|| format!("failed to copy from {url}"))?;
return Ok(());
}
println!("Downloading {url}");
let status = Command::new("curl")
.arg("-L")
.arg("-s")
.arg("-o")
.arg(&filename)
.arg(url)
.status()
.with_context(|| format!("failed to execute curl for {url}"))?;
if !status.success() {
bail!("curl failed with exit code {:?}", status.code());
}
if !filename.exists() {
bail!("expected file {:?} to exist after download", filename);
}
Ok(())
}

View File

@@ -0,0 +1,8 @@
body {
font-family:
-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial,
sans-serif;
margin: auto;
max-width: 38rem;
padding: 2rem;
}

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />

View File

@@ -0,0 +1,16 @@
[package]
name = "bench_cpu_intensive"
version = "0.1.0"
description = "A very simple Tauri Application"
edition = "2021"
rust-version = "1.77.2"
[build-dependencies]
tauri-build = { path = "../../../../crates/tauri-build", features = [
"codegen",
] }
[dependencies]
serde_json = "1"
serde = { version = "1", features = ["derive"] }
tauri = { path = "../../../../crates/tauri", features = [] }

View File

@@ -1,5 +1,5 @@
{
"$schema": "../../../../../core/tauri-config-schema/schema.json",
"$schema": "../../../../crates/tauri-schema-generator/schemas/config.schema.json",
"identifier": "com.tauri.dev",
"build": {
"frontendDist": "../public"
@@ -23,11 +23,11 @@
"active": true,
"targets": "all",
"icon": [
"../../../../../examples/.icons/32x32.png",
"../../../../../examples/.icons/128x128.png",
"../../../../../examples/.icons/128x128@2x.png",
"../../../../../examples/.icons/icon.icns",
"../../../../../examples/.icons/icon.ico"
"../../../../examples/.icons/32x32.png",
"../../../../examples/.icons/128x128.png",
"../../../../examples/.icons/128x128@2x.png",
"../../../../examples/.icons/icon.icns",
"../../../../examples/.icons/icon.ico"
]
}
}

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />

View File

@@ -0,0 +1,16 @@
[package]
name = "bench_files_transfer"
version = "0.1.0"
description = "A very simple Tauri Application"
edition = "2021"
rust-version = "1.77.2"
[build-dependencies]
tauri-build = { path = "../../../../crates/tauri-build", features = [
"codegen",
] }
[dependencies]
serde_json = "1"
serde = { version = "1", features = ["derive"] }
tauri = { path = "../../../../crates/tauri", features = [] }

View File

@@ -18,7 +18,7 @@ async fn read_file<R: Runtime>(app: AppHandle<R>) -> Result<Response, String> {
.path()
.resolve(".tauri_3mb.json", BaseDirectory::Home)
.map_err(|e| e.to_string())?;
let contents = read(&path).map_err(|e| e.to_string())?;
let contents = read(path).map_err(|e| e.to_string())?;
Ok(Response::new(contents))
}

View File

@@ -1,5 +1,5 @@
{
"$schema": "../../../../../core/tauri-config-schema/schema.json",
"$schema": "../../../../crates/tauri-schema-generator/schemas/config.schema.json",
"identifier": "com.tauri.dev",
"build": {
"frontendDist": "../public"
@@ -23,11 +23,11 @@
"active": true,
"targets": "all",
"icon": [
"../../../../../examples/.icons/32x32.png",
"../../../../../examples/.icons/128x128.png",
"../../../../../examples/.icons/128x128@2x.png",
"../../../../../examples/.icons/icon.icns",
"../../../../../examples/.icons/icon.ico"
"../../../../examples/.icons/32x32.png",
"../../../../examples/.icons/128x128.png",
"../../../../examples/.icons/128x128@2x.png",
"../../../../examples/.icons/icon.icns",
"../../../../examples/.icons/icon.ico"
]
}
}

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />

View File

@@ -0,0 +1,16 @@
[package]
name = "bench_helloworld"
version = "0.1.0"
description = "A very simple Tauri Application"
edition = "2021"
rust-version = "1.77.2"
[build-dependencies]
tauri-build = { path = "../../../../crates/tauri-build", features = [
"codegen",
] }
[dependencies]
serde_json = "1"
serde = { version = "1", features = ["derive"] }
tauri = { path = "../../../../crates/tauri", features = [] }

Some files were not shown because too many files have changed in this diff Show More