Skip to content

ci: update iOS jobs to Ruby 3.3.12 - #1624

Draft
mrousavy wants to merge 1 commit into
mainfrom
ci/ruby-3.3.12
Draft

ci: update iOS jobs to Ruby 3.3.12#1624
mrousavy wants to merge 1 commit into
mainfrom
ci/ruby-3.3.12

Conversation

@mrousavy

@mrousavy mrousavy commented Sep 7, 2026

Copy link
Copy Markdown
Member

Updates all five CI Ruby selections to 3.3.12. The example build, Release, Harness and lockfile jobs currently select Ruby 2.7.2; performance CI selects 3.3.0. Using one supported patch release removes the outdated interpreter selections while preserving the existing Gemfile and Bundler constraints.

Ruby 3.3.12 includes security fixes: https://www.ruby-lang.org/en/news/2026/07/16/ruby-3-3-12-released/. The pinned performance ruby/setup-ruby revision already lists this release in its supported versions.

Validation: workflow syntax and expressions pass actionlint with existing unrelated shellcheck diagnostics and custom Blacksmith runner-label warnings excluded. Confirmed that these five version selections are the only changes. Built Ruby 3.3.12 locally and installed both repository Gemfiles with Bundler 2.3.22 in deployment mode: bundle checks and CocoaPods 1.16.2 passed with unchanged lockfiles. Before the refresh onto the publisher rollout on main, commit 8eea48168 passed both Debug build configurations, Release, TSan Harness and both performance app builds: https://github.com/margelo/nitro/actions/runs/34153047762 and https://github.com/margelo/nitro/actions/runs/34153047789. These results validate the previous revision; the refreshed revision receives new hosted checks.

@vercel

vercel Bot commented Sep 7, 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:03pm UTC

Request Review

@nitro-modules-bot

Copy link
Copy Markdown

Performance Report

⚠️ Advisory: Results do not fail this PR.

iOS

Benchmark Before After Difference
JavaScript addNumbers() 22.1 ns 25.2 ns 🔴 +13.79% slower
C++ deferred worker Promise (includes trigger call) 21.42 µs 20.07 µs 🟢 -6.29% faster
Swift create() 29.22 µs 27.56 µs 🟢 -5.67% faster
Swift optional trailing string 152.0 ns 162.4 ns 🔴 +6.83% slower
TurboModule addNumbers() 960.2 ns 908.4 ns 🟢 -5.39% faster
All Benchmarks
Benchmark Before After Difference
C++ bounce(1 MiB) 222.7 ns 218.4 ns 🟢 -1.91% faster
C++ bounce(4 KiB) 242.1 ns 247.3 ns 🔴 +2.12% slower
C++ bounce native-owned buffer (1 MiB) 3.93 µs 3.81 µs 🟢 -3.07% faster
C++ bounce native-owned buffer (4 KiB) 408.6 ns 422.7 ns 🔴 +3.47% slower
C++ copy(1 MiB) 75.55 µs 75.25 µs 🟢 -0.4% faster
C++ copy(4 KiB) 1.16 µs 1.18 µs 🔴 +1.81% slower
C++ large array (1,024) 50.31 µs 48.73 µs 🟢 -3.14% faster
C++ small array (16) 962.6 ns 960.6 ns 🟢 -0.21% faster
C++ synchronousCallback() 193.5 ns 191.0 ns 🟢 -1.25% faster
C++ create() 432.2 ns 416.0 ns 🟢 -3.75% faster
C++ returnExisting() 206.7 ns 207.0 ns 🔴 +0.12% slower
C++ typed map (8 entries) 1.84 µs 1.84 µs 🔴 +0.34% slower
C++ optional trailing string 146.8 ns 148.1 ns 🔴 +0.9% slower
C++ addNumbers() 86.4 ns 86.9 ns 🔴 +0.56% slower
C++ simpleFunc() 64.0 ns 65.9 ns 🔴 +2.9% slower
C++ immediatePromise() 798.1 ns 810.6 ns 🔴 +1.58% slower
C++ number property get/set 136.9 ns 134.5 ns 🟢 -1.76% faster
C++ short ASCII string 142.2 ns 144.1 ns 🔴 +1.32% slower
C++ Unicode string 286.1 ns 284.5 ns 🟢 -0.57% faster
C++ nested Car struct 2.50 µs 2.44 µs 🟢 -2.31% faster
C++ number | string variant 125.7 ns 130.9 ns 🔴 +4.15% slower
Swift bounce(1 MiB) 233.7 ns 237.4 ns 🔴 +1.6% slower
Swift bounce(4 KiB) 236.9 ns 236.8 ns 🟢 -0.05% faster
Swift bounce native-owned buffer (1 MiB) 3.78 µs 3.72 µs 🟢 -1.64% faster
Swift bounce native-owned buffer (4 KiB) 401.2 ns 395.6 ns 🟢 -1.41% faster
Swift copy(1 MiB) 63.17 µs 62.74 µs 🟢 -0.67% faster
Swift copy(4 KiB) 1.09 µs 1.11 µs 🔴 +1.64% slower
Swift large array (1,024) 51.80 µs 50.62 µs 🟢 -2.27% faster
Swift small array (16) 1.05 µs 1.06 µs 🔴 +1.27% slower
Swift synchronousCallback() 239.7 ns 238.1 ns 🟢 -0.67% faster
Swift returnExisting() 248.0 ns 247.8 ns 🟢 -0.07% faster
Swift typed map (8 entries) 2.30 µs 2.37 µs 🔴 +2.72% slower
Swift addNumbers() 72.8 ns 70.6 ns 🟢 -3.06% faster
Swift simpleFunc() 59.6 ns 59.8 ns 🔴 +0.39% slower
Swift deferred worker Promise (includes trigger call) 31.51 µs 31.02 µs 🟢 -1.55% faster
Swift immediatePromise() 1.35 µs 1.36 µs 🔴 +1.37% slower
Swift number property get/set 131.8 ns 135.4 ns 🔴 +2.76% slower
Swift short ASCII string 153.7 ns 155.0 ns 🔴 +0.85% slower
Swift Unicode string 342.1 ns 337.4 ns 🟢 -1.36% faster
Swift nested Car struct 2.49 µs 2.43 µs 🟢 -2.3% faster
Swift number | string variant 203.1 ns 208.1 ns 🔴 +2.43% slower

