Skip to content

chore(lit-actions): upgrade Deno runtime stack#388

Open
clawdbot-glitch003 wants to merge 1 commit into
mainfrom
workbench/upgrade-deno-to-the-latest-release-run-tests-etc-w6a15d2
Open

chore(lit-actions): upgrade Deno runtime stack#388
clawdbot-glitch003 wants to merge 1 commit into
mainfrom
workbench/upgrade-deno-to-the-latest-release-run-tests-etc-w6a15d2

Conversation

@clawdbot-glitch003
Copy link
Copy Markdown
Collaborator

Summary

  • Upgrade the lit-actions Deno crate stack to Deno v2.8.0-era versions (deno_core, deno_runtime, deno_lib, deno_resolver, deno_error, sys_traits)
  • Update SWC pins and Rust code for upstream API drift in ops, snapshots, module loading, workers, error formatting, and SWC WTF-8 strings
  • Preserve runtime behavior for Lit Actions by wiring residual lazy extension sources from snapshot creation into worker startup
  • Fix fetch/TLS under rustls 0.23 by explicitly installing the aws-lc-rs crypto provider and using the no-provider reqwest feature
  • Adjust integration warmup timing for the slower upgraded Deno boot path under concurrent tests

Validation

  • git diff --check
  • cargo fmt --all
  • cargo test -p lit-actions-server --lib -j 2 — 86 passed
  • cargo test -p lit-actions-tests --test integration -j 2 — 26 passed, 2 ignored
  • cargo test --workspace -j 2

Notes

  • Local root disk is tight after rebuilding Rust targets: / was 98% used with ~3.5G free during validation.
  • The Deno stack update removes the previous Lit fork patch for deno_core and the macOS libffi patch because the upgraded dependency graph no longer needs them.

@clawdbot-glitch003 clawdbot-glitch003 requested a review from a team May 26, 2026 19:13
@clawdbot-glitch003 clawdbot-glitch003 force-pushed the workbench/upgrade-deno-to-the-latest-release-run-tests-etc-w6a15d2 branch from 945480f to 3479b98 Compare May 26, 2026 19:21
@clawdbot-glitch003 clawdbot-glitch003 force-pushed the workbench/upgrade-deno-to-the-latest-release-run-tests-etc-w6a15d2 branch from 3479b98 to 5f8735c Compare May 26, 2026 21:04
Copy link
Copy Markdown
Contributor

@GTC6244 GTC6244 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@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
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread lit-actions/tests/it.rs
/// 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
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants