Compare commits

..

3 Commits

Author SHA1 Message Date
Jonas Kruckenberg
586d702a40 Create cli.remap-path-prefix.md 2023-03-24 13:05:15 +01:00
Jonas Kruckenberg
020efa4dfa fmt 2023-03-24 13:03:15 +01:00
Jonas Kruckenberg
cc63794c91 fix: strip potential PII from release binaries
This sets rusts `--remap-path-prefix` flags to strip potential PII from release binaries by truncating absolute paths from panic messages and debug symbols.

closes: #6538
2023-03-24 13:02:23 +01:00
407 changed files with 9932 additions and 27970 deletions

View File

@@ -0,0 +1,5 @@
---
"tauri-bundler": patch
---
Add dylib support to `tauri.bundle.macOS.frameworks`.

View File

@@ -0,0 +1,5 @@
---
"api": minor
---
Added the `additionalBrowserArgs` option when creating a window.

View File

@@ -0,0 +1,5 @@
---
"tauri-utils": minor
---
Added the `additional_browser_args` option to the window configuration.

View File

@@ -0,0 +1,7 @@
---
"tauri": minor
"tauri-runtime-wry": minor
"tauri-runtime": minor
---
Added the `additional_browser_args` option when creating a window.

View File

@@ -0,0 +1,5 @@
---
'tauri-bundler': 'minor'
---
Added support for pre-release identifiers and build numbers for the `.msi` bundle target. Only one of each can be used and it must be numeric only. The version must still be semver compatible according to https://semver.org/.

View File

@@ -0,0 +1,5 @@
---
'tauri': 'patch'
---
Fix passing `--profile` to cargo in `tauri build` causing conflict with `--release` passed by the CLI.

View File

@@ -0,0 +1,5 @@
---
'cli.rs': 'patch'
---
Add `--port` to specify the port used for static files dev server. It can also be specified through `TAURI_DEV_SERVER_PORT` env var.

6
.changes/cli-info.md Normal file
View File

@@ -0,0 +1,6 @@
---
"cli.rs": "patch"
---
Fix `tauri info` panicking when parsing crates version on a newly created project without a `Cargo.lock` file.

View File

@@ -0,0 +1,5 @@
---
"cli.rs": "patch"
---
Improve the error message when `rustc` couldn't be found.

View File

@@ -0,0 +1,6 @@
---
"cli.rs": patch
"cli.js": patch
---
Add `--ci` flag and respect the `CI` environment variable on the `signer generate` command. In this case the default password will be an empty string and the CLI will not prompt for a value.

View File

@@ -0,0 +1,6 @@
---
"cli.rs": patch
"cli.js": patch
---
Do not crash on Cargo.toml watcher.

View File

@@ -0,0 +1,7 @@
---
"cli.rs": "patch"
"tauri-bundler": "patch"
---
On Windows, printing consistent paths on Windows with backslashs only.

View File

@@ -0,0 +1,5 @@
---
"cli.rs": "patch"
---
Configure the rust compiler to truncate absolute paths in panic messages and debug symbols when building in release mode. This prevents a possible leak of PII through absolute paths.

View File

@@ -0,0 +1,5 @@
---
'cli.js': patch
---
Fix crash when nodejs binary has the version in its name, for example `node-18`

View File

