Scenario: without this patch, if you fail a build, fix the code, let the thin build succeed, and then refresh the browser... then after reloading the browser page, it gets stuck on the "One sec" loader because the devserver status never clears the earlier BuildError.
- mark build status ready after sending hot patch messages so refreshes succeed
- reuse the same helper from reload command to avoid stale loading screens
- add set_ready() helper to avoid duplicate status broadcasts
* allow `--server` only builds!
* rollback example
* capture `/:route` routes
* fix: properly implement file uploads in forms
* implement desktop form uploads
* Performant serialization of form bytes
* finish up file stuff
* cleanups
* add request headers to streaming context
* remove some unwraps
* fix: hotpatching fullstack
* add hot-patching fullstack test
* add caching to playwright apt-get
* only run playwright on beta
* install binutils?
* dont commit lockfile
* ignore lockfiles
* make sure ld is in path
* Look for strip settings in inherited profiles and global configs
* fix clippy
* use cargo home env var if it exists
* fix cargo home config path
* small stylistic changes
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
Using .split(' ') for cli arguments causes extra whitespace to become extra
arguments, and "".split(' ') returns the empty string instead of nothing.
Using split_whitespace() fixes both of these problems.
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
overhaul dioxus fullstack using a new implementation of server_fn
This PR is a complete rewrite of dioxus fullstack designed to improve compatibility with axum and to fix a number of compilation errors based on feature flag unification plumbing through macros.
* feat: add dx print command
* small tweak to how client_target is handled
* hotpatching engine wired up!
* small cleanups
* lighter diff
* little bit more light cleanups
* remove changes to manganis
* fix wrong dir error
* move session_cache fixing to prebuild step
* fix the server extension on windows server bundles
* fix formatting
* retry extracting assets if windows antivirus is holding the lock
* fix exe hash with extension
* add a timeout
* wip, make async
* use async methods
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* Don't output escape codes for the cursor when the tui isn't active
* reset the cursor if we are running in a terminal even if tui active is false
* don't clone tui_active
* wip
* wip: basic telemetry
* fix merge
* keep errors for telemetry
* fix upload when queued events are empty
* add per session id and keep track of build timing
* keep track of what commands are run
* capture panics
* keep track of panics
* better path stripping
* better tracing error telemetry
* only sync every week and check settings before sending any telemetry
* keep track of the args passed to commands
* anonymize commands
* more error tolerant
* wip
* wip
* wip
* merge cnflict
* other merg conflict
* migrate everything from telemetry to logging
* update docs
* wip... about to merge trace controller
* lil bit more refactor to clean up tracer
* more performant log writer
* cleanup ci detecting
* wire up to posthog
* re-uploads work
* yoink out the anon from each file
* cleanup sig
* lil bit cleaner
* dont write empty files
* wip log handler
* fmt
* cleanup logging of backtraces
* add proper backtrace support
* use stable reporter
* adhere to posthog format
* fix stacktraces
* use anyhow for capturing backtraces
* I think we're done?
* cleanup logging
* properly collect!
* move out keycode handling
* she works
* typo
* add extra fields
* fix cargo doc
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
* Use data dir instead of home dir for dioxus-related data
* merge dx dir
* make windows match the pshell
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* fix linux bundle
* fix release mode
* fix resource path
* only use asset dir if it exists
* add comment about directory structure
* don't unwrap parent
* Add --renderer argument to the CLI
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Make `--platform native` work
Signed-off-by: Nico Burns <nico@nicoburns.com>
* Emit `krates` error when cargo metadata fails
* Reinstate default "desktop" feature for examples
* Remove commented 'no platform specified' error
Signed-off-by: Nico Burns <nico@nicoburns.com>
* use the target tripple and bundle format as the source of truth for the build
* resolve renderer and bundle format
* add shorthand flags
* add headings to the help for shorthands
* resolve the renderer from the target triple if it isn't passed
* make value after --fullstack optional
* convert desktop -> mobile when targeting mobile webview
* use the new shorthand flags in the playwright tests
* fix clippy
* merge fix
* cleanup merge conflicts
* fix clippy
* remove nit
* restore platform as a legacy argument
* improve help message
* vendor openssl on native, pin server_fn
* print build errors as warnings
* add --desktop arg compat
* adjust cli headings
* prefer self.is_wasm_or_wasi()
---------
Signed-off-by: Nico Burns <nico@nicoburns.com>
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
* fix(bundle): add serde default for all fields that impl Default
- Adds #[serde(default)] for all fields of all bundle settings structs
where the types impl Default
- WindowsSettings: derive Default since all types impl Default
Default values for more [bundle] settings #3785
* Add default for Nsis settings
* Add default impl
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>