Skip to content

[pull] master from yewstack:master#5

Open
pull[bot] wants to merge 1010 commits into
NickHu:masterfrom
yewstack:master
Open

[pull] master from yewstack:master#5
pull[bot] wants to merge 1010 commits into
NickHu:masterfrom
yewstack:master

Conversation

@pull

@pull pull Bot commented Nov 5, 2021

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull Bot added the ⤵️ pull label Nov 5, 2021
DannyCeb and others added 29 commits October 13, 2024 21:55
* update gloo-net version

update the gloo-net version on the Cargo.toml example to the latest one.

* Update website/docs/tutorial/index.mdx

---------

Co-authored-by: Elina <imelina@elina.website>
* Expose layout tests

Currently I can't import tests because `cfg(test)` isn't sent to sub-dependencies.   This allows you to set a `yew/test` and import into your own tests.

* Update Cargo.toml

* Update lib.rs

* Update lib.rs

* Update lib.rs

* AnyScope::test needs feature = test cfg + fmt

---------

Co-authored-by: Elina <imelina@elina.website>
* Try to add wasi feature to avoid browser's ABI.

* Add async render for single-threaded env.

* Temporarily enable my own patch branch.
It would be modified later
after the corresponding library branches are merged.

* add example for WASI SSR.

* Ready to run WASI on wasmtime.

* complete the example

* fix fmt

* fix fmt

* I made a mistake..sry

* add yew-router suites for demo

* fix typo

* Make the async render stream function public

* Use target_os instead of feature.

* Renew gloo-history's patch.

* Exclude WASI example to avoid web-sys.

* Try to add CI for WASI example.

* Fix CI.

* Fix CI that requires compiler 1.67 or newer.

* Use CLI's flag instead of exclude example.
bytecodealliance/wasmtime#4312

* Remove patchs.

* Use LocalServerRenderer instead of ServerRenderer.
yewstack/tokise#11 (comment)

* Remove unused exports.

* Add description about `LocalServerRenderer`.

* fix fmt

* fix fmt

* Update Cargo.lock

* Bump rust compiler's version to 1.67...

* Exclude WASI on yew-router browser interfaces.

* fix fmt

* Wait for gloo's PR dealed.

* Rollback to rust compiler 1.64.
cc ranile/gloo#423 (comment)

* Fix lock file.

* Downgrade `toml_datetime` version.

* Fix enum for `gloo-history`.

* Well, it seems there is no way to avoid the MSRV upgrade....

* fix: Replace feature = "wasi" to target_os = "wasi".

* Remove tips for rust version.

* Bump `gloo` to 0.11.

* Try to test yew-macro on compiler 1.67.

* Try to use compiler 1.68 instead.

* Try to use compiler 1.69 instead......

* Revert MSRV back

* Pin the oldest Cargo.lock.

* Downgrade deps for MSRV.

* Bump benchmark tool's tokio to 1.35

* Try to write WASI CI.

* Rollback the quotes

* Combine CI files...

* Rollback the use that gloo-history has fixed it.

* fix

* Bump gloo-history version.

* Block raw html update tests on WASI.

* Rollback indexmap's version.

* fix CI

* fix CI

* Update some SSR test suites that replace ServerRender instead of LocalServerRender.

* Remove yew-router's cfg macro

* Fix fmt

* Try to fix CI

* Update examples/wasi_ssr_module/README.md

Co-authored-by: Elina <imelina@elina.website>

* Revert back some unnecessary changes.

* Clippy

* fmt

* Fix CI.

* Fix CI.

* Try to fix clippy.

* Fix `ToString` trait.

* Remove pin version of WASI CI test.

* Pin the newer version.

* Fix typo.

* Bump `wasm-bindgen`.

* Fix SSR example.

* Fix typo.

* Try to support non-browser environments.

* Update wasm-bindgen-test to 0.3.43

refer to wasm-bindgen/wasm-bindgen#4083

* fix doc test running on nightly

* Update website/docs/advanced-topics/server-side-rendering.md

