Compare commits

..

672 Commits

Author SHA1 Message Date
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
1108 changed files with 49175 additions and 63825 deletions

9
.cargo/audit.toml Normal file
View File

@@ -0,0 +1,9 @@
[advisories]
ignore = [
# rsa Marvin Attack
"RUSTSEC-2023-0071",
# difference is unmaintained
"RUSTSEC-2020-0095",
# proc-macro-error is unmaintained
"RUSTSEC-2024-0370",
]

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,22 +14,25 @@
"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": "echo '<details>\n<summary><em><h4>Cargo Audit</h4></em></summary>\n\n```'",
"dryRunCommand": true,
"pipe": true
},
{
"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,
"pipe": true
},
{
"command": "cargo audit ${ process.env.CARGO_AUDIT_OPTIONS || '' }",
"dryRunCommand": true,
@@ -43,11 +46,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 +62,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 +98,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 +117,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 +149,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 +203,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

@@ -37,9 +37,12 @@ Hi! We, the maintainers, are really excited that you are interested in contribut
- 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,9 +51,14 @@ 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`). 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.
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.
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
@@ -58,15 +66,15 @@ See [Architecture](../ARCHITECTURE.md#major-components) for an overview of the p
### 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 `[Tauri repo root]/crates/tauri-bundler`, and the code for the Rust CLI is located in `[Tauri repo root]/crates/tauri-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.
### 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.
`@tauri-apps/cli` is a wrapper to `tauri-cli` so most changes should be written on the Rust CLI. The `[Tauri repo root]/crates/tauri-cli` 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.
The code for the Rust crates, including the Core, Macros, Utils, WRY runtime, and a few more are located in `[Tauri repo root]/crates/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.
#### Building the documentation locally
@@ -78,7 +86,7 @@ $ RUSTDOCFLAGS="--cfg docsrs" 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 builtin Tauri APIs, written in Rust. Its code is located in `[Tauri repo root]/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 `[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.
## 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:

62
.github/RELEASING.md vendored Normal file
View File

@@ -0,0 +1,62 @@
# 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.
- [ ] Sign the Version PR before merging as we require signed commits
- [ ] `git fetch --all`
- [ ] `git checkout release/version-updates`
- [ ] `git commit --amend -S`
- [ ] `git push --force`
- [ ] 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

@@ -14,7 +14,7 @@ on:
- '**/Cargo.lock'
- '**/Cargo.toml'
- '**/package.json'
- '**/yarn.lock'
- '**/pnpm-lock.yaml'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
@@ -34,11 +34,10 @@ 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
corepack enable
- 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,11 @@ 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'
- '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 +26,17 @@ 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'
- '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 +44,19 @@ jobs:
if: needs.changes.outputs.api == 'true'
steps:
- uses: actions/checkout@v4
- run: |
npm i -g --force corepack
corepack enable
- 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,14 @@ jobs:
with:
fetch-depth: 0
- run: |
npm i -g --force corepack
corepack enable
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: install stable
uses: dtolnay/rust-toolchain@stable
@@ -30,16 +38,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 +51,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
outputs:
change: ${{ steps.covector.outputs.change }}
commandRan: ${{ steps.covector.outputs.commandRan }}
@@ -66,12 +75,14 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v3
- run: |
npm i -g --force corepack
corepack enable
- uses: actions/setup-node@v4
with:
node-version: 18
node-version: 20
registry-url: 'https://registry.npmjs.org'
cache: yarn
cache-dependency-path: tooling/*/yarn.lock
cache: 'pnpm'
- name: cargo login
run: cargo login ${{ secrets.ORG_CRATES_IO_TOKEN }}
@@ -80,21 +91,31 @@ 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
@@ -107,7 +128,7 @@ jobs:
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 +140,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 +148,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,22 @@ jobs:
with:
targets: ${{ matrix.target.name }}
- run: |
npm i -g --force corepack
corepack enable
- 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 +114,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

53
.github/workflows/fmt.yml vendored Normal file
View File

@@ -0,0 +1,53 @@
# 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
corepack enable
- 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,37 @@ 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
corepack enable
- 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
corepack enable
- 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/**'
- '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,7 @@ on:
defaults:
run:
working-directory: tooling/cli/node/
working-directory: packages/cli/
jobs:
build:
@@ -30,45 +30,49 @@ 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"
build: pnpm build --target aarch64-pc-windows-msvc
- host: ubuntu-20.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
corepack enable
cd packages/cli
pnpm build --target x86_64-unknown-linux-gnu
strip *.node
- host: ubuntu-20.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
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
corepack enable
cd packages/cli
pnpm build --target aarch64-unknown-linux-gnu
aarch64-unknown-linux-gnu-strip *.node
- host: ubuntu-20.04
architecture: x64
@@ -77,29 +81,39 @@ jobs:
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
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
corepack enable
- 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
@@ -109,14 +123,13 @@ jobs:
- uses: Swatinem/rust-cache@v1
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,31 @@ 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
corepack enable
- 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 +245,35 @@ jobs:
fail-fast: false
matrix:
node:
- '16'
- '18'
- '20'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
npm i -g --force corepack
corepack enable
- 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 +282,6 @@ jobs:
fail-fast: false
matrix:
node:
- '16'
- '18'
- '20'
runs-on: ubuntu-latest
@@ -277,32 +289,33 @@ jobs:
image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
steps:
- uses: actions/checkout@v4
- run: |
npm i -g --force corepack
corepack enable
- 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,7 +325,6 @@ jobs:
fail-fast: false
matrix:
node:
- '16'
- '18'
- '20'
image:
@@ -326,18 +338,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 +365,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
@@ -367,31 +377,36 @@ jobs:
- test-linux-x64-gnu-binding
- test-linux-x64-musl-binding
#- test-linux-arm-bindings
permissions:
contents: write # update release
id-token: write # npm provenance
steps:
- uses: actions/checkout@v4
- run: |
npm i -g --force corepack
corepack enable
- name: Setup node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 20
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 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 }}
RELEASE_ID: ${{ github.event.client_payload.releaseId || inputs.releaseId }}
NPM_CONFIG_PROVENANCE: true

View File

@@ -37,7 +37,7 @@ jobs:
- os: windows-latest
rust_target: aarch64-pc-windows-msvc
ext: '.exe'
args: '--no-default-features --features native-tls-vendored'
args: ''
steps:
- uses: actions/checkout@v4
@@ -58,13 +58,13 @@ jobs:
sudo apt-get install -y libgtk-3-dev
- name: Build CLI
run: cargo build --manifest-path ./tooling/cli/Cargo.toml --profile release-size-optimized ${{ matrix.config.args }}
run: cargo build --manifest-path ./crates/tauri-cli/Cargo.toml --profile release-size-optimized ${{ matrix.config.args }}
- name: Upload CLI
uses: actions/upload-artifact@v3
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
upload:
@@ -76,7 +76,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 +84,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,20 @@ jobs:
sudo apt-get update
sudo apt-get install -y libgtk-3-dev webkit2gtk-4.1
- run: |
npm i -g --force corepack
corepack enable
- 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 +77,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,27 @@ jobs:
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
- run: |
npm i -g --force corepack
corepack enable
- 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'
}
@@ -88,16 +91,14 @@ jobs:
- uses: Swatinem/rust-cache@v2
with:
prefix-key: v2
workspaces: core -> ../target
save-if: ${{ matrix.features.key == 'all' }}
- name: test
if: ${{ !matrix.platform.cross }}
run: cargo ${{ matrix.platform.command }} --target ${{ matrix.platform.target }} ${{ matrix.features.args }} --manifest-path crates/tauri/Cargo.toml
- 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)
if: ${{ !matrix.platform.cross }}
run: cargo ${{ matrix.platform.command }} --target ${{ matrix.platform.target }} ${{ matrix.features.args }}
cargo install cross --git https://github.com/cross-rs/cross --rev ac4c11cedc97cd7c27faed36e55377a90e6ed618 --locked
cross ${{ 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'

107
.gitignore vendored
View File

@@ -1,89 +1,54 @@
# Logs
# 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*
# smoke-tests repo
/smoke-tests
# Runtime data
# 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
# miscellaneous
/.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

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

@@ -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

16
.taurignore Normal file
View File

@@ -0,0 +1,16 @@
.changes
.devcontainer
.docker
.github
.scripts
.vscode
audits
bench
packages/api
packages/cli
crates/tauri-cli
crates/tauri-bundler
crates/tauri-driver
crates/tauri-macos-sign
crates/tauri-schema-generator
crates/tests

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.

7991
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,22 @@ 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" }

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

@@ -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

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,15 +2,13 @@
// 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"
)]
use std::{fs::File, io::BufReader};

View File

@@ -2,15 +2,13 @@
// 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"
)]
use anyhow::Result;
@@ -28,22 +26,19 @@ fn get_all_benchmarks() -> Vec<(String, String)> {
vec![
(
"tauri_hello_world".into(),
format!(
"tests/target/{}/release/bench_helloworld",
utils::get_target()
),
format!("../target/{}/release/bench_helloworld", utils::get_target()),
),
(
"tauri_cpu_intensive".into(),
format!(
"tests/target/{}/release/bench_cpu_intensive",
"../target/{}/release/bench_cpu_intensive",
utils::get_target()
),
),
(
"tauri_3mb_transfer".into(),
format!(
"tests/target/{}/release/bench_files_transfer",
"../target/{}/release/bench_files_transfer",
utils::get_target()
),
),
@@ -191,7 +186,7 @@ fn cargo_deps() -> HashMap<String, usize> {
cmd.args(["--edges", "normal"]);
cmd.args(["--prefix", "none"]);
cmd.args(["--target", target]);
cmd.current_dir(&utils::tauri_root_path());
cmd.current_dir(utils::tauri_root_path());
let full_deps = cmd.output().expect("failed to run cargo tree").stdout;
let full_deps = String::from_utf8(full_deps).expect("cargo tree output not utf-8");

View File

@@ -42,6 +42,12 @@ pub fn get_target() -> &'static str {
} 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")]
@@ -50,7 +56,7 @@ pub fn get_target() -> &'static str {
pub fn target_dir() -> PathBuf {
bench_root_path()
.join("tests")
.join("..")
.join("target")
.join(get_target())
.join("release")
@@ -62,7 +68,7 @@ pub fn bench_root_path() -> PathBuf {
#[allow(dead_code)]
pub fn home_path() -> PathBuf {
#[cfg(any(target_os = "macos", target_os = "linux"))]
#[cfg(any(target_os = "macos", target_os = "ios", target_os = "linux"))]
return PathBuf::from(env!("HOME"));
#[cfg(target_os = "windows")]
return PathBuf::from(env!("HOMEPATH"));
@@ -70,12 +76,7 @@ pub fn home_path() -> PathBuf {
#[allow(dead_code)]
pub fn tauri_root_path() -> PathBuf {
bench_root_path()
.parent()
.unwrap()
.parent()
.unwrap()
.to_path_buf()
bench_root_path().parent().unwrap().to_path_buf()
}
#[allow(dead_code)]
@@ -108,7 +109,7 @@ pub fn parse_max_mem(file_path: &str) -> Option<u64> {
let output = BufReader::new(file);
let mut highest: u64 = 0;
// MEM 203.437500 1621617192.4123
for line in output.lines().flatten() {
for line in output.lines().map_while(Result::ok) {
// split line by space
let split = line.split(' ').collect::<Vec<_>>();
if split.len() == 3 {

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