Skip to content

Conversation

@partholon
Copy link
Collaborator

Summary

lynx.performance.OnPipelineStart add param pipeline_options to convert more info like pipelineOrigin, dsl and stage.

When the pipeline is started by the framework, actively mark the start and end time of MtsRender.

Add FrameworkRenderingTiming typing

Checklist

  • Tests updated (or not required).
  • Documentation updated (or not required).

@changeset-bot
Copy link

changeset-bot bot commented Apr 1, 2025

🦋 Changeset detected

Latest commit: f99e185

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@lynx-js/react-rsbuild-plugin Patch
@lynx-js/react-webpack-plugin Patch
@lynx-js/react Minor
@lynx-js/react-alias-rsbuild-plugin Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@codecov
Copy link

codecov bot commented Apr 1, 2025

Codecov Report

Attention: Patch coverage is 60.34483% with 23 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
packages/react/runtime/src/lynx/performance.ts 62.50% 15 Missing ⚠️
packages/react/runtime/src/lynx/tt.ts 0.00% 5 Missing ⚠️
packages/react/runtime/src/lynx/calledByNative.ts 0.00% 2 Missing ⚠️
packages/react/runtime/src/lynx/component.ts 0.00% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@codecov
Copy link

codecov bot commented Apr 1, 2025

Bundle Report