Co-authored-by: WorldSEnder <WorldSEnder@users.noreply.github.com>

* Update WASI CI.

* Remove WASI test for rustc 1.76.

* Try to let `wasmtime` CLI can be executed.

* Limit the function `decode_base64` that it shouldn't runnable in non-browser environment.

* Remove WASI example test for rustc 1.76.

* Revert changes.

* Fix CI

* Fix Cargo.lock

* Remove unused deps

* Undo the formatting changes.

* Undo the formatting changes.

---------

Co-authored-by: Elina <imelina@elina.website>
Co-authored-by: Martin Molzer <WorldSEnder@users.noreply.github.com>
Bumps [hashbrown](https://github.com/rust-lang/hashbrown) from 0.15.0 to 0.15.2.
- [Changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/hashbrown/commits)

---
updated-dependencies:
- dependency-name: hashbrown
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Update CHANGELOG
https://github.com/yewstack/yew/actions/runs/11314974928/job/31465588862

* Add items.

* Write blog.

* Archive the documents.

* Add author.

* Update SSR document.

* Fix typo.

* Add simplified Chinese translation.

* Update package.json

* Sync documents

* Add traditional Chinese translation.

* Sync documents

* Add Japanese translation.

* Sync documents

* Fix typo by `fmt:write`.

* Fix typo by `write-translations`.

* Apply suggestions from code review

* Fix typo.

* #3769 in changelog

---------

Co-authored-by: Elina <imelina@elina.website>
* explicit duplicate key check in debug_assertions

also a bit more defensive in production code, this should not lead to any slowdown
or changes in code with proper keys

CI changes:

* force install cli tools over cached versions on version mismatch
* Upload PR information for CI
   see also: actions/upload-artifact#618

misc:

* fix panic in panic
   don't set the panic hook if we are already panicking
* chore: linguist-detect false to ignore .mdx doc files

* chore: use proper file formatting
* made <textarea> a void element
* added defaultvalue special attr to <textarea>
* updated error message when trying to pass children to textarea

* updated docs, fixed formatting
* fixed hydration test
* fixed suspense test
* fixed heading in docs
* fixed clippy warnings
* fixed SSR, added SSR test for precedence of value over defaultvalue
* fixing wasm-bindgen-test screwups & replacing deprecated function use
Bumps [serialize-javascript](https://github.com/yahoo/serialize-javascript) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/yahoo/serialize-javascript/releases)
- [Commits](yahoo/serialize-javascript@v6.0.1...v6.0.2)

---
updated-dependencies:
- dependency-name: serialize-javascript
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the website-deps group across 1 directory with 15 updates

Bumps the website-deps group with 14 updates in the /website directory:

| Package | From | To |
| --- | --- | --- |
| [@docusaurus/core](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus) | `3.5.2` | `3.7.0` |
| [@docusaurus/plugin-client-redirects](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-client-redirects) | `3.5.2` | `3.7.0` |
| [@docusaurus/preset-classic](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-preset-classic) | `3.5.2` | `3.7.0` |
| [@mdx-js/react](https://github.com/mdx-js/mdx/tree/HEAD/packages/react) | `3.0.1` | `3.1.0` |
| [docusaurus-plugin-sass](https://github.com/rlamana/docusaurus-plugin-sass) | `0.2.5` | `0.2.6` |
| [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `18.3.1` | `19.0.0` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `18.3.10` | `19.0.8` |
| [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `18.3.1` | `19.0.0` |
| [sass](https://github.com/sass/dart-sass) | `1.79.4` | `1.83.4` |
| [@docusaurus/tsconfig](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-tsconfig) | `3.5.2` | `3.7.0` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.8.0` | `8.22.0` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.8.0` | `8.22.0` |
| [prettier](https://github.com/prettier/prettier) | `3.3.3` | `3.4.2` |
| [typescript](https://github.com/microsoft/TypeScript) | `5.6.2` | `5.7.3` |



Updates `@docusaurus/core` from 3.5.2 to 3.7.0
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.7.0/packages/docusaurus)

Updates `@docusaurus/plugin-client-redirects` from 3.5.2 to 3.7.0
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.7.0/packages/docusaurus-plugin-client-redirects)

Updates `@docusaurus/preset-classic` from 3.5.2 to 3.7.0
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.7.0/packages/docusaurus-preset-classic)

Updates `@mdx-js/react` from 3.0.1 to 3.1.0
- [Release notes](https://github.com/mdx-js/mdx/releases)
- [Changelog](https://github.com/mdx-js/mdx/blob/main/changelog.md)
- [Commits](https://github.com/mdx-js/mdx/commits/3.1.0/packages/react)

Updates `docusaurus-plugin-sass` from 0.2.5 to 0.2.6
- [Release notes](https://github.com/rlamana/docusaurus-plugin-sass/releases)
- [Commits](rlamana/docusaurus-plugin-sass@v0.2.5...v0.2.6)

Updates `react` from 18.3.1 to 19.0.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react)

Updates `@types/react` from 18.3.10 to 19.0.8
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `react-dom` from 18.3.1 to 19.0.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react-dom)

Updates `sass` from 1.79.4 to 1.83.4
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](sass/dart-sass@1.79.4...1.83.4)

Updates `@docusaurus/module-type-aliases` from 3.5.2 to 3.7.0
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.7.0/packages/docusaurus-module-type-aliases)

Updates `@docusaurus/tsconfig` from 3.5.2 to 3.7.0
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.7.0/packages/docusaurus-tsconfig)

Updates `@types/react` from 18.3.10 to 19.0.8
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@typescript-eslint/eslint-plugin` from 8.8.0 to 8.22.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.22.0/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.8.0 to 8.22.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.22.0/packages/parser)

Updates `prettier` from 3.3.3 to 3.4.2
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.3.3...3.4.2)

Updates `typescript` from 5.6.2 to 5.7.3
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](microsoft/TypeScript@v5.6.2...v5.7.3)

---
updated-dependencies:
- dependency-name: "@docusaurus/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: website-deps
- dependency-name: "@docusaurus/plugin-client-redirects"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: website-deps
- dependency-name: "@docusaurus/preset-classic"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: website-deps
- dependency-name: "@mdx-js/react"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: website-deps
- dependency-name: docusaurus-plugin-sass
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: website-deps
- dependency-name: react
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: website-deps
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: website-deps
- dependency-name: react-dom
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: website-deps
- dependency-name: sass
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: website-deps
- dependency-name: "@docusaurus/module-type-aliases"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: website-deps
- dependency-name: "@docusaurus/tsconfig"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: website-deps
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: website-deps
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: website-deps
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: website-deps
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: website-deps
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: website-deps
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: fix formatting

* chore: bump prettier (can't reproduce element.mdx warning locally?)

* workflow: show formatting diff for locally unproduceable errors

* chore: format elements.mdx

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matt Yan <syan4@ualberta.ca>
Co-authored-by: Siyuan Yan <44753941+Madoshakalaka@users.noreply.github.com>
* Bump the cargo-deps group across 1 directory with 17 updates

Bumps the cargo-deps group with 16 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [thiserror](https://github.com/dtolnay/thiserror) | `1.0.69` | `2.0.11` |
| [serde](https://github.com/serde-rs/serde) | `1.0.217` | `1.0.218` |
| [tokise](https://github.com/yewstack/tokise) | `0.1.0` | `0.2.0` |
| [rand](https://github.com/rust-random/rand) | `0.8.5` | `0.9.0` |
| [tabled](https://github.com/zhiburt/tabled) | `0.16.0` | `0.18.0` |
| [serde_json](https://github.com/serde-rs/json) | `1.0.138` | `1.0.139` |
| [clap](https://github.com/clap-rs/clap) | `4.5.29` | `4.5.30` |
| [anyhow](https://github.com/dtolnay/anyhow) | `1.0.95` | `1.0.96` |
| [git2](https://github.com/rust-lang/git2-rs) | `0.19.0` | `0.20.0` |
| [strum](https://github.com/Peternator7/strum) | `0.26.3` | `0.27.1` |
| [derive_more](https://github.com/JelteF/derive_more) | `1.0.0` | `2.0.1` |
| [strum_macros](https://github.com/Peternator7/strum) | `0.26.4` | `0.27.1` |
| [pulldown-cmark](https://github.com/raphlinus/pulldown-cmark) | `0.12.2` | `0.13.0` |
| [fake](https://github.com/cksac/fake-rs) | `2.10.0` | `4.0.0` |
| [uuid](https://github.com/uuid-rs/uuid) | `1.13.1` | `1.14.0` |
| [axum](https://github.com/tokio-rs/axum) | `0.7.9` | `0.8.1` |



Updates `thiserror` from 1.0.69 to 2.0.11
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](dtolnay/thiserror@1.0.69...2.0.11)

Updates `serde` from 1.0.217 to 1.0.218
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](serde-rs/serde@v1.0.217...v1.0.218)

Updates `tokise` from 0.1.0 to 0.2.0
- [Release notes](https://github.com/yewstack/tokise/releases)
- [Commits](yewstack/tokise@v0.1.0...v0.2.0)

Updates `rand` from 0.8.5 to 0.9.0
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md)
- [Commits](rust-random/rand@0.8.5...0.9.0)

Updates `tabled` from 0.16.0 to 0.18.0
- [Changelog](https://github.com/zhiburt/tabled/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zhiburt/tabled/commits)

Updates `serde_json` from 1.0.138 to 1.0.139
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](serde-rs/json@v1.0.138...v1.0.139)

Updates `clap` from 4.5.29 to 4.5.30
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](clap-rs/clap@clap_complete-v4.5.29...clap_complete-v4.5.30)

Updates `anyhow` from 1.0.95 to 1.0.96
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](dtolnay/anyhow@1.0.95...1.0.96)

Updates `git2` from 0.19.0 to 0.20.0
- [Changelog](https://github.com/rust-lang/git2-rs/blob/master/CHANGELOG.md)
- [Commits](rust-lang/git2-rs@git2-0.19.0...git2-0.20.0)

Updates `strum` from 0.26.3 to 0.27.1
- [Release notes](https://github.com/Peternator7/strum/releases)
- [Changelog](https://github.com/Peternator7/strum/blob/master/CHANGELOG.md)
- [Commits](Peternator7/strum@v0.26.3...v0.27.1)

Updates `derive_more` from 1.0.0 to 2.0.1
- [Release notes](https://github.com/JelteF/derive_more/releases)
- [Changelog](https://github.com/JelteF/derive_more/blob/master/CHANGELOG.md)
- [Commits](JelteF/derive_more@v1.0.0...v2.0.1)

Updates `strum_macros` from 0.26.4 to 0.27.1
- [Release notes](https://github.com/Peternator7/strum/releases)
- [Changelog](https://github.com/Peternator7/strum/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Peternator7/strum/commits/v0.27.1)

Updates `pulldown-cmark` from 0.12.2 to 0.13.0
- [Release notes](https://github.com/raphlinus/pulldown-cmark/releases)
- [Commits](pulldown-cmark/pulldown-cmark@v0.12.2...v0.13.0)

Updates `fake` from 2.10.0 to 4.0.0
- [Release notes](https://github.com/cksac/fake-rs/releases)
- [Changelog](https://github.com/cksac/fake-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cksac/fake-rs/commits)

Updates `uuid` from 1.13.1 to 1.14.0
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](uuid-rs/uuid@1.13.1...v1.14.0)

Updates `axum` from 0.7.9 to 0.8.1
- [Release notes](https://github.com/tokio-rs/axum/releases)
- [Changelog](https://github.com/tokio-rs/axum/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/axum/commits)

Updates `serde_derive` from 1.0.217 to 1.0.218
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](serde-rs/serde@v1.0.217...v1.0.218)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: cargo-deps
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
- dependency-name: tokise
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: rand
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: tabled
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
- dependency-name: anyhow
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
- dependency-name: git2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: strum
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: derive_more
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: cargo-deps
- dependency-name: strum_macros
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: pulldown-cmark
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: fake
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: cargo-deps
- dependency-name: uuid
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: axum
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: serde_derive
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: revert rand0.9 upgrade for now

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matt Yan <syan4@ualberta.ca>
* synced 0.18 i18n docs
Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) from 1.8.0 to 1.9.0.
- [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
- [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
- [Commits](pillarjs/path-to-regexp@v1.8.0...v1.9.0)

---
updated-dependencies:
- dependency-name: path-to-regexp
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matt Yan <syan4@ualberta.ca>
* Change note to tip in examples.mdx

---------

Co-authored-by: Matt Yan <syan4@ualberta.ca>
#3803)

This is achieved by reworking the logic for rewriting the function signature of the hook.
Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.7 to 3.3.8.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](ai/nanoid@3.3.7...3.3.8)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [peterjgrainger/action-create-branch](https://github.com/peterjgrainger/action-create-branch) from 2.4.0 to 3.0.0.
- [Release notes](https://github.com/peterjgrainger/action-create-branch/releases)
- [Commits](peterjgrainger/action-create-branch@v2.4.0...v3.0.0)

---
updated-dependencies:
- dependency-name: peterjgrainger/action-create-branch
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Madoshakalaka and others added 30 commits April 8, 2026 14:20
…able length lists (#4099)

* fix: pair unkeyed children front-to-front during reconciliation

`apply_unkeyed` paired nodes from the back of render order, so growing
or shrinking a list destroyed and recreated leading siblings instead of
reusing them.  Flip `rev_children` to render order before diffing,
drain/add excess from the tail, and flip back.  This makes positional
reconciliation match the intuitive front-to-front expectation and fixes
stateful elements (`<video>`, `<input>`) being reset when a sibling
list changes length.

* fix: store BList children in render order

Replace rev_children (reverse render order) with children (render order).

---------

Co-authored-by: Martin Molzer <WorldSEnder@users.noreply.github.com>
- Support unbraced match arms and let bindings in match arm bodies
- Support bare literals and expressions in unbraced match arms and for-loops
- Support bare nodes and let bindings in if/else bodies
- Support `let` bindings in `for` bodies
- Automatic root fragment wrapping
- Protest against patterns containing unnecessarily nested `html!` macros and unnecessary fragments
- Update examples to use the new syntax
- Document match expressions, let bindings, and bare nodes in html!
* fix(branding): do not scare away new adopters

In fact Yew has the reputation of being the most «mature» Rust frontend framework.

* fix(docs): correct outdated website docs: camelCase svg elements just work now.

* docs: mention nested router RFC

* docs: update SSR situation

* docs: remove experimental warning and glaze yew-autoprops

* docs: promote tracing-web as recommended logging crate

* fix: make the svg icon a real square

* fix(website): icon not showing

* branding: tagline
* fix: disable streaming output in wasm-bindgen-test-runner for E2E tests

wasm-bindgen 0.2.115+ introduced incremental DOM scraping that assumes
#output content is append-only. The SSR E2E tests replace #output via
set_inner_html, breaking the offset tracker and causing the runner to
miss test results. WASM_BINDGEN_TEST_NO_STREAM falls back to reading
full text each poll.

---------

Co-authored-by: Esteve Autet Alexe <esteve@memw.es>
now #![allow(deprecated)] can be used to disable these lints

also catch unnecessary html! in if-else
The matching `.rs` file was deleted in #1738, but the `.stderr` was
left behind. The trybuild glob in html_macro_test.rs only picks up
`*-pass.rs`/`*-fail.rs`, so this file was never consumed.
The previous approach routed a resuming child's rendered through the
scheduler's `rendered` queue, which drains only after the update+render
queues. That worked for a single suspender but not for siblings: if A
resumed while B was still pending, A's rendered still fired before the
boundary un-suspended, because Suspense's render with suspended=true
still doesn't shift children into the live tree.

Hand the pending rendered directly to the ancestor BaseSuspense as a
PendingRendered, keyed by comp_id in a Vec. BaseSuspense drains
this list in its own rendered lifecycle, gated on
self.suspensions.is_empty() - i.e. the commit on which reconcile has
already shifted children from the detached parent into the live tree.
Re-committed children absorb into the existing entry so
first_render=true survives a suspend/resume/suspend/resume cycle.
Bumps [rustls-webpki](https://github.com/rustls/webpki) from 0.103.10 to 0.103.13.
- [Release notes](https://github.com/rustls/webpki/releases)
- [Commits](rustls/webpki@v/0.103.10...v/0.103.13)

---
updated-dependencies:
- dependency-name: rustls-webpki
  dependency-version: 0.103.13
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…4124)

also note:

Our MSRV is 1.85+ but users might stay on edition 2021 for various
reasons

This change wraps break/continue in Into::into(...) triggered the never-type
fallback in editions before 2024, where unconstrained ! falls back to
(), producing "(): Into<VNode> is not satisfied" on edition 2021 users.
Emit the keyword directly as a statement instead so the generated code
is edition-agnostic.
…4146)

When a fork-parsed `Stmt::Expr(For/While/Loop, None)` succeeds, the
entire expression is Rust-parseable and contains no html elements, so
it cannot be a misread of html-control-flow. Accept it as a preamble
statement instead of erroring with the `let _ = ...;` hint.

Users no longer need a trailing `;` or a `let _ =` binding to use
imperative side-effect loops inside an html! body.

Also added `if { for {x} }` workarounds on the website
* fix: validate attribute names

attribute names are written to the HTML in SSR without escaping
(no such escaping is part of the HTML spec). This means they need
to be validated to avoid injection.

Note that in normal usage, Rust identifiers always form valid attribute
names. To catch browser incompat, high unicode chars are failed

`_unchecked` methods are available. The previous enum constructors
are now doc(hidden) - no private visibility is possible - and deprecated
for a good migration path.
Renaming was not thoroughly enough and it caused spurious CI failures.
…4155)

nanoid 0.5 swaps its rand 0.8 dep for rand 0.9, which transitively
pulls in getrandom 0.3 in place of getrandom 0.2. On
wasm32-unknown-unknown, getrandom 0.3 fails to compile unless its
wasm_js Cargo feature is activated in the dependency graph.

Mirror the workaround already used in examples/function_router and
examples/router (493fe1c): add getrandom_03 = { workspace = true }
so the workspace dep with wasm_js feature unifies into the build
graph for trunk's per-manifest builds.

Our usage of nanoid requires no source changes for the 0.5 bump.
enabled by newer html! macro syntax
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.44.0 to 1.47.0.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.44.0...v1.47.0)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-version: 1.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.6 to 8.5.13.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](postcss/postcss@8.5.6...8.5.13)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.13
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
git2 0.21 changed `StringArray::iter()` to yield `Result<Option<&str>, Error>` instead of `Option<&str>`, which broke `get_latest_version` (the `.map`/`.replace` chain resolved to `Result::map` + `Option::replace`). Handle the new item type with `ok().flatten()`, skipping tags that error or are non-UTF-8.

git2 0.21 also drops ssh/https from its default features, removing the libssh2-sys/openssl-sys build deps because the changelog tool only performs local git operations, so no feature flags are needed.
The simple_ssr example fetched a UUID from httpbin.org during SSR, which is chronically unreliable (intermittent 503s) and periodically breaks the SSR-E2E CI job with a misleading reqwest decode panic on the error-page body.

Switch to httpbingo.org (the maintained go-httpbin instance), which returns the identical {"uuid": ...} shape. It requires a User-Agent (answers 402 without one) and reqwest sends none by default, so build a client with an explicit User-Agent. Add error_for_status() so any future non-2xx surfaces as a clear HTTP error instead of a JSON-decode failure.
…ates (#4163)

Bumps the cargo-deps group with 18 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [tokio](https://github.com/tokio-rs/tokio) | `1.51.0` | `1.52.3` |
| [clap](https://github.com/clap-rs/clap) | `4.6.0` | `4.6.1` |
| [serde_json](https://github.com/serde-rs/json) | `1.0.149` | `1.0.150` |
| [log](https://github.com/rust-lang/log) | `0.4.29` | `0.4.31` |
| [reqwest](https://github.com/seanmonstar/reqwest) | `0.13.2` | `0.13.4` |
| [axum](https://github.com/tokio-rs/axum) | `0.8.8` | `0.8.9` |
| [indexmap](https://github.com/indexmap-rs/indexmap) | `2.13.1` | `2.14.0` |
| [gloo-net](https://github.com/rustwasm/gloo) | `0.6.0` | `0.7.0` |
| [lru](https://github.com/jeromefroe/lru-rs) | `0.16.3` | `0.18.0` |
| [matchit](https://github.com/ibraheemdev/matchit) | `0.9.1` | `0.9.2` |
| [average](https://github.com/vks/average) | `0.16.0` | `0.17.0` |
| [tabled](https://github.com/zhiburt/tabled) | `0.20.0` | `0.21.0` |
| [libc](https://github.com/rust-lang/libc) | `0.2.184` | `0.2.186` |
| [tower-http](https://github.com/tower-rs/tower-http) | `0.6.8` | `0.6.11` |
| [hyper](https://github.com/hyperium/hyper) | `1.9.0` | `1.10.1` |
| [pulldown-cmark](https://github.com/raphlinus/pulldown-cmark) | `0.13.3` | `0.13.4` |
| [zxcvbn](https://github.com/shssoichiro/zxcvbn-rs) | `3.1.0` | `3.1.1` |
| [uuid](https://github.com/uuid-rs/uuid) | `1.23.0` | `1.23.2` |



Updates `tokio` from 1.51.0 to 1.52.3
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](tokio-rs/tokio@tokio-1.51.0...tokio-1.52.3)

Updates `clap` from 4.6.0 to 4.6.1
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](clap-rs/clap@clap_complete-v4.6.0...clap_complete-v4.6.1)

Updates `serde_json` from 1.0.149 to 1.0.150
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](serde-rs/json@v1.0.149...v1.0.150)

Updates `log` from 0.4.29 to 0.4.31
- [Release notes](https://github.com/rust-lang/log/releases)
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md)
- [Commits](rust-lang/log@0.4.29...0.4.31)

Updates `reqwest` from 0.13.2 to 0.13.4
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](seanmonstar/reqwest@v0.13.2...v0.13.4)

Updates `axum` from 0.8.8 to 0.8.9
- [Release notes](https://github.com/tokio-rs/axum/releases)
- [Changelog](https://github.com/tokio-rs/axum/blob/main/CHANGELOG.md)
- [Commits](tokio-rs/axum@axum-v0.8.8...axum-v0.8.9)

Updates `indexmap` from 2.13.1 to 2.14.0
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md)
- [Commits](indexmap-rs/indexmap@2.13.1...2.14.0)

Updates `gloo-net` from 0.6.0 to 0.7.0
- [Release notes](https://github.com/rustwasm/gloo/releases)
- [Changelog](https://github.com/ranile/gloo/blob/master/CHANGELOG.md)
- [Commits](ranile/gloo@0.6.0...gloo-net-v0.7.0)

Updates `lru` from 0.16.3 to 0.18.0
- [Changelog](https://github.com/jeromefroe/lru-rs/blob/master/CHANGELOG.md)
- [Commits](jeromefroe/lru-rs@0.16.3...0.18.0)

Updates `matchit` from 0.9.1 to 0.9.2
- [Release notes](https://github.com/ibraheemdev/matchit/releases)
- [Commits](ibraheemdev/matchit@v0.9.1...v0.9.2)

Updates `average` from 0.16.0 to 0.17.0
- [Commits](https://github.com/vks/average/commits)

Updates `tabled` from 0.20.0 to 0.21.0
- [Changelog](https://github.com/zhiburt/tabled/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zhiburt/tabled/commits)

Updates `libc` from 0.2.184 to 0.2.186
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.186/CHANGELOG.md)
- [Commits](rust-lang/libc@0.2.184...0.2.186)

Updates `tower-http` from 0.6.8 to 0.6.11
- [Release notes](https://github.com/tower-rs/tower-http/releases)
- [Commits](tower-rs/tower-http@tower-http-0.6.8...tower-http-0.6.11)

Updates `hyper` from 1.9.0 to 1.10.1
- [Release notes](https://github.com/hyperium/hyper/releases)
- [Changelog](https://github.com/hyperium/hyper/blob/master/CHANGELOG.md)
- [Commits](hyperium/hyper@v1.9.0...v1.10.1)

Updates `pulldown-cmark` from 0.13.3 to 0.13.4
- [Release notes](https://github.com/raphlinus/pulldown-cmark/releases)
- [Commits](pulldown-cmark/pulldown-cmark@v0.13.3...v0.13.4)

Updates `zxcvbn` from 3.1.0 to 3.1.1
- [Changelog](https://github.com/shssoichiro/zxcvbn-rs/blob/master/CHANGELOG.md)
- [Commits](shssoichiro/zxcvbn-rs@v3.1.0...v3.1.1)

Updates `uuid` from 1.23.0 to 1.23.2
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](uuid-rs/uuid@v1.23.0...v1.23.2)

---
updated-dependencies:
- dependency-name: average
  dependency-version: 0.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: axum
  dependency-version: 0.8.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
- dependency-name: clap
  dependency-version: 4.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
- dependency-name: gloo-net
  dependency-version: 0.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: hyper
  dependency-version: 1.10.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: indexmap
  dependency-version: 2.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: libc
  dependency-version: 0.2.186
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
- dependency-name: log
  dependency-version: 0.4.31
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
- dependency-name: lru
  dependency-version: 0.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: matchit
  dependency-version: 0.9.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
- dependency-name: pulldown-cmark
  dependency-version: 0.13.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
- dependency-name: reqwest
  dependency-version: 0.13.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
- dependency-name: serde_json
  dependency-version: 1.0.150
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
- dependency-name: tabled
  dependency-version: 0.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: tokio
  dependency-version: 1.52.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-deps
- dependency-name: tower-http
  dependency-version: 0.6.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
- dependency-name: uuid
  dependency-version: 1.23.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
- dependency-name: zxcvbn
  dependency-version: 3.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…4158)

During SSR hydration, Yew unconditionally called `set_attribute` for every attribute on each element, even when the server-rendered DOM already held the correct value. Re-setting an attribute to its existing value can still trigger
browser side effects. Most visibly, re-assigning `<img src>` restarts the resource fetch, causing a duplicate (and sometimes aborted) network request.

Hydration already assumes the DOM matches the server-rendered HTML, so there's no reason to write attributes back. This adds a dedicated hydration path for `Attributes`:

- Attributes are left untouched. In debug builds a `debug_assert!` verifies the existing value matches the expected one, surfacing SSR/client mismatches loudly while compiling to a no-op in release.
- Properties are still applied unconditionally, since they are not serialized into the HTML and so aren't present on the hydrated DOM.

This is wired in via a new `Apply::hydrate` trait method (defaulting to `apply`); only `Attributes` overrides it, and VTag hydration now calls `attributes.hydrate(...)` instead of `attributes.apply(...)`.

Adds a hydration test using a `MutationObserver` to assert no attribute mutations occur when the rendered values already match the DOM.
Resolve version-sensitive docs URLs/versions at build time from each page's own path.

Tokens:
- {{yew_dependency}} -> `git = "..."` on next, `version = "X"` on snapshots
- {{yew_api}}        -> preview rustdoc host on next, docs.rs/yew/X on snapshots
- {{yew_version}}    -> latest release on next, X on snapshots (prose/display)

Also fixes the 0.21-0.23 hooks links that wrongly pointed at the next preview host.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.