Skip to content

Conversation

@Artur-
Copy link
Member

@Artur- Artur- commented Jan 9, 2026

The idea with flow-build-tools is that it contains classes only used by vaadin-dev-server and the plugins. It is ok for flow-build-tools to depend on flow-server but not the other way around

Fixes #22238
Fixes #22778

@Artur- Artur- changed the title refactor: Fix reversed internal dependency refactor: Move frontend build classes to flow-build-tools Jan 9, 2026
Artur- added 2 commits January 9, 2026 14:42
The idea with flow-build-tools is that it contains classes only used by vaadin-dev-server and the plugins. It is ok for flow-build-tools to depend on flow-server but not the other way around
@Artur- Artur- force-pushed the reverse-build-tool-deps branch from 60451ca to 7b10f2a Compare January 9, 2026 12:42
@github-actions
Copy link

github-actions bot commented Jan 9, 2026

Test Results

1 311 files  ± 0  1 311 suites  ±0   1h 14m 43s ⏱️ -59s
9 298 tests ± 0  9 230 ✅ ± 0  68 💤 ±0  0 ❌ ±0 
9 743 runs   - 15  9 667 ✅  - 16  76 💤 +1  0 ❌ ±0 

Results for commit 98b9d3f. ± Comparison against base commit 13427a0.

♻️ This comment has been updated with latest results.

@Artur- Artur- marked this pull request as ready for review January 9, 2026 16:45
@mcollovati
Copy link
Collaborator

I don't remember if it has already been discussed, but should flow-build-tools added to the Flow BOM?

… plugin ITs

Make flow-build-tools dependency provided and optional in integration tests
to prevent it from being picked up by ClassFinder as a project dependency.
This better simulates real application projects which don't typically depend
on build tools directly.

Changes:
- Add provided+optional scope to 6 ITs that implement TypeScriptBootstrapModifier:
  - classfinder-lookup
  - resources-from-project
  - deps-with-classifier-dups-project
  - plugin-pinned-deps-project
  - commercial-banner-build
  - ignore-maven-deps-from-project
- Remove flow-build-tools dependency entirely from frontend-scanner-tuning-project
  (doesn't implement TypeScriptBootstrapModifier and doesn't need the dependency)

All ITs pass successfully with these changes.
@Artur-
Copy link
Member Author

Artur- commented Jan 12, 2026

I don't remember if it has already been discussed, but should flow-build-tools added to the Flow BOM?

Done in #23167

Remove TypeScriptBootstrapModifier implementations and flow-build-tools
dependencies from integration tests that don't actually test or verify
the modifier functionality. This makes the ITs better simulate real
application projects that don't implement build-time interfaces.

Changes to 5 ITs (resources-from-project, deps-with-classifier-dups-project,
plugin-pinned-deps-project, commercial-banner-build, ignore-maven-deps-from-project):
- Remove ProjectFlowExtension.java implementations
- Remove flow-build-tools dependency entirely

Changes to classfinder-lookup IT:
- Remove project-level ProjectFlowExtension.java
- Remove flow-build-tools dependency
- Update verify.bsh to test only addon-level TypeScriptBootstrapModifier
- Update description to clarify it tests addon modifier discovery
- Now simulates a pure application project that only consumes modifiers from addons

This completes the Phase 2 cleanup, making all ITs realistic simulations
of either application projects (no TypeScriptBootstrapModifier) or the
addon discovery mechanism (flow-addon provides the modifier).
@Artur-
Copy link
Member Author

Artur- commented Jan 12, 2026

I think this is good enough as a starter. There are still files in flow-server that belong in flow-build-tools, like Vite configurations but the main purpose of this PR is just to get the dependency graph corrected.

@sonarqubecloud
Copy link

@Artur- Artur- merged commit 1532023 into main Jan 12, 2026
31 checks passed
@Artur- Artur- deleted the reverse-build-tool-deps branch January 12, 2026 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

flow-server contains a ton of code only needed during development/compilation Remove com.vaadin.flow.server.frontend.scanner from flow-server

4 participants