Skip to content

ci: replace hand-maintained feature-soundness scripts with cargo-hack#4013

Merged
Madoshakalaka merged 2 commits intomasterfrom
feat/cargo-hack-feature-soundness
Mar 3, 2026
Merged

ci: replace hand-maintained feature-soundness scripts with cargo-hack#4013
Madoshakalaka merged 2 commits intomasterfrom
feat/cargo-hack-feature-soundness

Conversation

@Madoshakalaka
Copy link
Member

@Madoshakalaka Madoshakalaka commented Feb 27, 2026

Description

98 combinations from the full powerset might be unrealistic for CI

that's why there's --exclude-features test,serde,not_browser_env. These features don't gate any code paths

This then results in 14 clippy invocations are identical to what the old scripts ran, but now auto-discovered by cargo hack, so when features are added/removed, CI adapts automatically

--keep-going added so all failures are reported at once

Fixes #2641

Checklist

  • I have reviewed my own code

github-actions[bot]
github-actions bot previously approved these changes Feb 27, 2026
@github-actions
Copy link

github-actions bot commented Feb 27, 2026

Visit the preview URL for this PR (updated for commit fa72abd):

https://yew-rs-api--pr4013-feat-cargo-hack-feat-3dhwlmdc.web.app

(expires Tue, 10 Mar 2026 12:24:27 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

@github-actions
Copy link

github-actions bot commented Feb 27, 2026

Benchmark - core

Yew Master

vnode           fastest       │ slowest       │ median        │ mean          │ samples │ iters
╰─ vnode_clone  2.463 ns      │ 3.755 ns      │ 2.469 ns      │ 2.596 ns      │ 100     │ 1000000000

Pull Request

vnode           fastest       │ slowest       │ median        │ mean          │ samples │ iters
╰─ vnode_clone  2.403 ns      │ 3.786 ns      │ 2.408 ns      │ 2.622 ns      │ 100     │ 1000000000

@Madoshakalaka Madoshakalaka added the A-ci Area: The continuous integration label Feb 27, 2026
@github-actions
Copy link

github-actions bot commented Feb 27, 2026

Size Comparison

Details
examples master (KB) pull request (KB) diff (KB) diff (%)
async_clock 100.197 100.197 0 0.000%
boids 168.080 168.080 0 0.000%
communication_child_to_parent 93.472 93.472 0 0.000%
communication_grandchild_with_grandparent 105.248 105.248 0 0.000%
communication_grandparent_to_grandchild 101.609 101.609 0 0.000%
communication_parent_to_child 90.899 90.899 0 0.000%
contexts 105.151 105.151 0 0.000%
counter 86.282 86.282 0 0.000%
counter_functional 88.276 88.276 0 0.000%
dyn_create_destroy_apps 90.320 90.320 0 0.000%
file_upload 99.346 99.346 0 0.000%
function_delayed_input 94.374 94.374 0 0.000%
function_memory_game 172.943 172.943 0 0.000%
function_router 406.410 406.410 0 0.000%
function_todomvc 164.160 164.160 0 0.000%
futures 235.159 235.159 0 0.000%
game_of_life 104.718 104.718 0 0.000%
immutable 255.879 255.879 0 0.000%
inner_html 80.803 80.803 0 0.000%
js_callback 109.379 109.379 0 0.000%
keyed_list 179.728 179.728 0 0.000%
mount_point 84.146 84.146 0 0.000%
nested_list 113.059 113.059 0 0.000%
node_refs 91.526 91.526 0 0.000%
password_strength 1729.146 1729.146 0 0.000%
portals 93.034 93.034 0 0.000%
router 376.976 376.976 0 0.000%
suspense 113.464 113.464 0 0.000%
timer 88.634 88.634 0 0.000%
timer_functional 98.877 98.877 0 0.000%
todomvc 142.088 142.088 0 0.000%
two_apps 86.146 86.146 0 0.000%
web_worker_fib 136.239 136.239 0 0.000%
web_worker_prime 187.470 187.470 0 0.000%
webgl 83.224 83.224 0 0.000%

✅ None of the examples has changed their size significantly.

@Madoshakalaka

This comment was marked as outdated.

@github-actions
Copy link

github-actions bot commented Feb 27, 2026

Benchmark - SSR

Yew Master

Details
Benchmark Round Min (ms) Max (ms) Mean (ms) Standard Deviation
Baseline 10 310.812 312.665 311.179 0.609
Hello World 10 477.253 528.043 487.382 15.365
Function Router 10 31290.800 31729.788 31595.056 132.253
Concurrent Task 10 1006.339 1007.738 1007.336 0.431
Many Providers 10 1105.172 1148.041 1130.459 12.725

Pull Request

Details
Benchmark Round Min (ms) Max (ms) Mean (ms) Standard Deviation
Baseline 10 310.773 311.743 311.074 0.270
Hello World 10 474.132 496.249 477.979 6.620
Function Router 10 31728.901 32272.936 32016.641 194.021
Concurrent Task 10 1006.235 1008.120 1007.191 0.601
Many Providers 10 1094.008 1140.034 1110.591 15.460

@Madoshakalaka

This comment was marked as outdated.

This comment was marked as outdated.

@Madoshakalaka
Copy link
Member Author

Full powerset of feature soundness tests finish in 3 minutes is amazing.

@Madoshakalaka Madoshakalaka marked this pull request as ready for review March 3, 2026 12:38
@Madoshakalaka Madoshakalaka merged commit 3827be1 into master Mar 3, 2026
25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-ci Area: The continuous integration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature soundness is a chore to deal with

2 participants