From 98e00fcb3bf0c71dd9b7443f0cc3d7fee0e77c7e Mon Sep 17 00:00:00 2001 From: zakstucke <44890343+zakstucke@users.noreply.github.com> Date: Sat, 1 Mar 2025 15:43:13 +0000 Subject: [PATCH] Erased mode in CI (#3640) * Erased mode in CI * Trigger CI * Rename dev_mode erased_mode plus add to more matrices * nested routes in separate component fix * Fix lint * Small fixes * Fixes * proc-macro rustflags cross-compilation workaround with internal erasure feature for leptos_macro * Re-trigger CI * fix unrelated doc CI and remove unneeded IntoAttribute trait * Fix StaticVec rebuild() fn * Conflict fixes * Maybe fix * Bump example toolchain --- .github/workflows/ci-changed-examples.yml | 1 + .github/workflows/ci-examples.yml | 1 + .github/workflows/ci.yml | 1 + .../workflows/get-changed-examples-matrix.yml | 2 +- .github/workflows/get-examples-matrix.yml | 2 +- .github/workflows/get-leptos-matrix.yml | 2 +- .github/workflows/run-cargo-make-task.yml | 6 +- examples/fetch/src/lib.rs | 2 +- examples/js-framework-benchmark/src/lib.rs | 12 +- examples/router/src/lib.rs | 25 +- examples/spread/rust-toolchain.toml | 2 +- examples/suspense_tests/src/instrumented.rs | 213 ++++++++++-------- leptos/Cargo.toml | 9 + leptos_macro/Cargo.toml | 13 +- leptos_macro/src/component.rs | 42 +++- leptos_macro/src/lib.rs | 6 +- leptos_macro/src/view/component_builder.rs | 6 +- leptos_macro/src/view/mod.rs | 8 +- leptos_macro/src/view/slot_helper.rs | 2 +- leptos_macro/tests/ui.rs | 2 +- tachys/src/html/attribute/mod.rs | 75 ------ tachys/src/html/element/mod.rs | 124 +++++++--- tachys/src/lib.rs | 2 +- tachys/src/view/either.rs | 9 +- tachys/src/view/iterators.rs | 27 ++- 25 files changed, 336 insertions(+), 258 deletions(-) diff --git a/.github/workflows/ci-changed-examples.yml b/.github/workflows/ci-changed-examples.yml index 15098fed6..c99480fc0 100644 --- a/.github/workflows/ci-changed-examples.yml +++ b/.github/workflows/ci-changed-examples.yml @@ -28,5 +28,6 @@ jobs: uses: ./.github/workflows/run-cargo-make-task.yml with: directory: ${{ matrix.directory }} + erased_mode: ${{ matrix.erased_mode }} cargo_make_task: "ci" toolchain: stable diff --git a/.github/workflows/ci-examples.yml b/.github/workflows/ci-examples.yml index f641d6a79..326dc103c 100644 --- a/.github/workflows/ci-examples.yml +++ b/.github/workflows/ci-examples.yml @@ -25,5 +25,6 @@ jobs: uses: ./.github/workflows/run-cargo-make-task.yml with: directory: ${{ matrix.directory }} + erased_mode: ${{ matrix.erased_mode }} cargo_make_task: "ci" toolchain: stable diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 967483ded..406fdf88a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,5 +25,6 @@ jobs: uses: ./.github/workflows/run-cargo-make-task.yml with: directory: ${{ matrix.directory }} + erased_mode: ${{ matrix.erased_mode }} cargo_make_task: "ci" toolchain: nightly-2025-02-19 diff --git a/.github/workflows/get-changed-examples-matrix.yml b/.github/workflows/get-changed-examples-matrix.yml index fdcd45f84..e8bea644d 100644 --- a/.github/workflows/get-changed-examples-matrix.yml +++ b/.github/workflows/get-changed-examples-matrix.yml @@ -50,5 +50,5 @@ jobs: echo "matrix={\"directory\":${{ steps.changed-dirs.outputs.all_changed_files }}}" >> "$GITHUB_OUTPUT" else # Create matrix with one item to prevent an empty vector error - echo "matrix={\"directory\":[\"NO_CHANGE\"]}" >> "$GITHUB_OUTPUT" + echo "matrix={\"directory\":[\"NO_CHANGE\"], \"erased_mode\": [false, true]}" >> "$GITHUB_OUTPUT" fi diff --git a/.github/workflows/get-examples-matrix.yml b/.github/workflows/get-examples-matrix.yml index 9899e73c8..bdc086208 100644 --- a/.github/workflows/get-examples-matrix.yml +++ b/.github/workflows/get-examples-matrix.yml @@ -28,7 +28,7 @@ jobs: sed 's/\/$//' | jq -R -s -c 'split("\n")[:-1]') echo "Example Directories: $examples" - echo "matrix={\"directory\":$examples}" >> "$GITHUB_OUTPUT" + echo "matrix={\"directory\":$examples, \"erased_mode\": [false, true]}" >> "$GITHUB_OUTPUT" - name: Print Location Info run: | echo "Workspace: ${{ github.workspace }}" diff --git a/.github/workflows/get-leptos-matrix.yml b/.github/workflows/get-leptos-matrix.yml index 7f565c37e..635ee21d8 100644 --- a/.github/workflows/get-leptos-matrix.yml +++ b/.github/workflows/get-leptos-matrix.yml @@ -24,7 +24,7 @@ jobs: sed "s|$(pwd)/||" | jq -R -s -c 'split("\n")[:-1]') echo "Leptos Directories: $crates" - echo "matrix={\"directory\":$crates}" >> "$GITHUB_OUTPUT" + echo "matrix={\"directory\":$crates, \"erased_mode\": [false, true]}" >> "$GITHUB_OUTPUT" - name: Print Location Info run: | echo "Workspace: ${{ github.workspace }}" diff --git a/.github/workflows/run-cargo-make-task.yml b/.github/workflows/run-cargo-make-task.yml index b2dc74234..dabd1cdbb 100644 --- a/.github/workflows/run-cargo-make-task.yml +++ b/.github/workflows/run-cargo-make-task.yml @@ -5,6 +5,9 @@ on: directory: required: true type: string + erased_mode: + required: true + type: boolean cargo_make_task: required: true type: string @@ -15,9 +18,10 @@ env: CARGO_TERM_COLOR: always CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse DEBIAN_FRONTEND: noninteractive + RUSTFLAGS: ${{ inputs.erased_mode && '--cfg erase_components' || '' }} jobs: test: - name: Run ${{ inputs.cargo_make_task }} (${{ inputs.toolchain }}) + name: "Run ${{ inputs.cargo_make_task }} (${{ inputs.toolchain }}) (erased_mode: ${{ inputs.erased_mode }})" runs-on: ubuntu-latest steps: - name: Free Disk Space diff --git a/examples/fetch/src/lib.rs b/examples/fetch/src/lib.rs index e3f5a7920..c8c011978 100644 --- a/examples/fetch/src/lib.rs +++ b/examples/fetch/src/lib.rs @@ -85,7 +85,7 @@ pub fn fetch_example() -> impl IntoView { .map(|s| { view! {
{contact.address_1}
{contact.address_2}
{contact.address_1}
{contact.address_2}