Changes will increase total bundle size by 725 bytes (0.11%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle name Size Change
@lynx-js/example-react-lynx-cjs 317.54kB 725 bytes (0.23%) ⬆️

Affected Assets, Files, and Routes:

view changes for bundle: @lynx-js/example-react-lynx-cjs

Assets Changed:

Asset Name Size Change Total Size Change (%)
main.lynx.bundle 382 bytes 87.88kB 0.44%
.rspeedy/main/main-thread.js 40 bytes 39.68kB 0.1%
.rspeedy/main/background.*.js 303 bytes 39.41kB 0.77%

@codspeed-hq
Copy link

codspeed-hq bot commented Apr 1, 2025

CodSpeed Performance Report

Merging #438 will not alter performance

Comparing partholon:p/partholon/correct_pipeline (f99e185) with main (7478569)

Summary

✅ 1 untouched benchmarks

@partholon partholon force-pushed the p/partholon/correct_pipeline branch from 72f8478 to 57aafea Compare April 3, 2025 09:23
@partholon partholon force-pushed the p/partholon/correct_pipeline branch 2 times, most recently from a1b0ff9 to f42ce91 Compare April 15, 2025 08:11
@partholon partholon force-pushed the p/partholon/correct_pipeline branch 2 times, most recently from 2ec58b8 to 0e5d609 Compare April 16, 2025 06:38
@colinaaa colinaaa requested review from Yradex and hzy April 16, 2025 07:07
colinaaa
colinaaa previously approved these changes Apr 16, 2025
Copy link
Collaborator

@colinaaa colinaaa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Yradex
Yradex previously approved these changes Apr 16, 2025
hzy
hzy previously approved these changes Apr 18, 2025
@partholon partholon dismissed stale reviews from hzy and Yradex via 2bd4740 April 22, 2025 08:07
@partholon partholon force-pushed the p/partholon/correct_pipeline branch 2 times, most recently from 2bd4740 to 9647731 Compare April 23, 2025 06:35
lynx.performance.OnPipelineStart add param pipeline_options to convert more info like pipelineOrigin, dsl and stage.

When the pipeline is started by the framework, actively mark the start and end time of MtsRender.

Add FrameworkRenderingTiming typing
@partholon partholon force-pushed the p/partholon/correct_pipeline branch from 820c895 to f99e185 Compare April 24, 2025 08:51
@colinaaa colinaaa added this pull request to the merge queue Apr 24, 2025
Merged via the queue into lynx-family:main with commit 6a5fc80 Apr 24, 2025
26 of 28 checks passed
colinaaa referenced this pull request in colinaaa/lynx-stack Apr 24, 2025
## Summary

lynx.performance.OnPipelineStart add param pipeline_options to convert
more info like pipelineOrigin, dsl and stage.

When the pipeline is started by the framework, actively mark the start
and end time of MtsRender.

Add FrameworkRenderingTiming typing

## Checklist

- [x] Tests updated (or not required).
- [x] Documentation updated (or not required).
colinaaa pushed a commit that referenced this pull request Apr 27, 2025
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @lynx-js/[email protected]

### Minor Changes

- Some of the timing keys are renamed to match the naming convention of
the Lynx Engine.
([#438](#438))

    -   `update_set_state_trigger` -> `updateSetStateTrigger`
    -   `update_diff_vdom_start` -> `updateDiffVdomStart`
    -   `update_diff_vdom_end` -> `updateDiffVdomEnd`
    -   `diff_vdom_start` -> `diffVdomStart`
    -   `diff_vdom_end` -> `diffVdomEnd`
    -   `pack_changes_start` -> `packChangesStart`
    -   `pack_changes_end` -> `packChangesEnd`
    -   `parse_changes_start` -> `parseChangesStart`
    -   `parse_changes_end` -> `parseChangesEnd`
    -   `patch_changes_start` -> `patchChangesStart`
    -   `patch_changes_end` -> `patchChangesEnd`
    -   `hydrate_parse_snapshot_start` -> `hydrateParseSnapshotStart`
    -   `hydrate_parse_snapshot_end` -> `hydrateParseSnapshotEnd`
    -   `mts_render_start` -> `mtsRenderStart`
    -   `mts_render_end` -> `mtsRenderEnd`

### Patch Changes

- Add testing library for ReactLynx
([#74](#74))

- Refactor: Improved naming for list operation related types. Renamed
`UpdateAction` interface to `ListOperations`.
([#592](#592))

- Support using `"jsx": "react-jsx"` along with `"jsxImportSource":
"@lynx-js/react"` in `tsconfig.json`.
([#545](#545))

    ```json
    {
      "compilerOptions": {
        "jsx": "react-jsx",
        "jsxImportSource": "@lynx-js/react"
      }
    }
    ```

This configuration enhances TypeScript definitions for standard JSX
elements,
providing type errors for unsupported elements like `<div>` or
`<button>`.

- fix: JSX elements with dynamic `key={expr}` now wrapped in `wrapper`
element to prevent merging.
([#547](#547))

## @lynx-js/[email protected]

### Minor Changes

-   fix: ([#629](#629))

    -   typo of `initial-scroll-offset` in scroll-view.
- scroll-view's `initial-scroll-index` is changed to
`initial-scroll-to-index`.

### Patch Changes

- fix: x-image border-radius setting has no effect.
([#638](#638))

- perf: late evaluate document.font.ready
([#604](#604))

- perf: improve raw-text performance
([#601](#601))

- fix: the scroll-x field of scroll-view needs to be handled correctly.
([#635](#635))

Before this, scroll-x of '' would result in no scrolling along x-axis.

- feat: x-list supports `need-visible-item-info`, now you can get
visible cells info in `scroll`、`scrolltoupper`、`scrolltolower` event.
([#595](#595))

## @lynx-js/[email protected]

### Minor Changes

- fix: mts lynx will no longer provide requireModule, requireModuleAsync
methods, which is aligned with Native.
([#537](#537))

### Patch Changes

- refactor: isolate SystemInfo
([#628](#628))

    Never assign `SystemInfo` on worker's self object.

- feat: support thread strategy `all-on-ui`
([#625](#625))

    ```html
    <lynx-view thread-strategy="all-on-ui"></lynx-view>
    ```

    This will make the lynx's main-thread run on the UA's main thread.

Note that the `all-on-ui` does not support the HMR & chunk splitting
yet.

- fix(web): `:root` not work on web platform
([#607](#607))

Note: To solve this issue, you need to upgrade your
`react-rsbuild-plugin`

- refactor: move mainthread impl into mainthread-api packages
([#622](#622))

- fix(web): css selector not work for selectors with combinator and
pseudo-class on WEB
([#608](#608))

    like `.parent > :not([hidden]) ~ :not([hidden])`

you will need to upgrade your `react-rsbuild-plugin` to fix this issue

- Updated dependencies
\[[`4ee0465`](4ee0465),
[`5a3d9af`](5a3d9af),
[`5269cab`](5269cab)]:
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- Bump Rsbuild v1.3.11 with Rspack v1.3.6.
([#594](#594))

## [email protected]

### Patch Changes

- Add testing library for ReactLynx
([#74](#74))

- Use `"jsx": "react-jsx"` with `"jsxImportSource": "@lynx-js/react"`.
([#545](#545))

## @lynx-js/[email protected]

### Patch Changes

- Fix the issue where QR code fails to print after initial compilation
errors are fixed.
([#610](#610))

## @lynx-js/[email protected]

### Patch Changes

- Support @lynx-js/react v0.107.0
([#438](#438))

- fix(web): `:root` not work on web platform
([#607](#607))

Note: To solve this issue, you need to upgrade your
`react-rsbuild-plugin`

- Refactor: Replace built-in `background-only` implementation with npm
package ([#602](#602))

    Previously we maintained custom files:

    -   `empty.ts` for background thread
    -   `error.ts` for main thread validation

    Now adopting the standard `background-only` npm package

- fix(web): css selector not work for selectors with combinator and
pseudo-class on WEB
([#608](#608))

    like `.parent > :not([hidden]) ~ :not([hidden])`

you will need to upgrade your `react-rsbuild-plugin` to fix this issue

- Updated dependencies
\[[`6a5fc80`](6a5fc80),
[`06bb78a`](06bb78a),
[`f3afaf6`](f3afaf6),
[`bf9c685`](bf9c685),
[`5269cab`](5269cab)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- Refactor: Replace built-in `background-only` implementation with npm
package ([#602](#602))

    Previously we maintained custom files:

    -   `empty.ts` for background thread
    -   `error.ts` for main thread validation

    Now adopting the standard `background-only` npm package

## @lynx-js/[email protected]

### Patch Changes

- Add testing library for ReactLynx
([#74](#74))

## @lynx-js/[email protected]

### Patch Changes

- feat: support parentNode
([#625](#625))

## @lynx-js/[email protected]

### Patch Changes

- refactor: isolate SystemInfo
([#628](#628))

    Never assign `SystemInfo` on worker's self object.

- refactor: move mainthread impl into mainthread-api packages
([#622](#622))

- fix(web): css selector not work for selectors with combinator and
pseudo-class on WEB
([#608](#608))

    like `.parent > :not([hidden]) ~ :not([hidden])`

you will need to upgrade your `react-rsbuild-plugin` to fix this issue

-   Updated dependencies \[]:
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- refactor: isolate SystemInfo
([#628](#628))

    Never assign `SystemInfo` on worker's self object.

- feat: support thread strategy `all-on-ui`
([#625](#625))

    ```html
    <lynx-view thread-strategy="all-on-ui"></lynx-view>
    ```

    This will make the lynx's main-thread run on the UA's main thread.

Note that the `all-on-ui` does not support the HMR & chunk splitting
yet.

- fix(web): css selector not work for selectors with combinator and
pseudo-class on WEB
([#608](#608))

    like `.parent > :not([hidden]) ~ :not([hidden])`

you will need to upgrade your `react-rsbuild-plugin` to fix this issue

- Updated dependencies
\[[`4ee0465`](4ee0465),
[`74b5bd1`](74b5bd1),
[`06bb78a`](06bb78a),
[`5a3d9af`](5a3d9af),
[`5269cab`](5269cab),
[`74b5bd1`](74b5bd1),
[`2b069f8`](2b069f8)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- fix: allow lynxjs.org to access native modules
([#599](#599))

## @lynx-js/[email protected]

### Patch Changes

- refactor: isolate SystemInfo
([#628](#628))

    Never assign `SystemInfo` on worker's self object.

- feat: support thread strategy `all-on-ui`
([#625](#625))

    ```html
    <lynx-view thread-strategy="all-on-ui"></lynx-view>
    ```

    This will make the lynx's main-thread run on the UA's main thread.

Note that the `all-on-ui` does not support the HMR & chunk splitting
yet.

- refactor: move mainthread impl into mainthread-api packages
([#622](#622))

- Updated dependencies
\[[`4ee0465`](4ee0465),
[`74b5bd1`](74b5bd1),
[`06bb78a`](06bb78a),
[`5a3d9af`](5a3d9af),
[`5269cab`](5269cab),
[`74b5bd1`](74b5bd1),
[`2b069f8`](2b069f8)]:
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]
    -   @lynx-js/[email protected]

## @lynx-js/[email protected]

### Patch Changes

- Support @lynx-js/react v0.107.0
([#438](#438))

## @lynx-js/[email protected]

### Patch Changes

- Fix CSS import order when `enableCSSSelector` is false.
([#609](#609))

When the `enableCSSSelector` option is set to false, style rule priority
is inversely related to `@import` order(Lynx CSS engine has the
incorrect behavior). Reversing the import order to maintain correct
priority is required. For example:

    ```css
    @import "0.css";
    @import "1.css";
    ```

    will convert to:

    ```css
    @import "1.css";
    @import "0.css";
    ```

## @lynx-js/[email protected]

### Patch Changes

- fix(web): `:root` not work on web platform
([#607](#607))

Note: To solve this issue, you need to upgrade your
`react-rsbuild-plugin`

- fix(web): css selector not work for selectors with combinator and
pseudo-class on WEB
([#608](#608))

    like `.parent > :not([hidden]) ~ :not([hidden])`

you will need to upgrade your `react-rsbuild-plugin` to fix this issue

## [email protected]



## @lynx-js/[email protected]

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants