Commit Graph
133 Commits
Author SHA1 Message Date
Jonathan Kelley bdeedc13eb feat: router-based wasm bundle splitting (#3683)
* feat: wasm-split base implementation

* kinda sorta works with the cli

* okay great it actually works

* fix: cache busting for chunks

* cleaned up version

* it works with the router

* wip: migrate to a faster linear solution using id remapping

* add a good harness

* it works completely on the docsite

* the super tight build works too

* make parallelizable

* works on the docsite but not the harness

* light cleanups, fix for both harness and docsite

* make codegen smaller by extract some shared functions to prevent monos

* chunking works, but tbd on tuning heuristics

* extract used module

* wip: cleaning up module

* wip: much better understanding of how imports work

* fix the call graph

* working again...

* wip: thinking about ifuncs

* ifunc approach works

* yes the ifunc approach works!!

* it all works completely even with chunks

* small cleanups

* comments

* actually locate all of the symbols

* clean up final implementation

* clean up tomls, revert some mono changs

* clean up, add some more comments / docs in places

* hoist more packages

* clean up impl a bit more

* clean cli

* move harness to playwright

* update playwright

* extract codgen

* add lazy to components

* Add docs to split loader

* clippy

* typos

* clippy, don't generate splits if not on wasm

* whoops, const

* Typos and docs

* enable optimizations in ci

* add optimizations to ci

* add wasm-split router feature

* parallel playwright?

* fix no case check

* disable pre-compress... think that might be the issue

* better logging, no default pre-compress, caching of shared symbols
* Fix: compressing assets

* fix non-interactive logging for serve

* cache playwright even on failure, use the cli with optimizations

* fix prebuild

* fix playwright webserver
2025-02-13 18:54:38 -08:00
Jonathan Kelley d7e64d5d24 fix: ci line 2025-01-30 16:03:31 -08:00
Jonathan Kelley 202f2e81d7 use apt-caching, don't cargo install during test 2025-01-30 15:55:35 -08:00
Evan Almloff 13dcd80fbf Optimize wasm bindgen asset with manganis (#3531) 2025-01-21 15:14:45 -08:00
CathalandJonathan Kelley c7951b7dd5 feat(cli): add feature to disable downloads (#3465)
* feat(cli): add feature to disable downloads

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-01-16 16:49:30 -08:00
Jonathan Kelley beae32b190 fix: pin cargo-msrv to older version (#3486)
* fix: pin cargo-msrv to older version

* lock msrv
2025-01-02 14:26:38 -05:00
Jonathan Kelley e2e565c889 split typo checker out so it runs against markdown 2024-12-06 20:02:04 -08:00
Jonathan Kelley 1cbfcde6cd improve build times by extracting asset opt into its own crate (#3273)
* improve build types by extracing asset opt as a dylib
* dont use dylib, but let regular workspace caching do the heavy lifting
* add prebuild to cli for better lock contention
* hoist deps
* disable slow tests
* re-enable sequential, debug=0 for dev
* use vfs for windows
* dont cache on failure, fix windows vfs caceh
* free disk space re-order
* add clippy + fmt to windows channel
* yoink makefile
* proper rustfmt/clippy on toolchain
* set incremental to zero since cargo-cache disables it
2024-12-02 16:52:40 -08:00
Jonathan Kelley e700e00b6a wip: faster playwright test with better caching (#3160) 2024-11-02 00:57:40 -07:00
Jonathan Kelley 42f6b91390 feat: add stylesheet component to dioxus document (#3138)
* feat: add stylesheet component to dioxus document

* fix asset path

* add cache key to playwright
2024-10-28 17:52:28 -07:00
Jonathan Kelley ebaca480a1 Better caching in CI (#3127)
* merge nix, better caching

* use faster runner  for playwright
2024-10-28 11:25:31 -07:00
Jonathan Kelley 7ec3453ca3 Fix bundling/path errors, sidecar support, iOS/Android simulator support, asset hotreload fixes, serverfn hotrelad, native tailwind support (#2779)
* wip: fix manganis import path
* upgrade tauri bundler, convert todo!() to unimplemented!()
* feat: mobile hotreloading + ios asset configuration
* remove oid demo and its associated env vars
* nuke all the things that cause cache thrashing
* swap to Asset type
* add some more logs
* display impl for attrvalue
* dont panic on collect failure
* cut down web deps to 150
* clean up deps in a lot of places, simplify build scripts
* clean up asset resolution and cli-dev profile
* wire up absolute paths for manganis asset in a particular mode
* move document related things around to shorten compile times
* move most things to `document::Item` and then decompose the cli-config
* switch link to stylesheet for clarity in examples
* move manganis workspace example to examples folder
* decompose manganis-cli-support
* dont need mobile demo anymore
* remove gloo dialogs
* html doesnt need document
* rename hotreload to devtools
* really clean up the html crate
* fix weird rsx spacing
* clean up desktop to use callback
* clean up document a bit
* re-wire up devsocket
* fix utf css
* yeeeet that js out of here
* synthetic web system works
* web crate almost done being cleaned up
* desktop mostly cleaned up too
* clean up cli a bit
* more cli cleanup
* cli builds again
* clean up cli, inline structs, cut down number of unique types where possible
* hotreload works again for desktop and this time, mobile too
* cfg out tungstenite
* devserver err
* more refactor to cli builder
* switch to unbounded_send
* new structure is much cleaner
* add http serve subcommand
* bundled hotreload
* kick stylsheets
* clean up a bit more, split up eventloop
* amazingly serve seems done
* change from pub to pub(crate) in cli
* remove tools
* bit more polish to cli
* fix issue with join
* gracefully handle fullstack without a server
* fullstack mobile demo
* fix launch function, move projects into example-projects folder
* hoist examples
* add "run" command
* clean up launch
* remove old manual websocket receiver
* doctor command
* allow desktop to scroll
* cut apart router crate
* dont put launch in prelude
* use dioxus::launch where possible
* rename rsx, cut out hotreload tests
* remove liveview project
* bump native
* fix compile for renderers
* move sync event response out of interpreter
* move render in serve
* rollback settings change
* cli compiles, huzzah!
* change uris for asset
* fix asset
* new tui screen
* new cargo-like tui works
* very very verty close
* it works! very small bug with incorrect grapheme calc
* Clean up devserver a bit
* status sytem
* tidy up debug filters
* clean up logging situation
* Fix a number of bugs with log printing
* new printing system is more reliable
* wire up more stuff
* things working but fullstack is having issues
* fullstack works again!
* hotreloading bundled assets works again
* bundled hotreload and beginnings of macos bundling
* Hotreload desktop
* combined server builds
* add build handle
* fix fullstack assets
* make open async, add some hooks for ios
* migrate filemap to runner
* wip global crate system
* fixup bundles + organize asset
* fix asset location bug
* all the bundled reloading!
* open ios simulator!
* full hotreload support for mobile + serverfn
* basic cleanups
* clean up dx
* Move filemap
* fix cutting of newlines
* assets workibg, some android
* hoist wry/tao
* use sync locks and headers to fix issues with android
* desktop -> mac/win/linux with alias
* better logging
* feat: workspace (entire computer!) hotreload
* should rebuild toggle, ios simulator bootup
* proper mobile support in launch
* more robust handling of assets
* fix cargo
* bring back some of tauri bundle
* make warnings go away, clippy happy on cli
* some final clippy cleanups
* fmt
* move manganis to its own folder
* upgrade bundle to stable
* drastically slim down manganis, prepping for merge
* typos, failing test, docsrs config
* remove static gen test
* nix static gen test
* we use --platform web instead of --platform fullstack now
* only bind dev urls in desktop/mobile
* install gtk
* nix static gen
* split build dir by app name
2024-10-25 17:23:45 -07:00
dependabot[bot] 2b219c826c Bump lycheeverse/lychee-action from 1 to 2 (#3056)
Bumps [lycheeverse/lychee-action](https://github.com/lycheeverse/lychee-action) from 1 to 2.
- [Release notes](https://github.com/lycheeverse/lychee-action/releases)
- [Commits](https://github.com/lycheeverse/lychee-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: lycheeverse/lychee-action
  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>
2024-10-14 10:05:40 -07:00
dependabot[bot] 469ab66341 Bump actions/cache from 3 to 4 (#2785)
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  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>
2024-08-05 11:51:26 -05:00
Miles Murgaw f42ca65931 Fix Links & Add Link Checker (#2769)
* feat: link checker
2024-08-02 10:46:18 -07:00
Jonathan Kelley 0cbcef735f Pre-release 0.6.0-alpha.0 (#2755)
* CI: add docsrs to ci

* add env vars

* no need for tokio things

* whoops, wrong rust nightly

* add swc

* bump crate versions to 0.6.0-alpha.0

* hoist up warnings and shuffle cargo.toml

* update cargos and disable warnings from ci

* attempt fix of aws

* attempt disabling aws_lc_sys globally

* pull in lc-sys

* add fips feature to fix docs

* turn on features for aws-lc-sys on cargo-doc-all

* pass along more args

* fix cfg docs

* fix: flakey gen box test

* fix: doc_cfg in static gen

* dont include readme

* fix error on static gen

* remove random line

* temporarily disable warnings

* simplify axum desktop so it doesnt count as a lib

* fix binstall link

* bump locks

* lock fixes

* revert axum desktop

* dont publish some crates
2024-07-31 22:37:39 -05:00
Jonathan Kelley c4e55c7fb6 Fix #2378: CLI MSRV and add MSRV to CI (#2716)
* Fix: bump msrv up to be valid for cli
* add binstall check to ci
* adjust msrv of tomls
2024-07-26 19:24:40 -05:00
Tristan F.andJonathan Kelley 9167cd9dec fix most typos, add crate-ci/typos to CI (#2653)
* fix most typos, add crate-ci/typos to CI

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-23 17:49:33 -07:00
Jonathan Kelley 6148941825 CI: re-reorder free disk space action to clear free up space earlier (#2690) 2024-07-23 16:53:56 -07:00
Jonathan Kelley 8b5ad5d925 Fix some CI (windows + nasm, core-macro error) (#2676)
* Moves index.html creation until after wasm creation so the webserver doesn't prematurely serve the page
* sets up nasm for windows builds (to be superseded by Remove Dioxus CLI NASM dependency #2666 #2682)
* puts magnanis-cli-support in a blocking task to prevent threadlocking during sequential builds
* changes order of client/server builds such that the client is built before the server so the webserver doesn't prematurely serve invalid client code
* declobbers "serve" such that each project gets a different dir in the target folder
* uses nest_service instead of fallback so the router doesn't respond with fallback codes
* reincorporates doge's fix from Fix hot-reloading on Windows #2544
2024-07-23 09:58:13 -07:00
88af3e7eff Hotreloading of for/if/body, formatted strings, literals, component props, nested rsx, light CLI rewrite, cli TUI (#2258)
Hotreload the contents of for loops, if chains, component bodies, props, attributes, and any literals discovered in rsx!
Add a TUI renderer to the CLI.
Improve the CLI build system to be async and parallel.
Refactor RSX to allow partial expansion of expressions.
Merge autofmt implementations for consistency.
Merge the representation of elements and components under the hood.
Add a diagnostics system for rsx for improved error messages.
Drop interprocess and move to websockets for communication between the CLI and the server.
Assign IDs to nodes and attributes in a stable way to be used in non compiler contexts.
Add hotreloading to any body of component/for loop/if chain/etc.

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Co-authored-by: Liam Mitchell <liamkarlmitchell@gmail.com>
2024-07-17 19:11:18 -07:00
Evan Almloff c47d7da070 fix windows CI rust version 2024-07-10 10:53:50 -07:00
Evan Almloff d6ca80e494 bump rustc version in CI 2024-07-08 10:13:32 -07:00
Miles Murgaw 2ef406982e Use Manganis Linker System (#2561)
* feat: new manganis linker

* revision: fmt, clippy, cleanup

* revision: link subcommand

* fix: async runtime

* revision: remove working dir arg

* revision: switch dep source

* fix: matrix, playwright

* fix: fullstack manganis
2024-07-02 21:36:44 -07:00
Evan Almloff 487570d897 Add CI step to test packages with debug assertions off (#2507)
* test packages in release mode

* run release tests in a separate job

* fix release generation box tests
2024-06-12 13:07:52 -07:00
Evan Almloff 72940cc14f Remove NASM from CI 2024-03-13 14:05:42 -05:00
Jonathan Kelley 72408115c4 temp disable semver checks 2024-02-21 22:29:48 -08:00
Jonathan Kelley 19c0007cb7 semver checks fix 2024-02-21 22:26:51 -08:00
Jonathan Kelley 52be1d7e98 semver checks fix 2024-02-21 22:17:14 -08:00
Jonathan Kelley 52f07de015 ignore description 2024-02-21 22:11:33 -08:00
Jonathan Kelley 76929071b3 combine checks for semver 2024-02-21 22:11:03 -08:00
Jonathan Kelley 862d2ea6f4 Fix syntax error in main 2024-02-21 22:10:01 -08:00
Jonathan Kelley 319eb29ff4 wip: clean up workflows 2024-02-21 21:08:46 -08:00
Jonathan Kelley 8f70f8936f wip: consolidate release 2024-02-21 19:36:33 -08:00
Jonathan Kelley 380f1429ae master -> main 2024-02-21 16:15:19 -08:00
Jonathan Kelley 2763adb2d3 clean up workflow, fix some more axum stuff 2024-02-15 19:03:46 -08:00
Jonathan Kelley 3ee4fa8099 Add all targets and all features to check 2024-02-15 19:00:07 -08:00
Jonathan Kelley 902d6e2fd7 bump rust version to 1.75 to satisfy CI 2024-02-05 14:48:51 -08:00
Jonathan Kelley 9fb4a5a5bd speed up clearing ci 2024-02-05 13:26:39 -08:00
Jonathan Kelley 1bbceac4e1 use better disk clearer 2024-02-05 13:24:21 -08:00
Jonathan Kelley 1b7c31792e fix dir 2024-02-05 13:02:27 -08:00
Jonathan Kelley 472de4198d wipe more directories to free up space 2024-02-05 12:57:48 -08:00
Jonathan Kelley d804b9283e comment out miri 2024-02-05 11:38:17 -08:00
Jonathan Kelley b403bb51a8 Move playwright into packages 2024-01-30 18:51:19 -08:00
Jonathan Kelley a0ce5493ea Cleanup ci files 2024-01-08 19:00:13 -08:00
Jonathan Kelley 4a39f71143 get more space on the test runner 2024-01-08 18:26:56 -08:00
Jonathan Kelley fc5bf89086 bump the ci 2024-01-08 17:42:17 -08:00
Jonathan Kelley ba8984761e cache if master 2024-01-08 16:53:37 -08:00
Jonathan Kelley 6b2c349626 use proper cache 2024-01-08 16:32:49 -08:00
Jonathan Kelley 3cb3113a8b try normal swatinem cache 2024-01-08 16:26:12 -08:00