What's Changed
- chore: Move repo references from
mrousavytomargeloorg by @mrousavy in #1542 - fix: support aliased HybridView imports by @OskarEichler in #1570
- fix: Allow nullable Kotlin Promise results by @OskarEichler in #1548
- chore: bump sharp from 0.35.2 to 0.35.4 in /docs by @dependabot[bot] in #1576
- chore: bump docusaurus-plugin-llms from 0.5.1 to 0.6.0 in /docs by @dependabot[bot] in #1589
- fix(ios): avoid shared pointer Bool conversion in generated Swift bridges by @mrousavy in #1585
- chore: move example app into apps/example by @mrousavy in #1582
- ci: add dedicated Release benchmark app and performance reporting by @mrousavy in #1583
- chore: bump actions/download-artifact from 7.0.0 to 8.0.1 by @dependabot[bot] in #1595
- test: Wait for native view lifecycle completion by @mrousavy in #1603
- fix: Fail iOS TSan CI on sanitizer reports by @mrousavy in #1599
- chore: bump actions/upload-artifact from 4.6.2 to 7.0.1 by @dependabot[bot] in #1593
- chore: bump reactivecircus/android-emulator-runner from 4c44018e59b437e86cdfc41da381398f93ed8808 to a421e43855164a8197daf9d8d40fe71c6996bb0d by @dependabot[bot] in #1594
- fix: Run legacy Android ASan on API 33 by @mrousavy in #1600
- chore: bump the rncli group across 1 directory with 3 updates by @dependabot[bot] in #1596
- ci: Post performance reports as Nitro Modules Bot by @mrousavy in #1613
- test: Allow the async stress test to finish under sanitizers by @mrousavy in #1601
- perf: simplify raw performance reporting by @mrousavy in #1604
- perf: share calibrated work across fresh benchmark processes by @mrousavy in #1605
- perf: cover deferred worker promises and native-owned buffers by @mrousavy in #1607
- perf: reuse exact app artifacts for measurement reruns by @mrousavy in #1609
- perf: compare each benchmark in adjacent app processes by @mrousavy in #1612
- fix(nitrogen): match Kotlin's
isprefix rule for JVM accessors by @giaBaoJS in #1580 - chore: bump actions/setup-java from 5.7.0 to 6.0.0 by @dependabot[bot] in #1534
- fix: restore original performance comment layout by @mrousavy in #1615
- ci: try Blacksmith runners for performance benchmarks by @mrousavy in #1614
- perf: remove fixed benchmark startup sleep by @mrousavy in #1616
- perf: use fixed benchmark iteration counts by @mrousavy in #1617
- perf: avoid unnecessary benchmark cleanup pauses by @mrousavy in #1618
- test: verify ArrayBuffer ownership across native roundtrips by @mrousavy in #1606
- perf: report benchmark changes by ID by @mrousavy in #1622
- perf(ios): use immutable Swift wrapper implementation references by @mrousavy in #1621
- ci: render performance reports in PR workflows by @mrousavy in #1623
- ci: preserve Xcode compiler discovery with ccache launchers by @mrousavy in #1610
- fix(nitrogen): look up Kotlin callbacks with a boxed return type by @giaBaoJS in #1591
- perf: measure four balanced process pairs per benchmark by @mrousavy in #1635
- ci: trigger performance tests from PR comments by @mrousavy in #1643
- ci: add performance request feedback and PR statuses by @mrousavy in #1646
- fix: correct performance statuses and bot permissions by @mrousavy in #1647
- fix: Preserve RuntimeError messages in localizedDescription by @mrousavy in #1657
- test: cover BigInt view props on mount and update by @hannojg in #1665
- chore: bump satori from 0.33.4 to 0.33.5 in /docs by @dependabot[bot] in #1659
- chore: bump gradle/actions/setup-gradle from 6.3.0 to 6.4.0 by @dependabot[bot] in #1669
- chore: bump bencherdev/bencher from 0.6.12 to 0.6.13 by @dependabot[bot] in #1670
- chore: bump sharp from 0.35.4 to 0.35.5 in /docs by @dependabot[bot] in #1668
- docs: add Juno to apps using Nitro by @MarshallBear1 in #1676
- chore: bump docusaurus-plugin-llms from 0.6.0 to 0.6.1 in /docs by @dependabot[bot] in #1674
- chore: bump satori from 0.33.5 to 0.44.3 in /docs by @dependabot[bot] in #1673
- docs: Fix og:image cards after satori upgrade by @DaveyEke in #1677
- ci: pin the performance Android emulator build by @mrousavy in #1680
- ci: preserve diagnostics when the Android emulator dies by @mrousavy in #1681
- chore(example): upgrade react-native-harness to 1.5.0 by @mrousavy in #1690
- test(example): rewrite runtime tests as native Harness tests by @mrousavy in #1691
- test(example): add narrower Harness tests by @mrousavy in #1693
- feat(example): run the Harness tests from the example app by @mrousavy in #1694
- ci: show which test crashed the app in Harness runs by @mrousavy in #1695
- chore(example): note that the running-test Harness plugin is temporary by @mrousavy in #1696
- Split core by @mrousavy in #1710
- chore: remove unused React Native sanitizer setup by @mrousavy in #1713
- ci: separate Nitrogen output checks from test bundling by @mrousavy in #1717
- chore: remove redundant test setup by @mrousavy in #1731
- chore: group related Dependabot updates by @mrousavy in #1734
- chore: bump actions/setup-java from 5 to 6 by @dependabot[bot] in #1714
- chore: Group Android build toolchain updates by @mrousavy in #1747
- chore: bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #1715
- chore: bump actions/cache from 4 to 6 by @dependabot[bot] in #1716
- fix: link Nitrogen CLI before standalone tests by @mrousavy in #1739
- chore: bump android-actions/setup-android from 3 to 4 by @dependabot[bot] in #1743
- chore: bump com.facebook.soloader:nativeloader from 0.10.5 to 0.12.1 in /tests/standalone/runtime/android by @dependabot[bot] in #1729
- chore: bump satori from 0.44.3 to 0.56.2 in /docs by @dependabot[bot] in #1732
- chore: bump the babel group across 1 directory with 3 updates by @dependabot[bot] in #1744
- Fix case-sensitive iOS timeout assertion by @mrousavy in #1748
- chore: bump the react group across 1 directory with 2 updates by @dependabot[bot] in #1736
- chore: bump com.facebook.fbjni:fbjni from 0.7.0 to 0.8.1 in /tests/standalone/runtime/android by @dependabot[bot] in #1730
- chore: bump org.jetbrains.kotlinx:kotlinx-coroutines-android from 1.8.1 to 1.11.0 in /tests/standalone/runtime/android by @dependabot[bot] in #1728
- chore: bump jest and @types/jest by @dependabot[bot] in #1722
- test: bring standalone runtime coverage onto main by @mrousavy in #1740
- refactor: move React Native adapters out of Nitro Core by @mrousavy in #1741
- fix: restore Android base View props by @mrousavy in #1749
- Upgrade React Native to 0.88.0 by @mrousavy in #1746
- refactor: always mark Nitrogen output as generated by @mrousavy in #1751
- refactor: move Apple sources from ios/ to apple/ by @mrousavy in #1752
- refactor: separate standalone test packages from the runner by @mrousavy in #1753
- test: focus React Native fixtures on views and benchmarks by @mrousavy in #1754
- chore: remove repository migration leftovers by @mrousavy in #1756
- Restore positive class identity assertions by @mrousavy in #1825
- refactor: rename registerHybridStaticMethod to registerStaticHybridMethod by @mrousavy in #1818
- refactor: register hybrid properties with optional setters by @mrousavy in #1819
- feat: support static hybrid properties by @mrousavy in #1820
- test: cover readonly and writable static hybrid properties by @mrousavy in #1821
- chore: configure shared formatting at 140 columns by @mrousavy in #1826
- style: apply repository formatting by @mrousavy in #1827
- test: add Grandchild inheritance coverage by @mrousavy in #1830
- fix: clean up v1 build warnings by @mrousavy in #1837
- build: use SwiftPM header search paths for generated targets by @mrousavy in #1838
- fix: wait for callback reference destruction during runtime teardown by @mrousavy in #1839
- feat: define Swift callback and Promise concurrency contracts by @mrousavy in #1840
- feat: enable Swift 6 language mode by @mrousavy in #1841
- feat: await Swift callbacks with the call operator by @mrousavy in #1844
- Resolve HybridObject languages from their declarations by @mrousavy in #1831
- Reject unsupported HybridObject references during generation by @mrousavy in #1832
- Generate Swift-native specs with on-demand C++ adapters by @mrousavy in #1833
- Use single inheritance for Swift bridges by @mrousavy in #1834
- Validate Swift-only specs in packed consumers by @mrousavy in #1836
- Rename C++ import names to headers by @mrousavy in #1843
- Remove redundant Swift bridge member suffixes by @mrousavy in #1848
- feat: port the Android runtime and build setup to V1 by @mrousavy in #1810
- feat: generate native Kotlin bindings and C++ adapters for V1 by @mrousavy in #1811
- feat: support Android HybridViews in V1 by @mrousavy in #1812
- feat: add Kotlin to the V1 module template by @mrousavy in #1813
- Enable Android CI and release artifacts on v1 by @mrousavy in #1849
- feat(nitrogen): require static and initializer implementation contracts by @mrousavy in #1854
- perf: use nonvirtual JNI calls for known Kotlin implementations by @mrousavy in #1814
- refactor(android): collect JNI registrations from Kotlin types by @mrousavy in #1850
- refactor(android): name native conversions after JNI by @mrousavy in #1861
- refactor(android): separate JNI and native conversion requirements by @mrousavy in #1872
- perf(android): convert strings directly through JNI by @mrousavy in #1851
- perf(android): convert AnyJSON directly through JNI by @mrousavy in #1873
- feat(android): retain direct JNI values with global references by @mrousavy in #1874
- perf(android): convert errors directly through JNI by @mrousavy in #1875
- perf(android): convert null directly through JNI by @mrousavy in #1876
- perf(android): convert ArrayBuffer directly through JNI by @mrousavy in #1877
- perf(android): convert numbers directly through JNI by @mrousavy in #1878
- perf(android): convert booleans directly through JNI by @mrousavy in #1879
- perf(android): convert Int64 directly through JNI by @mrousavy in #1880
- perf(android): convert UInt64 directly through JNI by @mrousavy in #1881
- perf(android): convert primitive arrays directly through JNI by @mrousavy in #1852
- perf(android): convert optional values directly through JNI by @mrousavy in #1882
- perf(android): convert object arrays directly through JNI by @mrousavy in #1883
- perf(android): convert records directly through JNI by @mrousavy in #1884
- perf(android): convert Hybrid Objects directly through JNI by @mrousavy in #1885
- perf(android): convert Promises directly through JNI by @mrousavy in #1855
- refactor(android): declare Void native conversion requirements by @mrousavy in #1886
- refactor(android): preserve module ownership in nested JNI types by @mrousavy in #1887
- perf(android): convert enums directly through JNI by @mrousavy in #1888
- perf(android): convert structs directly through JNI by @mrousavy in #1889
- perf(android): convert variants directly through JNI by @mrousavy in #1890
- perf(android): convert callbacks directly through JNI by @mrousavy in #1856
- perf(android): convert InlineCallback directly through JNI by @mrousavy in #1891
- refactor(android): remove legacy Kotlin projections by @mrousavy in #1892
- perf(android): copy primitive arrays through JNI regions by @mrousavy in #1857
- perf(android): use stack buffers for short JNI strings by @mrousavy in #1858
- perf(ios): convert Fabric props directly into Swift by @mrousavy in #1859
- perf(android): convert Fabric props directly into JNI by @mrousavy in #1860
- fix(android): retain the JNI null singleton across frames by @mrousavy in #1894
- fix(android): deliver kotlin.Unit from native void promises by @mrousavy in #1895
- fix(android): balance HardwareBuffer copy ownership by @mrousavy in #1896
- perf(android): create Fabric C++ facades only for hybrid refs by @mrousavy in #1897
- perf(android): read the AnyJSON string field directly by @mrousavy in #1898
- perf(android): read unsigned carrier fields directly by @mrousavy in #1899
- perf(android): build adapted arrays without temporary lists by @mrousavy in #1900
- perf(android): adapt record values without temporary pairs by @mrousavy in #1901
- fix(android): resolve unsigned JNI array classes by @mrousavy in #1902
- perf(android): traverse JNI maps with local ownership by @mrousavy in #1903
- perf(android): release JNI globals without classloader trampolines by @mrousavy in #1904
- perf(android): share HybridObject Java ownership across inheritance by @mrousavy in #1905
- perf(android): return one ByteBuffer cursor view per access by @mrousavy in #1906
- perf(android): borrow cached enum references in Fabric props by @mrousavy in #1907
- refactor(android): remove unused Promise listener adapters by @mrousavy in #1908
- perf(android): dispatch closed Fabric setters nonvirtually by @mrousavy in #1910
- perf(android): unbox final Java wrappers nonvirtually by @mrousavy in #1911
- ci: remove duplicate docs and native builds by @mrousavy in #1914
- fix(nitrogen): remove unused struct default constructors by @mrousavy in #1916
- test: autolink standalone iOS fixtures by @mrousavy in #1917
- test: run standalone suites in one runtime per file by @mrousavy in #1915
- test: run iOS test workers at the JS thread's QoS by @riteshshukla04 in #1870
- ci: cache iOS native builds and framework downloads by @mrousavy in #1918
- ci: cache Android native compilation and Gradle tasks by @mrousavy in #1919
- ci: filter native push checks since successful validation by @mrousavy in #1920
- ci: cancel superseded native branch validations by @mrousavy in #1921
- ci: fix ShellCheck warning in iOS cache outputs by @mrousavy in #1926
- test: run Android runtime suites on four threads by @mrousavy in #1925
- test: run four iOS runtime suites concurrently by @mrousavy in #1924
- ci: enable v1 cache writes and remove build warnings by @mrousavy in #1937
- ci: clarify Android test steps and fix logcat collection by @mrousavy in #1940
- ci: separate iOS test builds and fix startup deadlines by @mrousavy in #1938
- test: optimize standalone Debug Hermes by @mrousavy in #1939
- fix: correct Swift imports and initializer contracts by @mrousavy in #1941
New Contributors
- @OskarEichler made their first contribution in #1570
- @MarshallBear1 made their first contribution in #1676
Full Changelog: v0.37.1...v1.0.0-alpha.nightly.83.ga257a54f4d6f