Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Production Build with Vaadin 24 is very slow on a large project #17234

Closed
simasch opened this issue Jul 18, 2023 · 31 comments
Closed

Production Build with Vaadin 24 is very slow on a large project #17234

simasch opened this issue Jul 18, 2023 · 31 comments

Comments

@simasch
Copy link

simasch commented Jul 18, 2023

Description of the bug

The production build with Vaadin 24 takes around 40 minutes compared to 5 minutes with Vaadin 23.

The project has around 400 Routes.

Expected behavior

It shouldn't take longer than with previous versions.

Minimal reproducible example

Unfortunately, I cannot share the project as it's not opensource.open source

Versions

Vaadin 24.1.3

@mcollovati mcollovati added this to Needs triage in OLD Vaadin Flow bugs & maintenance (Vaadin 10+) via automation Jul 18, 2023
@mcollovati mcollovati moved this from Needs triage to Normal Priority (P2) in OLD Vaadin Flow bugs & maintenance (Vaadin 10+) Jul 18, 2023
@mcollovati mcollovati moved this from Normal Priority (P2) to High Priority (P1) in OLD Vaadin Flow bugs & maintenance (Vaadin 10+) Jul 20, 2023
@mcollovati mcollovati self-assigned this Jul 20, 2023
@mcollovati
Copy link
Collaborator

First findings:

  • During production build, class scanning is performed twice in Vaadin 24
  • Byte code scanning performs the same both on V23 and V24, but V24 has an additional recursive step to collect reachable classes for every entry point. This seems to be slow, especially if the entry point can reach hundreds of classes.

mcollovati added a commit that referenced this issue Jul 25, 2023
Pre compiles the regex pattern to improve build frontend performance
during the bytecode scan and collection of reachable classes.
Also adds some package exclusions for well knonw libraries that should
not be visited.

Part of #17234
@mcollovati
Copy link
Collaborator

A first improvement consists in pre-compiling the regular expression used to detect visitable classes.
A simple test on a dummy project with 400 routes shows a significant build time reduction

8:17:37.387 [INFO] --- vaadin-maven-plugin:24.1.3:build-frontend (default) @ spring-skeleton ---
08:17:37.723 [INFO] Reflections took 292 ms to scan 127 urls, producing 4866 keys and 25879 values
08:17:37.743 [INFO] Scanning classes to find frontend configurations and dependencies...
08:17:46.729 [INFO] Visited 1377 classes. Took 8985 ms.
08:20:59.760 [INFO] --- flow-maven-plugin:24.2-SNAPSHOT:build-frontend (default) @ spring-skeleton ---
08:20:59.963 [INFO] Reflections took 196 ms to scan 127 urls, producing 4866 keys and 25880 values
08:20:59.969 [INFO] Scanning classes to find frontend configurations and dependencies...
08:21:02.292 [INFO] Visited 1370 classes. Took 2322 ms.

mcollovati added a commit that referenced this issue Jul 25, 2023
Pre compiles the regex pattern to improve build frontend performance
during the bytecode scan and collection of reachable classes.
Also adds some package exclusions for well knonw libraries that should
not be visited.

Part of #17234
vaadin-bot pushed a commit that referenced this issue Jul 25, 2023
Pre compiles the regex pattern to improve build frontend performance
during the bytecode scan and collection of reachable classes.
Also adds some package exclusions for well knonw libraries that should
not be visited.

Part of #17234
vaadin-bot added a commit that referenced this issue Jul 25, 2023
Pre compiles the regex pattern to improve build frontend performance
during the bytecode scan and collection of reachable classes.
Also adds some package exclusions for well knonw libraries that should
not be visited.

Part of #17234

Co-authored-by: Marco Collovati <marco@vaadin.com>
mcollovati added a commit that referenced this issue Jul 25, 2023
Pre compiles the regex pattern to improve build frontend performance
during the bytecode scan and collection of reachable classes.
Also adds some package exclusions for well knonw libraries that should
not be visited.

Part of #17234
mcollovati added a commit that referenced this issue Jul 25, 2023
Pre compiles the regex pattern to improve build frontend performance
during the bytecode scan and collection of reachable classes.
Also adds some package exclusions for well knonw libraries that should
not be visited.

Part of #17234
@mcollovati
Copy link
Collaborator

Looking at log files for a very slow build, it seems that also AbstractUpdateImports.process() may take a long time during particular circumstances

@gpsfl
Copy link

gpsfl commented Jul 28, 2023

