2.1 KiB
Contribution Guide
Setup your local development environment
Add the wasm target
rustup target add wasm32-unknown-unknown
Build
cargo build --target wasm32-unknown-unknown
Examples
TODO: Add more info
stdweb
In order to run the examples in ./yew-stdweb, you may wish to install cargo-web:
cargo install cargo-web
Test
Web Tests
First, ensure that wasm-bindgen-cli is installed.
Instructions
Additionally a webdriver must be installed locally and configured to be on the
PATH. Currently supports geckodriver, chromedriver, and safaridriver,
although more driver support may be added! You can download these at:
- geckodriver - https://github.com/mozilla/geckodriver/releases
- chromedriver - http://chromedriver.chromium.org/downloads
- safaridriver - should be preinstalled on OSX
Macro Tests
When adding or updating tests, please make sure you have updated the appropriate stderr file, which you can find here for the html! macro. These files ensure that macro compilation errors are correct and easy to understand.
To update or generate a new stderr file you can run TRYBUILD=overwrite cargo test --test macro_test or TRYBUILD=overwrite cargo test --test derive_props_test from the yew-macro directory.
Running Tests
./ci/run_tests.sh
or
cargo test --target wasm32-unknown-unknown --features wasm_test
Benchmarks
If you wish to improve the performance of Yew, we request that you prove the improvements of your changes with benchmarks.
- Fork and clone https://github.com/yewstack/js-framework-benchmark
- Update
frameworks/yew/Cargo.tomlwith your fork of Yew and the branch for your changes - Open a new PR with your
Cargo.tomlchanges
Feel free to add new benchmark tests if the current benchmark coverage is insufficient!