Commit Graph
133 Commits
Author SHA1 Message Date
Fabian-Lars 116f7f8239 chore: disable CODEOWNERS file 2026-10-08 16:50:13 +02:00
Lucas Fernandes Nogueira 65ce65bdbb fix(ci): Android e2e flakes, shell Terminated sent before output (#3672)
* fix(ci): Android e2e flakes, shell `Terminated` sent before output

- close "isn't responding" system dialogs before each spec and hide error dialogs on the CI emulator:
  a launcher ANR dialog takes input focus from the app, and Android then denies clipboard reads
- retry switching to the webview context until it succeeds instead of running the spec in the
  native context when the first switch fails with "No such context found"
- save the focused window, a screenshot and logcat when an Android test fails
- shell: wait for the pipe readers to finish before emitting `Terminated`; the readers took their
  read lock on their own thread, so a child exiting quickly could have `close` emitted before
  its output

* Apply suggestion from @lucasfernog
2026-10-07 13:51:35 -03:00
AliandLucas Nogueira 2a9c29e004 fix(updater): restore the current app when a macOS install fails (fix #3505, #3506) (#3578)
* fix(updater): restore the current app when a macOS install fails

On macOS `install_inner` moved the installed app into a `TempDir` backup and
then renamed the new bundle into place. Neither of the two steps after that
move restored the app on failure, and the `TempDir` deleted the backup on
every exit path, so a failed final rename left the user with no app at the
install path and no way back. The privileged fallback had the same shape:
`rm -rf` the app, then `mv` the new one in.

Both moves are now `replace_bundle`, which renames the current app to the
backup, renames the staged bundle into place, and renames the backup back if
that second step fails. The privileged script moves the current app aside,
moves the new one in, and restores on failure; it deletes the previous bundle
only after the new one is in place. The temp and install locations are
compared with `st_dev` before anything moves, returning the existing
`TempDirNotOnSameMountPoint` rather than failing after the app has already
been moved, and the staged bundle root is set to 0755 because `tempfile`
creates it 0700 and that mode followed it into `/Applications`.

Two unit tests cover `replace_bundle`: the staged bundle ends up in place with
the previous one in the backup, and a failed second rename leaves the current
bundle where it was and returns that error.

Closes #3505, closes #3506.

* fix(updater): exchange the current and new bundles atomically on APFS

Even with the restore in place there was a moment between the two renames
where the install path held nothing, and a process killed in that moment
left the previous app in the temp dir rather than where it belonged.

`swap_bundle` calls `renamex_np` with `RENAME_SWAP`, which exchanges the two
directories in one step so the install path always holds one of the two. The
previous app ends up in the extraction temp dir and is removed with it. Where
the file system does not support the swap (`ENOTSUP`, or `EINVAL` on older
systems) the two-rename path with the restore is used as before, and a
`PermissionDenied` from either still goes to the privileged fallback.

`libc` is added for the macOS target only; it was already in the lockfile
through tauri. One macOS test checks the exchange and skips on a file system
that reports `ENOTSUP`.

* fix(updater): keep the previous app when it cannot be restored

If the restore rename also failed, the previous app was left only in the backup TempDir and deleted with it. Keep the backup in that case and return Error::PreviousAppNotRestored with its path.

* fix(updater): quote the paths in the privileged macOS install script

The paths went into single-quoted sh words inside an AppleScript string unescaped, so a quote in the app path broke the command (run as root) or panicked on the compile expect. Quote them for sh and AppleScript, and report script failures instead of panicking.

* fix(updater): fall back to moving the bundles on any swap error

Only ENOTSUP and EINVAL got the two-rename fallback, so volumes reporting EOPNOTSUPP or ENOSYS for RENAME_SWAP failed every update. Fall back on anything but a permission error, and have the swap test skip only off APFS.

* fix(updater): stage the macOS update on the app's volume

When the system temp dir was on another volume than the app, every update was refused. Create the temp dirs next to the app in that case, and compare the install path itself rather than what a symlink there points to.

* test(updater): update a macOS app on another volume than the temp dir

Runs the app from APFS and HFS+ disk images, covering the atomic swap and the two-rename fallback with the update staged next to the app.

* fix(updater): swap the bundles atomically in the privileged macOS install

The admin path ran two mv calls, leaving the install path empty between them. Run renamex_np with RENAME_SWAP as root through osascript's JavaScript bridge, and only fall back to the moves where the swap fails.

* add test

* cleanup

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2026-10-05 09:28:11 -03:00
Tony 29130c2ed2 ci: run clippy on all platforms (#3650) 2026-09-29 17:08:34 +02:00
Lucas Nogueira 67ebc1396b fix(ci): check-publish job should check .changes/pre.json 2026-09-26 17:29:03 -03:00
Lucas Nogueira 9b29b601f3 feat: update to tauri 2.12
- (MSRV bump
- Android compiler options update
- notification plugin windows7 feature deprecation
2026-09-26 14:46:48 -03:00
Lucas Nogueira b870626a5e feat(ci): enforce e2e tests pass before publishing 2026-09-25 13:27:31 -03:00
Lucas Nogueira c8c373b48b tests(e2e): improve coverage 2026-09-22 21:54:21 -03:00
Lucas Fernandes Nogueira 684feb2510 feat(tests): add api e2e tests (#3617)
* feat(tests): add api e2e tests

* lockfile

* mobile

* try linux fix [skip ci]

* ios fix

* fix test on windows

* improve cache

* fix pnpm audit [skip ci]
2026-09-22 18:58:14 -03:00
Lucas Fernandes Nogueira 06485c5884 test(updater): also check .deb and .rpm on e2e test (#3619)
* test(updater): also check .deb and .rpm on e2e test

* fix test on mac

* install rpm on ci

* improve update server, fix rpm crash
2026-09-22 18:51:05 -03:00
Lucas Fernandes Nogueira 28d644572c test(docs): run doctest on CI, make sure doctests pass (#3620)
* test(docs): run doctest on CI, make sure doctests pass

* no_run on dialog doctests [skip ci]
2026-09-22 13:18:21 -03:00
Lucas Nogueira 413b177f81 feat(ci): improve cache usage 2026-09-22 12:42:20 -03:00
Fabian-Lars 9d6d03269a chore(deps): update h2 to 0.4.19 (#3556) 2026-08-27 16:02:57 +02:00
Fabian-Lars 98f8787de4 ci: fix typo in workflow permissions 2026-08-27 14:35:49 +02:00
Fabian-Lars 1a7b12c102 ci: add explicit token permissions 2026-08-27 14:31:16 +02:00
Tony db9c5998fe fix(android): missing consumer-rules.pro (#3531)
* fix(android): missing `consumer-rules.pro`

* setup android test

* copy right too new

* build api first

* we're still on gradle 8 right now...

* restore the right host on mac
2026-08-13 17:44:29 +08:00
Tony edc52ea056 chore(deps): bump create-pull-request to v8 (#3489) 2026-07-15 23:49:37 +08:00
Tony a0d949d93e chore(deps): update pnpm to v11 (#3487)
* chore(deps): update pnpm to v11

* Remove all `version: 11`

* Bump tsx
2026-07-15 20:24:01 +08:00
Tony ea033fe3b8 Add AI tool policy to contributing guide (#3336) 2026-03-09 19:35:41 +08:00
Tony 36d3d19247 fix(ci): bump rustsec/audit-check to v2 (#3329) 2026-03-04 18:28:32 +08:00
Fabian-Lars 305c4f6b4e ci: add workflow_dipatch trigger to integration tests 2026-02-03 10:55:10 +01:00
FabianLars d5509a9ac8 chore: add docs issue template and enable blank issues 2025-11-23 13:55:52 +01:00
FabianLars 06727b19c1 chore: fix issue templates 2025-11-23 13:51:01 +01:00
Fabian-Lars 2f9fa79747 chore: add issue templates (#3122) 2025-11-23 13:42:24 +01:00
Jacob Bolda e644f38673 remove token for oidc publishing (#3077) 2025-11-19 21:52:57 -06:00
Blaine c23fa03f07 feat(dialog): add xdg-portal as an optional feature for rfd (#3098) 2025-11-17 14:56:02 +01:00
Tony 901ddfb73d ci: enable create-pull-request sign commits (#2809) 2025-06-25 15:33:54 +02:00
renovate[bot]andTony a0288648f8 chore(deps): update dependency prettier to v3.6.0 (v2) (#2789)
* chore(deps): update dependency prettier to v3.6.0

* Format

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2025-06-24 10:18:33 +08:00
kandrelczyk 9841ff81ce chore: add contributing guide (#2753) 2025-06-16 22:05:11 +02:00
FabianLars e90cd9fab1 ci: Use upstream create-pull-request version 2025-03-01 14:55:23 +01:00
Tony 39c022eea2 chore(deps): update js dependencies (#2467)
* chore(deps): update js dependencies

* Bump pnpm version in github actions
2025-02-27 05:24:53 +02:00
Tony 7a5495963b Check for generated files on pnpm lock changed (#2429) 2025-02-15 22:47:28 +08:00
Fabian-Lars fe610d6759 ci: Force the same version bumps for rs and js packages (#2130) 2024-12-05 11:34:26 +01:00
FabianLars 28935b65be ci: Re-add Cargo.lock to ci triggers 2024-12-02 14:31:13 +01:00
Amr Bashir 383e636a8e feat: add tauri-plugin-opener (#2019) 2024-11-20 00:50:02 +02:00
Fabian-Lars 74ee7edc43 ci: Run workflows on ubuntu 22.04 (#1936) 2024-10-14 18:40:56 +02:00
Lucas Fernandes Nogueira a1a82208ed chore: change MSRV to 1.77.2 to support Windows 7 (#1873)
* chore: change MSRV to 1.77.2 to support Windows 7

* fmt
2024-10-03 10:31:13 -03:00
Lucas Fernandes Nogueira e8069af804 feat: update to tauri v2 stable, promote all packages to 2.0.0 (#1863)
* update to tauri v2

* covector setup

* update locks

* bump packages to v2 through covector, remove rc references

* msrv 1.78

* downgrade 1.79 msrv dep

* test clipboard

* fmt

* bitstream-io 2.3.0

* Revert "test clipboard"

This reverts commit c3e19dbe59.
2024-10-02 12:08:37 -03:00
Fabian-Lars 30bcf5dcc2 refactor(sql): Allow multiple drivers at the same time (#1838)
* refactor(sql): Allow multiple drivers at the same time

* fmt

* remove default feature comment [skip ci]

* what was that doing there [skip ci]

* disable public methods for now
2024-10-01 09:47:08 -03:00
Amr BashirandLucas Nogueira cf4d7d4e6c chore: adjust prettier config, .gitignore and use taplo to format toml files (#1728)
* chore: adjust prettier config, .gitignore and use taplo to format toml files

This brings the plugins-workspace repository to the same code style of the main tauri repo

* format toml

* ignore examples gen dir

* add .vscode/extensions.json

* remove packageManager field

* fmt

* fix audit

* taplo ignore permissions autogenerated files

* remove create dummy dist

* fix prettier workflow

* install fmt in prettier workflow

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-09-04 08:54:23 -03:00
Fabian-Lars ff134a8ca4 Remove authenticator plugin (#1723) 2024-09-03 02:41:19 +03:00
Lucas Fernandes NogueiraandTillmann 7701392500 fix(updater): linux not retaining AppImage permissions, enhance tests (#1636)
* fix(updater): linux not retaining AppImage permissions, enhance tests

- adds a test for migration from v1 to v2
- extends the existing integration test to actually verify if the app was updated

* remove test framework

* fix macos test

* fix windows

* wait on windows

* fix wix

* typo

* fmt

* install webkit2gtk-4.0 on ci

* fix npm command on windows

* fix test on windows

* ubuntu-22.04

---------

Co-authored-by: Tillmann <28728469+tweidinger@users.noreply.github.com>
2024-08-12 14:59:53 -03:00
9606089b2a feat: Add geolocation and haptics plugins (#1599)
* init geolocation plugin

* ios impl (w/o js api)

* generate ts api

* use newer tauri commit

* add temporary postinstall

* include src in files

* guest-js

* just ship dist-js for now

* fix watcher

* fix android compile error

* fix android build for real

* fix heading type

* initial getCurrentPosition android impl (wip)

* prevent panics if errors (strings) are sent over the channel

* Add android watchPosition implementation

* init haptics plugin (android)

* ios and new apis (ANDROID IS LIKELY BROKEN - MAY NOT EVEN COMPILE)

* use tauri-specta that accounts for raw fn arg idents

* add complete android support (it's not working great due to random soft-/hardware support)

* fix(haptics): Fix the NotificationFeedbackType::Success and Version (#1)

* Fix success feedback and version

* Apply suggestions from code review

* Update package.json

---------

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

* android: improve permission callback handling

* keep track of ongoing perms requests

* rebuild

* license headers

* rm sqlite feat

* fmt

* what diff u talkin bout?

* ignore dist-js again

* fix audits

* dedupe api.js

* clippy

* changefiles

* readmes

* clean up todos

* rm dsstore

* rm wrong feats

* mirror

* covector

* rebuild

* ios requires the wry feature

* lint

* update lock

---------

Co-authored-by: fabianlars <fabianlars@fabianlars.de>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
Co-authored-by: Naman Garg <155433377+naman-crabnebula@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@crabnebula.dev>
2024-08-02 10:45:47 -03:00
Jacob Bolda 5ec310199f remove cargo package, publish without verification (#1581)
* remove cargo package, publish without verification

* remove custom publish with features, --no-verify should handle it now
2024-07-24 21:57:33 -03:00
Jacob Bolda bb09c7ca6e ci: npm publish with provenance (#1582)
* npm publish with provenance

* update token to allow creating id-token
2024-07-24 16:40:11 +03:00
Jacob Bolda fa275731be (chore) covector comment on forks (#1566) 2024-07-24 05:20:42 +03:00
renovate[bot]andFabian-Lars 76daee7aaf chore(deps): update tauri monorepo (v2) (#1512)
* fix(deps): update tauri monorepo

* Create tauri-beta-23.md

* fix clippy - regen permissions

* revert accidental cargo.toml change

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2024-07-02 11:23:48 +02:00
Amr Bashir 264a044097 ci: recognize contributors in releases (#1440) 2024-06-07 21:29:58 +02:00
FabianLars e268c02ab6 ci: Remove Cargo.lock from path filters again 2024-06-04 14:11:18 +02:00
renovate[bot]andFabianLars 290616d8e3 chore(deps): update tauri monorepo (#1325)
* chore(deps): update tauri monorepo

* enable ci for ver updates

* fix http

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2024-05-15 21:10:49 +02:00