chore(lit-actions): upgrade Deno runtime stack#388
Conversation
945480f to
3479b98
Compare
3479b98 to
5f8735c
Compare
GTC6244
left a comment
There was a problem hiding this comment.
@glitch003 - looks pretty good and I'd give it a conditional pass, based on the fact that it works !
My notes inline are really about running profiling tests, which I'll do today.
| fn lit_actions_ops_extension() -> deno_core::Extension { | ||
| let mut extension = lit_actions_ext::lit_actions::init(); | ||
|
|
||
| // The startup snapshot is built with the full Lit Actions extension. At |
There was a problem hiding this comment.
I'm assuming this skips all of the manual ESM work that I had Claude put together - but will need to load test, and/or profile to be sure.
| /// Coarse warmup wait. There's no "ready workers" counter today, so we | ||
| /// just sleep long enough for snapshot-bootstrapped workers to land in | ||
| /// the ready channel. With pool=10, 600ms is plenty under load. | ||
| /// the ready channel. The newer Deno runtime has more lazy extension state to |
There was a problem hiding this comment.
While this is in the test path, the comment makes me believe that timing may be changing in the processing. On the one hand, reducing the TTL of the actual runtime is good, but lazy-loading after the fact may ( or may not ) make the entire process a bit slower. Suspect this is a nanosecond thing - but for clients like Relay, this may make a difference.
To be more specific, we're caching deno environments entirely, so I'd prefer to do as much hydration prior to deno saying it's ready to process !
Again, profiling is the answer here.
Summary
lit-actionsDeno crate stack to Deno v2.8.0-era versions (deno_core,deno_runtime,deno_lib,deno_resolver,deno_error,sys_traits)Validation
git diff --checkcargo fmt --allcargo test -p lit-actions-server --lib -j 2— 86 passedcargo test -p lit-actions-tests --test integration -j 2— 26 passed, 2 ignoredcargo test --workspace -j 2Notes
/was 98% used with ~3.5G free during validation.deno_coreand the macOS libffi patch because the upgraded dependency graph no longer needs them.