github vaadin/flow 25.2.0-alpha6
Vaadin Flow 25.2.0-alpha6

pre-release6 hours ago

Changes since 25.2.0-alpha5

All changes

New features

  • Improve license error for unoptimized bundle
    Commit · Pull request · Issue

    When optimizeBundle is disabled the bytecode scanner is skipped and every commercial component on the classpath is treated as used, so the existing license error wrongly states "Your application contains the following commercial components" even when the application does not reference any of them. This is common for projects that pull the com.vaadin:vaadin umbrella artifact directly or transitively. Detect the disabled optimizeBundle case in BuildFrontendUtil.validateLicenses and throw a LicenseException whose message explains the classpath-level detection and gives concrete workarounds: re-enable optimizeBundle, replace com.vaadin:vaadin with com.vaadin:vaadin-core when declared as a direct dependency, or identify and exclude the transitive pull via mvn dependency:tree / ./gradlew dependencyInsight. A new validateLicenses(PluginAdapterBuild, ...) overload reads the flag; the PluginAdapterBase overload is deprecated and delegates to it.

Fixes

  • Run Babel pre-OXC so React source locations and signals transform work correctly
    Commit · Pull request

    Flow's Vite config runs two Babel-based transforms on .tsx files: adding __debugSourceDefine to React function components for dev tooling, and @preact/signals-react-transform which wraps components to track signal reads. Both currently run AFTER OXC (in a custom enforce:'post' Vite plugin) which causes two problems: 1. Babel AST loc values refer to OXC-transformed code, not the original source, so __debugSourceDefine gets wrong line numbers. A workaround read the original file from disk to find function positions via regex. 2. @preact/signals-react-transform runs on already-transformed JSX calls and can no longer identify components reliably. Signal reads stop triggering re-renders. Switch to @rolldown/plugin-babel with its default enforce:'pre' so Babel sees the original source code. To prevent Babel's printer from shifting lines (which would break OXC's subsequent JSX source locations), set retainLines:true on the Babel transform. This keeps inserted statements on the same line as nearby code, so the file layout OXC sees matches the original. The readFileSync workaround in the source location plugin is removed; Babel AST loc is now accurate. Signals transform once again runs on raw JSX and correctly wraps components.

  • Fix potential deadlock in AtmospherePushConnection disconnect
    Commit · Pull request · Issue

Don't miss a new flow release

NewReleases is sending notifications on new releases.