@@ -1,16 +1,6 @@
{
"gitSiteUrl": "https://www.github.com/tauri-apps/tauri/",
"changeTags": {
"feat": "New Features",
"enhance": "Enhancements",
"bug": "Bug Fixes",
"pref": "Performance Improvements",
"changes": "What's Changed",
"sec": "Security fixes",
"deps": "Dependencies",
"breaking": "Breaking Changes"
},
"defaultChangeTag": "changes",
"timeout": 3600000,
"pkgManagers": {
"rust": {
"errorOnVersionRange": "^2.0.0-0",
@@ -72,7 +62,7 @@
],
"assets": [
{
"path": "./target/package/${ pkg.pkg }-${ pkgFile.version }.crate",
"path": "${ pkg.path }/target/package/${ pkg.pkg }-${ pkgFile.version }.crate",
"name": "${ pkg.pkg }-${ pkgFile.version }.crate"
}
]
@@ -133,13 +123,13 @@
}
},
"packages": {
"@tauri-apps/api": {
"api": {
"path": "./tooling/api",
"manager": "javascript",
"assets": [
{
"path": "./tooling/api/dist/tauri-apps-api-${ pkgFile.version }.tgz",
"name": "tauri-apps-api-${ pkgFile.version }.tgz"
"name": "api-${ pkgFile.version }.tgz"
}
],
"prepublish": [
@@ -221,7 +211,7 @@
"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"
"cargo build --manifest-path ../config-schema/Cargo.toml"
],
"assets": [
{
@@ -241,26 +231,26 @@
],
"postversion": "node ../../.scripts/covector/sync-cli-metadata.js ${ pkg.pkg } ${ release.type }"
},
"@tauri-apps/cli": {
"cli.js": {
"path": "./tooling/cli/node",
"manager": "javascript",
"getPublishedVersion": "node ../../../.scripts/covector/package-latest-version.js npm ${ pkgFile.pkg.name } ${ pkgFile.pkg.version }",
"dependencies": ["tauri-cli"],
"dependencies": ["cli.rs"],
"postversion": [
"node ../../../.scripts/covector/sync-cli-metadata.js ${ pkg.pkg } ${ release.type }",
"cargo build --manifest-path ../../../core/tauri-config-schema/Cargo.toml"
"cargo build --manifest-path ../../../core/config-schema/Cargo.toml"
],
"prepublish": [],
"publish": [],
"postpublish": []
},
"tauri-cli": {
"cli.rs": {
"path": "./tooling/cli",
"manager": "rust",
"dependencies": ["tauri-bundler", "tauri-utils"],
"postversion": [
"cargo check",
"cargo build --manifest-path ../../core/tauri-config-schema/Cargo.toml"
"cargo build --manifest-path ../../core/config-schema/Cargo.toml"
],
"assets": [
{
@@ -271,8 +261,7 @@
},
"tauri-driver": {
"path": "./tooling/webdriver",
"manager": "rust",
"postversion": "cargo check"
"manager": "rust"
}
}
}

View File

@@ -0,0 +1,5 @@
---
"api": "minor"
---
Added the `WindowOptions::contentProtected` option and `WebviewWindow#setContentProtected` to change it at runtime.

View File

@@ -0,0 +1,5 @@
---
"tauri-utils": "patch"
---
Added the `content_protected` option to the window configuration.

View File

@@ -0,0 +1,7 @@
---
"tauri": "minor"
"tauri-runtime": "minor"
"tauri-runtime-wry": "minor"
---
Added the `content_protected` option when creating a window and `Window::set_content_protected` to change it at runtime.

5
.changes/core-js-Map.md Normal file
View File

@@ -0,0 +1,5 @@
---
"tauri": "patch"
---
Fix serialization of js `Map` when used in `invoke`.

View File

@@ -0,0 +1,5 @@
---
"tauri": minor
---
Added `Window::on_navigation`.

View File

@@ -0,0 +1,5 @@
---
"tauri": "patch"
---
Sync `__TAURI_METADATA__.__windows` across all windows.

View File

@@ -0,0 +1,5 @@
---
"tauri-utils": patch
---
Correctly determine mime type of `.less`, `.sass` and `.styl` files.

View File

@@ -0,0 +1,5 @@
---
"api": minor
---
Allow setting the text of the dialog buttons.

View File

@@ -0,0 +1,5 @@
---
"tauri": minor
---
Added `OkWithLabel` and `OkCancelWithLabels` variants to the `api::dialog::MessageDialogButtons` enum to set the text of the dialog buttons.

6
.changes/custom-icon.md Normal file
View File

@@ -0,0 +1,6 @@
---
"cli.rs": minor
"cli.js": minor
---
Add `--png` option for the `icon` command to generate custom icon sizes.

View File

@@ -0,0 +1,6 @@
---
"cli.rs": patch
"cli.js": patch
---
Skip the password prompt on the build command when `TAURI_KEY_PASSWORD` environment variable is empty and the `--ci` argument is provided or the `CI` environment variable is set.

View File

@@ -0,0 +1,7 @@
---
"tauri-runtime-wry": minor
"tauri-runtime": minor
"tauri": minor
---
Added `Builder::device_event_filter` and `App::set_device_event_filter` methods.

5
.changes/fix-2549.md Normal file
View File

@@ -0,0 +1,5 @@
---
"tauri": "patch"
---
Fix resize glitch when double clicking a custom titlebar in the top resize area.

5
.changes/fix-5781.md Normal file
View File

@@ -0,0 +1,5 @@
---
'tauri-bundler': 'patch'
---
Fixed error during bundling process for the appimage target on subsequent bundling attempts.

View File

@@ -0,0 +1,6 @@
---
"cli.rs": patch
"cli.js": patch
---
Fixes HTML serialization removing template tags on the dev server.

View File

@@ -0,0 +1,6 @@
---
"tauri-runtime-wry": patch
"tauri": patch
---
Fixes tray events not being delivered.

View File

@@ -0,0 +1,5 @@
---
"tauri": "patch"
---
Fix the filesystem scope allowing sub-directories of the directory picked by the dialog when `recursive` option was `false`.

5
.changes/heck-unicode.md Normal file
View File

@@ -0,0 +1,5 @@
---
"cli.rs": "patch"
---
Fix building apps with unicode characters in their `productName`.

8
.changes/is-minimized.md Normal file
View File

@@ -0,0 +1,8 @@
---
"tauri": minor
"tauri-runtime": minor
"tauri-runtime-wry": minor
"api": minor
---
Add `is_minimized()` window method.

5
.changes/linux-mouse.md Normal file
View File

@@ -0,0 +1,5 @@
---
"tauri-runtime-wry": patch
---
Disable cursor mouse events on Linux.

9
.changes/nsis-linux.md Normal file
View File

@@ -0,0 +1,9 @@
---
"tauri-bundler": minor
"tauri-utils": minor
"cli.rs": minor
"cli.js": minor
"tauri-build": minor
---
Add initial support for building `nsis` bundles on non-Windows platforms.

8
.changes/nsis.md Normal file
View File

@@ -0,0 +1,8 @@
---
"tauri-bundler": minor
"tauri-utils": minor
"cli.rs": minor
"cli.js": minor
---
Add `nsis` bundle target

View File

@@ -0,0 +1,5 @@
---
"tauri": minor
---
Added support to `mailto:` and `tel:` links on the shell API.

5
.changes/pin-os-info.md Normal file
View File

@@ -0,0 +1,5 @@
---
"tauri": patch
---
Pin `os_info` to `=3.5`.

View File

@@ -0,0 +1,7 @@
---
"tauri": patch
"tauri-runtime": patch
"tauri-runtime-wry": patch
---
Pin raw-window-handle to 0.5.0 to keep MSRV.

6
.changes/pin-time.md Normal file
View File

@@ -0,0 +1,6 @@
---
"tauri": patch
"tauri-codegen": patch
---
Pin `time` to `0.3.15`.

View File

@@ -1,44 +1,31 @@
# Changes
##### via https://github.com/jbolda/covector
As you create PRs and make changes that require a version bump, please add a new markdown file in this folder. You do not note the version _number_, but rather the type of bump that you expect: major, minor, or patch. The filename is not important, as long as it is a `.md`, but we recommend that it represents the overall change for organizational purposes.
When you select the version bump required, you do _not_ need to consider dependencies. Only note the package with the actual change, and any packages that depend on that package will be bumped automatically in the process.
Use the following format:
```md
---
'package-a': patch
'package-b': patch
---
Change summary goes here
```
Summaries do not have a specific character limit, but are text only. These summaries are used within the (future implementation of) changelogs. They will give context to the change and also point back to the original PR if more details and context are needed.
Changes will be designated as a `major`, `minor` or `patch` as further described in [semver](https://semver.org/).
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards compatible manner, and
- PATCH version when you make backwards compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format, but will be discussed prior to usage (as extra steps will be necessary in consideration of merging and publishing).
Additionally you could specify a tag for the change file to group it with other changes by prefixing the bump with `:<tag>`, for example:
```md
---
'package-a': patch:bug
---
Change summary goes here
```
which will group this change file with other changes that specify the `bug` tag.
For list of available tags, see the `changeTags` key in [./config.json](./config.json)
# Changes
##### via https://github.com/jbolda/covector
As you create PRs and make changes that require a version bump, please add a new markdown file in this folder. You do not note the version _number_, but rather the type of bump that you expect: major, minor, or patch. The filename is not important, as long as it is a `.md`, but we recommend that it represents the overall change for organizational purposes.
When you select the version bump required, you do _not_ need to consider dependencies. Only note the package with the actual change, and any packages that depend on that package will be bumped automatically in the process.
Use the following format:
```md
---
"package-a": patch
"package-b": patch
---
Change summary goes here
```
Summaries do not have a specific character limit, but are text only. These summaries are used within the (future implementation of) changelogs. They will give context to the change and also point back to the original PR if more details and context are needed.
Changes will be designated as a `major`, `minor` or `patch` as further described in [semver](https://semver.org/).
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards compatible manner, and
- PATCH version when you make backwards compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format, but will be discussed prior to usage (as extra steps will be necessary in consideration of merging and publishing).

View File

@@ -0,0 +1,5 @@
---
"tauri-runtime": minor
---
Added `navigation_handler` field on `PendingWindow`.

View File

@@ -0,0 +1,5 @@
---
"tauri-build": "minor"
---
Add `WindowsAttributes::app_manifest` to specify the application manifest on Windows.

View File

@@ -0,0 +1,6 @@
---
'cli.rs': minor
'cli.js': minor
---
Remove default features from Cargo.toml template.

8
.changes/title-getter.md Normal file
View File

@@ -0,0 +1,8 @@
---
"tauri": "minor"
"api": "minor"
"tauri-runtime": "minor"
"tauri-runtime-wry": "minor"
---
Add `title` getter on window.

View File

@@ -0,0 +1,6 @@
---
"tauri-runtime": minor
"tauri-runtime-wry": minor
---
Added `TrayHandle::set_tooltip` and `SystemTray::with_tooltip`.

5
.changes/tray-tooltip.md Normal file
View File

@@ -0,0 +1,5 @@
---
"tauri": patch
---
Implement `SystemTray::with_tooltip` and `SystemTrayHandle::set_tooltip` for Windows and macOS.

7
.changes/url-getter.md Normal file
View File

@@ -0,0 +1,7 @@
---
"tauri-runtime": minor
"tauri-runtime-wry": minor
"tauri": minor
---
Added window's `url()` getter.

View File

@@ -0,0 +1,6 @@
---
'cli.rs': 'minor'
'tauri-build': 'minor'
---
Added support for Cargo's workspace inheritance for package information. The cli now also detects inherited `tauri` and `tauri-build` dependencies and disables manifest rewrites accordingly.

View File

@@ -0,0 +1,7 @@
---
"tauri": "patch"
"tauri-runtime": "patch"
"tauri-runtime-wry": "patch"
---
On Windows, change webview theme based on Window theme for more accurate `prefers-color-scheme` support.

View File

@@ -0,0 +1,5 @@
---
'tauri': 'minor'
---
Add a method to the `WindowBuilder` struct to recreate windows from tauri.conf.json configurations.

View File

@@ -0,0 +1,6 @@
---
"tauri-bundler": "patch"
---
On Windows, the `msi` installer's `Launch App` checkbox will be checked by default.

View File

@@ -0,0 +1,5 @@
---
"tauri-runtime-wry": minor
---
Implement the webview navigation handler.

View File

@@ -54,20 +54,20 @@ Some Tauri packages will be automatically built when running one of the examples
### Packages Overview
- The JS API (`/tooling/api`) contains JS bindings to the builtin Rust functions in the Rust API.
- cli.rs (`/tooling/cli`) is the primary CLI for creating and developing Tauri apps.
- cli.js (`/tooling/cli/node`) is a Node.js CLI wrapper for `cli.rs`.
- Tauri Bundler (`/tooling/bundler`) is used by the Rust CLI to package executables into installers.
- Tauri Core (`/core/tauri`) is the heart of Tauri. It contains the code that starts the app, configures communication between Rust and the Webview, and ties all the other packages together.
- The Macros (`/core/tauri-macros`) are used by Tauri Core for various functions.
- Tauri Bundler (`/tooling/bundler`) is used by the Rust CLI to package executables into installers.
- The Rust CLI aka `tauri-cli` (`/tooling/cli`) is the primary CLI for creating and developing Tauri apps.
- The JS CLI aka `@tauri-apps/cli` (`/tooling/cli/node`) is a Node.js CLI wrapper for `tauri-cli`.
- The JS API aka `@tauri-apps/api` (`/tooling/api`) contains JS bindings to the builtin Rust functions in the Rust API.
### Developing The Node.js CLI (cli.js)
`cli.js` is a wrapper to `cli.rs` so most changes should be written on the Rust CLI. The `[Tauri repo root]/tooling/cli/node` folder contains only packaging scripts to properly publish the Rust CLI binaries to NPM.
### Developing Tauri 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.
### 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.
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 cli.js (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 Tauri Core and Related Components (Rust API, Macros, Codegen, and Utils)

View File

@@ -30,10 +30,11 @@ body:
id: reproduction
attributes:
label: Reproduction
description: A link to a reproduction repo or steps to reproduce the behaviour.
description: Steps to reproduce the behavior.
placeholder: |
Please provide a minimal reproduction or steps to reproduce, see this guide https://stackoverflow.com/help/minimal-reproducible-example
Why reproduction is required? see this article https://antfu.me/posts/why-reproductions-are-required
1. Go to ...
2. Click on ...
3. See error
- type: textarea
id: expected-behavior

View File

@@ -1,21 +1,30 @@
<!--
Before submitting a PR, please read https://github.com/tauri-apps/tauri/blob/dev/.github/CONTRIBUTING.md#pull-request-guidelines
Update "[ ]" to "[x]" to check a box
1. Give the PR a descriptive title.
Examples of good title:
- fix(windows): fix race condition in event loop
- docs: update docstrings
- feat: add `Window::set_fullscreen`
Examples of bad title:
- fix #7123
- update docs
- fix bugs
2. If there is a related issue, reference it in the PR text, e.g. closes #123.
3. If this change requires a new version, then add a change file in `.changes` directory with the appropriate bump, see https://github.com/tauri-apps/tauri/blob/dev/.changes/readme.md
4. Ensure that all your commits are signed https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits
5. Ensure `cargo test` and `cargo clippy` passes.
6. Propose your changes as a draft PR if your work is still in progress.
Please make sure to read the Pull Request Guidelines: https://github.com/tauri-apps/tauri/blob/dev/.github/CONTRIBUTING.md#pull-request-guidelines
-->
### What kind of change does this PR introduce?
<!-- Check at least one. If you are introducing a new binding, you must reference an issue where this binding has been proposed, discussed and approved by the maintainers. -->
- [ ] Bugfix
- [ ] Feature
- [ ] Docs
- [ ] New Binding issue #___
- [ ] Code style update
- [ ] Refactor
- [ ] Build-related changes
- [ ] Other, please describe:
### Does this PR introduce a breaking change?
<!-- If yes, please describe the impact and migration path for existing applications in an attached issue. -->
- [ ] Yes, and the changes were approved in issue #___
- [ ] No
### Checklist
- [ ] When resolving issues, they are referenced in the PR's title (e.g `fix: remove a typo, closes #___, #___`)
- [ ] A change file is added if any packages will require a version bump due to this PR per [the instructions in the readme](https://github.com/tauri-apps/tauri/blob/dev/.changes/readme.md).
- [ ] I have added a convincing reason for adding this feature, if necessary
### Other information

View File

@@ -2,13 +2,13 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: test updater artifacts
name: updater test artifacts
on:
schedule:
- cron: '0 0 * * *'
pull_request:
paths:
- '.github/workflows/test-updater-artifacts.yml'
- '.github/workflows/artifacts-updater.yml'
- 'examples/updater/**'
workflow_dispatch:
@@ -21,7 +21,7 @@ concurrency:
cancel-in-progress: true
jobs:
test:
build-artifacts:
runs-on: ${{ matrix.platform }}
strategy:
@@ -48,7 +48,7 @@ jobs:
core -> ../target
tooling/cli
- name: build and install `tauri-cli`
- name: build and install cli.rs
run: cargo install --path tooling/cli --force
- name: Check whether code signing should be enabled
id: enablecodesigning

View File

@@ -10,7 +10,6 @@ on:
- cron: '0 0 * * *'
push:
paths:
- '.github/workflows/audit.yml'
- '**/Cargo.lock'
- '**/Cargo.toml'
- '**/package.json'
@@ -34,11 +33,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: audit workspace
run: yarn audit
- name: audit @tauri-apps/api
working-directory: tooling/api
run: yarn audit
- name: audit @tauri-apps/cli
- name: yarn audit
working-directory: tooling/cli/node
run: yarn audit

View File

@@ -2,13 +2,13 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: bench
name: benches
on:
push:
branches:
- dev
- 1.x
- next
workflow_dispatch:
env:

View File

@@ -1,32 +0,0 @@
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: check change tags
on:
pull_request:
paths:
- '.changes/*.md'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dorny/paths-filter@v2
id: filter
with:
list-files: shell
filters: |
changes:
- added|modified: '.changes/*.md'
- name: check
run: node ./.scripts/ci/check-change-tags.js ${{ steps.filter.outputs.changes_files }}
if: ${{ steps.filter.outputs.changes == 'true' }}

View File

@@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: check generated files
name: Check generated files
on:
pull_request:
@@ -12,7 +12,17 @@ on:
- 'core/tauri/scripts/bundle.global.js'
- 'core/tauri-utils/src/config.rs'
- 'tooling/cli/schema.json'
- 'core/tauri-config-schema/schema.json'
- 'core/config-schema/schema.json'
push:
branches:
- dev
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/config-schema/schema.json'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
@@ -32,13 +42,14 @@ jobs:
filters: |
api:
- 'tooling/api/src/**'
- 'tooling/api/docs/js-api.json'
- 'core/tauri/scripts/bundle.global.js'
schema:
- 'core/tauri-utils/src/config.rs'
- 'tooling/cli/schema.json'
- 'core/tauri-config-schema/schema.json'
- 'core/config-schema/schema.json'
api:
check-api:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.api == 'true'
@@ -49,9 +60,11 @@ jobs:
working-directory: tooling/api
run: yarn && yarn build
- name: check api
run: ./.scripts/ci/has-diff.sh
run: |
git restore tooling/api/docs/js-api.json
./.scripts/ci/has-diff.sh
schema:
check-schema:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.schema == 'true'
@@ -77,7 +90,7 @@ jobs:
uses: actions-rs/cargo@v1
with:
command: build
args: --manifest-path ./core/tauri-config-schema/Cargo.toml
args: --manifest-path ./core/config-schema/Cargo.toml
- name: check schema
run: ./.scripts/ci/has-diff.sh

View File

@@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: check license headers
name: Check generated files
on:
pull_request:
@@ -25,4 +25,4 @@ jobs:
- added: '**'
- name: check header license on new files
if: ${{ steps.filter.outputs.added == 'true' }}
run: node ./.scripts/ci/check-license-header.js ${{ steps.filter.outputs.added_files }}
run: node check-license-header.js ${{ steps.filter.outputs.added_files }}

View File

@@ -1,242 +0,0 @@
# Copyright 2019-2023 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
- v1/msrv-check
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-13,
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.2 --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 notify-rust --precise 4.10.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 serde_with:3.8.2 --precise 3.0.0
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 tokio --precise 1.29.0
cargo update -p flate2 --precise 1.0.26
cargo update -p hyper --precise 0.14.28
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.8 --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 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
cargo update -p cc --precise 1.0.94
cargo update -p home --precise 0.5.5
cargo update -p tree_magic_mini --precise 3.0.3
cargo update -p tokio-test --precise 0.4.3
cargo update -p tokio-stream --precise 0.1.14
cargo update -p tokio-util --precise 0.7.10
cargo update -p os_pipe --precise 1.1.5
cargo update -p syn:2.0.68 --precise 2.0.67
cargo update -p derive_more --precise 0.99.17
cargo update -p native-tls --precise 0.2.11
- 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
if: github.ref == 'refs/heads/1.x'
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, macos-13, 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: 16
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:
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:
event-type: publish-clirs

View File

@@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: covector version or publish
name: version or publish
on:
push:
@@ -71,7 +71,7 @@ jobs:
fetch-depth: 0
- uses: actions/setup-node@v2
with:
node-version: 16
node-version: 14
registry-url: 'https://registry.npmjs.org'
cache: yarn
cache-dependency-path: tooling/*/yarn.lock
@@ -115,20 +115,23 @@ jobs:
repository: tauri-apps/tauri-docs
event-type: update-docs
- name: Trigger `@tauri-apps/cli` publishing workflow
- name: Trigger cli.js publishing workflow
if: |
steps.covector.outputs.successfulPublish == 'true' &&
contains(steps.covector.outputs.packagesPublished, '@tauri-apps/cli')
contains(steps.covector.outputs.packagesPublished, 'cli.rs')
uses: peter-evans/repository-dispatch@v1
with:
event-type: publish-js-cli
client-payload: >-
{"releaseId": "${{ steps.covector.outputs['-tauri-apps-cli-releaseId'] }}" }
token: ${{ secrets.ORG_TAURI_BOT_PAT }}
repository: tauri-apps/tauri
event-type: publish-clijs
client-payload: '{"releaseId": "${{ steps.covector.outputs.cli.js-releaseId }}" }'
- name: Trigger `tauri-cli` publishing workflow
- name: Trigger cli.rs publishing workflow
if: |
steps.covector.outputs.successfulPublish == 'true' &&
contains(steps.covector.outputs.packagesPublished, 'tauri-cli')
contains(steps.covector.outputs.packagesPublished, 'cli.rs')
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.ORG_TAURI_BOT_PAT }}
repository: tauri-apps/tauri
event-type: publish-clirs

View File

@@ -2,16 +2,16 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: lint cli
name: cli clippy and fmt check
on:
push:
branches:
- dev
- 1.x
- next
pull_request:
paths:
- '.github/workflows/lint-cli.yml'
- '.github/workflows/lint-fmt-cli.yml'
- 'tooling/cli/**'
env:
@@ -23,7 +23,7 @@ concurrency:
cancel-in-progress: true
jobs:
fmt:
fmt_check:
runs-on: ubuntu-latest
steps:
@@ -41,7 +41,7 @@ jobs:
command: fmt
args: --manifest-path ./tooling/cli/Cargo.toml --all -- --check
clippy:
cli_clippy_check:
runs-on: ubuntu-latest
steps:

View File

@@ -2,16 +2,16 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: lint core
name: core clippy and fmt check
on:
push:
branches:
- dev
- 1.x
- next
pull_request:
paths:
- '.github/workflows/lint-core.yml'
- '.github/workflows/lint-fmt-core.yml'
- 'core/**'
- '!core/tauri/scripts/**'
- 'examples/**'
@@ -25,7 +25,7 @@ concurrency:
cancel-in-progress: true
jobs:
fmt:
fmt_check:
runs-on: ubuntu-latest
steps:
@@ -43,14 +43,14 @@ jobs:
command: fmt
args: --all -- --check
clippy:
core_clippy_check:
runs-on: ubuntu-latest
strategy:
matrix:
clippy:
- { args: '', key: 'empty' }
- {
args: '--features compression,wry,linux-protocol-headers,isolation,custom-protocol,api-all,cli,updater,system-tray,windows7-compat,http-multipart,test',
args: '--features compression,wry,linux-protocol-headers,isolation,custom-protocol,api-all,cli,updater,system-tray,windows7-compat,http-multipart',
key: 'all'
}
- { args: '--features custom-protocol', key: 'custom-protocol' }

View File

@@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: lint js
name: api and cli.js lint check
on:
pull_request:
@@ -16,45 +16,32 @@ concurrency:
cancel-in-progress: true
jobs:
eslint-cli:
eslint-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 16
node-version: '14'
cache: yarn
cache-dependency-path: tooling/cli/node/yarn.lock
- name: install deps via yarn
cache-dependency-path: tooling/*/yarn.lock
- name: install cli.js deps via yarn
working-directory: ./tooling/cli/node/
run: yarn
# nothing to lint
#- name: run lint
#- name: run cli.js lint
# working-directory: ./tooling/cli/node/
# run: yarn lint
- name: run format
- name: run cli.js format
working-directory: ./tooling/cli/node/
run: yarn format:check
eslint-api:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 16
cache: yarn
cache-dependency-path: tooling/api/yarn.lock
- name: install deps via yarn
- name: install api deps via yarn
working-directory: ./tooling/api/
run: yarn
- name: run ts:check
working-directory: ./tooling/api/
run: yarn ts:check
- name: run lint
- name: run api lint
working-directory: ./tooling/api/
run: yarn lint
- name: run format
- name: run api format
working-directory: ./tooling/api/
run: yarn format:check

View File

@@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: publish `@tauri-apps/cli`
name: publish cli.js
env:
DEBUG: napi:*
APP_NAME: cli
@@ -11,10 +11,10 @@ on:
workflow_dispatch:
inputs:
releaseId:
description: 'ID of the `@tauri-apps/cli` release'
description: 'ID of the cli.js release'
required: true
repository_dispatch:
types: [publish-js-cli]
types: [publish-clijs]
defaults:
run:
@@ -30,7 +30,7 @@ jobs:
target: x86_64-apple-darwin
architecture: x64
build: |
yarn build:release --target=x86_64-apple-darwin
yarn build:release
strip -x *.node
- host: windows-latest
build: yarn build:release
@@ -40,18 +40,14 @@ jobs:
build: yarn build:release --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,native-tls-vendored --cargo-flags="--no-default-features"
- host: ubuntu-20.04
- host: ubuntu-18.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
strip *.node
- host: ubuntu-20.04
- host: ubuntu-18.04
target: x86_64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: |
@@ -63,14 +59,14 @@ jobs:
build: |
yarn build:release --target=aarch64-apple-darwin
strip -x *.node
- host: ubuntu-20.04
- host: ubuntu-18.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
aarch64-unknown-linux-gnu-strip *.node
- host: ubuntu-20.04
- host: ubuntu-18.04
architecture: x64
target: armv7-unknown-linux-gnueabihf
setup: |
@@ -79,7 +75,7 @@ jobs:
build: |
yarn build:release --target=armv7-unknown-linux-gnueabihf
arm-linux-gnueabihf-strip *.node
- host: ubuntu-20.04
- host: ubuntu-18.04
architecture: x64
target: aarch64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
@@ -88,6 +84,10 @@ jobs:
rustup target add aarch64-unknown-linux-musl
yarn build:release --target aarch64-unknown-linux-musl
/aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip *.node
#- host: windows-latest
# architecture: x64
# target: aarch64-pc-windows-msvc
# build: yarn build:release --target aarch64-pc-windows-msvc
name: stable - ${{ matrix.settings.target }} - node@16
runs-on: ${{ matrix.settings.host }}
steps:
@@ -158,7 +158,7 @@ jobs:
# usesh: true
# mem: 3000
# prepare: |
# pkg install -y curl node16 python2
# pkg install -y curl node14 python2
# curl -qL https://www.npmjs.com/install.sh | sh
# npm install -g yarn
# curl https://sh.rustup.rs -sSf --output rustup.sh
@@ -198,13 +198,13 @@ jobs:
matrix:
settings:
- host: macos-latest
target: 'aarch64-apple-darwin'
target: 'x86_64-apple-darwin'
- host: windows-latest
target: x86_64-pc-windows-msvc
node:
- '14'
- '16'
- '18'
- '20'
runs-on: ${{ matrix.settings.host }}
steps:
- uses: actions/checkout@v3
@@ -235,9 +235,9 @@ jobs:
fail-fast: false
matrix:
node:
- '14'
- '16'
- '18'
- '20'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
@@ -272,9 +272,9 @@ jobs:
fail-fast: false
matrix:
node:
- '14'
- '16'
- '18'
- '20'
runs-on: ubuntu-latest
container:
image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
@@ -297,10 +297,14 @@ jobs:
- name: List packages
run: ls -R .
shell: bash
- name: Install system dependencies
run: |
apk add openssl-dev musl-dev glib-dev cairo-dev pkgconfig gdk-pixbuf-dev webkit2gtk-dev curl libappindicator-dev gtk+3.0-dev
- name: Setup and run tests
run: |
yarn tauri --help
ls -la
# TODO: fix this test: https://github.com/tauri-apps/tauri/runs/5145729140?check_suite_focus=true#step:9:704
#- name: Setup and run tests
# run: |
# rustup install stable
@@ -315,9 +319,9 @@ jobs:
fail-fast: false
matrix:
node:
- '14'
- '16'
- '18'
- '20'
image:
- ghcr.io/napi-rs/napi-rs/nodejs:aarch64-16
- ghcr.io/napi-rs/napi-rs/nodejs:armhf-16
@@ -375,7 +379,7 @@ jobs:
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: 20
node-version: 16
check-latest: true
cache: yarn
cache-dependency-path: 'tooling/cli/node/yarn.lock'

View File

@@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: publish `tauri-cli`
name: publish cli.rs
env:
MACOSX_DEPLOYMENT_TARGET: '10.13'
on:
@@ -18,26 +18,18 @@ jobs:
fail-fast: false
matrix:
config:
- os: ubuntu-20.04
- os: ubuntu-18.04
rust_target: x86_64-unknown-linux-gnu
ext: ''
args: ''
- os: macos-latest
rust_target: x86_64-apple-darwin
ext: ''
args: ''
- os: macos-latest
rust_target: aarch64-apple-darwin
ext: ''
args: ''
- os: windows-latest
rust_target: x86_64-pc-windows-msvc
ext: '.exe'
args: ''
- os: windows-latest
rust_target: aarch64-pc-windows-msvc
ext: '.exe'
args: '--no-default-features --features native-tls,native-tls-vendored'
steps:
- name: Checkout
@@ -47,7 +39,7 @@ jobs:
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.config.rust_target }}
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.config.rust_target }}
@@ -62,7 +54,7 @@ jobs:
uses: actions-rs/cargo@v1
with:
command: build
args: --manifest-path ./tooling/cli/Cargo.toml --release ${{ matrix.config.args }}
args: --manifest-path ./tooling/cli/Cargo.toml --release
- name: Upload CLI
uses: actions/upload-artifact@v3
@@ -93,7 +85,7 @@ jobs:
- name: Publish release
uses: softprops/action-gh-release@50195ba7f6f93d1ac97ba8332a178e008ad176aa
with:
tag_name: tauri-cli-v${{ env.CLI_VERSION }}
tag_name: cli.rs-v${{ env.CLI_VERSION }}
files: |
outputs/cargo-tauri-*.zip
outputs/cargo-tauri-*.tgz

View File

@@ -2,13 +2,13 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: test and lint bundler
name: test bundler
on:
push:
branches:
- dev
- 1.x
- next
pull_request:
paths:
- '.github/workflows/test-bundler.yml'
@@ -23,7 +23,7 @@ concurrency:
cancel-in-progress: true
jobs:
test:
build-tauri-bundler:
runs-on: ${{ matrix.platform }}
strategy:
@@ -48,7 +48,7 @@ jobs:
cd ./tooling/bundler
cargo test
fmt:
fmt_check:
runs-on: ubuntu-latest
steps:
@@ -66,7 +66,7 @@ jobs:
command: fmt
args: --manifest-path ./tooling/bundler/Cargo.toml --all -- --check
clippy:
clippy-check:
runs-on: ubuntu-latest
steps:

View File

@@ -2,17 +2,17 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: test `@tauri-apps/cli`
name: test cli.js
on:
push:
branches:
- dev
- 1.x
- next
pull_request:
paths:
- '.github/workflows/test-cli-js.yml'
# currently` @tauri-apps/cli` only tests the template
# currently cli.js only tests the template
- 'tooling/cli/templates/app/**'
env:
@@ -24,7 +24,7 @@ concurrency:
cancel-in-progress: true
jobs:
test:
test-tauri-js-cli:
runs-on: ${{ matrix.platform }}
strategy:
@@ -43,7 +43,7 @@ jobs:
- name: setup node
uses: actions/setup-node@v2
with:
node-version: 16
node-version: 14
cache: yarn
cache-dependency-path: tooling/cli/node/yarn.lock

View File

@@ -2,13 +2,13 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
name: test `tauri-cli`
name: test cli.rs
on:
push:
branches:
- dev
- 1.x
- next
pull_request:
paths:
- '.github/workflows/test-cli-rs.yml'
@@ -23,7 +23,7 @@ concurrency:
cancel-in-progress: true
jobs:
test:
test-tauri-cli:
runs-on: ${{ matrix.platform }}
strategy:
@@ -50,8 +50,8 @@ jobs:
with:
workspaces: tooling/cli
- name: test CLI
- name: build CLI
uses: actions-rs/cargo@v1
with:
command: test
command: build
args: --manifest-path ./tooling/cli/Cargo.toml

View File

@@ -8,7 +8,7 @@ on:
push:
branches:
- dev
- 1.x
- next
pull_request:
paths:
- '.github/workflows/test-core.yml'
@@ -24,7 +24,7 @@ concurrency:
cancel-in-progress: true
jobs:
test:
test-tauri-core:
runs-on: ${{ matrix.platform.os }}
strategy:
@@ -39,12 +39,12 @@ jobs:
- {
target: x86_64-unknown-linux-gnu,
os: ubuntu-latest,
toolchain: '1.60.0'
toolchain: '1.59.0'
}
- {
target: x86_64-apple-darwin,
os: macos-13,
toolchain: '1.60.0'
os: macos-latest,
toolchain: '1.59.0'
}
features:
- {
@@ -56,7 +56,7 @@ jobs:
key: api-all
}
- {
args: --features tracing,compression,wry,linux-protocol-headers,isolation,custom-protocol,api-all,cli,updater,system-tray,windows7-compat,http-multipart,test,
args: --features compression,wry,linux-protocol-headers,isolation,custom-protocol,api-all,cli,updater,system-tray,windows7-compat,http-multipart,
key: all
}

View File

@@ -8,7 +8,7 @@ on:
push:
branches:
- dev
- 1.x
- next
env:
RUST_BACKTRACE: 1

2
.gitignore vendored
View File

@@ -73,7 +73,7 @@ TODO.md
target
# lock for libs
#/Cargo.lock Committed to prevent msrv checks from failing
/Cargo.lock
/tooling/bench/tests/Cargo.lock
/yarn.lock

View File

@@ -11,12 +11,12 @@ if [ -z "$(git diff --name-only tooling/api)" ]; then
else
cd tooling/api
yarn format
yarn lint:fix
yarn lint-fix
cd ../..
fi
if [ -z "$(git diff --name-only tooling/cli/node)" ]; then
echo "skipping \`@tauri-apps/cli\` - no changes detected"
echo "skipping cli.js - no changes detected"
else
cd tooling/cli/node
yarn format

View File

@@ -9,4 +9,5 @@ dist
/tooling/cli/templates
/tooling/cli/node
/tooling/cli/schema.json
/core/tauri-config-schema/schema.json
/tooling/api/docs/js-api.json
/core/config-schema/schema.json

View File

@@ -1,5 +0,0 @@
{
"singleQuote": true,
"semi": false,
"trailingComma": "none"
}

9
.prettierrc.js Normal file
View File

@@ -0,0 +1,9 @@
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
module.exports = {
singleQuote: true,
semi: false,
trailingComma: 'none'
}

View File

@@ -1,5 +1,4 @@
#!/usr/bin/env pwsh
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT

View File

@@ -1,5 +1,4 @@
#!/usr/bin/env sh
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT

View File

@@ -1,79 +0,0 @@
#!/usr/bin/env node
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
const fs = require('fs')
const path = require('path')
const ignorePackages = [
'tauri-macros',
'tauri-codegen',
'tauri-runtime',
'tauri-runtime-wry',
'tauri-driver'
]
const covectorConfig = JSON.parse(
fs.readFileSync('.changes/config.json', 'utf8')
)
const tags = Object.keys(covectorConfig.changeTags)
const missingTagsFiles = {}
const unknownTagsFiles = {}
function checkChangeFiles(changeFiles) {
for (const file of changeFiles) {
const content = fs.readFileSync(file, 'utf8')
const [frontMatter] = /^---[\s\S.]*---\n/i.exec(content)
const packages = frontMatter
.split('\n')
.filter((l) => !(l === '---' || !l))
.map((l) => l.replace(/('|")/g, '').split(':'))
for (const [package, _, tag] of packages) {
if (!tag) {
if (ignorePackages.includes(package)) continue
if (!missingTagsFiles[file]) missingTagsFiles[file] = []
missingTagsFiles[file].push(package)
} else if (!tags.includes(tag)) {
if (!unknownTagsFiles[file]) unknownTagsFiles[file] = []
unknownTagsFiles[file].push({ package, tag })
}
}
}
const missingTagsEntries = Object.entries(missingTagsFiles)
const unknownTagsEntries = Object.entries(unknownTagsFiles)
if (missingTagsEntries.length > 0 || unknownTagsEntries.length > 0) {
for (const [file, packages] of missingTagsEntries) {
for (const package of packages) {
console.error(
`Package \`${package}\` is missing a change tag in ${file} `
)
}
}
for (const [file, packages] of unknownTagsEntries) {
for (const { package, tag } of packages) {
console.error(
`Package \`${package}\` has an uknown change tag ${tag} in ${file} `
)
}
}
process.exit(1)
}
}
const [_bin, _script, ...files] = process.argv
if (files.length > 0) {
checkChangeFiles(files.filter((f) => f.toLowerCase() !== 'readme.md'))
} else {
const changeFiles = fs
.readdirSync('.changes')
.filter((f) => f.endsWith('.md') && f.toLowerCase() !== 'readme.md')
.map((p) => path.join('.changes', p))
checkChangeFiles(changeFiles)
}

View File

@@ -1,9 +1,5 @@
#!/bin/bash
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
if git diff --quiet --ignore-submodules HEAD
then
echo "working directory is clean"

View File

@@ -1,9 +1,4 @@
#!/bin/bash
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT
set -euxo pipefail
for o in outputs/*; do

View File

@@ -1,5 +1,4 @@
#!/usr/bin/env node
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
@@ -20,10 +19,10 @@ let url = null
switch (kind) {
case 'cargo':
url = `https://crates.io/api/v1/crates/${packageName}`
break
break;
case 'npm':
url = `https://registry.npmjs.org/${packageName}`
break
break;
default:
throw new Error('unexpected kind ' + kind)
}
@@ -31,7 +30,7 @@ switch (kind) {
const options = {
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
'Accept': 'application/json',
'User-Agent': 'tauri (https://github.com/tauri-apps/tauri)'
}
}
@@ -45,12 +44,10 @@ https.get(url, options, (response) => {
response.on('end', function () {
const data = JSON.parse(chunks.join(''))
if (kind === 'cargo') {
const versions = data.versions.filter((v) => v.num.startsWith(target))
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)
)
const versions = Object.keys(data.versions).filter(v => v.startsWith(target))
console.log(versions[versions.length - 1] || '0.0.0')
}
})

View File

@@ -1,5 +1,4 @@
#!/usr/bin/env node
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
@@ -7,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
we should look to find a more "rusty way" to import / "pin" a version value in our tauri-cli
we should look to find a more "rusty way" to import / "pin" a version value in our cli.rs
rust binaries.
*/
@@ -15,7 +14,7 @@ const { readFileSync, writeFileSync } = require('fs')
const packageNickname = process.argv[2]
const filePath =
packageNickname === '@tauri-apps/cli'
packageNickname === 'cli.js'
? `../../../tooling/cli/metadata.json`
: `../../tooling/cli/metadata.json`
const bump = process.argv[3]
@@ -52,9 +51,9 @@ const metadata = JSON.parse(readFileSync(filePath, 'utf-8'))
// set field version
let version
if (packageNickname === '@tauri-apps/cli') {
version = inc(metadata['cli.js'].version)
metadata['cli.js'].version = version
if (packageNickname === 'cli.js') {
version = inc(metadata[packageNickname].version)
metadata[packageNickname].version = version
} else {
version = inc(metadata[packageNickname])
metadata[packageNickname] = version

View File

@@ -1,7 +1,3 @@
#!/bin/sh
# Copyright 2019-2023 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,5 +1,4 @@
#!/usr/bin/env pwsh
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT

View File

@@ -1,5 +1,4 @@
#!/usr/bin/env bash
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT

View File

@@ -1,5 +1,4 @@
#!/usr/bin/env sh
# Copyright 2019-2023 Tauri Programme within The Commons Conservancy
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: MIT

View File

@@ -1,7 +1,3 @@
: Copyright 2019-2023 Tauri Programme within The Commons Conservancy
: SPDX-License-Identifier: Apache-2.0
: SPDX-License-Identifier: MIT
@ECHO OFF
REM Copyright 2019-2023 Tauri Programme within The Commons Conservancy

View File

@@ -39,16 +39,16 @@ This is common code that is reused in many places and offers useful utilities li
### Tauri Tooling
#### [@tauri-apps/api](https://github.com/tauri-apps/tauri/tree/dev/tooling/api) [TS -> JS]
#### [api](https://github.com/tauri-apps/tauri/tree/dev/tooling/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]
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]
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.
#### [cli.js](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli/node) [JS]
It is a wrapper around [cli.rs](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.
#### [tauri-cli](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli) [RUST]
#### [cli.rs](https://github.com/tauri-apps/tauri/tree/dev/tooling/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.
#### [create-tauri-app](https://github.com/tauri-apps/create-tauri-app) [JS]
@@ -67,6 +67,9 @@ Tauri uses WRY as the abstract layer responsible to determine which webview is u
# Additional tooling
## [binary-releases](https://github.com/tauri-apps/binary-releases)
This is the delivery mechanism for tauri prebuilt binaries: currently the cli.rs (used by cli.js) and rustup binaries (used by the deps install command of cli.js). These artifacts are automatically created on release.
## [tauri-action](https://github.com/tauri-apps/tauri-action)
This is a github workflow that builds tauri binaries for all platforms. It is not the fastest out there, but it gets the job done and is highly configurable. Even allowing you to create a (very basic) tauri app even if tauri is not setup.
@@ -116,7 +119,7 @@ This will do several things:
1. start the JS Framework devserver
2. begin the long process of downloading and compiling the rust libraries
3. open an application window with devtools enabled
4. keep a long-lived console alive
4. keep a long-lived console alive
If you change your HTML/CSS/TS/JS, your framework devserver should give you its best shot at instant hot module reloading and you will see the changes instantly.
@@ -146,7 +149,7 @@ After some time, the process will end and you can see the results in the `./src-
End users will be provided with binaries in ways that are appropriate for their systems. Whether macOS, Linux, or Windows, direct download or store installations - they will be able to follow procedures for installing and removing that they are used to.
## What does the Updating flow look like?
When a new version is ready, the developer publishes the new signed artifacts to a server (that they have configured within `tauri.conf.json`).
When a new version is ready, the developer publishes the new signed artifacts to a server (that they have configured within `tauri.conf.json`).
The application can poll this server to see if there is a new release. When there is a new release, the user is prompted to update. The application update is downloaded, verified (checksum & signature), updated, closed, and restarted.

5737
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,4 @@
[workspace]
resolver = "2"
members = [
# core
"core/tauri",
@@ -9,11 +8,11 @@ members = [
"core/tauri-utils",
"core/tauri-build",
"core/tauri-codegen",
"core/tauri-config-schema",
"core/config-schema",
# integration tests
"core/tests/restart",
"core/tests/app-updater",
"core/tests/app-updater"
]
exclude = [
@@ -23,7 +22,7 @@ exclude = [
"examples/resources/src-tauri",
"examples/sidecar/src-tauri",
"examples/web/core",
"examples/workspace",
"examples/workspace"
]
# default to small, optimized workspace release binaries

View File

@@ -2,7 +2,7 @@
[![status](https://img.shields.io/badge/status-stable-blue.svg)](https://github.com/tauri-apps/tauri/tree/dev)
[![License](https://img.shields.io/badge/License-MIT%20or%20Apache%202-green.svg)](https://opencollective.com/tauri)
[![test core](https://img.shields.io/github/actions/workflow/status/tauri-apps/tauri/test-core.yml?label=test%20core&logo=github)](https://github.com/tauri-apps/tauri/actions/workflows/test-core.yml)
[![test library](https://img.shields.io/github/workflow/status/tauri-apps/tauri/test%20library?label=test%20library)](https://github.com/tauri-apps/tauri/actions?query=workflow%3A%22test+library%22)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Ftauri-apps%2Ftauri.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Ftauri-apps%2Ftauri?ref=badge_shield)
[![Chat Server](https://img.shields.io/badge/chat-discord-7289da.svg)](https://discord.gg/SpmNs4S)
[![website](https://img.shields.io/badge/website-tauri.app-purple.svg)](https://tauri.app)
@@ -25,12 +25,12 @@
### Tooling
| Component | Description | Version | Lin | Win | Mac |
| ------------------------------------------------------------------------------------ | ---------------------------------------- | ------------------------------------------------------------------------------------------------------ | --- | --- | --- |
| [**bundler**](https://github.com/tauri-apps/tauri/tree/dev/tooling/bundler) | manufacture the final binaries | [![](https://img.shields.io/crates/v/tauri-bundler.svg)](https://crates.io/crates/tauri-bundler) | ✅ | ✅ | ✅ |
| [**tauri-cli**](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli) | create, develop and build apps | [![](https://img.shields.io/crates/v/tauri-cli.svg)](https://crates.io/crates/tauri-cli) | ✅ | ✅ | ✅ |
| [**@tauri-apps/cli**](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli/node) | Node.js CLI wrapper for `tauri-cli` | [![](https://img.shields.io/npm/v/@tauri-apps/cli.svg)](https://www.npmjs.com/package/@tauri-apps/cli) | ✅ | ✅ | ✅ |
| [**@tauri-apps/api**](https://github.com/tauri-apps/tauri/tree/dev/tooling/api) | JS API for interaction with Rust backend | [![](https://img.shields.io/npm/v/@tauri-apps/api.svg)](https://www.npmjs.com/package/@tauri-apps/api) | ✅ | ✅ | ✅ |
| Component | Description | Version | Lin | Win | Mac |
| --------------------------------------------------------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------ | --- | --- | --- |
| [**bundler**](https://github.com/tauri-apps/tauri/tree/dev/tooling/bundler) | manufacture the final binaries | [![](https://img.shields.io/crates/v/tauri-bundler.svg)](https://crates.io/crates/tauri-bundler) | ✅ | ✅ | ✅ |
| [**api.js**](https://github.com/tauri-apps/tauri/tree/dev/tooling/api) | JS API for interaction with Rust backend | [![](https://img.shields.io/npm/v/@tauri-apps/api.svg)](https://www.npmjs.com/package/@tauri-apps/api) | ✅ | ✅ | ✅ |
| [**cli.rs**](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli) | create, develop and build apps | [![](https://img.shields.io/crates/v/tauri-cli.svg)](https://crates.io/crates/tauri-cli) | ✅ | ✅ | ✅ |
| [**cli.js**](https://github.com/tauri-apps/tauri/tree/dev/tooling/cli/node) | Node.js CLI wrapper for cli.rs | [![](https://img.shields.io/npm/v/@tauri-apps/cli.svg)](https://www.npmjs.com/package/@tauri-apps/cli) | ✅ | ✅ | ✅ |
### Utilities and Plugins
@@ -75,8 +75,6 @@ For **running** Tauri apps we support the below configurations (these are automa
- `webkit2gtk`, `gtk3`, `libayatana-appindicator`<sup>1</sup>
- Fedora (latest 2 versions) with the following packages installed:
- `webkit2gtk3`, `gtk3`, `libappindicator-gtk3`<sup>1</sup>
- Void with the following packages installed:
- `webkit2gtk`, `gtk+3`, `libappindicator`<sup>1</sup>
<sup>1</sup> `appindicator` is only required if system trays are used

View File

@@ -1,5 +1,3 @@
#!/usr/bin/env node
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
@@ -11,22 +9,13 @@ const readline = require('readline')
const header = `Copyright 2019-2023 Tauri Programme within The Commons Conservancy
SPDX-License-Identifier: Apache-2.0
SPDX-License-Identifier: MIT`
const bundlerLicense =
'// Copyright 2016-2019 Cargo-Bundle developers <https://github.com/burtonageo/cargo-bundle>'
const bundlerLicense = '// Copyright 2016-2019 Cargo-Bundle developers <https://github.com/burtonageo/cargo-bundle>'
const extensions = ['.rs', '.js', '.ts', '.yml']
const ignore = [
'target',
'templates',
'node_modules',
'gen',
'dist',
'bundle.js',
'bundle.global.js'
]
const ignore = ['target', 'templates', 'node_modules', 'gen', 'dist', 'bundle.js', 'bundle.global.js']
async function checkFile(file) {
if (extensions.some((e) => file.endsWith(e))) {
if (extensions.some(e => file.endsWith(e))) {
const fileStream = fs.createReadStream(file)
const rl = readline.createInterface({
input: fileStream,
@@ -37,11 +26,7 @@ async function checkFile(file) {
let i = 0
for await (let line of rl) {
// ignore empty lines, allow shebang and bundler license
if (
line.length === 0 ||
line.startsWith('#!') ||
line === bundlerLicense
) {
if (line.length === 0 || line.startsWith("#!") || line === bundlerLicense) {
continue
}
@@ -108,7 +93,7 @@ if (files.length > 0) {
run()
} else {
check('.').then((missing) => {
check('.').then(missing => {
if (missing.length > 0) {
console.log(missing.join('\n'))
process.exit(1)

View File

@@ -0,0 +1,13 @@
[package]
name = "config-schema"
version = "0.0.0"
edition = "2021"
publish = false
[build-dependencies]
tauri-utils = { version = "1.0.0", features = [ "schema" ], path = "../tauri-utils" }
schemars = { version = "0.8", features = [ "url", "preserve_order" ] }
serde = { version = "1.0", features = [ "derive" ] }
serde_json = "1.0"
serde_with = "1.12"
url = { version = "2.3", features = [ "serde" ] }

Some files were not shown because too many files have changed in this diff Show More