From 36fe5e30cb11c45b9496962ed67d262baad334af Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 14:16:01 -0800 Subject: [PATCH 01/23] chore: clean up cargo.tomls to enable releasing --- Cargo.lock | 16 +++++++++------- Cargo.toml | 10 +++++----- packages/fullstack/Cargo.toml | 6 +++--- packages/ssr/Cargo.toml | 2 +- 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 52f5a173a7..e5ace42e33 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5728,7 +5728,8 @@ dependencies = [ [[package]] name = "manganis" version = "0.1.0" -source = "git+https://github.com/DioxusLabs/collect-assets?rev=f982698#f982698027fc27d22acfb4121fba389ec125d538" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a25951ece27df54c1506824923c824e1b3d9f742bb01beab45123b306c95a0e4" dependencies = [ "manganis-macro", ] @@ -5736,7 +5737,8 @@ dependencies = [ [[package]] name = "manganis-cli-support" version = "0.1.0" -source = "git+https://github.com/DioxusLabs/collect-assets?rev=f982698#f982698027fc27d22acfb4121fba389ec125d538" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78d2f137b00aeba4862491a418930ae727493106c67bd720d8588b92ed7529b7" dependencies = [ "anyhow", "cargo-lock 9.0.0", @@ -5762,7 +5764,8 @@ dependencies = [ [[package]] name = "manganis-common" version = "0.1.0" -source = "git+https://github.com/DioxusLabs/collect-assets?rev=f982698#f982698027fc27d22acfb4121fba389ec125d538" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b22d7de6c9e0ad3332c900a120aadedab171907504ad02440d104272c351c80" dependencies = [ "anyhow", "base64", @@ -5776,11 +5779,10 @@ dependencies = [ [[package]] name = "manganis-macro" -version = "0.0.1" -source = "git+https://github.com/DioxusLabs/collect-assets?rev=f982698#f982698027fc27d22acfb4121fba389ec125d538" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a04a22bb5d861f3b4fa37669d0344cf1350f19e18b9a73d1acdd2c8079fbc2" dependencies = [ - "base64", - "manganis-cli-support", "manganis-common", "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index bb8e9ae78b..22c1f1a388 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -84,7 +84,7 @@ dioxus-cli-config = { path = "packages/cli-config", version = "0.4.1" } generational-box = { path = "packages/generational-box", version = "0.4.3" } dioxus-hot-reload = { path = "packages/hot-reload", version = "0.4.0" } dioxus-fullstack = { path = "packages/fullstack", version = "0.4.1" } -dioxus_server_macro = { path = "packages/server-macro", version = "0.4.1" } +dioxus_server_macro = { path = "packages/server-macro", version = "0.4.1", default-features = false} tracing = "0.1.37" tracing-futures = "0.2.5" toml = "0.8" @@ -99,16 +99,16 @@ thiserror = "1.0.40" prettyplease = { package = "prettier-please", version = "0.2", features = [ "verbatim", ] } -manganis-cli-support = { git = "https://github.com/DioxusLabs/collect-assets", rev = "f982698", features = [ +manganis-cli-support = { version = "0.1.0", features = [ "webp", "html", ] } -manganis = { git = "https://github.com/DioxusLabs/collect-assets", rev = "f982698" } +manganis = { version = "0.1.0" } lru = "0.12.2" async-trait = "0.1.77" axum = "0.7.0" -axum-server = "0.6.0" +axum-server = {version = "0.6.0", default-features = false} tower = "0.4.13" http = "1.0.0" tower-http = "0.5.1" @@ -192,4 +192,4 @@ required-features = ["http"] [[example]] name = "image_generator_openai" -required-features = ["http"] \ No newline at end of file +required-features = ["http"] diff --git a/packages/fullstack/Cargo.toml b/packages/fullstack/Cargo.toml index 2dcdb9b65e..e419205a97 100644 --- a/packages/fullstack/Cargo.toml +++ b/packages/fullstack/Cargo.toml @@ -13,10 +13,10 @@ resolver = "2" [dependencies] # server functions server_fn = { version = "0.6.5", features = ["json", "url", "browser"], default-features = false } -dioxus_server_macro = { workspace = true, version = "0.6.5", default-features = false } +dioxus_server_macro = { workspace = true } # axum -axum = { workspace = true, features = ["ws", "macros"], default-features = false, optional = true } +axum = { workspace = true, features = ["ws", "macros"], optional = true } tower-http = { workspace = true, optional = true, features = ["fs", "compression-gzip"] } dioxus-lib = { workspace = true } @@ -44,7 +44,7 @@ anymap = { version = "0.12.1", optional = true } serde = "1.0.159" serde_json = { version = "1.0.95", optional = true } tokio-stream = { version = "0.1.12", features = ["sync"], optional = true } -futures-util = { workspace = true, default-features = false } +futures-util = { workspace = true } ciborium = "0.2.1" base64 = "0.21.0" diff --git a/packages/ssr/Cargo.toml b/packages/ssr/Cargo.toml index a46c141775..4e55e8ea24 100644 --- a/packages/ssr/Cargo.toml +++ b/packages/ssr/Cargo.toml @@ -20,7 +20,7 @@ tracing = { workspace = true } http = { workspace = true } async-trait = { workspace = true } serde_json = { workspace = true } -chrono = { verison = "0.4.34", optional = true } +chrono = { version = "0.4.34", optional = true } [target.'cfg(target_arch = "wasm32")'.dependencies] tokio = { version = "1.28", features = ["io-util"], optional = true } From 53bfa9834653344abdb51ab247e4eaed24c15481 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 14:21:42 -0800 Subject: [PATCH 02/23] wip: add publish workflow --- .github/workflows/publish.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000000..b602f8c28a --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,6 @@ +# Release a number of things +# - the extension +# - the CLI +# - nightly docs +# - the website +# - crates themselves From be29c1fdaa2a8830c5c8ef1324beb11c651b8a16 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 14:30:13 -0800 Subject: [PATCH 03/23] chore: move all packages onto workspace versions --- Cargo.lock | 4 ++-- Cargo.toml | 3 ++- packages/cli-config/Cargo.toml | 2 +- packages/cli/Cargo.toml | 2 +- packages/extension/Cargo.toml | 3 +-- packages/generational-box/Cargo.toml | 2 +- packages/signals/Cargo.toml | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e5ace42e33..2864d55bb5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2325,7 +2325,7 @@ dependencies = [ [[package]] name = "dioxus-cli-config" -version = "0.4.1" +version = "0.4.3" dependencies = [ "cargo_toml 0.16.3", "clap 4.4.18", @@ -2445,7 +2445,7 @@ dependencies = [ [[package]] name = "dioxus-ext" -version = "0.1.0" +version = "0.4.3" dependencies = [ "dioxus-autofmt", "html_parser", diff --git a/Cargo.toml b/Cargo.toml index 22c1f1a388..7cc77cb02f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -79,12 +79,13 @@ plasmo = { path = "packages/plasmo", version = "0.4.0" } dioxus-native-core = { path = "packages/native-core", version = "0.4.0" } dioxus-native-core-macro = { path = "packages/native-core-macro", version = "0.4.0" } rsx-rosetta = { path = "packages/rsx-rosetta", version = "0.4.0" } -dioxus-signals = { path = "packages/signals" } +dioxus-signals = { path = "packages/signals", version = "0.4.0" } dioxus-cli-config = { path = "packages/cli-config", version = "0.4.1" } generational-box = { path = "packages/generational-box", version = "0.4.3" } dioxus-hot-reload = { path = "packages/hot-reload", version = "0.4.0" } dioxus-fullstack = { path = "packages/fullstack", version = "0.4.1" } dioxus_server_macro = { path = "packages/server-macro", version = "0.4.1", default-features = false} +dioxus-ext = { path = "packages/extension", version = "0.4.0" } tracing = "0.1.37" tracing-futures = "0.2.5" toml = "0.8" diff --git a/packages/cli-config/Cargo.toml b/packages/cli-config/Cargo.toml index 0d93c5ebe1..aee78d1c2a 100644 --- a/packages/cli-config/Cargo.toml +++ b/packages/cli-config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dioxus-cli-config" -version = "0.4.1" +version = { workspace = true } authors = ["Jonathan Kelley"] edition = "2021" description = "Configuration for the Dioxus CLI" diff --git a/packages/cli/Cargo.toml b/packages/cli/Cargo.toml index a949b0ed08..ba4c1f8cf8 100644 --- a/packages/cli/Cargo.toml +++ b/packages/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dioxus-cli" -version = "0.4.3" +version = { workspace = true } authors = ["Jonathan Kelley"] edition = "2021" description = "CLI tool for developing, testing, and publishing Dioxus apps" diff --git a/packages/extension/Cargo.toml b/packages/extension/Cargo.toml index 2418895a3e..6ca047cd5c 100644 --- a/packages/extension/Cargo.toml +++ b/packages/extension/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dioxus-ext" -version = "0.1.0" +version = { workspace = true } edition = "2021" publish = false @@ -12,6 +12,5 @@ dioxus-autofmt = { workspace = true } rsx-rosetta = { workspace = true } html_parser = { workspace = true } - [lib] crate-type = ["cdylib", "rlib"] diff --git a/packages/generational-box/Cargo.toml b/packages/generational-box/Cargo.toml index 09d1e76c3e..9f4e08105a 100644 --- a/packages/generational-box/Cargo.toml +++ b/packages/generational-box/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "generational-box" authors = ["Evan Almloff"] -version = "0.4.3" +version = { workspace = true } edition = "2021" description = "A box backed by a generational runtime" license = "MIT OR Apache-2.0" diff --git a/packages/signals/Cargo.toml b/packages/signals/Cargo.toml index d2d8dc7ec7..b8b29c2c57 100644 --- a/packages/signals/Cargo.toml +++ b/packages/signals/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "dioxus-signals" -authors = ["Jonathan Kelley"] -version = "0.4.3" +authors = ["Jonathan Kelley", "Evan Almloff"] +version = { workspace = true } edition = "2021" description = "Signals for Dioxus" license = "MIT OR Apache-2.0" From 0ae0929691e3bfbee49a2aeffcee2ad4f199ea64 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 14:32:19 -0800 Subject: [PATCH 04/23] fix: some simple formatting and version numbers --- examples/PWA-example/Cargo.toml | 4 ++-- packages/html-internal-macro/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/PWA-example/Cargo.toml b/examples/PWA-example/Cargo.toml index 72ffb86d7f..47b0c7e3e1 100644 --- a/examples/PWA-example/Cargo.toml +++ b/examples/PWA-example/Cargo.toml @@ -8,8 +8,8 @@ publish = false # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -dioxus = { path = "../../packages/dioxus", version = "*" } -dioxus-web = { path = "../../packages/web", version = "*" } +dioxus = { workspace = true } +dioxus-web = { workspace = true } log = "0.4.6" diff --git a/packages/html-internal-macro/Cargo.toml b/packages/html-internal-macro/Cargo.toml index ce8ad54b1f..2641e00f32 100644 --- a/packages/html-internal-macro/Cargo.toml +++ b/packages/html-internal-macro/Cargo.toml @@ -25,4 +25,4 @@ name = "tests" path = "tests/progress.rs" [dev-dependencies] -trybuild = { version = "1.0.82", features = ["diff"] } \ No newline at end of file +trybuild = { version = "1.0.82", features = ["diff"] } From fff70973aa6cd01d1e22b4e3539407b2bf51abcd Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 15:40:50 -0800 Subject: [PATCH 05/23] wip: add semver workflows --- .github/workflows/publish.yml | 48 +++++++++++++++++++++++++++++++++++ .github/workflows/semver.yml | 9 +++++++ 2 files changed, 57 insertions(+) create mode 100644 .github/workflows/semver.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index b602f8c28a..f38670cc9b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -4,3 +4,51 @@ # - nightly docs # - the website # - crates themselves + +name: Publish to crates.io + +on: + workflow_dispatch: + inputs: + semver: + type: choice + description: "Semver version to publish" + required: true + options: + - patch + - minor + - major + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Set up Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: nightly + override: true + - name: Install cargo-workspaces + run: cargo install cargo-workspaces + - name: Login to crates.io + uses: actions-rs/cargo@v1 + with: + toolchain: nightly + command: login + args: ${{ secrets.CRATES_TOKEN }} + - name: Publish to crates.io + run: | + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "github-actions[bot]" + + # Release as-is + # This assumes the version tracking PR has been merged + + + # cargo workspaces changed + # # version will automatically commit back to the repo + # # cargo workspaces version -y ${{ github.event.inputs.semver }} + # # publish will automatically commit back to the repo **AND** publish to crates.io + # # cargo workspaces publish -y ${{ github.event.inputs.semver }} diff --git a/.github/workflows/semver.yml b/.github/workflows/semver.yml new file mode 100644 index 0000000000..10dcff6c61 --- /dev/null +++ b/.github/workflows/semver.yml @@ -0,0 +1,9 @@ +# Whenever commits are merged to main, update or create a PR that bumps the version +# Tracks if changes are semver compatible +# Most likely the changes aren't semver compatible +# +# We want to have a standing "major" update PR and a standing "minor" update PR where fixes are backported +# +# Whenever a PR is made, we want to comment on it: +# - semver compatibility +# - if it's a fix, it should be backported to the minor update PR From 98ef7c829bce98dba2322a9c06c07c9c04345e83 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 16:13:33 -0800 Subject: [PATCH 06/23] wip: add some workflows for backporting, semver, and publishing --- .github/workflows/backport.yml | 24 +++++++++++++++++++++ .github/workflows/publish.yml | 1 - .github/workflows/semver.yml | 38 ++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/backport.yml diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml new file mode 100644 index 0000000000..440bbc7318 --- /dev/null +++ b/.github/workflows/backport.yml @@ -0,0 +1,24 @@ +# Attempt to backport a merged pull request to the latest stable release +# +# If the backported PR is succesfully merged + +name: Backport merged pull request +on: + pull_request_target: + types: [closed] + +permissions: + contents: write # so it can comment + pull-requests: write # so it can create pull requests + +jobs: + backport: + name: Backport pull request + runs-on: ubuntu-latest + + # Don't run on closed unmerged pull requests + if: github.event.pull_request.merged + steps: + - uses: actions/checkout@v4 + - name: Create backport pull requests + uses: korthout/backport-action@v2 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f38670cc9b..b111de50f5 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -46,7 +46,6 @@ jobs: # Release as-is # This assumes the version tracking PR has been merged - # cargo workspaces changed # # version will automatically commit back to the repo # # cargo workspaces version -y ${{ github.event.inputs.semver }} diff --git a/.github/workflows/semver.yml b/.github/workflows/semver.yml index 10dcff6c61..10121ed396 100644 --- a/.github/workflows/semver.yml +++ b/.github/workflows/semver.yml @@ -7,3 +7,41 @@ # Whenever a PR is made, we want to comment on it: # - semver compatibility # - if it's a fix, it should be backported to the minor update PR + +on: + push: + branches: + - master + +# Generate the minor bump +jobs: + update_routes: + runs-on: ubuntu-latest + steps: + # Check out the repo, but don't persist credentials, so github uses the GITHUB_TOKEN + - uses: actions/checkout@v2 + with: + persist-credentials: false + + # Run cargo workspaces version to generate the version bump PR + - run: "date > datetime.txt" # create or update a test.txt file + + # And then create the PR + - uses: gr2m/create-or-update-pull-request-action@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + title: "My pull request title" + body: "My pull request body" + branch: "my-pull-request-base-branch" + path: "lib/" + commit-message: "My commit message for uncommitted changes in lib/ folder" + author: "Lorem J. Ipsum " + labels: label1, label2 + assignees: user1, user2 + reviewers: user1, user2 + team_reviewers: team1, team2 + auto-merge: squash + update-pull-request-title-and-body: false + +# Generate the major bump From 8f70f8936fb6383bca67ec5ba54da6f309e0d621 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 19:36:33 -0800 Subject: [PATCH 07/23] wip: consolidate release --- .github/free_space.sh | 12 - .github/workflows/backport.yml | 1 + .github/workflows/cli_release.yml | 56 ---- .github/workflows/docs stable.yml | 43 --- .github/workflows/docs.yml | 38 --- .github/workflows/main.yml | 22 +- .github/workflows/promote.yml | 4 + .github/workflows/publish.yml | 53 ---- .github/workflows/release.yml | 423 ++++++++++++++++++++++++++++++ .github/workflows/semver.yml | 47 ---- .github/workflows/wipe_cache.yml | 37 --- packages/extension/package.json | 4 +- 12 files changed, 451 insertions(+), 289 deletions(-) delete mode 100644 .github/free_space.sh delete mode 100644 .github/workflows/cli_release.yml delete mode 100644 .github/workflows/docs stable.yml delete mode 100644 .github/workflows/docs.yml create mode 100644 .github/workflows/promote.yml delete mode 100644 .github/workflows/publish.yml create mode 100644 .github/workflows/release.yml delete mode 100644 .github/workflows/semver.yml delete mode 100644 .github/workflows/wipe_cache.yml diff --git a/.github/free_space.sh b/.github/free_space.sh deleted file mode 100644 index 70bef384d2..0000000000 --- a/.github/free_space.sh +++ /dev/null @@ -1,12 +0,0 @@ -df -h -sudo rm -rf ${GITHUB_WORKSPACE}/.git -sudo rm -rf "$AGENT_TOOLSDIRECTORY" -sudo rm -rf /usr/share/dotnet -sudo apt-get remove -y '^ghc-8.*' -sudo apt-get remove -y '^dotnet-.*' -sudo apt-get remove -y '^llvm-.*' -sudo apt-get remove -y 'php.*' -sudo apt-get remove -y azure-cli google-cloud-sdk hhvm google-chrome-stable firefox powershell mono-devel -sudo apt-get autoremove -y -sudo apt-get clean -df -h diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index 440bbc7318..10a0cc7ada 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -1,6 +1,7 @@ # Attempt to backport a merged pull request to the latest stable release # # If the backported PR is succesfully merged +# Any PR without the "breaking" label will be attempted to be backported to the latest stable release name: Backport merged pull request on: diff --git a/.github/workflows/cli_release.yml b/.github/workflows/cli_release.yml deleted file mode 100644 index 544c375a27..0000000000 --- a/.github/workflows/cli_release.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: Build CLI for Release - -# Will run automatically on every new release -on: - release: - types: [published] - -jobs: - build-and-upload: - permissions: - contents: write - runs-on: ${{ matrix.platform.os }} - strategy: - matrix: - platform: - - { - target: x86_64-pc-windows-msvc, - os: windows-latest, - toolchain: "1.70.0", - } - - { - target: x86_64-apple-darwin, - os: macos-latest, - toolchain: "1.70.0", - } - - { - target: x86_64-unknown-linux-gnu, - os: ubuntu-latest, - toolchain: "1.70.0", - } - steps: - - uses: actions/checkout@v4 - - name: Install stable - uses: dtolnay/rust-toolchain@master - with: - toolchain: ${{ matrix.platform.toolchain }} - targets: ${{ matrix.platform.target }} - - - uses: ilammy/setup-nasm@v1 - - # Setup the Github Actions Cache for the CLI package - - name: Setup cache - uses: Swatinem/rust-cache@v2 - with: - workspaces: packages/cli -> ../../target - - # This neat action can build and upload the binary in one go! - - name: Build and upload binary - uses: taiki-e/upload-rust-binary-action@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - target: ${{ matrix.platform.target }} - bin: dx - archive: dx-${{ matrix.platform.target }} - checksum: sha256 - manifest_path: packages/cli/Cargo.toml diff --git a/.github/workflows/docs stable.yml b/.github/workflows/docs stable.yml deleted file mode 100644 index 523a240670..0000000000 --- a/.github/workflows/docs stable.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: docs stable - -on: - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -jobs: - build-deploy: - runs-on: ubuntu-latest - environment: docs - steps: - - # NOTE: Comment out when https://github.com/rust-lang/mdBook/pull/1306 is merged and released - # - name: Setup mdBook - # uses: peaceiris/actions-mdbook@v1 - # with: - # mdbook-version: "0.4.10" - - # NOTE: Delete when the previous one is enabled - - name: Setup mdBook - run: | - cargo install mdbook --git https://github.com/Demonthos/mdBook.git --branch master - - uses: actions/checkout@v4 - - - name: Build - run: cd docs && - cd guide && mdbook build -d ../nightly/guide && cd .. && - cd router && mdbook build -d ../nightly/router && cd .. - # cd reference && mdbook build -d ../nightly/reference && cd .. && - # cd fermi && mdbook build -d ../nightly/fermi && cd .. - - - name: Deploy 🚀 - uses: JamesIves/github-pages-deploy-action@v4.5.0 - with: - branch: gh-pages # The branch the action should deploy to. - folder: docs/nightly # The folder the action should deploy. - target-folder: docs - repository-name: dioxuslabs/docsite - clean: false - token: ${{ secrets.DEPLOY_KEY }} # let's pretend I don't need it for now diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml deleted file mode 100644 index a9940b0c42..0000000000 --- a/.github/workflows/docs.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Deploy Nightly Docs -on: - push: - branches: - - main - -jobs: - deploy: - name: Build & Deploy - runs-on: ubuntu-latest - permissions: - contents: write - - steps: - - uses: actions/checkout@v4 - - run: sudo apt-get update - - run: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev libxdo-dev - - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: nightly-2024-02-01 - - uses: Swatinem/rust-cache@v2 - with: - cache-all-crates: "true" - save-if: ${{ github.ref == 'refs/heads/main' }} - - uses: ilammy/setup-nasm@v1 - - - name: cargo doc - run: cargo doc --no-deps --workspace --all-features - - - name: Deploy - uses: JamesIves/github-pages-deploy-action@v4.5.0 - with: - branch: gh-pages - folder: target/doc - target-folder: api-docs/nightly - repository-name: dioxuslabs/docsite - clean: false - token: ${{ secrets.DEPLOY_KEY }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e9c0cf3c89..c2b3c6c1a6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -75,7 +75,6 @@ jobs: large-packages: false docker-images: false swap-storage: false - - run: cargo make tests fmt: @@ -112,6 +111,27 @@ jobs: save-if: ${{ github.ref == 'refs/heads/main' }} - run: cargo clippy --workspace --examples --tests --all-features --all-targets -- -D warnings + # Only run semver checks if the PR is not a draft and does not have the breaking label + # Breaking PRs don't need to follow semver since they are breaking changes + # However, this means we won't attempt to backport them, so you should be careful about using this label, as it will + # likely make future backporting difficult + semver: + if: github.event.pull_request.draft == false + if: ${{ !contains(github.event.pull_request.labels.*.name, 'breaking') }} + name: Semver Check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ilammy/setup-nasm@v1 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + with: + cache-all-crates: "true" + save-if: ${{ github.ref == 'refs/heads/main' }} + - name: Check semver + uses: obi1kenobi/cargo-semver-checks-action@v2 + - run: cargo semver-checks check-release --workspace --exclude "dioxus-cli, dioxus-ext" + playwright: if: github.event.pull_request.draft == false name: Playwright Tests diff --git a/.github/workflows/promote.yml b/.github/workflows/promote.yml new file mode 100644 index 0000000000..37e7e3d9d6 --- /dev/null +++ b/.github/workflows/promote.yml @@ -0,0 +1,4 @@ +# promote nightly to stable +# +# runs the various git commands to update the version +# should be followed up by a stable release diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml deleted file mode 100644 index b111de50f5..0000000000 --- a/.github/workflows/publish.yml +++ /dev/null @@ -1,53 +0,0 @@ -# Release a number of things -# - the extension -# - the CLI -# - nightly docs -# - the website -# - crates themselves - -name: Publish to crates.io - -on: - workflow_dispatch: - inputs: - semver: - type: choice - description: "Semver version to publish" - required: true - options: - - patch - - minor - - major - -jobs: - publish: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v2 - - name: Set up Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: nightly - override: true - - name: Install cargo-workspaces - run: cargo install cargo-workspaces - - name: Login to crates.io - uses: actions-rs/cargo@v1 - with: - toolchain: nightly - command: login - args: ${{ secrets.CRATES_TOKEN }} - - name: Publish to crates.io - run: | - git config --global user.email "github-actions[bot]@users.noreply.github.com" - git config --global user.name "github-actions[bot]" - - # Release as-is - # This assumes the version tracking PR has been merged - - # cargo workspaces changed - # # version will automatically commit back to the repo - # # cargo workspaces version -y ${{ github.event.inputs.semver }} - # # publish will automatically commit back to the repo **AND** publish to crates.io - # # cargo workspaces publish -y ${{ github.event.inputs.semver }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000000..f4031ed9f6 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,423 @@ +# Release workflow +# +# We parallelize builds, dump all the artifacts into a release, and then publish the release +# This guarantees everything is properly built and cached in case anything goes wrong +# +# The artifacts also need to get pushed to the various places +# - the CLI goes to the releases page for binstall +# - the extension goes to the marketplace +# - the docs go to the website +# +# We need to be aware of the channel we're releasing +# - prerelease is master +# - stable is whatever the latest stable release is (ie 0.4 or 0.5 or 0.6 etc) +# +# In theory, we could trigger this workflow and set the channel accordingly + +on: + workflow_dispatch: + inputs: + channel: + type: choice + description: "Channel to publish" + required: true + description: Publish crates, extension, CLI, and docs + options: + - v0.4.x + - v0.5.x + - main + + # todo: use better name scheme + # - stable # the currently released version of dioxus + # - prerelease # the next version of dioxus, which we release slowly + +jobs: + # Build the CLI for all platforms + build-cli: + permissions: + contents: write + runs-on: ${{ matrix.platform.os }} + strategy: + matrix: + platform: + - { + target: x86_64-pc-windows-msvc, + os: windows-latest, + toolchain: "1.70.0", + } + - { + target: x86_64-apple-darwin, + os: macos-latest, + toolchain: "1.70.0", + } + - { + target: x86_64-unknown-linux-gnu, + os: ubuntu-latest, + toolchain: "1.70.0", + } + steps: + - uses: actions/checkout@v4 + - name: Install stable + uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{ matrix.platform.toolchain }} + targets: ${{ matrix.platform.target }} + - uses: ilammy/setup-nasm@v1 + + # Setup the Github Actions Cache for the CLI package + - name: Setup cache + uses: Swatinem/rust-cache@v2 + with: + workspaces: packages/cli -> ../../target + + # + + # Build the vscode extension + build-extension: + + # Build the docs + build-docs: + + # Run benchmarks, which we'll use to display on the website + build-benchmarks: + + + # And then do the releases, once everything is built + release: + depends-on: [build-cli, build-extension, build-docs, build-benchmarks] + + # Before anything else, we need to publish the crates + - name: Publish to crates.io + run: | + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "github-actions[bot]" + cargo workspaces publish -y ${{ github.event.inputs.semver }} + + # Todo: we want `cargo install dx` to actually just use a prebuilt binary + - name: Build and upload CLI binaries + uses: taiki-e/upload-rust-binary-action@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + target: ${{ matrix.platform.target }} + bin: dx + archive: dx-${{ matrix.platform.target }} + checksum: sha256 + manifest_path: packages/cli/Cargo.toml + +# build the docs, CLI, extension, and release +jobs: + build-deploy: + runs-on: ubuntu-latest + environment: docs + steps: + # install rust, etc, with caching, and do some checks + - uses: actions/checkout@v4 + - run: sudo apt-get update + - run: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev libxdo-dev + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + with: + cache-all-crates: "true" + save-if: ${{ github.ref == 'refs/heads/main' }} + + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@v1.3.1 + with: # speed things up a bit + large-packages: false + docker-images: false + swap-storage: false + + # Just make sure clippy is happy before doing anything else + # Don't publish versions with clippy errors! + - name: Clippy + run: cargo clippy --workspace --all --examples --tests --all-features --all-targets -- -D warnings + + # Build the CLI... todo: do this in a matrix using binstall + - name: Build CLI + run: cargo build --release --bin dx + + - name: Build Extension + run: cargo build --release --bin dx-ext + - name: Bundle extension + working-directory: ./packages/extension + run: vsce package && mv *.vsix ../../dx-ext.vsix + + + # Docs first... + # NOTE: Delete when the previous one is enabled + # NOTE: Comment out when https://github.com/rust-lang/mdBook/pull/1306 is merged and released + # - name: Setup mdBook + # uses: peaceiris/actions-mdbook@v1 + # with: + # mdbook-version: "0.4.10" + - name: Setup mdBook + run: | + cargo install mdbook --git https://github.com/Demonthos/mdBook.git --branch master + + - name: Build + run: cd docs && + cd guide && mdbook build -d ../nightly/guide && cd .. && + cd router && mdbook build -d ../nightly/router && cd .. + + - name: Deploy docs 🚀 + uses: JamesIves/github-pages-deploy-action@v4.5.0 + with: + branch: gh-pages # The branch the action should deploy to. + folder: docs/nightly # The folder the action should deploy. + target-folder: docs + repository-name: dioxuslabs/docsite + # Don't clean the existing files, so the old docs are still available. + # todo: the history on the dociste is getting massive, so we should actually just be amending the commit + clean: false + token: ${{ secrets.DEPLOY_KEY }} + + # Then the CLI + + # Then the extension + + # Then the release itself + + +# Release a number of things +# - the extension +# - the CLI +# - nightly docs +# - the website +# - crates themselves + +# name: Publish to crates.io + +# on: +# workflow_dispatch: +# inputs: +# semver: +# type: choice +# description: "Semver version to publish" +# required: true +# options: +# - patch +# - minor +# - major + +# jobs: +# publish: +# runs-on: ubuntu-latest +# steps: +# - name: Checkout code +# uses: actions/checkout@v2 +# - name: Set up Rust +# uses: actions-rs/toolchain@v1 +# with: +# toolchain: nightly +# override: true +# - name: Install cargo-workspaces +# run: cargo install cargo-workspaces +# - name: Login to crates.io +# uses: actions-rs/cargo@v1 +# with: +# toolchain: nightly +# command: login +# args: ${{ secrets.CRATES_TOKEN }} +# - name: Publish to crates.io +# run: | +# git config --global user.email "github-actions[bot]@users.noreply.github.com" +# git config --global user.name "github-actions[bot]" + +# # Release as-is +# # This assumes the version tracking PR has been merged + +# # cargo workspaces changed +# # # version will automatically commit back to the repo +# # # cargo workspaces version -y ${{ github.event.inputs.semver }} +# Whenever commits are merged to main, update or create a PR that bumps the version +# Tracks if changes are semver compatible +# +# We want to have a standing "major" update PR and a standing "minor" update PR where fixes are backported +# +# Whenever a PR is merged, we want to attempt to update the major/minor bump PRs +# - for main, it's as simple as running cargo workspaces version -y minor and dumping it into a PR +# - for backport, it's a bit more complicated, since we need to know which branch is the latest stable release +# +# - We could make it so merging a PR with a "backport" label attempts to release it, using the target branch as the stable release + +# on: +# push: +# branches: +# - master + + +# # Generate the minor bump +# jobs: +# update_routes: +# runs-on: ubuntu-latest +# steps: +# # Check out the repo, but don't persist credentials, so github uses the GITHUB_TOKEN +# - uses: actions/checkout@v2 +# with: +# persist-credentials: false + +# # Run cargo workspaces version to generate the version bump PR +# - run: "date > datetime.txt" # create or update a test.txt file + +# # And then create the PR +# - uses: gr2m/create-or-update-pull-request-action@v1 +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# with: +# title: "My pull request title" +# body: "My pull request body" +# branch: "my-pull-request-base-branch" +# path: "lib/" +# commit-message: "My commit message for uncommitted changes in lib/ folder" +# author: "Lorem J. Ipsum " +# labels: label1, label2 +# assignees: user1, user2 +# reviewers: user1, user2 +# team_reviewers: team1, team2 +# auto-merge: squash +# update-pull-request-title-and-body: false + +# # Generate the major bump +# # # # publish will automatically commit back to the repo **AND** publish to crates.io +# # # # cargo workspaces publish -y ${{ github.event.inputs.semver }} + + +# name: Deploy Nightly Docs +# on: +# push: +# branches: +# - main + +# jobs: +# deploy: +# name: Build & Deploy +# runs-on: ubuntu-latest +# permissions: +# contents: write + +# steps: +# - uses: actions/checkout@v4 +# - run: sudo apt-get update +# - run: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev libxdo-dev +# - uses: dtolnay/rust-toolchain@nightly +# with: +# toolchain: nightly-2024-02-01 +# - uses: Swatinem/rust-cache@v2 +# with: +# cache-all-crates: "true" +# save-if: ${{ github.ref == 'refs/heads/main' }} +# - uses: ilammy/setup-nasm@v1 + +# - name: cargo doc +# run: cargo doc --no-deps --workspace --all-features + +# - name: Deploy +# uses: JamesIves/github-pages-deploy-action@v4.5.0 +# with: +# branch: gh-pages +# folder: target/doc +# target-folder: api-docs/nightly +# repository-name: dioxuslabs/docsite +# clean: false +# token: ${{ secrets.DEPLOY_KEY }} + + +# name: docs stable + +# on: +# workflow_dispatch: + +# concurrency: +# group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} +# cancel-in-progress: true + +# jobs: +# build-deploy: +# runs-on: ubuntu-latest +# environment: docs +# steps: + +# # NOTE: Comment out when https://github.com/rust-lang/mdBook/pull/1306 is merged and released +# # - name: Setup mdBook +# # uses: peaceiris/actions-mdbook@v1 +# # with: +# # mdbook-version: "0.4.10" + +# # NOTE: Delete when the previous one is enabled +# - name: Setup mdBook +# run: | +# cargo install mdbook --git https://github.com/Demonthos/mdBook.git --branch master +# - uses: actions/checkout@v4 + +# - name: Build +# run: cd docs && +# cd guide && mdbook build -d ../nightly/guide && cd .. && +# cd router && mdbook build -d ../nightly/router && cd .. + +# - name: Deploy 🚀 +# uses: JamesIves/github-pages-deploy-action@v4.5.0 +# with: +# branch: gh-pages # The branch the action should deploy to. +# folder: docs/nightly # The folder the action should deploy. +# target-folder: docs +# repository-name: dioxuslabs/docsite +# clean: false +# token: ${{ secrets.DEPLOY_KEY }} # let's pretend I don't need it for now + + +# name: Build CLI for Release + +# # Will run automatically on every new release +# on: +# release: +# types: [published] + +# jobs: +# build-and-upload: +# permissions: +# contents: write +# runs-on: ${{ matrix.platform.os }} +# strategy: +# matrix: +# platform: +# - { +# target: x86_64-pc-windows-msvc, +# os: windows-latest, +# toolchain: "1.70.0", +# } +# - { +# target: x86_64-apple-darwin, +# os: macos-latest, +# toolchain: "1.70.0", +# } +# - { +# target: x86_64-unknown-linux-gnu, +# os: ubuntu-latest, +# toolchain: "1.70.0", +# } +# steps: +# - uses: actions/checkout@v4 +# - name: Install stable +# uses: dtolnay/rust-toolchain@master +# with: +# toolchain: ${{ matrix.platform.toolchain }} +# targets: ${{ matrix.platform.target }} + +# - uses: ilammy/setup-nasm@v1 + +# # Setup the Github Actions Cache for the CLI package +# - name: Setup cache +# uses: Swatinem/rust-cache@v2 +# with: +# workspaces: packages/cli -> ../../target + +# # This neat action can build and upload the binary in one go! +# - name: Build and upload binary +# uses: taiki-e/upload-rust-binary-action@v1 +# with: +# token: ${{ secrets.GITHUB_TOKEN }} +# target: ${{ matrix.platform.target }} +# bin: dx +# archive: dx-${{ matrix.platform.target }} +# checksum: sha256 +# manifest_path: packages/cli/Cargo.toml diff --git a/.github/workflows/semver.yml b/.github/workflows/semver.yml deleted file mode 100644 index 10121ed396..0000000000 --- a/.github/workflows/semver.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Whenever commits are merged to main, update or create a PR that bumps the version -# Tracks if changes are semver compatible -# Most likely the changes aren't semver compatible -# -# We want to have a standing "major" update PR and a standing "minor" update PR where fixes are backported -# -# Whenever a PR is made, we want to comment on it: -# - semver compatibility -# - if it's a fix, it should be backported to the minor update PR - -on: - push: - branches: - - master - -# Generate the minor bump -jobs: - update_routes: - runs-on: ubuntu-latest - steps: - # Check out the repo, but don't persist credentials, so github uses the GITHUB_TOKEN - - uses: actions/checkout@v2 - with: - persist-credentials: false - - # Run cargo workspaces version to generate the version bump PR - - run: "date > datetime.txt" # create or update a test.txt file - - # And then create the PR - - uses: gr2m/create-or-update-pull-request-action@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - title: "My pull request title" - body: "My pull request body" - branch: "my-pull-request-base-branch" - path: "lib/" - commit-message: "My commit message for uncommitted changes in lib/ folder" - author: "Lorem J. Ipsum " - labels: label1, label2 - assignees: user1, user2 - reviewers: user1, user2 - team_reviewers: team1, team2 - auto-merge: squash - update-pull-request-title-and-body: false - -# Generate the major bump diff --git a/.github/workflows/wipe_cache.yml b/.github/workflows/wipe_cache.yml deleted file mode 100644 index 5a78a1e57a..0000000000 --- a/.github/workflows/wipe_cache.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: Clear cache - -on: - workflow_dispatch: - -permissions: - actions: write - -jobs: - clear-cache: - runs-on: ubuntu-latest - steps: - - name: Clear cache - uses: actions/github-script@v7 - with: - github-token: ${{ secrets.cache_controller }} - script: | - console.log("About to clear") - - while (true) { - const caches = await github.rest.actions.getActionsCacheList({ - owner: context.repo.owner, - repo: context.repo.repo - }) - if (caches.data.actions_caches.length === 0) { - break - } - for (const cache of caches.data.actions_caches) { - console.log(cache) - github.rest.actions.deleteActionsCacheById({ - owner: context.repo.owner, - repo: context.repo.repo, - cache_id: cache.id, - }) - } - } - console.log("Clear completed") diff --git a/packages/extension/package.json b/packages/extension/package.json index a60c4d799c..f834086daf 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -2,14 +2,14 @@ "name": "dioxus", "displayName": "Dioxus", "description": "Useful tools for working with Dioxus", - "version": "0.0.2", + "version": "0.4.0", "publisher": "DioxusLabs", "private": true, "license": "MIT", "icon": "static/icon.png", "repository": { "type": "git", - "url": "https://github.com/DioxusLabs/cli" + "url": "https://github.com/DioxusLabs/dioxus" }, "engines": { "vscode": "^1.68.1" From 112b4f9afbd9737d0a43586dc0fb09e5a2aae520 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 19:50:39 -0800 Subject: [PATCH 08/23] wip: release yaml --- .github/workflows/release.yml | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f4031ed9f6..6f80d31457 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,18 +19,17 @@ on: inputs: channel: type: choice - description: "Channel to publish" + description: "Branch to publish" required: true - description: Publish crates, extension, CLI, and docs + description: Choose the branch to publish. If the branch is main, it will publish a prerelease. + + # add more options as we release more stable versions. + # todo: automate branch selection options: - v0.4.x - v0.5.x - main - # todo: use better name scheme - # - stable # the currently released version of dioxus - # - prerelease # the next version of dioxus, which we release slowly - jobs: # Build the CLI for all platforms build-cli: @@ -57,21 +56,19 @@ jobs: } steps: - uses: actions/checkout@v4 + ref: ${{ github.event.inputs.channel }} - name: Install stable uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.platform.toolchain }} targets: ${{ matrix.platform.target }} - uses: ilammy/setup-nasm@v1 - - # Setup the Github Actions Cache for the CLI package - name: Setup cache uses: Swatinem/rust-cache@v2 + # cache only the cli - mmmm not sure if this is needed with: workspaces: packages/cli -> ../../target - # - # Build the vscode extension build-extension: @@ -83,15 +80,24 @@ jobs: # And then do the releases, once everything is built + # This should involve no rust and just pull down the artifacts release: depends-on: [build-cli, build-extension, build-docs, build-benchmarks] + # Checkout the right branch + - uses: actions/checkout@v4 + ref: ${{ github.event.inputs.channel }} + # Before anything else, we need to publish the crates + # todo: set the semver based on the channel + # - all semver is a minor bump, + # - if it's main, it's a prerelease, so use the prerelease flag - name: Publish to crates.io run: | git config --global user.email "github-actions[bot]@users.noreply.github.com" git config --global user.name "github-actions[bot]" - cargo workspaces publish -y ${{ github.event.inputs.semver }} + # cargo workspaces version -y ${{ github.event.inputs.semver }} + # cargo workspaces publish -y ${{ github.event.inputs.semver }} # Todo: we want `cargo install dx` to actually just use a prebuilt binary - name: Build and upload CLI binaries @@ -118,7 +124,7 @@ jobs: - uses: Swatinem/rust-cache@v2 with: cache-all-crates: "true" - save-if: ${{ github.ref == 'refs/heads/main' }} + # save-if: ${{ github.ref == 'refs/heads/main' }} # always save the cache - name: Free Disk Space (Ubuntu) uses: jlumbroso/free-disk-space@v1.3.1 From 319eb29ff4a00ad051ece8a6b949a3935f66109f Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 21:08:46 -0800 Subject: [PATCH 09/23] wip: clean up workflows --- .github/workflows/backport.yml | 25 -- .github/workflows/main.yml | 26 +- .github/workflows/merge.yml | 65 +++++ .github/workflows/publish.yml | 156 ++++++++++++ .github/workflows/release.yml | 429 --------------------------------- 5 files changed, 226 insertions(+), 475 deletions(-) delete mode 100644 .github/workflows/backport.yml create mode 100644 .github/workflows/merge.yml create mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml deleted file mode 100644 index 10a0cc7ada..0000000000 --- a/.github/workflows/backport.yml +++ /dev/null @@ -1,25 +0,0 @@ -# Attempt to backport a merged pull request to the latest stable release -# -# If the backported PR is succesfully merged -# Any PR without the "breaking" label will be attempted to be backported to the latest stable release - -name: Backport merged pull request -on: - pull_request_target: - types: [closed] - -permissions: - contents: write # so it can comment - pull-requests: write # so it can create pull requests - -jobs: - backport: - name: Backport pull request - runs-on: ubuntu-latest - - # Don't run on closed unmerged pull requests - if: github.event.pull_request.merged - steps: - - uses: actions/checkout@v4 - - name: Create backport pull requests - uses: korthout/backport-action@v2 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c2b3c6c1a6..b5ec1a287e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,4 +1,9 @@ +# Whenever an open PR is updated, the workflow will be triggered +# +# This can get expensive, so we do a lot of caching and checks to prevent unnecessary runs + name: Rust CI +description: Run all the tests and checks for the project on: push: @@ -255,24 +260,3 @@ jobs: - name: test run: | ${{ env.RUST_CARGO_COMMAND }} ${{ matrix.platform.command }} ${{ matrix.platform.args }} --target ${{ matrix.platform.target }} - - # Coverage is disabled until we can fix it - # coverage: - # name: Coverage - # runs-on: ubuntu-latest - # container: - # image: xd009642/tarpaulin:develop-nightly - # options: --security-opt seccomp=unconfined - # steps: - # - name: Checkout repository - # uses: actions/checkout@v4 - # - name: Generate code coverage - # run: | - # apt-get update &&\ - # apt-get install build-essential &&\ - # apt install libwebkit2gtk-4.0-dev libgtk-3-dev libayatana-appindicator3-dev -y &&\ - # cargo +nightly tarpaulin --verbose --all-features --workspace --timeout 120 --out Xml - # - name: Upload to codecov.io - # uses: codecov/codecov-action@v2 - # with: - # fail_ci_if_error: false diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml new file mode 100644 index 0000000000..c597b8885c --- /dev/null +++ b/.github/workflows/merge.yml @@ -0,0 +1,65 @@ +# Runs whenever a PR is merged: +# - attempt to backports fixes +# - upload nightly docs +# - upload nightly CLI builds +# - upload nightly vscode extension +# - upload benchmarks +# - compute coverge +# +# Note that direct commits to master circumvent this workflow! + +# - name: Deploy Nightly Docs.rs +# uses: JamesIves/github-pages-deploy-action@v4.5.0 +# with: +# branch: gh-pages +# folder: target/doc +# target-folder: api-docs/nightly +# repository-name: dioxuslabs/docsite +# clean: false +# token: ${{ secrets.DEPLOY_KEY }} + +# # Attempt to backport a merged pull request to the latest stable release +# # +# # If the backported PR is succesfully merged +# # Any PR without the "breaking" label will be attempted to be backported to the latest stable release + +# name: Backport merged pull request +# on: +# pull_request_target: +# types: [closed] + +# permissions: +# contents: write # so it can comment +# pull-requests: write # so it can create pull requests + +# jobs: +# backport: +# name: Backport pull request +# runs-on: ubuntu-latest + +# # Don't run on closed unmerged pull requests +# if: github.event.pull_request.merged +# steps: +# - uses: actions/checkout@v4 +# - name: Create backport pull requests +# uses: korthout/backport-action@v2 +# Coverage is disabled until we can fix it +# coverage: +# name: Coverage +# runs-on: ubuntu-latest +# container: +# image: xd009642/tarpaulin:develop-nightly +# options: --security-opt seccomp=unconfined +# steps: +# - name: Checkout repository +# uses: actions/checkout@v4 +# - name: Generate code coverage +# run: | +# apt-get update &&\ +# apt-get install build-essential &&\ +# apt install libwebkit2gtk-4.0-dev libgtk-3-dev libayatana-appindicator3-dev -y &&\ +# cargo +nightly tarpaulin --verbose --all-features --workspace --timeout 120 --out Xml +# - name: Upload to codecov.io +# uses: codecov/codecov-action@v2 +# with: +# fail_ci_if_error: false diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000000..601be09b97 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,156 @@ +# Release workflow +# +# We parallelize builds, dump all the artifacts into a release, and then publish the release +# This guarantees everything is properly built and cached in case anything goes wrong +# +# The artifacts also need to get pushed to the various places +# - the CLI goes to the releases page for binstall +# - the extension goes to the marketplace +# - the docs go to the website +# +# We need to be aware of the channel we're releasing +# - prerelease is master +# - stable is whatever the latest stable release is (ie 0.4 or 0.5 or 0.6 etc) +# +# It's intended that this workflow is run manually, and only when we're ready to release + +on: + workflow_dispatch: + inputs: + channel: + type: choice + description: "Branch to publish" + required: true + description: Choose the branch to publish. If the branch is main, it will publish a patch prerelease. + + options: + - main + - v0.4.x + - v0.5.x + - v0.6.x + # todo: more stable releases as time goes on + +env: + # make sure we have the right semver. + # main is always a prepatch until we hit 1.0, and then this script needs to be updated + # note that we need to promote the prepatch to a minor bump when we actually do a release + # this means the version in git will always be one minor bump ahead of the actual release - basically meaning once + # we release a version, it's fair game to merge breaking changes to main since all semver-compatible changes will be + # backported automatically + SEMVER: ${{ github.event.inputs.channel == 'main' && 'prepatch' || 'patch' }} + PRERELEASE_TAG: ${{ github.event.inputs.channel == 'main' && '-prerelease' || '' }} + +jobs: + # First, run checks (clippy, tests, etc) and then publish the crates to crates.io + release-crates: + steps: + # Checkout the right branch, and the nightly stuff + - uses: actions/checkout@v4 + ref: ${{ github.event.inputs.channel }} + - run: sudo apt-get update + - run: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev libxdo-dev + - uses: dtolnay/rust-toolchain@nightly + with: + toolchain: nightly-2024-02-01 + - uses: Swatinem/rust-cache@v2 + with: + cache-all-crates: "true" + - uses: ilammy/setup-nasm@v1 + + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@v1.3.1 + with: # speed things up a bit + large-packages: false + docker-images: false + swap-storage: false + + # Just make sure clippy is happy before doing anything else + # Don't publish versions with clippy errors! + - name: Clippy + run: cargo clippy --workspace --all --examples --tests --all-features --all-targets -- -D warnings + + # Build the docs here too before publishing, to ensure they're up to date + - name: cargo doc + run: RUSTDOCFLAGS="--cfg docsrs" cargo doc --no-deps --workspace --all-features + + - name: Publish to crates.io + run: | + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "github-actions[bot]" + cargo workspaces version -y ${{ env.SEMVER }} --no-git-commit + + # todo: actually just publish! + # cargo workspaces publish -y ${{ github.event.inputs.semver }} + + # this will be more useful when we publish the website with updated docs + # Build the docs.rs docs and publish them to the website under the right folder + # v0.4.x -> docs/0.4 + # v0.5.x -> docs/0.5 etc + # main -> docs/nightly + # strip the v from the channel, and the .x from the end, and replace main with nightly + # - name: determine docs folder by channel + # id: determine_docs_folder + # run: echo "::set-output name=folder::$(echo ${{ github.event.inputs.channel }} | sed 's/v//g' | sed 's/\.x//g' | sed 's/main/nightly/g')" + + # Build the CLI for all platforms, uploading the artifacts to our releases page + release-cli: + needs: release-crates + permissions: + contents: write + strategy: + matrix: + include: + - target: x86_64-pc-windows-msvc + os: windows-latest + - target: aaarch64-pc-windows-msvc + os: windows-latest + - target: x86_64-apple-darwin + os: macos-latest + - target: aarch64-apple-darwin + os: macos-latest + - target: x86_64-unknown-linux-gnu + os: ubuntu-latest + - target: aarch64-unknown-linux-gnu + os: ubuntu-latest + runs-on: ${{ matrix.platform.os }} + steps: + - name: Checkout + uses: actions/checkout@v4 + ref: ${{ github.event.inputs.channel }} + + - name: Install stable + uses: dtolnay/rust-toolchain@master + with: + toolchain: "1.70.0" + targets: ${{ matrix.platform.target }} + + - uses: ilammy/setup-nasm@v1 + + - name: Setup cache + uses: Swatinem/rust-cache@v2 + with: + workspaces: packages/cli -> ../../target + + - name: Free Disk Space + uses: jlumbroso/free-disk-space@v1.3.1 + with: # speed things up a bit + large-packages: false + docker-images: false + swap-storage: false + + # Todo: we want `cargo install dx` to actually just use a prebuilt binary instead of building it + - name: Build and upload CLI binaries + uses: taiki-e/upload-rust-binary-action@v1 + with: + bin: dx + token: ${{ secrets.GITHUB_TOKEN }} + target: ${{ matrix.platform.target }} + archive: dx-${{ matrix.platform.target }}${{ env.PRERELEASE_TAG }} + checksum: sha256 + manifest_path: packages/cli/Cargo.toml + + # todo: these things + # Run benchmarks, which we'll use to display on the website + # release-benchmarks: + # Build the vscode extension, uploading the artifact to the marketplace + # release-extension: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 6f80d31457..0000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,429 +0,0 @@ -# Release workflow -# -# We parallelize builds, dump all the artifacts into a release, and then publish the release -# This guarantees everything is properly built and cached in case anything goes wrong -# -# The artifacts also need to get pushed to the various places -# - the CLI goes to the releases page for binstall -# - the extension goes to the marketplace -# - the docs go to the website -# -# We need to be aware of the channel we're releasing -# - prerelease is master -# - stable is whatever the latest stable release is (ie 0.4 or 0.5 or 0.6 etc) -# -# In theory, we could trigger this workflow and set the channel accordingly - -on: - workflow_dispatch: - inputs: - channel: - type: choice - description: "Branch to publish" - required: true - description: Choose the branch to publish. If the branch is main, it will publish a prerelease. - - # add more options as we release more stable versions. - # todo: automate branch selection - options: - - v0.4.x - - v0.5.x - - main - -jobs: - # Build the CLI for all platforms - build-cli: - permissions: - contents: write - runs-on: ${{ matrix.platform.os }} - strategy: - matrix: - platform: - - { - target: x86_64-pc-windows-msvc, - os: windows-latest, - toolchain: "1.70.0", - } - - { - target: x86_64-apple-darwin, - os: macos-latest, - toolchain: "1.70.0", - } - - { - target: x86_64-unknown-linux-gnu, - os: ubuntu-latest, - toolchain: "1.70.0", - } - steps: - - uses: actions/checkout@v4 - ref: ${{ github.event.inputs.channel }} - - name: Install stable - uses: dtolnay/rust-toolchain@master - with: - toolchain: ${{ matrix.platform.toolchain }} - targets: ${{ matrix.platform.target }} - - uses: ilammy/setup-nasm@v1 - - name: Setup cache - uses: Swatinem/rust-cache@v2 - # cache only the cli - mmmm not sure if this is needed - with: - workspaces: packages/cli -> ../../target - - # Build the vscode extension - build-extension: - - # Build the docs - build-docs: - - # Run benchmarks, which we'll use to display on the website - build-benchmarks: - - - # And then do the releases, once everything is built - # This should involve no rust and just pull down the artifacts - release: - depends-on: [build-cli, build-extension, build-docs, build-benchmarks] - - # Checkout the right branch - - uses: actions/checkout@v4 - ref: ${{ github.event.inputs.channel }} - - # Before anything else, we need to publish the crates - # todo: set the semver based on the channel - # - all semver is a minor bump, - # - if it's main, it's a prerelease, so use the prerelease flag - - name: Publish to crates.io - run: | - git config --global user.email "github-actions[bot]@users.noreply.github.com" - git config --global user.name "github-actions[bot]" - # cargo workspaces version -y ${{ github.event.inputs.semver }} - # cargo workspaces publish -y ${{ github.event.inputs.semver }} - - # Todo: we want `cargo install dx` to actually just use a prebuilt binary - - name: Build and upload CLI binaries - uses: taiki-e/upload-rust-binary-action@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - target: ${{ matrix.platform.target }} - bin: dx - archive: dx-${{ matrix.platform.target }} - checksum: sha256 - manifest_path: packages/cli/Cargo.toml - -# build the docs, CLI, extension, and release -jobs: - build-deploy: - runs-on: ubuntu-latest - environment: docs - steps: - # install rust, etc, with caching, and do some checks - - uses: actions/checkout@v4 - - run: sudo apt-get update - - run: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev libxdo-dev - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - with: - cache-all-crates: "true" - # save-if: ${{ github.ref == 'refs/heads/main' }} # always save the cache - - - name: Free Disk Space (Ubuntu) - uses: jlumbroso/free-disk-space@v1.3.1 - with: # speed things up a bit - large-packages: false - docker-images: false - swap-storage: false - - # Just make sure clippy is happy before doing anything else - # Don't publish versions with clippy errors! - - name: Clippy - run: cargo clippy --workspace --all --examples --tests --all-features --all-targets -- -D warnings - - # Build the CLI... todo: do this in a matrix using binstall - - name: Build CLI - run: cargo build --release --bin dx - - - name: Build Extension - run: cargo build --release --bin dx-ext - - name: Bundle extension - working-directory: ./packages/extension - run: vsce package && mv *.vsix ../../dx-ext.vsix - - - # Docs first... - # NOTE: Delete when the previous one is enabled - # NOTE: Comment out when https://github.com/rust-lang/mdBook/pull/1306 is merged and released - # - name: Setup mdBook - # uses: peaceiris/actions-mdbook@v1 - # with: - # mdbook-version: "0.4.10" - - name: Setup mdBook - run: | - cargo install mdbook --git https://github.com/Demonthos/mdBook.git --branch master - - - name: Build - run: cd docs && - cd guide && mdbook build -d ../nightly/guide && cd .. && - cd router && mdbook build -d ../nightly/router && cd .. - - - name: Deploy docs 🚀 - uses: JamesIves/github-pages-deploy-action@v4.5.0 - with: - branch: gh-pages # The branch the action should deploy to. - folder: docs/nightly # The folder the action should deploy. - target-folder: docs - repository-name: dioxuslabs/docsite - # Don't clean the existing files, so the old docs are still available. - # todo: the history on the dociste is getting massive, so we should actually just be amending the commit - clean: false - token: ${{ secrets.DEPLOY_KEY }} - - # Then the CLI - - # Then the extension - - # Then the release itself - - -# Release a number of things -# - the extension -# - the CLI -# - nightly docs -# - the website -# - crates themselves - -# name: Publish to crates.io - -# on: -# workflow_dispatch: -# inputs: -# semver: -# type: choice -# description: "Semver version to publish" -# required: true -# options: -# - patch -# - minor -# - major - -# jobs: -# publish: -# runs-on: ubuntu-latest -# steps: -# - name: Checkout code -# uses: actions/checkout@v2 -# - name: Set up Rust -# uses: actions-rs/toolchain@v1 -# with: -# toolchain: nightly -# override: true -# - name: Install cargo-workspaces -# run: cargo install cargo-workspaces -# - name: Login to crates.io -# uses: actions-rs/cargo@v1 -# with: -# toolchain: nightly -# command: login -# args: ${{ secrets.CRATES_TOKEN }} -# - name: Publish to crates.io -# run: | -# git config --global user.email "github-actions[bot]@users.noreply.github.com" -# git config --global user.name "github-actions[bot]" - -# # Release as-is -# # This assumes the version tracking PR has been merged - -# # cargo workspaces changed -# # # version will automatically commit back to the repo -# # # cargo workspaces version -y ${{ github.event.inputs.semver }} -# Whenever commits are merged to main, update or create a PR that bumps the version -# Tracks if changes are semver compatible -# -# We want to have a standing "major" update PR and a standing "minor" update PR where fixes are backported -# -# Whenever a PR is merged, we want to attempt to update the major/minor bump PRs -# - for main, it's as simple as running cargo workspaces version -y minor and dumping it into a PR -# - for backport, it's a bit more complicated, since we need to know which branch is the latest stable release -# -# - We could make it so merging a PR with a "backport" label attempts to release it, using the target branch as the stable release - -# on: -# push: -# branches: -# - master - - -# # Generate the minor bump -# jobs: -# update_routes: -# runs-on: ubuntu-latest -# steps: -# # Check out the repo, but don't persist credentials, so github uses the GITHUB_TOKEN -# - uses: actions/checkout@v2 -# with: -# persist-credentials: false - -# # Run cargo workspaces version to generate the version bump PR -# - run: "date > datetime.txt" # create or update a test.txt file - -# # And then create the PR -# - uses: gr2m/create-or-update-pull-request-action@v1 -# env: -# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -# with: -# title: "My pull request title" -# body: "My pull request body" -# branch: "my-pull-request-base-branch" -# path: "lib/" -# commit-message: "My commit message for uncommitted changes in lib/ folder" -# author: "Lorem J. Ipsum " -# labels: label1, label2 -# assignees: user1, user2 -# reviewers: user1, user2 -# team_reviewers: team1, team2 -# auto-merge: squash -# update-pull-request-title-and-body: false - -# # Generate the major bump -# # # # publish will automatically commit back to the repo **AND** publish to crates.io -# # # # cargo workspaces publish -y ${{ github.event.inputs.semver }} - - -# name: Deploy Nightly Docs -# on: -# push: -# branches: -# - main - -# jobs: -# deploy: -# name: Build & Deploy -# runs-on: ubuntu-latest -# permissions: -# contents: write - -# steps: -# - uses: actions/checkout@v4 -# - run: sudo apt-get update -# - run: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev libxdo-dev -# - uses: dtolnay/rust-toolchain@nightly -# with: -# toolchain: nightly-2024-02-01 -# - uses: Swatinem/rust-cache@v2 -# with: -# cache-all-crates: "true" -# save-if: ${{ github.ref == 'refs/heads/main' }} -# - uses: ilammy/setup-nasm@v1 - -# - name: cargo doc -# run: cargo doc --no-deps --workspace --all-features - -# - name: Deploy -# uses: JamesIves/github-pages-deploy-action@v4.5.0 -# with: -# branch: gh-pages -# folder: target/doc -# target-folder: api-docs/nightly -# repository-name: dioxuslabs/docsite -# clean: false -# token: ${{ secrets.DEPLOY_KEY }} - - -# name: docs stable - -# on: -# workflow_dispatch: - -# concurrency: -# group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} -# cancel-in-progress: true - -# jobs: -# build-deploy: -# runs-on: ubuntu-latest -# environment: docs -# steps: - -# # NOTE: Comment out when https://github.com/rust-lang/mdBook/pull/1306 is merged and released -# # - name: Setup mdBook -# # uses: peaceiris/actions-mdbook@v1 -# # with: -# # mdbook-version: "0.4.10" - -# # NOTE: Delete when the previous one is enabled -# - name: Setup mdBook -# run: | -# cargo install mdbook --git https://github.com/Demonthos/mdBook.git --branch master -# - uses: actions/checkout@v4 - -# - name: Build -# run: cd docs && -# cd guide && mdbook build -d ../nightly/guide && cd .. && -# cd router && mdbook build -d ../nightly/router && cd .. - -# - name: Deploy 🚀 -# uses: JamesIves/github-pages-deploy-action@v4.5.0 -# with: -# branch: gh-pages # The branch the action should deploy to. -# folder: docs/nightly # The folder the action should deploy. -# target-folder: docs -# repository-name: dioxuslabs/docsite -# clean: false -# token: ${{ secrets.DEPLOY_KEY }} # let's pretend I don't need it for now - - -# name: Build CLI for Release - -# # Will run automatically on every new release -# on: -# release: -# types: [published] - -# jobs: -# build-and-upload: -# permissions: -# contents: write -# runs-on: ${{ matrix.platform.os }} -# strategy: -# matrix: -# platform: -# - { -# target: x86_64-pc-windows-msvc, -# os: windows-latest, -# toolchain: "1.70.0", -# } -# - { -# target: x86_64-apple-darwin, -# os: macos-latest, -# toolchain: "1.70.0", -# } -# - { -# target: x86_64-unknown-linux-gnu, -# os: ubuntu-latest, -# toolchain: "1.70.0", -# } -# steps: -# - uses: actions/checkout@v4 -# - name: Install stable -# uses: dtolnay/rust-toolchain@master -# with: -# toolchain: ${{ matrix.platform.toolchain }} -# targets: ${{ matrix.platform.target }} - -# - uses: ilammy/setup-nasm@v1 - -# # Setup the Github Actions Cache for the CLI package -# - name: Setup cache -# uses: Swatinem/rust-cache@v2 -# with: -# workspaces: packages/cli -> ../../target - -# # This neat action can build and upload the binary in one go! -# - name: Build and upload binary -# uses: taiki-e/upload-rust-binary-action@v1 -# with: -# token: ${{ secrets.GITHUB_TOKEN }} -# target: ${{ matrix.platform.target }} -# bin: dx -# archive: dx-${{ matrix.platform.target }} -# checksum: sha256 -# manifest_path: packages/cli/Cargo.toml From 6cc66b5d11376cd7861c5fb4129be9d52056037e Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 22:08:01 -0800 Subject: [PATCH 10/23] Add promote workflow --- .github/workflows/promote.yml | 48 ++++++++++++++++++++++++++++++++--- .github/workflows/publish.yml | 18 ++++++------- 2 files changed, 53 insertions(+), 13 deletions(-) diff --git a/.github/workflows/promote.yml b/.github/workflows/promote.yml index 37e7e3d9d6..0675778f7a 100644 --- a/.github/workflows/promote.yml +++ b/.github/workflows/promote.yml @@ -1,4 +1,46 @@ -# promote nightly to stable +# Create a PR that promotes the current main pre-release to the next stable release # -# runs the various git commands to update the version -# should be followed up by a stable release +# IE if the current master version is 0.4.0-rc.7, this will create a PR to promote it to 0.4.0 +# +# - update the version in the Cargo.toml to v0.4.0 +# - generate a v0.4 branch +# - push the branch to the repository +# - then bump 0.4.0-rc.1 to 0.5.0-rc.0 +# +# This means main will never be a "stable" release, and we can always merge breaking changes to main +# and backport them to the latest stable release +# +# This is configured to be ran manually, but could honestly just be a release workflow + +on: + workflow_dispatch: + +permissions: + actions: write + +jobs: + promote: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Publish the next pre-release + run: | + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "github-actions[bot]" + + # go from eg 0.4.0-rc.7 to 0.4.0, committing the change + cargo workspaces version -y minor + + # create a new branch for the release + RELEASE_BRANCH=$(cargo metadata --no-deps --format-version 1 | jq -r '.packages[0].version') + RELEASE_BRANCH=v$(echo $RELEASE_BRANCH | sed 's/\.[0-9]*$//') + git branch $RELEASE_BRANCH + + # go from 0.4.0 to 0.5.0-rc.0 + cargo workspaces version -y preminor --pre-id rc + + # push the new branch to the repository + git push origin $RELEASE_BRANCH + + # push the new version to the repository + git push origin main diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 601be09b97..1cd8b1ae83 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -21,24 +21,22 @@ on: type: choice description: "Branch to publish" required: true - description: Choose the branch to publish. If the branch is main, it will publish a patch prerelease. - + description: Choose the branch to publish. options: - main - - v0.4.x - - v0.5.x - - v0.6.x - # todo: more stable releases as time goes on + - v0.4 + - v0.5 + - v0.6 env: - # make sure we have the right semver. + # make sure we have the right version # main is always a prepatch until we hit 1.0, and then this script needs to be updated # note that we need to promote the prepatch to a minor bump when we actually do a release # this means the version in git will always be one minor bump ahead of the actual release - basically meaning once # we release a version, it's fair game to merge breaking changes to main since all semver-compatible changes will be # backported automatically - SEMVER: ${{ github.event.inputs.channel == 'main' && 'prepatch' || 'patch' }} - PRERELEASE_TAG: ${{ github.event.inputs.channel == 'main' && '-prerelease' || '' }} + SEMVER: ${{ github.event.inputs.channel == 'main' && 'prerelease' || 'patch' }} + PRERELEASE_TAG: ${{ github.event.inputs.channel == 'main' && '-pre' || '' }} jobs: # First, run checks (clippy, tests, etc) and then publish the crates to crates.io @@ -77,7 +75,7 @@ jobs: run: | git config --global user.email "github-actions[bot]@users.noreply.github.com" git config --global user.name "github-actions[bot]" - cargo workspaces version -y ${{ env.SEMVER }} --no-git-commit + cargo workspaces version -y ${{ env.SEMVER }} --pre-id rc --no-git-commit # todo: actually just publish! # cargo workspaces publish -y ${{ github.event.inputs.semver }} From 862d2ea6f4c623a9268c86347ca6bc452ce287cf Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 22:10:01 -0800 Subject: [PATCH 11/23] Fix syntax error in main --- .github/workflows/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b5ec1a287e..10bf6e0783 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -133,9 +133,9 @@ jobs: with: cache-all-crates: "true" save-if: ${{ github.ref == 'refs/heads/main' }} - - name: Check semver - uses: obi1kenobi/cargo-semver-checks-action@v2 - - run: cargo semver-checks check-release --workspace --exclude "dioxus-cli, dioxus-ext" + - name: Check semver + uses: obi1kenobi/cargo-semver-checks-action@v2 + - run: cargo semver-checks check-release --workspace --exclude "dioxus-cli, dioxus-ext" playwright: if: github.event.pull_request.draft == false From 76929071b3a5bd2cc0e9f948f865fbd12847ad2f Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 22:11:03 -0800 Subject: [PATCH 12/23] combine checks for semver --- .github/workflows/main.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 10bf6e0783..cfdefd3f41 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -121,8 +121,7 @@ jobs: # However, this means we won't attempt to backport them, so you should be careful about using this label, as it will # likely make future backporting difficult semver: - if: github.event.pull_request.draft == false - if: ${{ !contains(github.event.pull_request.labels.*.name, 'breaking') }} + if: github.event.pull_request.draft == false && !contains(github.event.pull_request.labels.*.name, 'breaking') name: Semver Check runs-on: ubuntu-latest steps: From 52f07de0156974ced6c4ee749cd303f8efb83bf9 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 22:11:33 -0800 Subject: [PATCH 13/23] ignore description --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cfdefd3f41..d0680be8b4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,7 +3,6 @@ # This can get expensive, so we do a lot of caching and checks to prevent unnecessary runs name: Rust CI -description: Run all the tests and checks for the project on: push: From 52be1d7e98e7a362d40e3c43bb95fcf3249a2a9e Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 22:17:14 -0800 Subject: [PATCH 14/23] semver checks fix --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d0680be8b4..0c55de8442 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -133,7 +133,7 @@ jobs: save-if: ${{ github.ref == 'refs/heads/main' }} - name: Check semver uses: obi1kenobi/cargo-semver-checks-action@v2 - - run: cargo semver-checks check-release --workspace --exclude "dioxus-cli, dioxus-ext" + - run: cargo semver-checks --workspace --exclude "dioxus-cli, dioxus-ext" playwright: if: github.event.pull_request.draft == false From 19c0007cb7fea33ef032854c947c2dd7d1b07040 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 22:26:51 -0800 Subject: [PATCH 15/23] semver checks fix --- .github/workflows/main.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0c55de8442..1c96e8a017 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -125,7 +125,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: ilammy/setup-nasm@v1 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 with: @@ -133,7 +132,9 @@ jobs: save-if: ${{ github.ref == 'refs/heads/main' }} - name: Check semver uses: obi1kenobi/cargo-semver-checks-action@v2 - - run: cargo semver-checks --workspace --exclude "dioxus-cli, dioxus-ext" + with: + manifest-path: ./Cargo.toml + exclude: "dioxus-cli, dioxus-ext" playwright: if: github.event.pull_request.draft == false From 72408115c4c58e58896ad3dd77d2d716514690d7 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 22:29:48 -0800 Subject: [PATCH 16/23] temp disable semver checks --- .github/workflows/main.yml | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1c96e8a017..1fb7ca86b0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -119,22 +119,28 @@ jobs: # Breaking PRs don't need to follow semver since they are breaking changes # However, this means we won't attempt to backport them, so you should be careful about using this label, as it will # likely make future backporting difficult - semver: - if: github.event.pull_request.draft == false && !contains(github.event.pull_request.labels.*.name, 'breaking') - name: Semver Check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - with: - cache-all-crates: "true" - save-if: ${{ github.ref == 'refs/heads/main' }} - - name: Check semver - uses: obi1kenobi/cargo-semver-checks-action@v2 - with: - manifest-path: ./Cargo.toml - exclude: "dioxus-cli, dioxus-ext" + # + # todo: fix this so even if breaking changes have been merged, the fix can be backported + # + # This will stop working once the first breaking change has been merged, so we should really try to just backport the fix + # and *then* run the semver checks. Basically "would backporting this PR cause a breaking change on stable?" + # + # semver: + # if: github.event.pull_request.draft == false && !contains(github.event.pull_request.labels.*.name, 'breaking') + # name: Semver Check + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - uses: dtolnay/rust-toolchain@stable + # - uses: Swatinem/rust-cache@v2 + # with: + # cache-all-crates: "true" + # save-if: ${{ github.ref == 'refs/heads/main' }} + # - name: Check semver + # uses: obi1kenobi/cargo-semver-checks-action@v2 + # with: + # manifest-path: ./Cargo.toml + # exclude: "dioxus-cli, dioxus-ext" playwright: if: github.event.pull_request.draft == false From 04cd98fffab42e491adc267adc0d5464d6460905 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 22:52:31 -0800 Subject: [PATCH 17/23] add backport --- .github/workflows/merge.yml | 87 ++++++++++++++++++++++++------------- 1 file changed, 57 insertions(+), 30 deletions(-) diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index c597b8885c..13e3a8afd8 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -1,6 +1,8 @@ # Runs whenever a PR is merged: # - attempt to backports fixes # - upload nightly docs +# +# Future: # - upload nightly CLI builds # - upload nightly vscode extension # - upload benchmarks @@ -8,41 +10,64 @@ # # Note that direct commits to master circumvent this workflow! -# - name: Deploy Nightly Docs.rs -# uses: JamesIves/github-pages-deploy-action@v4.5.0 -# with: -# branch: gh-pages -# folder: target/doc -# target-folder: api-docs/nightly -# repository-name: dioxuslabs/docsite -# clean: false -# token: ${{ secrets.DEPLOY_KEY }} +name: Backport merged pull request +on: + pull_request_target: + types: [closed] + +permissions: + contents: write # so it can comment + pull-requests: write # so it can create pull requests -# # Attempt to backport a merged pull request to the latest stable release -# # -# # If the backported PR is succesfully merged -# # Any PR without the "breaking" label will be attempted to be backported to the latest stable release +jobs: + # Attempt to backport a merged pull request to the latest stable release + backport: + name: Backport pull request + runs-on: ubuntu-latest -# name: Backport merged pull request -# on: -# pull_request_target: -# types: [closed] + # Don't run on closed unmerged pull requests, or pull requests with the "breaking" label + if: github.event.pull_request.merged && !contains(github.event.pull_request.labels.*.name, 'breaking') + steps: + - uses: actions/checkout@v4 + - name: Create backport pull requests + uses: korthout/backport-action@v2 -# permissions: -# contents: write # so it can comment -# pull-requests: write # so it can create pull requests + # Upload nightly docs to the website + docs: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + - run: sudo apt-get update + - run: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev libxdo-dev + - uses: dtolnay/rust-toolchain@nightly + with: + toolchain: nightly-2024-02-01 + - uses: Swatinem/rust-cache@v2 + with: + cache-all-crates: "true" + save-if: ${{ github.ref == 'refs/heads/main' }} + - uses: ilammy/setup-nasm@v1 -# jobs: -# backport: -# name: Backport pull request -# runs-on: ubuntu-latest + - name: cargo doc + run: cargo doc --no-deps --workspace --all-features + + - name: Deploy + uses: JamesIves/github-pages-deploy-action@v4.5.0 + with: + branch: gh-pages + folder: target/doc + target-folder: api-docs/nightly + repository-name: dioxuslabs/docsite + clean: false + token: ${{ secrets.DEPLOY_KEY }} + +# Attempt to backport a merged pull request to the latest stable release +# +# If the backported PR is succesfully merged +# Any PR without the "breaking" label will be attempted to be backported to the latest stable release -# # Don't run on closed unmerged pull requests -# if: github.event.pull_request.merged -# steps: -# - uses: actions/checkout@v4 -# - name: Create backport pull requests -# uses: korthout/backport-action@v2 # Coverage is disabled until we can fix it # coverage: # name: Coverage @@ -63,3 +88,5 @@ # uses: codecov/codecov-action@v2 # with: # fail_ci_if_error: false + + From 34f46475945cb00462a78548bea5ca97c1f8950a Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Wed, 21 Feb 2024 22:57:34 -0800 Subject: [PATCH 18/23] add name to publish flow --- .github/workflows/publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 1cd8b1ae83..0436a0d107 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -14,6 +14,7 @@ # # It's intended that this workflow is run manually, and only when we're ready to release +name: Publish on: workflow_dispatch: inputs: From c5096ff5bc3cb031964df312c391ee0ce8c4a64e Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Thu, 22 Feb 2024 08:53:37 -0800 Subject: [PATCH 19/23] add gitignore to tailwind --- examples/tailwind/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 examples/tailwind/.gitignore diff --git a/examples/tailwind/.gitignore b/examples/tailwind/.gitignore new file mode 100644 index 0000000000..1521c8b765 --- /dev/null +++ b/examples/tailwind/.gitignore @@ -0,0 +1 @@ +dist From cf8c378b31b78d014ee2b56f32ecd4e6d87a19cd Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Thu, 22 Feb 2024 10:04:55 -0800 Subject: [PATCH 20/23] bump manganis --- Cargo.lock | 364 ++++++++++++++++++++++++++--------------------------- 1 file changed, 178 insertions(+), 186 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2864d55bb5..556cb6b4a9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -71,9 +71,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff" +checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" dependencies = [ "cfg-if", "const-random", @@ -154,9 +154,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" dependencies = [ "anstyle", "anstyle-parse", @@ -202,9 +202,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "anymap" @@ -256,7 +256,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -278,7 +278,7 @@ dependencies = [ "argh_shared", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -331,7 +331,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" dependencies = [ "concurrent-queue", - "event-listener 5.0.0", + "event-listener 5.1.0", "event-listener-strategy 0.5.0", "futures-core", "pin-project-lite", @@ -411,7 +411,7 @@ dependencies = [ "futures-io", "futures-lite 2.2.0", "parking", - "polling 3.4.0", + "polling 3.5.0", "rustix 0.38.31", "slab", "tracing", @@ -463,7 +463,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -498,7 +498,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -616,7 +616,7 @@ dependencies = [ "http 1.0.0", "http-body 1.0.0", "http-body-util", - "hyper 1.1.0", + "hyper 1.2.0", "hyper-util", "itoa 1.0.10", "matchit", @@ -737,7 +737,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -762,7 +762,7 @@ dependencies = [ "http 1.0.0", "http-body 1.0.0", "http-body-util", - "hyper 1.1.0", + "hyper 1.2.0", "hyper-util", "pin-project-lite", "rustls 0.21.10", @@ -1012,7 +1012,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", "syn_derive", ] @@ -1083,9 +1083,9 @@ checksum = "38d17f4d6e4dc36d1a02fbedc2753a096848e7c1b0772f7654eab8e2c927dd53" [[package]] name = "bumpalo" -version = "3.15.0" +version = "3.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f" +checksum = "a3b1be7772ee4501dba05acbe66bb1e8760f6a6c474a36035631638e4415f130" [[package]] name = "bytecheck" @@ -1332,11 +1332,10 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "7f9fa1897e4325be0d68d48df6aa1a71ac2ed4d27723887e7754192705350730" dependencies = [ - "jobserver", "libc", ] @@ -1400,7 +1399,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1482,7 +1481,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -2004,7 +2003,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -2035,7 +2034,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e" dependencies = [ "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -2087,7 +2086,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -2098,7 +2097,7 @@ checksum = "c5a91391accf613803c2a9bf9abccdbaa07c54b4244a5b64883f9c3c137c86be" dependencies = [ "darling_core", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -2244,7 +2243,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -2289,7 +2288,7 @@ dependencies = [ "futures-util", "headers 0.3.9", "html_parser", - "hyper 1.1.0", + "hyper 1.2.0", "hyper-rustls 0.26.0", "hyper-util", "ignore", @@ -2308,7 +2307,7 @@ dependencies = [ "serde", "serde_json", "subprocess", - "syn 2.0.49", + "syn 2.0.50", "tar", "tauri-bundler", "tempfile", @@ -2376,7 +2375,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.49", + "syn 2.0.50", "trybuild", ] @@ -2473,7 +2472,7 @@ dependencies = [ "dioxus_server_macro", "futures-util", "http 1.0.0", - "hyper 1.1.0", + "hyper 1.2.0", "once_cell", "pin-project", "serde", @@ -2555,7 +2554,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", "trybuild", ] @@ -2652,7 +2651,7 @@ dependencies = [ "quote", "rustc-hash", "smallvec", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -2730,7 +2729,7 @@ dependencies = [ "proc-macro2", "quote", "slab", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -2743,7 +2742,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.49", + "syn 2.0.50", "tracing", ] @@ -2857,7 +2856,7 @@ dependencies = [ "proc-macro2", "quote", "server_fn_macro", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -2980,7 +2979,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -3001,7 +3000,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -3022,7 +3021,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -3105,9 +3104,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.0.0" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b72557800024fabbaa2449dd4bf24e37b93702d457a4d4f2b0dd1f0f039f20c1" +checksum = "b7ad6fd685ce13acd6d9541a30f6db6567a7a24c9ffd4ba2955d29e3f22c8b27" dependencies = [ "concurrent-queue", "parking", @@ -3130,7 +3129,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291" dependencies = [ - "event-listener 5.0.0", + "event-listener 5.1.0", "pin-project-lite", ] @@ -3162,7 +3161,7 @@ checksum = "ce8cd46a041ad005ab9c71263f9a0ff5b529eac0fe4cc9b4a20f4f0765d8cf4b" dependencies = [ "execute-command-tokens", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -3330,7 +3329,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -3513,7 +3512,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -4044,7 +4043,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -4356,7 +4355,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -4442,7 +4441,7 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.8", + "ahash 0.8.9", "bumpalo", ] @@ -4452,7 +4451,7 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" dependencies = [ - "ahash 0.8.8", + "ahash 0.8.9", "allocator-api2", ] @@ -4731,9 +4730,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75" +checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a" dependencies = [ "bytes", "futures-channel", @@ -4745,6 +4744,7 @@ dependencies = [ "httpdate", "itoa 1.0.10", "pin-project-lite", + "smallvec", "tokio", "want", ] @@ -4771,7 +4771,7 @@ checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" dependencies = [ "futures-util", "http 1.0.0", - "hyper 1.1.0", + "hyper 1.2.0", "hyper-util", "log", "rustls 0.22.2", @@ -4806,7 +4806,7 @@ dependencies = [ "futures-util", "http 1.0.0", "http-body 1.0.0", - "hyper 1.1.0", + "hyper 1.2.0", "pin-project-lite", "socket2 0.5.5", "tokio", @@ -5041,7 +5041,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -5244,15 +5244,6 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" -[[package]] -name = "jobserver" -version = "0.1.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" -dependencies = [ - "libc", -] - [[package]] name = "jpeg-decoder" version = "0.3.1" @@ -5475,9 +5466,9 @@ dependencies = [ [[package]] name = "libwebp-sys" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0df0a0f9444d52aee6335cd724d21a2ee3285f646291799a72be518ec8ee3c" +checksum = "829b6b604f31ed6d2bccbac841fe0788de93dbd87e4eb1ba2c4adfe8c012a838" dependencies = [ "cc", "glob", @@ -5520,7 +5511,7 @@ version = "1.0.0-alpha.53" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae8ba2b1b450cefc6a7a6ee93868992f56f662869b90404de2a7319da18640f" dependencies = [ - "ahash 0.8.8", + "ahash 0.8.9", "bitflags 2.4.2", "const-str", "cssparser 0.33.0", @@ -5611,7 +5602,7 @@ checksum = "fc2fb41a9bb4257a3803154bdf7e2df7d45197d1941c9b1a90ad815231630721" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -5727,18 +5718,18 @@ dependencies = [ [[package]] name = "manganis" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a25951ece27df54c1506824923c824e1b3d9f742bb01beab45123b306c95a0e4" +checksum = "d11b87b5222a0eb4c7b1e7a49cc78922aa82a7fa5aa614e07ace55ed74fcdf67" dependencies = [ "manganis-macro", ] [[package]] name = "manganis-cli-support" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78d2f137b00aeba4862491a418930ae727493106c67bd720d8588b92ed7529b7" +checksum = "1d9c40a20048742dfbb793fb93498640e128543bcf92588b4c3b25451957522d" dependencies = [ "anyhow", "cargo-lock 9.0.0", @@ -5763,9 +5754,9 @@ dependencies = [ [[package]] name = "manganis-common" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b22d7de6c9e0ad3332c900a120aadedab171907504ad02440d104272c351c80" +checksum = "84166560d60366c4b4fe12e204f2fca78fe594382e13c02d75fab6e0d8f40184" dependencies = [ "anyhow", "base64", @@ -5779,14 +5770,14 @@ dependencies = [ [[package]] name = "manganis-macro" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a04a22bb5d861f3b4fa37669d0344cf1350f19e18b9a73d1acdd2c8079fbc2" +checksum = "8b78150e016312c51841521a9dc7fb5ae994c163a325eb4c2aa0186efce9532e" dependencies = [ "manganis-common", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -6004,9 +5995,9 @@ dependencies = [ [[package]] name = "muda" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e406691fa7749604bbc7964bde28a300572d52621bb84540f6907c0f8fe08737" +checksum = "4c47e7625990fc1af2226ea4f34fb2412b03c12639fcb91868581eb3a6893453" dependencies = [ "cocoa", "crossbeam-channel", @@ -6175,11 +6166,11 @@ checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" [[package]] name = "normpath" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec60c60a693226186f5d6edf073232bfb6464ed97eb22cf3b01c1e8198fd97f5" +checksum = "5831952a9476f2fed74b77d74182fa5ddc4d21c72ec45a333b250e3ed0272804" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -6264,7 +6255,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -6434,9 +6425,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.63" +version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ "bitflags 2.4.2", "cfg-if", @@ -6455,7 +6446,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -6475,9 +6466,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.99" +version = "0.9.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" +checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff" dependencies = [ "cc", "libc", @@ -6738,7 +6729,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -6866,7 +6857,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -6913,7 +6904,7 @@ checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -7032,9 +7023,9 @@ dependencies = [ [[package]] name = "png" -version = "0.17.12" +version = "0.17.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c2378060fb13acff3ba0325b83442c1d2c44fbb76df481160ddc1687cce160" +checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" dependencies = [ "bitflags 1.3.2", "crc32fast", @@ -7061,9 +7052,9 @@ dependencies = [ [[package]] name = "polling" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14" +checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9" dependencies = [ "cfg-if", "concurrent-queue", @@ -7116,7 +7107,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22020dfcf177fcc7bf5deaf7440af371400c67c0de14c399938d8ed4fb4645d3" dependencies = [ "proc-macro2", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -7146,7 +7137,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" dependencies = [ "proc-macro2", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -7224,21 +7215,21 @@ checksum = "794b5bf8e2d19b53dcdcec3e4bba628e20f5b6062503ba89281fa7037dd7bbcf" [[package]] name = "profiling" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0f7f43585c34e4fdd7497d746bc32e14458cf11c69341cc0587b1d825dde42" +checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" dependencies = [ "profiling-procmacros", ] [[package]] name = "profiling-procmacros" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce97fecd27bc49296e5e20518b5a1bb54a14f7d5fe6228bc9686ee2a74915cc8" +checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd" dependencies = [ "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -7713,7 +7704,7 @@ version = "1.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3625f343d89990133d013e39c46e350915178cf94f1bec9f49b0cbef98a3e3c" dependencies = [ - "ahash 0.8.8", + "ahash 0.8.9", "bitflags 2.4.2", "instant", "num-traits", @@ -7731,21 +7722,22 @@ checksum = "853977598f084a492323fe2f7896b4100a86284ee8473612de60021ea341310f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] name = "ring" -version = "0.17.7" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", + "cfg-if", "getrandom 0.2.12", "libc", "spin 0.9.8", "untrusted", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -7828,7 +7820,7 @@ dependencies = [ "pretty_assertions", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -8010,9 +8002,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "safemem" @@ -8121,9 +8113,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" dependencies = [ "serde", ] @@ -8145,9 +8137,9 @@ checksum = "f97841a747eef040fcd2e7b3b9a220a7205926e60488e673d9e4926d27772ce5" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] @@ -8185,20 +8177,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa 1.0.10", "ryu", @@ -8244,7 +8236,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -8295,14 +8287,14 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] name = "server_fn" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fab54d9dd2d7e9eba4efccac41d2ec3e7c6e9973d14c0486d662a32662320c" +checksum = "dcbe027777b6bcb1fff76eb2ff3596cd68dbc52e5b703a0264db31fb6eb870ba" dependencies = [ "axum", "bytes", @@ -8312,7 +8304,7 @@ dependencies = [ "gloo-net 0.5.0", "http 1.0.0", "http-body-util", - "hyper 1.1.0", + "hyper 1.2.0", "inventory", "js-sys", "once_cell", @@ -8335,26 +8327,26 @@ dependencies = [ [[package]] name = "server_fn_macro" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be6011b586a0665546b7ced372b0be690d9e005d3f8524795da2843274d7720" +checksum = "51c788951450843a3ed4b9df0268e48ea00be44b8a5f453e299ef4abb5c86b8c" dependencies = [ "const_format", "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", "xxhash-rust", ] [[package]] name = "server_fn_macro_default" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "752ed78ec49132d154b922cf5ab6485680cab039a75740c48ea2db621ad481da" +checksum = "89732cbf095803f0a23dff6a9d2f469049d48affdaa80edee0d826c986330ced" dependencies = [ "server_fn_macro", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -8537,7 +8529,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9298e863f0143b89972299110a7fa3e2fc08c412341d588c497bae38409f9e68" dependencies = [ "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -8687,7 +8679,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd" dependencies = [ - "ahash 0.8.8", + "ahash 0.8.9", "atoi", "bigdecimal", "bit-vec", @@ -8979,7 +8971,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -9021,9 +9013,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.49" +version = "2.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496" +checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb" dependencies = [ "proc-macro2", "quote", @@ -9039,7 +9031,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -9166,9 +9158,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.13" +version = "0.12.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" +checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" [[package]] name = "tauri-bundler" @@ -9224,9 +9216,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece74810b1d3d44f29f732a7ae09a63183d63949bbdd59c61f8ed2a1b70150db" +checksum = "75ad0bbb31fccd1f4c56275d0a5c3abdf1f59999f72cb4ef8b79b4ed42082a21" dependencies = [ "ctor", "dunce", @@ -9324,14 +9316,14 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -9448,7 +9440,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -9610,7 +9602,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.1", + "winnow 0.6.2", ] [[package]] @@ -9692,7 +9684,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -9899,9 +9891,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] @@ -10139,7 +10131,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", "wasm-bindgen-shared", ] @@ -10205,7 +10197,7 @@ checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -10248,7 +10240,7 @@ checksum = "a5211b7550606857312bba1d978a8ec75692eae187becc5e680444fffc5e6f89" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -10440,7 +10432,7 @@ checksum = "ac1345798ecd8122468840bcdf1b95e5dc6d2206c5e4b0eafa078d061f59c9bc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -10524,7 +10516,7 @@ dependencies = [ "windows-core", "windows-implement", "windows-interface", - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -10533,7 +10525,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -10544,7 +10536,7 @@ checksum = "12168c33176773b86799be25e2a2ba07c7aab9968b37541f1094dbd7a60c8946" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -10555,7 +10547,7 @@ checksum = "9d8dc32e0095a7eeccebd0e3f09e9509365ecb3fc6ac4d6f5f14a3f6392942d1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] @@ -10582,7 +10574,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -10617,17 +10609,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.3", + "windows_aarch64_msvc 0.52.3", + "windows_i686_gnu 0.52.3", + "windows_i686_msvc 0.52.3", + "windows_x86_64_gnu 0.52.3", + "windows_x86_64_gnullvm 0.52.3", + "windows_x86_64_msvc 0.52.3", ] [[package]] @@ -10636,7 +10628,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75aa004c988e080ad34aff5739c39d0312f4684699d6d71fc8a198d057b8b9b4" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -10653,9 +10645,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" @@ -10671,9 +10663,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" @@ -10689,9 +10681,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" @@ -10707,9 +10699,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" @@ -10725,9 +10717,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" @@ -10743,9 +10735,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" @@ -10761,9 +10753,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" @@ -10776,9 +10768,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d90f4e0f530c4c69f62b80d839e9ef3855edc9cba471a160c4d692deed62b401" +checksum = "7a4191c47f15cc3ec71fcb4913cb83d58def65dd3787610213c649283b5ce178" dependencies = [ "memchr", ] @@ -10891,9 +10883,9 @@ dependencies = [ [[package]] name = "xxhash-rust" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61" +checksum = "927da81e25be1e1a2901d59b81b37dd2efd1fc9c9345a55007f09bf5a2d3ee03" [[package]] name = "yansi" @@ -10984,7 +10976,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.49", + "syn 2.0.50", ] [[package]] From 9bb820ca393d73e581ca6992524195bcd7b9db1b Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Thu, 22 Feb 2024 10:10:23 -0800 Subject: [PATCH 21/23] fix syntax for publish --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 0436a0d107..972a5b5737 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -20,7 +20,7 @@ on: inputs: channel: type: choice - description: "Branch to publish" + name: "Branch to publish" required: true description: Choose the branch to publish. options: From 2ead6c6074d082af8a64f35542b9e5b0983a8702 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Thu, 22 Feb 2024 12:33:58 -0800 Subject: [PATCH 22/23] give longer window for events --- packages/desktop/headless_tests/events.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/desktop/headless_tests/events.rs b/packages/desktop/headless_tests/events.rs index f9009ebe4a..810cbc4139 100644 --- a/packages/desktop/headless_tests/events.rs +++ b/packages/desktop/headless_tests/events.rs @@ -14,7 +14,7 @@ pub(crate) fn check_app_exits(app: fn() -> Element) { let should_panic = std::sync::Arc::new(std::sync::atomic::AtomicBool::new(true)); let should_panic_clone = should_panic.clone(); std::thread::spawn(move || { - std::thread::sleep(std::time::Duration::from_secs(30)); + std::thread::sleep(std::time::Duration::from_secs(60)); if should_panic_clone.load(std::sync::atomic::Ordering::SeqCst) { std::process::exit(exitcode::SOFTWARE); } @@ -31,7 +31,7 @@ pub(crate) fn check_app_exits(app: fn() -> Element) { fn mock_event(id: &'static str, value: &'static str) { use_hook(move || { spawn(async move { - tokio::time::sleep(std::time::Duration::from_millis(2000)).await; + tokio::time::sleep(std::time::Duration::from_millis(5000)).await; let js = format!( r#" From 48d6a9acbb8f4cd7219987e9d1efab263dd25169 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Thu, 22 Feb 2024 13:55:29 -0800 Subject: [PATCH 23/23] Add logging to event checker --- packages/desktop/headless_tests/events.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/desktop/headless_tests/events.rs b/packages/desktop/headless_tests/events.rs index 810cbc4139..f36320e7eb 100644 --- a/packages/desktop/headless_tests/events.rs +++ b/packages/desktop/headless_tests/events.rs @@ -16,6 +16,7 @@ pub(crate) fn check_app_exits(app: fn() -> Element) { std::thread::spawn(move || { std::thread::sleep(std::time::Duration::from_secs(60)); if should_panic_clone.load(std::sync::atomic::Ordering::SeqCst) { + eprintln!("App did not exit in time"); std::process::exit(exitcode::SOFTWARE); } });