Skip to content

ci: check app dependency version alignment - #1584

Draft
mrousavy wants to merge 1 commit into
mainfrom
ci/check-app-version-alignment
Draft

mrousavy wants to merge 1 commit into
mainfrom
ci/check-app-version-alignment

Conversation

@mrousavy

@mrousavy mrousavy commented Sep 4, 2026

Copy link
Copy Markdown
Member

The benchmark app's React Native CLI had drifted to 20.1.3 while the example used 20.2.0. Align the CLI declarations and lockfile, then check shared dependency declarations across the root, example and benchmark on every relevant PR. App-specific dependencies such as Harness remain allowed.

The lightweight workflow runs without installing dependencies or building either app. Include the benchmark in release version bumping so both apps also retain the root release version.

Rebased onto current main; this no longer depends on the old benchmark-app stack. Automated dependency grouping follows in a separate PR.

Validation: six checker tests, current manifest alignment, frozen Bun installation, formatting, actionlint and diff checks pass. The lockfile removes the duplicate CLI 20.1.3 dependency tree.

@vercel

vercel Bot commented Sep 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
nitro-docs Ready Ready Preview Sep 7, 2026 7:02pm UTC

Request Review

@mrousavy
mrousavy force-pushed the ci/check-app-version-alignment branch from 96ec645 to 040b973 Compare September 5, 2026 11:47
@mrousavy
mrousavy force-pushed the ci/check-app-version-alignment branch from 040b973 to c41577c Compare September 7, 2026 18:47
@mrousavy
mrousavy changed the base branch from perf/nitro-benchmark-app to main September 7, 2026 18:48
@mrousavy mrousavy closed this Sep 7, 2026
@mrousavy mrousavy reopened this Sep 7, 2026
@nitro-modules-bot

Copy link
Copy Markdown

Performance Report

⚠️ Advisory: Results do not fail this PR.

iOS

Benchmark Before After Difference
JavaScript addNumbers() 23.3 ns 25.0 ns 🔴 +7.37% slower
C++ bounce(1 MiB) 252.2 ns 239.4 ns 🟢 -5.05% faster
C++ copy(1 MiB) 77.56 µs 83.49 µs 🔴 +7.65% slower
C++ copy(4 KiB) 1.23 µs 1.11 µs 🟢 -9.27% faster
C++ create() 436.9 ns 475.9 ns 🔴 +8.94% slower
C++ typed map (8 entries) 1.80 µs 1.89 µs 🔴 +5.48% slower
C++ addNumbers() 106.7 ns 89.4 ns 🟢 -16.24% faster
C++ simpleFunc() 70.6 ns 67.0 ns 🟢 -5.15% faster
C++ number property get/set 136.7 ns 147.4 ns 🔴 +7.84% slower
Swift copy(1 MiB) 79.71 µs 75.12 µs 🟢 -5.76% faster
Swift typed map (8 entries) 2.67 µs 2.52 µs 🟢 -5.5% faster
Swift deferred worker Promise (includes trigger call) 26.91 µs 28.60 µs 🔴 +6.29% slower
Swift short ASCII string 172.2 ns 160.8 ns 🟢 -6.6% faster
All Benchmarks
Benchmark Before After Difference
C++ bounce(4 KiB) 250.4 ns 255.8 ns 🔴 +2.17% slower
C++ bounce native-owned buffer (1 MiB) 3.80 µs 3.92 µs 🔴 +3.27% slower
C++ bounce native-owned buffer (4 KiB) 387.7 ns 393.4 ns 🔴 +1.46% slower
C++ large array (1,024) 51.32 µs 52.75 µs 🔴 +2.8% slower
C++ small array (16) 979.5 ns 998.8 ns 🔴 +1.97% slower
C++ synchronousCallback() 212.4 ns 204.5 ns 🟢 -3.73% faster
C++ returnExisting() 220.3 ns 222.0 ns 🔴 +0.78% slower
C++ optional trailing string 157.5 ns 157.7 ns 🔴 +0.14% slower
C++ deferred worker Promise (includes trigger call) 25.40 µs 25.18 µs 🟢 -0.89% faster
C++ immediatePromise() 861.2 ns 859.4 ns 🟢 -0.2% faster
C++ short ASCII string 142.9 ns 144.1 ns 🔴 +0.84% slower
C++ Unicode string 294.0 ns 299.8 ns 🔴 +1.97% slower
C++ nested Car struct 2.59 µs 2.56 µs 🟢 -0.94% faster
C++ number | string variant 139.5 ns 137.1 ns 🟢 -1.67% faster
Swift bounce(1 MiB) 244.7 ns 249.0 ns 🔴 +1.76% slower
Swift bounce(4 KiB) 237.1 ns 245.8 ns 🔴 +3.65% slower
Swift bounce native-owned buffer (1 MiB) 3.85 µs 3.86 µs 🔴 +0.15% slower
Swift bounce native-owned buffer (4 KiB) 409.9 ns 408.7 ns 🟢 -0.29% faster
Swift copy(4 KiB) 1.13 µs 1.17 µs 🔴 +3.34% slower
Swift large array (1,024) 51.29 µs 50.63 µs 🟢 -1.29% faster
Swift small array (16) 1.05 µs 1.02 µs 🟢 -2.94% faster
Swift synchronousCallback() 238.2 ns 235.4 ns 🟢 -1.19% faster
Swift create() 26.89 µs 27.08 µs 🔴 +0.7% slower
Swift returnExisting() 241.0 ns 244.8 ns 🔴 +1.56% slower
Swift optional trailing string 168.6 ns 170.8 ns 🔴 +1.26% slower
Swift addNumbers() 76.9 ns 80.5 ns 🔴 +4.76% slower
Swift simpleFunc() 62.7 ns 61.7 ns 🟢 -1.65% faster
Swift immediatePromise() 1.42 µs 1.38 µs 🟢 -3.42% faster
Swift number property get/set 139.0 ns 145.1 ns 🔴 +4.36% slower
Swift Unicode string 349.3 ns 349.2 ns 🟢 -0.04% faster
Swift nested Car struct 2.68 µs 2.69 µs 🔴 +0.43% slower
Swift number | string variant 203.7 ns 202.1 ns 🟢 -0.8% faster
TurboModule addNumbers() 963.3 ns 957.9 ns 🟢 -0.56% faster

