* enable musl target builds with vendored libgit2
* move git2 to bottom of list
* also fix dioxus fullstack docs builds
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* issue-5045 Trim slashes to prevent base path resolution issues in web
* Revert "issue-5045 Trim slashes to prevent base path resolution issues in web"
This reverts commit 480cd48d8537a56f57538c21e7cc98b75e8dc8ad.
* This is a more comprehensive approach. No matter how "/" gets set into
DIOXUS_ASSET_ROOT (cli arg, dioxus toml, or env var) it will be
normalized when used.
* Move the trim fix to the locations we set the variable DIOXUS_ASSET_ROOT as
this environment variable is not meant for public consumption.
* pull out trimming into a method
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Previously, when a file change event arrived while a build was in progress
(i.e., client stage was not Success/Failed/Aborted), the event was logged
and silently discarded. This caused issues with tools like stylance,
tailwind watch, or sass --watch that generate output files in response
to source file changes.
The typical failure case:
1. User saves a .module.scss file
2. dx starts rebuilding
3. stylance CLI (watching the same file) regenerates stylance.css
4. dx receives the stylance.css change event but discards it
5. Build completes with stale CSS
Now, file changes that arrive during a build are queued in a
pending_file_changes vector and processed after the build completes.
* disable strip setting in profile and manually strip with llvm the build
* remove rustc_llvm
* disable debug if wasm opt will run
* fix clippy
* don't strip if we are splitting with wasm-split
* keep names when running wasm-split
This flag allows users to get the raw JSON output from cargo instead
of having it processed by Dioxus. This is useful for integration with
other tools that expect cargo's native JSON diagnostic format.
When enabled, cargo's JSON messages are relayed directly to stdout
while still allowing DX to track essential build information internally.
Usage: dx build --raw-json-diagnostics
* Enhance Android log handling in AppBuilder
- Introduced adb_logcat fields to manage Android logcat output.
- Implemented logcat spawning and parsing to differentiate log levels.
- Updated push_stdio method to filter Android logs based on trace settings.
- Added utility functions for retrieving app PID and parsing logcat levels.
* automatic retry to get pid
* pipe RustStdoutStderr as well
* strip logcat prefix
* filter in rust instead
* Refine log filtering in Rust output handling
- Improved log level detection by checking for prefixes after the colon in messages.
- Enhanced filtering to only show logs with standard tracing levels or fatal errors.
- Streamlined the process of stripping logcat metadata while preserving message content.
* cleanup output and kill proc
* capture logs from ios device
* clippy
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* fix(hotpatch): Gracefully handle missing '-flavor' flag during WASM link
* drops logs
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* add component subcommand
* add dx component add, remove and list commands
* handle rust dependencies
* handle component dependencies
* fetch remote registries
* sort components before listing them
* remove local dependency
* move te component manifest into the dioxus workspace
* add additional instalation instructions the first time the component
module is created
* fix mod name
* fix clippy
* improve docs and move to the main branch of components
* fix typos
* more typos
* undo const-serialize changes
* remove a few unwraps
* Allow adding multiple components at once and add a `--all` flag
* add options to the config for the base path, global asset path and
default registry
* component_path -> component_dir
* component_dir is always relative to the crate root
* fix clippy
* fix hot patching with a base path
* read the hot patch file from stdin instead of a CLI arg to allow for longer inputs
* fix request imports
* wip: code style changes
* rename to "components" instead of "component"
* bump lock
* move to method on request
* read until eof in the case of pretty json
* strip is now copy
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* add component subcommand
* add dx component add, remove and list commands
* handle rust dependencies
* handle component dependencies
* fetch remote registries
* sort components before listing them
* remove local dependency
* move te component manifest into the dioxus workspace
* add additional instalation instructions the first time the component
module is created
* fix mod name
* fix clippy
* improve docs and move to the main branch of components
* fix typos
* more typos
* undo const-serialize changes
* remove a few unwraps
* Allow adding multiple components at once and add a `--all` flag
* add options to the config for the base path, global asset path and
default registry
* component_path -> component_dir
* component_dir is always relative to the crate root
* fix clippy
* fix request imports
* wip: code style changes
* rename to "components" instead of "component"
* bump lock
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* Add optional static_dir support
- add optional application.static_dir field defaulting to none
- copy configured static directory into web output during build/serve
- document config knob and add unit tests
- force full rebuild when static_dir contents change
- sync removes stale outputs and logs copy activity
- track static manifest next to platform dir
Tests: cargo fmt
* default to public dir to match vite
* static_dir -> public_dir
* wip
* deser as none...
* wip... use .manifest.json
* implement dumb form of asset manifest generation
* implement manifest using asset system directly
* cleanup
* dont create extra asset dir for server
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
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