Skip to content

Prepare Linaria 8 for WyW 2#1473

Merged
Anber merged 5 commits into
callstack:masterfrom
Anber:anber/static-eval-architecture
Jun 14, 2026
Merged

Prepare Linaria 8 for WyW 2#1473
Anber merged 5 commits into
callstack:masterfrom
Anber:anber/static-eval-architecture

Conversation

@Anber

@Anber Anber commented May 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Updates Linaria and examples to the stable @wyw-in-js/*@2.0.0 toolchain.
  • Prepares the Linaria 8 major release: public packages get a major changeset, private workspace packages stay out of release notes.
  • Raises the supported runtime baseline to Node.js 22+ and updates CI/release/site workflows accordingly.
  • Keeps Linaria processor static evaluation semantics aligned with WyW 2, where the default eval.strategy: "hybrid" resolves statically provable values before falling back to the evaluator.

Migration and docs

  • Documents the evaluate -> eval.strategy migration, including hybrid, execute, and static modes.
  • Calls out the CSS rule emission order compatibility risk for cascade ties with identical specificity.
  • Updates README/configuration/how-it-works/migration docs away from alpha and evaluator-only wording.

CI fixes

  • Adds the @emnapi/* peer packages required by the stable WyW/Oxc dependency graph under strict peer installs.
  • Makes the website server build JSX-safe for the deprecated @wyw-in-js/babel-preset compatibility wrapper by running a JSX-only Babel pass before WyW extraction.
  • Uses the explicit del-cli binary for website cleanup so Windows CI does not hit the shell built-in del prompt.
  • Updates the Rollup example to avoid evaluator runner hangs by using static resolution plus an explicit static binding for the SVG URL import.
  • Normalizes testkit generated-code snapshots across Unix/Windows final newline differences.

Validation

  • pnpm install --frozen-lockfile --strict-peer-dependencies
  • pnpm sp:check
  • pnpm lint
  • pnpm turbo run test:dts
  • pnpm turbo run test
  • pnpm --filter linaria-website build:server
  • pnpm --filter rollup-example build
  • Husky pre-commit also ran pnpm check:all, pnpm lint, and pnpm sp:check successfully.

@linaria/testkit still prints WyW runtime require fallback warnings during eval and Jest reports a forced worker exit after passing tests; those diagnostics do not fail the suite.

@changeset-bot

changeset-bot Bot commented May 8, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 6770d6f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 12 packages
Name Type
@linaria/atomic Major
@linaria/core Major
@linaria/babel-plugin-interop Major
linaria Major
@linaria/postcss-linaria Major
@linaria/react Major
@linaria/server Major
@linaria/stylelint-config-standard-linaria Major
@linaria/stylelint Major
@linaria/testkit Patch
linaria-website Patch
vpssr-linaria-solid-example Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@Anber Anber marked this pull request as draft May 8, 2026 17:50
@Anber Anber force-pushed the anber/static-eval-architecture branch from 1278af2 to abb049e Compare June 14, 2026 11:16
@Anber Anber changed the title Support WyW 2 static evaluation contract Prepare Linaria 8 for WyW 2 Jun 14, 2026
@Anber Anber force-pushed the anber/static-eval-architecture branch 2 times, most recently from 52b0786 to 524df7c Compare June 14, 2026 11:26
@Anber Anber force-pushed the anber/static-eval-architecture branch from 524df7c to f7dc240 Compare June 14, 2026 11:31
@Anber Anber marked this pull request as ready for review June 14, 2026 18:28
@Anber Anber merged commit 9d49bef into callstack:master Jun 14, 2026
5 checks passed
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.

1 participant