chore: bring 24.6 dependencies and CI up to date - #25815
Open
totally-not-ai[bot] wants to merge 8 commits into
Open
totally-not-ai[bot] wants to merge 8 commits into
totally-not-ai[bot] wants to merge 8 commits into
Conversation
The branch has had no build maintenance since January, and its
validation workflow both ran pull request code with the base branch
workflow and refused to build anything a bot or an outside contributor
pushed, so the license-checker update opened against it never reported a
result.
CI:
- The workflow triggers on `pull_request` instead of
`pull_request_target`, so pull request code no longer runs with the
base branch definition and its secrets.
- Removed the `check-user-permission` gate and the step that failed the
build for anyone without write access.
- The `Check secrets` step only runs for a pull request from this
repository, because a fork cannot read `TB_LICENSE`, and it reads the
secret through the step environment instead of inlining it.
- Pinned every action by commit and moved them to their current
releases, dropped the explicit Maven setup so the runner's own Maven
is used, and raised the CI Node to 22.23.2 and pnpm to 8.15.9.
- Narrowed the push trigger to this branch and dropped the `edited`
pull request type, which re-ran the whole build on a title change.
Dependencies, each staying inside the line this branch supports:
- Libraries: Jackson 2.22.2, Jetty 12.0.39, Spring Boot 3.4.13,
Hibernate Validator 8.0.5, jsoup 1.23.2, Javassist 3.33.0, slf4j
2.0.19, JAXB 4.0.9, Guava 33.7.1, commons-io 2.22.0, commons-lang3
3.20.0, Mockito 5.23.0 with the Byte Buddy 1.17.7 it expects, ASM
9.10.1, Roaster 2.31.1, Nimbus JOSE+JWT 9.48 and the Eclipse runtime
bundles.
- Build plugins: Surefire and Failsafe 3.6.0, Clean 3.5.0, WAR 3.5.1,
Build Helper 3.6.2 and Properties 1.3.1.
- TestBench 9.5.8 with license-checker 2.3.3. The pair belongs together:
TestBench 9.3 needs the license-checker 1.x API, so moving the checker
alone would break every integration test. `com.vaadin:open` moves to
8.5.0.5 with it, which is what the new checker brings and what the
convergence rule requires.
- Default Node is v22.23.2 and npm 10.9.8. The default pnpm stays
8.6.11 on purpose: the newer pnpm hoists differently, which makes the
dev bundle build fail to resolve `react-router`, and the fix for that
is the hoisted node-linker work that landed on 24.7.
Build and test fixes the updates made necessary:
- `jcip-annotations` is declared for tests, because TestBench 9.5 no
longer brings it transitively and the tests use `@NotThreadSafe`.
- The license checker mock in `BuildFrontendUtilTest` no longer stubs
the logger accessor, which is not public in license-checker 2.x, and
returns mocks for the statics it does not stub.
- `ElementTest` expects the pretty printing of jsoup 1.23, which keeps a
single inline child on the same line as its parent.
- `flow-webpush` clears the inherited `testListener` property. The root
POM registers a JUnit 4 listener for every module and Surefire 3.6.0
resolves that class before running any test, so the module failed with
`ClassNotFoundException`; 3.5.2 ignored it. The module has no tests.
- `slf4j-simple` comes from `${slf4j.version}` in the two express build
test modules instead of a literal 2.0.16.
- The Spring integration tests resolve components from platform 24.6.13
instead of 24.6.7.
- `DevToolsWrapper` builds its CDP commands by hand instead of using
Selenium's generated `vNNN` classes, which only work with the Chrome
versions a Selenium release happens to bundle.
Tooling:
- Added `scripts/update-frontend-dependencies.sh` so the branch can join
the weekly frontend update job. The frontend package versions are left
to that job.
- Added `.pnpm-store/` to `.gitignore`.
…he script `DevToolsWrapper` is now the same file 24.7 carries, character for character. The copy taken from 24.9 brought that branch's commercial license header into a repository that is Apache 2.0, and it passed an explicit client configuration to `SeleniumCdpConnection.create` where the one-argument call does the same thing. Keeping the two branches identical also keeps future cherry-picks clean. The default pnpm goes back to 8.15.9. The dev bundle failure that the previous commit blamed on it came from frontend state left behind by builds of other branches in the same working tree: with a clean tree the express build modules build with 8.15.9, and the version constant is not what selects the binary anyway, since the branch installs pnpm through `npx --yes pnpm`. The workflow and the constant now agree again. Both `Set TB License` steps read `TB_LICENSE` from the step environment instead of having it interpolated into the shell script, which is how main does it. `Check secrets` explains the fork case instead of being skipped for it. A fork cannot read the secret, so the test jobs will fail on the license check, and the step now says so and points at a maintainer re-run rather than leaving the failure unexplained. The `testListener` override in `flow-webpush` is gone. The module has no tests, Surefire never resolves the listener for it, and the failure that prompted the override came from test classes another branch had left in the module's target directory.
The integration test shards run a reactor that contains modules whose web applications the shard has not built, and they rely on Failsafe finding no tests in those modules. Failsafe 3.6.0 selects tests there anyway, so such a module starts its own server on the shared test port and runs tests against web applications that do not exist in the shard. The server then holds the port while the modules after it run, and those talk to the wrong deployment: one shard reported a missing `index.html`, another could not connect to the test port at all. Surefire stays on 3.6.0, which the unit test shards pass.
This branch ran 3.5.2 before the update, so the earlier wording read as if 3.5.3 were the version being kept. The 24.x branches in this update all pin the same 3.5.3 so their shard results can be compared, and main runs 3.5.6 with the same Surefire pairing once the shards are green.
The dev tools frontend build resolved whatever TypeScript npm offered, and the current release no longer matches the API that `@rollup/plugin-typescript` 11 expects, so `vite build` failed with `Cannot read properties of undefined (reading 'ES2015')`. Declaring the 5.9 line fixes the resolution, as it already does on 24.7 and later.
Contributor
Test Results1 012 files - 150 1 012 suites - 150 52m 43s ⏱️ - 16m 45s For more details on these failures, see this check. Results for commit d725f41. ± Comparison against base commit ca792bc. ♻️ This comment has been updated with latest results. |
Three things the updates in this branch left behind: The integration tests called `Timeouts.setScriptTimeout(long, TimeUnit)`, which the Selenium that TestBench 9.5 brings no longer has, so every module carrying such a test failed to compile and took its whole shard with it. They now pass a `Duration`, like the later branches do. The Spring integration tests asked for components 24.6.13. Platform patch releases do not always republish the component artifacts, and that version exists for none of them, so dependency resolution failed. 24.6.12 is the newest that does exist. `JarContentsManagerTest` compared the copied file against the wall clock, which only held when no clock tick fell between the copy and the check. It now compares the file against its own timestamp.
Shorter than the ChronoUnit form and the same as the sibling tests that were converted earlier, and it drops an import from each file.
Guava 33.7.1 brings jspecify 1.0.1 while flow-server asked for 1.0.0, so the dependency convergence rule failed for every integration test module that depends on the test utilities, and those shards never ran a test. flow-server now asks for 1.0.1 as well; the two releases differ only in documentation. The drag and drop test compared the logged element against the jsoup 22 rendering, which put spaces around the text of an inline child. jsoup 1.23 does not, so the expectation matches what later branches already expect.
Member
|
@babel/types is missing |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The 24.6 branch has had no build maintenance since January, and its validation workflow could not report a result for pull requests from bots or outside contributors. This updates the dependencies, the CI workflow and the actions it uses, and fixes the tests and builds that the updates broke.
What changed
Behavior change (build tooling only): the default Node, npm and pnpm versions used by
FrontendToolsmove up (Nodev22.15.1→v22.23.2, npm10.9.2→10.9.8, pnpm8.6.11→8.15.9). Applications that do not pin their own versions will download and use the new Node and npm. No runtime Flow API changed, so application code does not need changes.CI:
pull_requestinstead ofpull_request_target, so pull request code no longer runs with the base branch definition and its secrets.check-user-permissiongate and the step that failed the build for anyone without write access.Check secretsonly runs for a pull request from this repository, because a fork cannot readTB_LICENSE. For a fork it now explains the situation and points at a maintainer re-run instead of failing without a reason.Set TB Licensesteps readTB_LICENSEfrom the step environment instead of inlining the secret into the shell script.editedpull request type is dropped so a title change no longer re-runs the whole build.Dependencies, each staying inside the line this branch supports: Jackson 2.22.2, Jetty 12.0.39, Spring Boot 3.4.13, Hibernate Validator 8.0.5, jsoup 1.23.2, Javassist 3.33.0, slf4j 2.0.19, JAXB 4.0.9, Guava 33.7.1, commons-io 2.22.0, commons-lang3 3.20.0, Mockito 5.23.0.
flow-servernow asks for jspecify 1.0.1 to match what Guava 33.7.1 brings, otherwise dependency convergence failed for every integration test module and those shards ran no tests at all.Build and test fixes that the updates made necessary:
DurationtoscriptTimeoutinstead of callingsetScriptTimeout(long, TimeUnit), which the Selenium in TestBench 9.5 no longer has. Without this, every module with such a test failed to compile and took its whole shard down.vaadin-dev-serverdeclares TypeScript 5.9, because the current TypeScript release no longer matches the API@rollup/plugin-typescript11 expects andvite buildfailed.DevToolsWrapperbuilds its CDP commands by hand over the raw connection, so it works with any Chrome version instead of depending on the generated per-version classes Selenium bundles. It is now character for character the same file that 24.7 carries, which keeps future cherry-picks clean.scripts/update-frontend-dependencies.shand a few.gitignoreentries.API Changes
com.vaadin.flow.testutil.DevToolsWrapper
com.vaadin.flow.server.frontend.FrontendTools
Test summary