Android

Benchmark Before After Difference
JavaScript addNumbers() 22.0 ns 20.4 ns 🟢 -7.48% faster
C++ bounce native-owned buffer (1 MiB) 3.04 µs 3.20 µs 🔴 +5.26% slower
C++ create() 452.4 ns 510.4 ns 🔴 +12.81% slower
C++ short ASCII string 122.1 ns 128.5 ns 🔴 +5.17% slower
Kotlin copy(4 KiB) 4.24 µs 3.98 µs 🟢 -6.15% faster
Kotlin synchronousCallback() 969.0 ns 1.05 µs 🔴 +7.89% slower
Kotlin create() 1.33 µs 1.62 µs 🔴 +21.98% slower
Kotlin typed map (8 entries) 5.81 µs 5.49 µs 🟢 -5.67% faster
Kotlin deferred worker Promise (includes trigger call) 32.83 µs 37.45 µs 🔴 +14.08% slower
Kotlin nested Car struct 3.92 µs 4.17 µs 🔴 +6.45% slower
All Benchmarks
Benchmark Before After Difference
C++ bounce(1 MiB) 405.8 ns 386.9 ns 🟢 -4.66% faster
C++ bounce(4 KiB) 383.1 ns 397.1 ns 🔴 +3.66% slower
C++ bounce native-owned buffer (4 KiB) 391.8 ns 391.0 ns 🟢 -0.21% faster
C++ copy(1 MiB) 24.72 µs 24.39 µs 🟢 -1.32% faster
C++ copy(4 KiB) 689.4 ns 693.9 ns 🔴 +0.65% slower
C++ large array (1,024) 35.65 µs 34.59 µs 🟢 -2.99% faster
C++ small array (16) 736.3 ns 741.7 ns 🔴 +0.73% slower
C++ synchronousCallback() 270.2 ns 276.2 ns 🔴 +2.23% slower
C++ returnExisting() 200.5 ns 202.8 ns 🔴 +1.13% slower
C++ typed map (8 entries) 1.48 µs 1.47 µs 🟢 -0.54% faster
C++ optional trailing string 132.4 ns 135.6 ns 🔴 +2.37% slower
C++ addNumbers() 80.1 ns 83.2 ns 🔴 +3.85% slower
C++ simpleFunc() 66.5 ns 67.1 ns 🔴 +1% slower
C++ deferred worker Promise (includes trigger call) 20.02 µs 19.33 µs 🟢 -3.45% faster
C++ immediatePromise() 785.5 ns 822.6 ns 🔴 +4.72% slower
C++ number property get/set 145.9 ns 148.3 ns 🔴 +1.61% slower
C++ Unicode string 218.5 ns 221.5 ns 🔴 +1.4% slower
C++ nested Car struct 1.94 µs 1.89 µs 🟢 -2.76% faster
C++ number | string variant 118.2 ns 120.4 ns 🔴 +1.83% slower
Kotlin bounce(1 MiB) 920.9 ns 936.0 ns 🔴 +1.64% slower
Kotlin bounce(4 KiB) 947.1 ns 929.3 ns 🟢 -1.87% faster
Kotlin bounce native-owned buffer (1 MiB) 3.73 µs 3.81 µs 🔴 +2.08% slower
Kotlin bounce native-owned buffer (4 KiB) 1.04 µs 1.07 µs 🔴 +2.18% slower
Kotlin copy(1 MiB) 228.96 µs 225.94 µs 🟢 -1.32% faster
Kotlin large array (1,024) 38.77 µs 40.36 µs 🔴 +4.09% slower
Kotlin small array (16) 956.0 ns 938.5 ns 🟢 -1.83% faster
Kotlin returnExisting() 512.4 ns 514.4 ns 🔴 +0.38% slower
Kotlin optional trailing string 306.7 ns 305.5 ns 🟢 -0.39% faster
Kotlin addNumbers() 113.5 ns 113.1 ns 🟢 -0.34% faster
Kotlin simpleFunc() 88.3 ns 88.4 ns 🔴 +0.05% slower
Kotlin immediatePromise() 2.07 µs 2.04 µs 🟢 -1.54% faster
Kotlin number property get/set 208.4 ns 208.6 ns 🔴 +0.1% slower
Kotlin short ASCII string 408.4 ns 421.1 ns 🔴 +3.11% slower
Kotlin Unicode string 637.2 ns 659.3 ns 🔴 +3.46% slower
Kotlin number | string variant 361.4 ns 353.2 ns 🟢 -2.29% faster
TurboModule addNumbers() 202.5 ns 196.1 ns 🟢 -3.2% faster

Benchmarking Code Diff 2e815f49...b7c43d4c (view raw output)

Raw measurements: performance-report-1 (JSON artifact). Run 34153966168, attempt 1. Download requires GitHub access.

Android: measurements, attempt 1, apps, attempt 1.
iOS: measurements, attempt 1, apps, attempt 1.

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.

1 participant