Android

Benchmark Before After Difference
JavaScript addNumbers() 31.1 ns 21.2 ns 🟢 -31.94% faster
C++ copy(1 MiB) 22.05 µs 20.23 µs 🟢 -8.22% faster
C++ large array (1,024) 34.74 µs 37.17 µs 🔴 +6.97% slower
C++ synchronousCallback() 337.3 ns 309.4 ns 🟢 -8.29% faster
C++ create() 613.1 ns 525.4 ns 🟢 -14.3% faster
Kotlin bounce(4 KiB) 1.10 µs 1.04 µs 🟢 -5.01% faster
Kotlin copy(1 MiB) 288.45 µs 268.21 µs 🟢 -7.02% faster
Kotlin copy(4 KiB) 4.99 µs 4.43 µs 🟢 -11.17% faster
Kotlin synchronousCallback() 1.03 µs 1.11 µs 🔴 +8.53% slower
Kotlin deferred worker Promise (includes trigger call) 31.18 µs 35.45 µs 🔴 +13.67% slower
Kotlin immediatePromise() 2.29 µs 2.46 µs 🔴 +7.43% slower
All Benchmarks
Benchmark Before After Difference
C++ bounce(1 MiB) 436.8 ns 432.3 ns 🟢 -1.02% faster
C++ bounce(4 KiB) 443.2 ns 430.5 ns 🟢 -2.86% faster
C++ bounce native-owned buffer (1 MiB) 3.34 µs 3.34 µs 🟢 -0.22% faster
C++ bounce native-owned buffer (4 KiB) 444.4 ns 446.2 ns 🔴 +0.42% slower
C++ copy(4 KiB) 824.5 ns 858.3 ns 🔴 +4.1% slower
C++ small array (16) 741.7 ns 739.2 ns 🟢 -0.33% faster
C++ returnExisting() 215.3 ns 215.9 ns 🔴 +0.32% slower
C++ typed map (8 entries) 1.68 µs 1.66 µs 🟢 -0.97% faster
C++ optional trailing string 142.8 ns 143.5 ns 🔴 +0.5% slower
C++ addNumbers() 86.3 ns 87.2 ns 🔴 +1.03% slower
C++ simpleFunc() 72.2 ns 71.7 ns 🟢 -0.65% faster
C++ deferred worker Promise (includes trigger call) 22.29 µs 22.66 µs 🔴 +1.63% slower
C++ immediatePromise() 841.8 ns 821.8 ns 🟢 -2.38% faster
C++ number property get/set 155.7 ns 154.7 ns 🟢 -0.69% faster
C++ short ASCII string 138.0 ns 138.5 ns 🔴 +0.42% slower
C++ Unicode string 250.9 ns 244.3 ns 🟢 -2.63% faster
C++ nested Car struct 2.07 µs 2.06 µs 🟢 -0.35% faster
C++ number | string variant 127.9 ns 128.1 ns 🔴 +0.18% slower
Kotlin bounce(1 MiB) 1.03 µs 1.03 µs 🟢 -0.18% faster
Kotlin bounce native-owned buffer (1 MiB) 4.10 µs 4.08 µs 🟢 -0.44% faster
Kotlin bounce native-owned buffer (4 KiB) 1.14 µs 1.15 µs 🔴 +0.92% slower
Kotlin large array (1,024) 38.81 µs 38.65 µs 🟢 -0.41% faster
Kotlin small array (16) 1.02 µs 988.0 ns 🟢 -2.9% faster
Kotlin create() 1.65 µs 1.73 µs 🔴 +4.84% slower
Kotlin returnExisting() 571.8 ns 569.7 ns 🟢 -0.37% faster
Kotlin typed map (8 entries) 6.25 µs 6.21 µs 🟢 -0.61% faster
Kotlin optional trailing string 327.1 ns 329.8 ns 🔴 +0.83% slower
Kotlin addNumbers() 113.2 ns 114.0 ns 🔴 +0.66% slower
Kotlin simpleFunc() 92.1 ns 92.5 ns 🔴 +0.49% slower
Kotlin number property get/set 221.9 ns 228.0 ns 🔴 +2.74% slower
Kotlin short ASCII string 470.7 ns 480.1 ns 🔴 +1.99% slower
Kotlin Unicode string 703.8 ns 723.7 ns 🔴 +2.83% slower
Kotlin nested Car struct 4.52 µs 4.44 µs 🟢 -1.63% faster
Kotlin number | string variant 397.5 ns 389.5 ns 🟢 -2.03% faster
TurboModule addNumbers() 234.1 ns 226.2 ns 🟢 -3.36% faster

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

Raw measurements: performance-report-1 (JSON artifact). Run 34154015350, 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