aglinxinyuan opened a new pull request, #9125:
URL: https://github.com/apache/texera/pull/9125
### What changes were proposed in this PR?
Bumps `monaco-languageclient` from 10.7.0 to 11.0.3, its latest release, and
the `@codingame/monaco-vscode-*` packages from 25.1.2 to 37.6.1. 11.0.3
requires `^37.6.0` of the codingame packages, and two codingame versions cannot
share one bundle, so the three the frontend pins (the `monaco-editor` alias and
the Java and Python default extensions) move with it. User-facing behavior is
unchanged.
What the new versions need besides the version numbers:
- **Language-server connection.** 11.0 replaced the `$type`-based connection
options with `$family`-based ones that take a connection realization. The
Python editor now connects through `LcWebSocket` to the same
`/python-language-server` URL.
- **Unit-test module resolution.** `vscode-languageclient` 10,
`vscode-languageserver-protocol` 3.18 and `vscode-jsonrpc` 9 export their
`/browser` entry points under the `browser` condition only, and those CommonJS
entry points `require` each other's `/browser` subpaths. The unit-test builder
resolves packages with Node, which never applies that condition. The jsdom
setup now retries such a failed resolution with the `browser` condition and
leaves every other resolution alone. It does so in one synchronous
`module.registerHooks` hook that also carries the existing CSS stub, because
only an in-thread hook sees `require` calls.
- **Production build.** `@vscode/diff`, new in codingame 37, reads its wasm
through `import("node:fs/promises")` when it runs under Node. A browser build
cannot load a `node:` module, and on Windows `license-webpack-plugin` then
failed the build, so the webpack config ignores that one import. The branch
never runs in a browser.
- **LICENSE-binary** follows the new bundle and adds `@vscode/diff` and
`vscode-languageserver-textdocument` (MIT). `minimatch` 10, which
`vscode-languageclient` 10 pulls in, is under the Blue Oak Model License 1.0.0,
which the ASF lists in Category A, so it has its own section.
### Any related issues, documentation, discussions?
Closes #9124.
### How was this PR tested?
The first commit adds characterization tests to
`code-editor.component.spec.ts`, which pass on 10.7.0 before the bump and
unchanged after it. A stand-in WebSocket plays the language server, and the
tests pin that the Python editor dials the configured `/python-language-server`
URL, opens with the LSP handshake and sends the shared code as a python
document, and that Java and R editors dial nothing. Changing the endpoint, the
document selector or the Python-only check each makes them fail.
From `frontend/` (Windows, Node 24):
```
yarn format:ci
yarn build:ci
yarn test:ci # 241 files: 6826 passed, 1 skipped
yarn ng run gui:test-browser # 3 files: 23 passed
```
From the repo root, after the build, `./bin/licensing/check_binary_deps.py
--ignore-transitive-version npm frontend/dist/3rdpartylicenses.json` matches
all 134 bundled packages.
Manually: `ng serve` with the real `pyright-language-service` on port 3000
and the backend endpoints stubbed, then opened a Python UDF's code editor. The
syntax colours render, pyright's diagnostic on an undefined name and its hover
on `math.floor` show up, and closing the dialog sends `shutdown` and `exit` to
the server.
### Was this PR authored or co-authored using generative AI tooling?
Generated-by: Claude Code (Claude Opus 5.5)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]