Is it possible to also manually exclude classes / package names? In our project it scans about 11000 classes most of which have nothing to do with vaadin. It takes 80s

@simasch
Copy link
Author

simasch commented Jul 28, 2023

That's a very good question @gpsfl

In my project it is
[INFO] Visited 16572 classes. Took 94647 ms

@mshabarov mshabarov assigned mshabarov and unassigned mcollovati Aug 21, 2023
@mshabarov mshabarov moved this from High Priority (P1) to WIP in OLD Vaadin Flow bugs & maintenance (Vaadin 10+) Aug 21, 2023
@mshabarov
Copy link
Contributor

Vaadin 24 and 23 use a slightly different algorithm to validate the license during production build.
Vaadin 23 checks node_modules for installed components, whereas Vaadin 24 uses class scanning, because node_modules may not exist due to using pre-compiled bundle (new feature in V24).
This leads to class scanning is performed twice in Vaadin 24.
The possible solution might be either to cache the class scanning results and use it during license validation, or bring back old approach for license validation by scanning node_modules if Flow sees that a new build is triggered (i.e. node modules are installed anyway).

@knoobie
Copy link
Contributor

knoobie commented Sep 19, 2023

It's probably more related to your Mac vs Jenkins 😅

@simasch
Copy link
Author

simasch commented Sep 19, 2023

@knoobie Indeed I'm still waiting for the build to finish on Jenkins. So far 25 minutes elapsed :-(

@simasch
Copy link
Author

simasch commented Sep 19, 2023

Unfortunately, it was indeed my Mac. On the Jenkins server still the same

image

@mshabarov mshabarov moved this from Needs triage to High Priority (P1) in OLD Vaadin Flow bugs & maintenance (Vaadin 10+) Sep 20, 2023
mcollovati added a commit that referenced this issue Sep 20, 2023
In a production build, for every chunk the JS files are parsed to extract the
imported paths. There are checks to ensure that a module is visited only once,
but this works on a chunk level.
This change caches the JS imports extraction results, so that a single JS file
is visited only once during the build.

Part of #17234
tltv pushed a commit that referenced this issue Sep 21, 2023
* chore: cache JS imported paths during chunk generation

In a production build, for every chunk the JS files are parsed to extract the
imported paths. There are checks to ensure that a module is visited only once,
but this works on a chunk level.
This change caches the JS imports extraction results, so that a single JS file
is visited only once during the build.

Part of #17234

* cleanup

* improve caching of imported paths
vaadin-bot pushed a commit that referenced this issue Sep 21, 2023
* chore: cache JS imported paths during chunk generation

In a production build, for every chunk the JS files are parsed to extract the
imported paths. There are checks to ensure that a module is visited only once,
but this works on a chunk level.
This change caches the JS imports extraction results, so that a single JS file
is visited only once during the build.

Part of #17234

* cleanup

* improve caching of imported paths
vaadin-bot added a commit that referenced this issue Sep 21, 2023
* chore: cache JS imported paths during chunk generation

In a production build, for every chunk the JS files are parsed to extract the
imported paths. There are checks to ensure that a module is visited only once,
but this works on a chunk level.
This change caches the JS imports extraction results, so that a single JS file
is visited only once during the build.

Part of #17234

* cleanup

* improve caching of imported paths

Co-authored-by: Marco Collovati <marco@vaadin.com>
Artur- pushed a commit that referenced this issue Sep 22, 2023
* chore: cache JS imported paths during chunk generation

In a production build, for every chunk the JS files are parsed to extract the
imported paths. There are checks to ensure that a module is visited only once,
but this works on a chunk level.
This change caches the JS imports extraction results, so that a single JS file
is visited only once during the build.

Part of #17234

* cleanup

* improve caching of imported paths
@mcollovati
Copy link
Collaborator

mcollovati commented Sep 22, 2023

@simasch we just released Flow 24.1.13 which has an improvement for production build.

If you mind getting it a try, you can follow Mikhail's instruction from this comment #17234 (comment)

@simasch
Copy link
Author

simasch commented Sep 25, 2023

@mcollovati Unfortunately no change. The one with over 1 hour is with Flow 24.1.13

image

@mcollovati
Copy link
Collaborator

That is somehow surprising, compared with local results 🤔
Do you mind providing the logs of the build with debug info (even via DM if you prefer)?

mshabarov added a commit that referenced this issue Sep 25, 2023
* fix: Do not override user npm dependency version

Fixes #17654

