chore: update Lynx toolchain to 3.9 release line - #192
Conversation
Bump @lynx-js deps to latest across the workspace: types 3.9.0, react 0.121.1, rspeedy 0.14.5, template-webpack-plugin 0.11.2, testing-environment 0.2.1, type-element-api 0.0.8, plus css-extract, qrcode, web-core, web-elements, go-web. Fixes required by the bump: - ops-apply: __SetID now takes string | null (types 3.9) - testing-environment 0.2 API: construct with { window }, env.jsdom -> env.env.window - add explicit deps previously satisfied by hoisting: @microsoft/api-extractor and vue (vue-lynx), @vue/runtime-dom (upstream-tests)
|
@KealanAU is attempting to deploy a commit to the huxpro's projects Team on Vercel. A member of the Team first needs to authorize it. |
…lement
The card was inert text that spliced JSX-style {'<a>'} / {'<view ... />'}
expressions into the template. Those are not Vue interpolation, and the
stricter SFC compiler pulled in by the toolchain bump parsed the bracketed
text as markup, failing with "Element is missing end tag".
Rework it to match the sibling demos: a live side-by-side @tap vs
@tap.prevent comparison with real tappable views and counters. Since
.prevent is a no-op on Lynx (no browser default action to cancel), both
sides increment identically — which the caption now explains. No more
escaped-markup strings.
Mark the vue-lynx dependency/toolchain bump as a minor release.
bf5d4d5 to
417b6c4
Compare
The toolchain sweep bumped the website's browser-side Lynx web runtime (web-core/web-elements/go-web), and the lockfile re-resolution during the bump pruned @lynx-js/lynx-core from the graph. web-core imports @lynx-js/lynx-core/web but only declares lynx-core as a devDependency, so rspress could no longer resolve it and `rspress build` failed. Revert the three web-runtime deps to their previous ranges (unrelated to the engine update) and add @lynx-js/lynx-core as an explicit website dependency so the subpath resolves. Restores the docs build.
Huxpro
left a comment
There was a problem hiding this comment.
Looks fine from my side.
Two things I would still like the PR description or a follow-up comment to clarify:
- why the two newly introduced dev dependency bumps are required as part of the 3.8.1 line update
- why
@lynx-js/lynx-coreis intentionally exact-pinned here instead of following the repo's usual range policy
… devDep Retarget the DefineComponent import and GlobalComponents augmentation to @vue/runtime-core (already a dependency, declares GlobalComponents) so the full vue meta-package is no longer needed as a devDependency. Document why the website pins @lynx-js/lynx-core to the exact resolved peer version.
|
Thanks @Huxpro.
|
Huxpro
left a comment
There was a problem hiding this comment.
Following up on the earlier approval — the hand-edited fixes all look correct: the __SetID(… ?? null) change matches Lynx types 3.9, and the testing-environment 0.2 migration (new LynxTestingEnv({ window }) / env.env.window) is applied consistently across both packages. One thing to reconcile before merge: your reply noted vue was dropped in favor of @vue/runtime-core, but the current branch head still adds "vue": "^3.5.0" to packages/vue-lynx/package.json devDependencies — please push that removal so the branch matches the stated resolution. The failing status is just the Vercel deploy-authorization gate for the fork, not CI; a maintainer will need to authorize that deploy.
Generated by Claude Code
|
Pushed the While reconciling that, I fixed the mislabel you'd already flagged: the pinned surface is No docs needed updating — the only version reference is the generated Re Vercel: understood, that's the fork deploy-authorization gate rather than CI — nothing outstanding on my end. |
Resolve conflicts from the 3.9 toolchain bump vs main: - .gitignore: keep upstream's zh-mirror comment - upstream-tests: testing-environment 0.2.1 (ours) + @vue/compiler-dom (main) - website: main's newer web deps (web-core 0.22.1, go-web 0.6.0, web-elements 0.12.5) + lynx-core pin bumped 0.1.3 -> 0.1.4 to match web-core's peer - PreventDemo.vue: keep the live @tap/@tap.prevent demo (ours) - pnpm-lock.yaml: regenerated via pnpm install
|
Fixed the CI failures the upstream merge introduced (Test - Pipeline / Test - Vue Upstream).
|
…ifr-bench to testing-environment 0.2
|
Follow-up: audited the 3.9 bumps for completeness and fixed two gaps (commit
Left |
|
Thanks for putting this upgrade together. We plan to merge it after the Vapor release. The intended release sequence is:
This keeps the Vapor release independent from the toolchain bump, so users on both the current and upgraded Lynx toolchain lines can adopt Vapor without the toolchain upgrade being a prerequisite. We should also change this PR’s Changeset from |
….8.1 # Conflicts: # pnpm-lock.yaml # website/package.json
….8.1 # Conflicts: # pnpm-lock.yaml # website/package.json
componentAtIndex attaches a row lazily, so a row native never requested is not in the element tree and must not be passed to __RemoveElement. Track attachment per row and skip the detach otherwise. Also migrates the last two env.jsdom call sites in ifr-list.test.ts to the testing-environment 0.2 API.
Summary
Bumps the Lynx toolchain to the 3.9 release line and fixes the small amount of breakage from the upgrade.
__SetIDtyping, docs build deps, and one stricter SFC compiler issue.Review notes
Worth reviewing first:
examples/event-modifiers/src/PreventDemo.vue— reworks invalid escaped markup into a live@tap/@tap.preventdemo.packages/vue-lynx/main-thread/src/ops-apply.ts— uses?? nullfor the newer__SetIDtype.packages/testing-library/*andpackages/upstream-tests/*— updates for@lynx-js/testing-environment0.2.website/package.json— restores docs build resolution with an explicit@lynx-js/lynx-coredependency.Safe to skim:
pnpm-lock.yamlexamples/*/package.jsonversion bumpsVerification
pnpm install --frozen-lockfilechangeset statusreports avue-lynxpatchFollow-up: evaluate upstream
@lynx-js/react/testing-libraryas a possible replacement for the custom testing-library package.