Skip to content

v0.8.0-alpha.2

Pre-release
Pre-release

Choose a tag to compare

@nicoburns nicoburns released this 14 Oct 20:53
· 7 commits to main since this release

Highlights

  • New template and rendering internals (#5554):
    • Dioxus no longer uses comment-node placeholders and markers, either at runtime or during hydration. Elements that treat their children as text, such as textarea, now render correctly.
    • rsx! now expands to a const builder API, which you can also use directly.
    • HTML elements are trait-based, and you can define your own with dioxus::html::define_elements!.
    • Core now supports renderer IDs. These lay the groundwork for portals and multiple windows sharing one runtime.
  • Dioxus Native is updated to Blitz 0.3.0-beta.3 (#5780, #5909). This release also fixes a leak where removed nodes were never freed (#5911). A falsy boolean attribute like disabled: false is now removed instead of being written as "false" (#5913). Attributes now default to the empty namespace (#5851).
  • Linux desktop apps no longer link libxdo by default (#5749). This fixes prebuilt binaries failing to start on distros that ship a different libxdo soname.
  • CLI:
    • The bundle application name now comes from application.name in Dioxus.toml (#5533).
    • The runtime no-downloads setting is now respected when bundling (#5748).
    • Fixed a wasm-opt SIGABRT when stripping binaries (#5736).
    • Fixed wasm hot-patching with wasm-bindgen 0.2.128 and newer (#5843).
    • The dev server proxy now sets X-Forwarded-Host (#5627).

Breaking changes

  • HTML elements are no longer namespaced under dioxus_elements (#5554). Because element builders are now ordinary items, they can clash with other names in scope. For example, write html::main {} instead of main {} when your crate also has a main function.
  • libxdo is now opt-in on Linux (#5749). If your app uses the predefined Copy, Cut, Paste or Select All menu items, enable the linux-libxdo feature on dioxus-desktop. That means adding dioxus-desktop to your dependencies directly, because the feature isn't exposed through dioxus.

What's Changed

  • Lock cargo-msrv installation dependencies in CI by @danielkov in #5728
  • Remove CODEOWNERS by @nicoburns in #5727
  • Fix leak in manganis iOS FFI wrappers: hold Retained instead of a raw pointer by @nicoburns in #5733
  • feat(cli): Set bundle application name from config by @adamgreg in #5533
  • feat(desktop): make libxdo opt-in on Linux via linux-libxdo by @nabbisen in #5749
  • fix(bundle): honor runtime no-downloads setting by @subotac in #5748
  • Fix manganis-macro resolve_missing_file_path test on Windows by @jkelleyrtp in #5762
  • Markerless placeholders/Portals/Multiwindow/const builder/optimized templates by @ealmloff in #5554
  • Upgrade to Blitz 0.3.0-beta.2 by @nicoburns in #5780
  • Skip stable fragment edge scans when no children need placement by @ealmloff in #5802
  • Set X-Forwarded-Host in the proxy by @paholg in #5627
  • fix(rsx): quote_spanned! -> quote!. Resolves clippy::useless_format lints. by @scottfones in #5636
  • Fix windows-hotpatch-fullstack flake: route LaunchedRoot through Subsecond; remove SymbolData probe log spam by @nicoburns in #5790
  • cli: mirror Cargo's implicit strip default when manually stripping binaries (fixes wasm-opt SIGABRT) by @nicoburns in #5736
  • lychee: exclude freyaui.dev (403 from bot protection) by @nicoburns in #5844
  • fix(liveview): don't double the ? and # when reading the browser location by @Dev-next-gen in #5836
  • Use the empty namespace by default on HTML attributes by @hovinen in #5851
  • Introduce a function to create a synthetic form event by @hovinen in #5750
  • ci: fix Linux apt package install (stale apt lists + poisoned cache), fix cargo msrv find by @nicoburns in #5873
  • fix(router-macro): omit ? and stray & when query arguments are empty by @nicoburns in #5845
  • cli: fix wasm hot-patch fat builds with wasm-bindgen 0.2.128 / Rust beta (Playwright CI) by @nicoburns in #5843
  • fix: Filter crates that are not in target by @nicoburns in #5903
  • Eliminate quote/proc-macro2 deps from dioxus-config-macro crate by @nicoburns in #5868
  • Sync Dioxus Native (Blitz 0.3.0-beta.3) by @nicoburns in #5909
  • Drop nodes removed by Dioxus in dioxus-native-dom by @nicoburns in #5911
  • Remove unused attributes.rs from core-types by @nicoburns in #5910
  • Playwright: don't walk hot-patch temp target dirs during test collection by @nicoburns in #5914
  • fix(native): remove falsy boolean attributes instead of writing "false" by @nicoburns in #5913 (originally #5846 by @ethanstoner)

New Contributors

Full Changelog: v0.8.0-alpha.1...v0.8.0-alpha.2