* chore(deps): bump com.nimbusds:nimbus-jose-jwt from 9.34 to 9.35 (#17652)

Bumps [com.nimbusds:nimbus-jose-jwt](https://bitbucket.org/connect2id/nimbus-jose-jwt) from 9.34 to 9.35.
- [Changelog](https://bitbucket.org/connect2id/nimbus-jose-jwt/src/master/CHANGELOG.txt)
- [Commits](https://bitbucket.org/connect2id/nimbus-jose-jwt/branches/compare/9.35..9.34)

---
updated-dependencies:
- dependency-name: com.nimbusds:nimbus-jose-jwt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: Update Node.js to latest 20.7.0 (#17646)

* fix: router-link postpone navigation (#17647)

Fixes issue with update timing
when postponing a router-link
as the navigation goes through
the vaadin-router.

Fixes #17528

* Feat/add tests for vaadin components (#17673)

* Adds a test for Icon in theme-editor

This is the first step to make the tests for all components in theme-editor.

This PR also adds setup/tearDown support to the theme-editor Testbench tests.

* Adds a test for Checkbox in theme-editor and make tests a bit more reliable

* In theme editor tests, check if the modified label appears after a change

a side effect of this change is that the checking of the values in the file
is deferred and then the dev server can write to the file before we try to
read it.

* Caching: Cache all com.vaadin.flow class instances (#17644)

* Caching: Cache all com.vaadin.flow class instances

* Caching: Cache all com.vaadin.flow class instances

* Ensure only classes from JARs are cached

* Fix cache test

* Use replace instead of replaceAll

* Cache com.vaadin.* and org.vaadin.* classes

* fix: synchronize cache maps in SpringLookupInitializer (#17668)

To avoid possibility to get ConcurrentModificationException.

* chore: changed synchronizedMap to ConcurrentHashMap (#17677)

For better non-blocking read-performance for lookups with SpringLookup.

* test: Ignore failed test for Theme Editor (#17679)

* chore: cache JS imported paths during chunk generation (#17672)

* chore: cache JS imported paths during chunk generation

In a production build, for every chunk the JS files are parsed to extract the
imported paths. There are checks to ensure that a module is visited only once,
but this works on a chunk level.
This change caches the JS imports extraction results, so that a single JS file
is visited only once during the build.

Part of #17234

* cleanup

* improve caching of imported paths

* chore(deps): bump com.vaadin:vaadin-parent from 2.2.0 to 2.2.1 (#17682)

Bumps [com.vaadin:vaadin-parent](https://github.com/vaadin/maven-integration) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/vaadin/maven-integration/releases)
- [Commits](vaadin/maven-integration@2.2.0...2.2.1)

---
updated-dependencies:
- dependency-name: com.vaadin:vaadin-parent
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: forward/reroute when query parameters changed (#17659)

Forward and reroute should run even when targeting the same target
but with different query parameters.

Fixes #17639

* fix: upgrade spring-boot to 3.1.4 (#17680)

* Fixes the flaky theme editor tests (#17686)

* chore(deps): bump com.typesafe.akka:akka-actor_2.13 from 2.8.4 to 2.8.5 (#17683)

Bumps [com.typesafe.akka:akka-actor_2.13](https://github.com/akka/akka) from 2.8.4 to 2.8.5.
- [Release notes](https://github.com/akka/akka/releases)
- [Changelog](https://github.com/akka/akka/blob/main/akka-docs/release-train-issue-template.md)
- [Commits](akka/akka@v2.8.4...v2.8.5)

---
updated-dependencies:
- dependency-name: com.typesafe.akka:akka-actor_2.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump component.version from 24.1.9 to 24.1.10 (#17651)

Bumps `component.version` from 24.1.9 to 24.1.10.

Updates `com.vaadin:vaadin-lumo-theme` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-upload-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-upload-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-notification-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-notification-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-button-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-button-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-text-field-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-text-field-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-tabs-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-tabs-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-app-layout-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-app-layout-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-ordered-layout-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-ordered-layout-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-login-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-login-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-dialog-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-dialog-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-avatar-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-core` from 24.1.9 to 24.1.10

---
updated-dependencies:
- dependency-name: com.vaadin:vaadin-lumo-theme
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-upload-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-upload-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-notification-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-notification-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-button-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-button-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-text-field-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-text-field-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-tabs-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-tabs-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-app-layout-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-app-layout-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-ordered-layout-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-ordered-layout-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-login-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-login-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-dialog-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-dialog-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-avatar-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marco Collovati <marco@vaadin.com>

* Remove tests that test user versions end up in the vaadin section

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mikhail Shabarov <61410877+mshabarov@users.noreply.github.com>
Co-authored-by: caalador <mikael.grankvist@vaadin.com>
Co-authored-by: Bruno Rezende <brunovianarezende@gmail.com>
Co-authored-by: Teppo Kurki <teppo.kurki@vaadin.com>
Co-authored-by: Tomi Virtanen <tltv@vaadin.com>
Co-authored-by: Marco Collovati <marco@vaadin.com>
Co-authored-by: Zhe Sun <31067185+ZheSun88@users.noreply.github.com>
vaadin-bot pushed a commit that referenced this issue Sep 25, 2023
* fix: Do not override user npm dependency version

Fixes #17654

* chore(deps): bump com.nimbusds:nimbus-jose-jwt from 9.34 to 9.35 (#17652)

Bumps [com.nimbusds:nimbus-jose-jwt](https://bitbucket.org/connect2id/nimbus-jose-jwt) from 9.34 to 9.35.
- [Changelog](https://bitbucket.org/connect2id/nimbus-jose-jwt/src/master/CHANGELOG.txt)
- [Commits](https://bitbucket.org/connect2id/nimbus-jose-jwt/branches/compare/9.35..9.34)

---
updated-dependencies:
- dependency-name: com.nimbusds:nimbus-jose-jwt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: Update Node.js to latest 20.7.0 (#17646)

* fix: router-link postpone navigation (#17647)

Fixes issue with update timing
when postponing a router-link
as the navigation goes through
the vaadin-router.

Fixes #17528

* Feat/add tests for vaadin components (#17673)

* Adds a test for Icon in theme-editor

This is the first step to make the tests for all components in theme-editor.

This PR also adds setup/tearDown support to the theme-editor Testbench tests.

* Adds a test for Checkbox in theme-editor and make tests a bit more reliable

* In theme editor tests, check if the modified label appears after a change

a side effect of this change is that the checking of the values in the file
is deferred and then the dev server can write to the file before we try to
read it.

* Caching: Cache all com.vaadin.flow class instances (#17644)

* Caching: Cache all com.vaadin.flow class instances

* Caching: Cache all com.vaadin.flow class instances

* Ensure only classes from JARs are cached

* Fix cache test

* Use replace instead of replaceAll

* Cache com.vaadin.* and org.vaadin.* classes

* fix: synchronize cache maps in SpringLookupInitializer (#17668)

To avoid possibility to get ConcurrentModificationException.

* chore: changed synchronizedMap to ConcurrentHashMap (#17677)

For better non-blocking read-performance for lookups with SpringLookup.

* test: Ignore failed test for Theme Editor (#17679)

* chore: cache JS imported paths during chunk generation (#17672)

* chore: cache JS imported paths during chunk generation

In a production build, for every chunk the JS files are parsed to extract the
imported paths. There are checks to ensure that a module is visited only once,
but this works on a chunk level.
This change caches the JS imports extraction results, so that a single JS file
is visited only once during the build.

Part of #17234

* cleanup

* improve caching of imported paths

* chore(deps): bump com.vaadin:vaadin-parent from 2.2.0 to 2.2.1 (#17682)

Bumps [com.vaadin:vaadin-parent](https://github.com/vaadin/maven-integration) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/vaadin/maven-integration/releases)
- [Commits](vaadin/maven-integration@2.2.0...2.2.1)

---
updated-dependencies:
- dependency-name: com.vaadin:vaadin-parent
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: forward/reroute when query parameters changed (#17659)

Forward and reroute should run even when targeting the same target
but with different query parameters.

Fixes #17639

* fix: upgrade spring-boot to 3.1.4 (#17680)

* Fixes the flaky theme editor tests (#17686)

* chore(deps): bump com.typesafe.akka:akka-actor_2.13 from 2.8.4 to 2.8.5 (#17683)

Bumps [com.typesafe.akka:akka-actor_2.13](https://github.com/akka/akka) from 2.8.4 to 2.8.5.
- [Release notes](https://github.com/akka/akka/releases)
- [Changelog](https://github.com/akka/akka/blob/main/akka-docs/release-train-issue-template.md)
- [Commits](akka/akka@v2.8.4...v2.8.5)

---
updated-dependencies:
- dependency-name: com.typesafe.akka:akka-actor_2.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump component.version from 24.1.9 to 24.1.10 (#17651)

Bumps `component.version` from 24.1.9 to 24.1.10.

Updates `com.vaadin:vaadin-lumo-theme` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-upload-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-upload-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-notification-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-notification-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-button-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-button-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-text-field-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-text-field-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-tabs-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-tabs-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-app-layout-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-app-layout-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-ordered-layout-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-ordered-layout-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-login-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-login-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-dialog-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-dialog-testbench` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-avatar-flow` from 24.1.9 to 24.1.10

Updates `com.vaadin:vaadin-core` from 24.1.9 to 24.1.10

---
updated-dependencies:
- dependency-name: com.vaadin:vaadin-lumo-theme
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-upload-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-upload-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-notification-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-notification-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-button-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-button-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-text-field-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-text-field-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-tabs-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-tabs-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-app-layout-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-app-layout-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-ordered-layout-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-ordered-layout-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-login-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-login-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-dialog-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-dialog-testbench
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-avatar-flow
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.vaadin:vaadin-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marco Collovati <marco@vaadin.com>

* Remove tests that test user versions end up in the vaadin section

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mikhail Shabarov <61410877+mshabarov@users.noreply.github.com>
Co-authored-by: caalador <mikael.grankvist@vaadin.com>
Co-authored-by: Bruno Rezende <brunovianarezende@gmail.com>
Co-authored-by: Teppo Kurki <teppo.kurki@vaadin.com>
Co-authored-by: Tomi Virtanen <tltv@vaadin.com>
Co-authored-by: Marco Collovati <marco@vaadin.com>
Co-authored-by: Zhe Sun <31067185+ZheSun88@users.noreply.github.com>
@mcollovati
Copy link
Collaborator

@simasch just a confirmation: given the times in the logs, I suppose the build is from your local machine, not Jenkins. Is it so?

@simasch
Copy link
Author

simasch commented Sep 25, 2023

Yes, that's right.

@mcollovati
Copy link
Collaborator

But it looks like it is not running the latest Flow plugin

[INFO] --- vaadin:24.1.10:build-frontend (default) @ tosca-develop ---
[DEBUG] Loading mojo com.vaadin:vaadin-maven-plugin:24.1.10:build-frontend from plugin realm ClassRealm[plugin>com.vaadin:vaadin-maven-plugin:24.1.10, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@251a69d7]
[DEBUG] Configuring mojo execution 'com.vaadin:vaadin-maven-plugin:24.1.10:build-frontend:default' with basic configurator -->

@mcollovati
Copy link
Collaborator

mcollovati commented Sep 25, 2023

Or better, it is running both the plugins

[INFO] --- flow:24.1.13:build-frontend (default) @ tosca-develop ---
...
[DEBUG] Start updating imports file and chunk files.
[DEBUG] Found 437 modules, 437 scripts and 437 css.
[DEBUG] Start collecting scanned JS modules and scripts.
[DEBUG] JS modules and scripts collected in 681 ms.
[DEBUG] Start sorting imports to lazy and eager.
[DEBUG] Imports sorting took 62 ms.
[DEBUG] Start generating lazy loaded chunks.
[DEBUG] Lazy chunks generation took 3707 ms.
...
[DEBUG] Imports and chunks update took 4463 ms.
....
[INFO] --- vaadin:24.1.10:build-frontend (default) @ tosca-develop ---
...
[DEBUG] Start updating imports file and chunk files.
[DEBUG] Found 437 modules, 437 scripts and 437 css.
[DEBUG] Start collecting scanned JS modules and scripts.
[DEBUG] JS modules and scripts collected in 730 ms.
[DEBUG] Start sorting imports to lazy and eager.
[DEBUG] Imports sorting took 41 ms.
[DEBUG] Start generating lazy loaded chunks.
[DEBUG] Lazy chunks generation took 701675 ms.

@mcollovati
Copy link
Collaborator

@simasch it looks like that flow:24.1.13:build-frontend performs much better for lazy chunk generation.

@simasch
Copy link
Author

simasch commented Sep 25, 2023

After configuring the plugin correctly the build time is down to 6 minutes! Great job!

image

@mcollovati
Copy link
Collaborator

Great to hear! Thank you so much for helping to test the fix and providing the logs 🙇

@mshabarov
Copy link
Contributor

If no objections, I'd propose to close this issue. The tested Flow version will be available in the next maintenance release for V24.1.

OLD Vaadin Flow ongoing work (Vaadin 10+) automation moved this from Ready To Go to Done - pending release Sep 26, 2023
OLD Vaadin Flow bugs & maintenance (Vaadin 10+) automation moved this from High Priority (P1) to Closed Sep 26, 2023
@simasch
Copy link
Author

simasch commented Sep 26, 2023

Thank you very much for the effort to fix this.

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