Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
335 commits
Select commit Hold shift + click to select a range
5cb9187
Release 0.81.4
react-native-bot Sep 10, 2025
68ca69a
Avoid memory leak in RCTWebSocketModule
adgarcia Apr 23, 2019
b95d166
[Discord] Update boost podspec to expose PodToBuild friendly artifact.
mrkcsc Dec 12, 2021
a4102a2
[Discord] Version bumping script
denbeigh2000 Jan 27, 2022
d415f05
[RNA] Add max fling velocity capability to scroll view.
mrkcsc Mar 16, 2022
fddc87a
[RNA] Add useSmallCache prop to ReactImageView.
mrkcsc Mar 24, 2022
d5133b0
animate switch on value change
Apr 7, 2022
7a1730e
[RNA] Allow modal component to be edge to edge on Android.
mrkcsc Apr 19, 2022
38f38fa
expose `flush` on RCTWebSocketModule to close all open websockets syn…
nealmanaktola May 25, 2022
465de43
[Discord] Have codegen script prefer `react-codegen` in NPM
FuegoFro Jun 13, 2022
327ccc7
Add a `preventClipping` prop
Jun 22, 2022
75a5bbc
Ripple radius now applies to corner radius instead of circular radius
Flewp Jun 30, 2022
df153a5
[RNA] CustomLineHeightSpan changes
charlesx2013 Aug 29, 2022
53b35fa
Custom handling of fonts
Flewp Jul 18, 2024
0e92efd
Update RNA ImageView to support forced cached property to fix GIF fli…
mrkcsc Dec 11, 2021
1cf1bf9
[Discord] SRWebSocket flush method
Flewp Mar 9, 2024
3b1d15a
Clamp `last` prop of `VirtualizedList`
lsdimagine Aug 4, 2023
4232b01
[Upstreamed] Fix incorrect values for modal sizing (#45)
pmick Oct 11, 2023
5d01e2a
[Discord] Always configure React Native NDK regardless of New Arch
Flewp May 25, 2023
733413f
Include `raw_length` in Websocket event
ypisetsky Oct 31, 2023
bdb2f1a
Avoid using Xcode 15's gcc to compile glog
stevenpetryk Nov 28, 2023
0dc35b5
[Discord] Moving registry of RCTEventEmitter to constructor
Flewp Apr 10, 2024
caccb89
[Discord] Addressing Gradle plugin versioning issues caused by Versio…
Flewp Jun 12, 2024
c3b20bf
[Discord] NDK Publishing additions
Flewp Jul 17, 2024
1927dcc
[Discord] Adding ICU_FOUND=1 to hermes build
Flewp Jul 22, 2024
ead6e6a
Ensure third-party-podspecs depend on react_native_pods.rb
Jul 29, 2024
4489b5e
[IOS] Fix a bug in reported device window/screen size for iPad and po…
mrkcsc Sep 11, 2024
3af0a95
[Discord] kv-storage prebuilt prefab config
Flewp Dec 4, 2024
cd31c00
Patch Flow syntax failures
joemun Dec 5, 2024
dcb5022
[Discord] ForwardingConsoleMethods.def -> ForwardingConsoleMethods.h …
Flewp Jan 4, 2025
bdbf2bd
fix: work with comma separated fonts
hannojg Mar 2, 2025
77dc4d3
Misc. Syntax Errors, Squash Later
Flewp Mar 10, 2025
94ffbe3
More ImageSource Cleanup (Squash Later)
Flewp Mar 10, 2025
9c52ed7
Update Android websocket module to expose onOpen callback.
Flewp Mar 11, 2025
da2e363
Syntax Fixes, Squash Later
Flewp Mar 11, 2025
04ba9f9
Add require_relative to fast_float podspec
pmick Mar 27, 2025
1ccb464
update Text to support gradient colors
timothy-huynh Apr 22, 2025
89f883b
[android] harden AppStateModule initial state (#57)
RubyFeinstein May 5, 2025
5ef244c
update Text gradient colors to be mirrored on ios (#59)
timothy-huynh May 6, 2025
3bc1879
fix android gradient colors faded (#60)
timothy-huynh May 6, 2025
1cb55c1
Set useShadowNodeStateOnClone by default to true
Flewp Aug 25, 2025
f87e168
fix(new arch): change measure function to measure native view hierarc…
hannojg May 27, 2025
745c267
fix nullability issues with resolving RootView (#70)
hannojg May 28, 2025
c0d1f3c
fix: safely call getView
Flewp Aug 26, 2025
f50f161
[Android] On Android 12, using LinkedBlockingQueue for NativeAnimated…
Flewp Jun 9, 2025
c786be6
Memoise UIManagerConstants
Szymon20000 May 31, 2025
6097199
fix UIManagerModule.java
Szymon20000 Jun 23, 2025
3c566e1
Enable feature flag enableAccumulatedUpdatesInRawPropsAndroid (#78)
joemun Jun 25, 2025
d71f609
fix(android): enable 16KB page size for app by upgrading mmkv (#83)
hannojg Jul 15, 2025
fdbf16a
Enable feature flag disableMountItemReorderingAndroid
joemun Jul 17, 2025
c6fef21
fix(RuntimeScheduler): flush JS microtasks after work-loop to prevent…
SudoPlz Jul 22, 2025
55bc851
Make UIManager constants improvement work with bridge less (#87)
Szymon20000 Jul 29, 2025
2941159
fix(android): make ReactSurfaceView inheritable (#91)
hannojg Jul 30, 2025
6b5afc0
Maybe fix for stopSuface crash
Flewp Jul 30, 2025
5c9b458
fix: react host pass a custom function to create the surface view (#93)
hannojg Jul 30, 2025
ad45e86
Make saving blocking to avoid concurrent access Error (#94)
Szymon20000 Jul 31, 2025
d3f606b
Maybe fix for ClippingView
Flewp Aug 1, 2025
b7c743b
[Android] Maybe fix for ClippingView Pt 2
Flewp Aug 4, 2025
491af54
Avoid GC during the app start
Szymon20000 Aug 4, 2025
2ebf5ee
fix(android): fix crashes due to UIManager constants not resetting wh…
hannojg Aug 6, 2025
e2704cd
Ensure active touches are swept before accepting a child native gestu…
Abbondanzo Aug 4, 2025
ee4fc03
fix(andorid): add missing discord custom `preventClipping` prop (#99)
hannojg Aug 22, 2025
557f45f
Fix NdkConfiguratorUtils gradle import
Flewp Aug 26, 2025
0d63942
NdkConfiguratorUtils, using ApplicationAndroidComponentsExtension
Flewp Aug 26, 2025
9ed88ff
Removing deprecated ShadowNode::Shared usage
Flewp Aug 26, 2025
6d247c3
Two more ShadowNode::Shared deprecations
Flewp Aug 26, 2025
6adde05
Updating other callsites of DefaultReactHost.kt
Flewp Aug 26, 2025
f4073aa
Revert "Ensure active touches are swept before accepting a child nati…
Flewp Aug 26, 2025
1c14607
fix memory leak: Ensure active touches are swept before accepting a c…
Flewp Aug 26, 2025
6476f6e
Removing internal publication
Flewp Aug 26, 2025
8c7a9d6
More compilation fixes
Flewp Aug 27, 2025
5544c02
discord: add more shadow tree tree methods (#100)
hannojg Sep 1, 2025
3fa33fb
Bridgeless (#101)
hannojg Sep 11, 2025
65a6165
Improving TTI by forcing synchronous mount for first 5s
Szymon20000 Sep 17, 2025
6af7769
Clarify mountSynchronously parameter in UIManagerBinding
Szymon20000 Sep 18, 2025
fb6b3f7
[discord] add module and function info to HostFunction exception (#104)
joemun Sep 26, 2025
2d27dc2
Gradient Text Color Support
Flewp Oct 8, 2025
f8df2c2
Build issues
Flewp Oct 8, 2025
c5e410c
Discordify Version
Flewp Oct 8, 2025
f113f73
Updated version to 0.81.4-discord-2
Oct 8, 2025
17042cc
Remove internal from ReactSoftExceptionLogger
Flewp Oct 10, 2025
af456ba
Add missing initialization of DisplayMetricsHolder
skusnierz Oct 8, 2025
e09d4e8
fix(android): crashing onHostPause
Flewp Oct 10, 2025
a4f049c
Revert "discord: add more shadow tree tree methods (#100)"
Flewp Oct 14, 2025
c41d453
fix(android): fix for addView with views in view transition (#109)
hannojg Oct 13, 2025
f18295e
Explicit API mode for ReactSoftExceptionLogger
Flewp Oct 14, 2025
5d7ddd0
fix run not working
robhogan Jul 11, 2025
eae3f09
Updated version to 0.81.4-discord-3
Oct 14, 2025
e81f05b
Make CustomLineHeightSpan Public
Flewp Oct 15, 2025
aac7255
Strict public API for CustomLineHeightSpan
Flewp Oct 16, 2025
a530361
Updated version to 0.81.4-discord-4
Oct 17, 2025
567434e
discord: add more shadow tree tree methods (#100)
hannojg Sep 1, 2025
fce2949
[Discord] Make sure RN_SERIALIZABLE_STATE is ON, add debugging logs.
Flewp Oct 17, 2025
a3083ba
Updated version to 0.81.4-discord-5
Oct 17, 2025
f39c3f6
Only require Android Context for Fresco builder
Flewp Oct 18, 2025
c669edf
Updated version to 0.81.4-discord-6
Oct 18, 2025
e6261e8
Exposes folly config back to fabric components (#116)
pmick Nov 5, 2025
27d86bb
Updated version to 0.81.4-discord-7
Nov 7, 2025
9979b3e
Make shadowTreeMountPhase feature flag
Flewp Nov 10, 2025
85d8356
shadowTreeLockMountPhase impl
Flewp Nov 10, 2025
0dd0bdd
Make DefaultSoLoader public
Flewp Nov 10, 2025
5263748
Updated version to 0.81.4-discord-8
Nov 10, 2025
9797cd7
More kv-storage headers
Flewp Nov 10, 2025
dbc6c3f
Updated version to 0.81.4-discord-9
Nov 10, 2025
ed3e814
Add fb/glog_init.h to prefab
Flewp Nov 10, 2025
7efce00
Updated version to 0.81.4-discord-10
Nov 10, 2025
31f5aef
fix(android): crash concurrent access _registryByName (#117)
hannojg Nov 13, 2025
2e20497
Updated version to 0.81.4-discord-11
Nov 13, 2025
4e7f592
fix(android): fix deadlock in component registry
hannojg Nov 13, 2025
5873cd0
Updated version to 0.81.4-discord-12
Nov 13, 2025
11895bc
fix(android): fix ViewGroupManager addView crash if in transition
hannojg Nov 13, 2025
c0d3824
Updated version to 0.81.4-discord-13
Nov 14, 2025
6dffe0b
fix jest test (#119)
SzymczakJ Nov 17, 2025
a064c00
Updated version to 0.81.4-discord-14
Nov 17, 2025
0a9002e
add debug methods to reactviewgrop
hannojg Nov 18, 2025
7c9b862
Updated version to 0.81.4-discord-15
Nov 18, 2025
df3cd99
Fix ScrollView with `pagingEnabled` when using ThumbStick
kosmydel Nov 21, 2025
54a7721
Merge pull request #123 from discord/kosmydel/fix-thumbstick-scroll
kosmydel Nov 26, 2025
4169376
Updated version to 0.81.4-discord-16
Nov 26, 2025
247655e
reapply logs (#124)
hannojg Nov 28, 2025
57cc311
Updated version to 0.81.4-discord-17
Nov 28, 2025
30a0d91
dev: add debugging logs (#127)
hannojg Dec 1, 2025
b585c65
Updated version to 0.81.4-discord-18
Dec 1, 2025
e517688
[task] Setup the stroke effect (#122)
insacc Dec 1, 2025
eebaa21
always inclyde glog in MountingCoordinator.cpp
hannojg Dec 1, 2025
c34d8e4
Updated version to 0.81.4-discord-19
Dec 1, 2025
4b33ff9
always inclyde glog in MountingCoordinator.cpp
hannojg Dec 1, 2025
642d5e3
Updated version to 0.81.4-discord-20
Dec 1, 2025
10f82a3
add missing include
hannojg Dec 2, 2025
bf8c918
Updated version to 0.81.4-discord-21
Dec 2, 2025
8f42f81
Fix text shadow cutoff on android (#126)
insacc Dec 9, 2025
1c02d8e
Updated version to 0.81.4-discord-22
Dec 9, 2025
9e56b47
scrollview: add option to tag event while drawing (#128)
hannojg Dec 10, 2025
3fc633c
Updated version to 0.81.4-discord-23
Dec 10, 2025
602448d
apply: https://github.com/facebook/react-native/pull/54259
hannojg Dec 11, 2025
9c33428
remove shadowTreeLockMountPhase experiment
hannojg Dec 11, 2025
1405f16
pod install RN tester
hannojg Dec 11, 2025
e3edb38
add featureflag runtimeCrashUiThreadUtils to enable for certain user …
hannojg Dec 11, 2025
8ae4c63
avoid printing view hierarchy in prod
hannojg Dec 11, 2025
2f1be1d
Updated version to 0.81.4-discord-24
Dec 11, 2025
8deb743
remove excessive logs
hannojg Dec 12, 2025
583d806
Updated version to 0.81.4-discord-25
Dec 12, 2025
a80c64a
fix(android): handle transitioning views (#130)
hannojg Dec 18, 2025
236b11b
Revert "fix(android): handle transitioning views (#130)" (#134)
hannojg Dec 18, 2025
1f95ec4
fix(android): handle transitioning views (#135)
hannojg Dec 18, 2025
a6425fa
Updated version to 0.81.4-discord-26
Dec 18, 2025
e3f6041
Implemented simple integer gradientWidth param.
andrewkunkel Dec 18, 2025
51e931a
Fixed issue with NaN handling.
andrewkunkel Dec 19, 2025
f1936b4
deactivate scroll view as we overwrite it
hannojg Dec 19, 2025
42f956a
Updated version to 0.81.4-discord-27
Dec 19, 2025
f0f6e5d
Fixing unintended changes.
andrewkunkel Dec 19, 2025
6ddac4c
Fix ellipsis issue
insacc Dec 20, 2025
8f5e09b
Remove no longer needed color prop
insacc Dec 23, 2025
a5d267d
fix(android): fix all delete operations were queued instead of only s…
hannojg Dec 30, 2025
f5860dd
Updated version to 0.81.4-discord-28
Dec 30, 2025
d8180a2
Merge remote-tracking branch 'origin/0.81.4-discord' into akunkel/gra…
andrewkunkel Jan 5, 2026
39e8dde
Merge pull request #137 from discord/task/stroke-shadow-fix-ellipsis
andrewkunkel Jan 5, 2026
cd37afd
Merge remote-tracking branch 'origin/0.81.4-discord' into akunkel/gra…
andrewkunkel Jan 5, 2026
b78771e
Implemented gradientWidth text attribute.
andrewkunkel Jan 5, 2026
fb53c3b
Updated version to 0.81.4-discord-29
Jan 5, 2026
6842aa8
Testing gradient changes.
andrewkunkel Jan 6, 2026
f2fea6f
Added missing references to gradientWidth.
andrewkunkel Jan 6, 2026
4f9717f
Reverting hard-coded vlaues.
andrewkunkel Jan 6, 2026
d964d1a
Added missing enum.
andrewkunkel Jan 6, 2026
1ccd812
Added missing references to the gradient_width text attribute from #136
andrewkunkel Jan 7, 2026
793f789
Updated version to 0.81.4-discord-30
Jan 7, 2026
6839cc1
Added a gradientMode property to the Text component, with a new 'clam…
andrewkunkel Jan 9, 2026
20ffc94
Implementing a `gradientMode` <Text> property.
andrewkunkel Jan 13, 2026
a5e0a7b
Updated version to 0.81.4-discord-31
Jan 13, 2026
e5836ef
feat: android pull model (#142)
hannojg Jan 14, 2026
981d732
Updated version to 0.81.4-discord-32
Jan 15, 2026
4236c90
Improve codegen to add getDebugProps to components (#53135)
cipolleschi Aug 8, 2025
941e946
Add optional props generation support (#54724)
Dec 11, 2025
d914abe
Updated version to 0.81.4-discord-33
Jan 22, 2026
d7c42ff
Use correct base class for NativeReactNativeFeatureFlags (#54046)
christophpurrer Oct 7, 2025
e6f665a
Updated version to 0.81.4-discord-34
Jan 22, 2026
a6abd96
fix: disable recycling in scrollview
WoLewicki Jan 26, 2026
fdba53b
Merge pull request #145 from discord/wolewicki/disable-scrollview-rec…
WoLewicki Jan 26, 2026
4b3bf20
Updated version to 0.81.4-discord-35
Jan 26, 2026
5382a39
[Android] Fix crash when getText() returns String instead of Spanned …
insacc Jan 26, 2026
3ebe9ca
Updated version to 0.81.4-discord-36
Jan 27, 2026
cf7d02f
changes & fixes for enabling props 2.0 + rendering by pull model (#143)
hannojg Jan 29, 2026
18143f7
Updated version to 0.81.4-discord-37
Jan 29, 2026
6f68155
add useSilenceErrorSMMViewNotFound feature flag
hannojg Jan 30, 2026
fc2f925
Updated version to 0.81.4-discord-38
Jan 30, 2026
651efb4
fix(android): fix default values for multiple image sources that are …
hannojg Feb 3, 2026
0b55ab3
Updated version to 0.81.4-discord-39
Feb 3, 2026
6b0bfef
Fix double height increase on ios for text strokes (#144)
insacc Feb 6, 2026
0b3c220
Updated version to 0.81.4-discord-40
Feb 6, 2026
35fe6c0
fix(android): fix fadeDuration=0 not working w/ props 2.0 diffing
hannojg Feb 11, 2026
4118aef
Fix: [iOS] Correctly mark inline attachments as clipped when in trunc…
delekta Feb 11, 2026
5f757ae
Updated version to 0.81.4-discord-41
Feb 11, 2026
632ca9f
fix(android): props 2.0 isForceCached not passed
hannojg Feb 11, 2026
683aa66
Updated version to 0.81.4-discord-42
Feb 11, 2026
54c0f24
Merge pull request #151 from discord/delekta/fix-misrendered-emojis-i…
delekta Feb 12, 2026
353e3ac
Updated version to 0.81.4-discord-43
Feb 12, 2026
e1c922d
fix(android): props 2.0 image tintColor=transparent broken
hannojg Feb 12, 2026
6e1200f
Updated version to 0.81.4-discord-44
Feb 12, 2026
ba5c5af
Hacky patch for new arch opt builds (#148)
pmick Feb 12, 2026
3758b67
feat(react-image): add a hook to customize ImageRequestBuilder in Rea…
SudoPlz Feb 16, 2026
f7158df
Merge pull request #152 from SudoPlz/sudoplz/fresco-cache-in-rn-image…
SudoPlz Feb 16, 2026
f67613d
Updated version to 0.81.4-discord-45
Feb 16, 2026
4bd2320
fix(android): implement `preventClipping` for props 2.0
hannojg Mar 2, 2026
c0c9f84
Updated version to 0.81.4-discord-46
Mar 2, 2026
418335e
Fix serialization for vector of primitive type (#53982)
Sep 30, 2025
ba21536
Updated version to 0.81.4-discord-47
Mar 4, 2026
3c29091
fix(iOS)(Fabric) inline view alignment inside of a Text with line hei…
intergalacticspacehighway Aug 20, 2025
6ec25f1
Merge pull request #153 from discord/delekta/fix-text-emojis-vertical…
delekta Mar 4, 2026
d93b568
Updated version to 0.81.4-discord-48
Mar 4, 2026
8f8ebae
Revert "Avoid GC during the app start"
SudoPlz Mar 4, 2026
cef99b5
Merge pull request #155 from SudoPlz/sudoplz/revert-pr96-gc
SudoPlz Mar 4, 2026
77512f2
Updated version to 0.81.4-discord-49
Mar 4, 2026
86fabd0
Add Hermes occupancy target experiment plumbing
SudoPlz Mar 5, 2026
200f5e6
Merge pull request #156 from discord/sudoplz/occupancy-target-experiment
SudoPlz Mar 5, 2026
9fdd5b0
Updated version to 0.81.4-discord-50
Mar 5, 2026
34351c2
fix(android): crash on resetting borderStyle with props 2.0
hannojg Mar 26, 2026
d5fd5c5
Updated version to 0.81.4-discord-51
Mar 26, 2026
6a631e9
[Discord] Remove foojay-resolver
Flewp Mar 27, 2026
024bc3e
[Discord] Remove foojay-resolver-convention
Flewp Mar 27, 2026
fdd207d
Updated version to 0.81.4-discord-52
Mar 27, 2026
a58e045
fix(android): fix bad_optional_access when Index changes to undefined…
hannojg Mar 31, 2026
9cf794f
Updated version to 0.81.4-discord-53
Mar 31, 2026
a97d729
add workaround for modal screens animating their children (#158)
SzymczakJ Mar 31, 2026
f9bc859
Updated version to 0.81.4-discord-54
Mar 31, 2026
b4ac39f
[fix] set background correctly in setFeedbackUnderlay
bmarimon Apr 10, 2026
b5dc905
Revert "add workaround for modal screens animating their children (#1…
SzymczakJ Apr 13, 2026
c6573fe
Updated version to 0.81.4-discord-55
Apr 13, 2026
63f2add
[fix] set background correctly in setFeedbackUnderlay
bmarimon Apr 13, 2026
e291c1e
Updated version to 0.81.4-discord-56
Apr 13, 2026
4b1db74
[fix] Add multi-activity awareness to ReactHostImpl.onHostDestroy (#161)
joemun Apr 14, 2026
c2fe555
Updated version to 0.81.4-discord-57
Apr 14, 2026
764f9be
Adding logs to Scheduler.cpp
delekta Apr 16, 2026
9581197
Update guard
delekta Apr 17, 2026
5783fb2
feat: implement ios part of measureOnUI
WoLewicki Apr 17, 2026
510cd9e
fix: review
WoLewicki Apr 17, 2026
30e3694
Merge pull request #162 from discord/delekta/add-logs-for-scheduler
delekta Apr 17, 2026
2c0a7e7
fix: import
WoLewicki Apr 17, 2026
26d6362
Merge pull request #163 from discord/wolewicki/measure-native-views-i…
WoLewicki Apr 17, 2026
fa32bea
Updated version to 0.81.4-discord-58
Apr 17, 2026
0a7bed5
Inverse hermes debugger flag (#164)
pmick Apr 21, 2026
1e66939
Updated version to 0.81.4-discord-59
Apr 21, 2026
fc74139
Fixup typing by not passing int64 (#167)
pmick Apr 23, 2026
2eb8b70
Updated version to 0.81.4-discord-60
Apr 23, 2026
f01c9d8
Clear RuntimeScheduler rendering updates on Scheduler destruction (#169)
delekta Apr 27, 2026
b1694d5
Updated version to 0.81.4-discord-61
Apr 27, 2026
b661749
fix(iOS): fix issues with keyboard on autoFocus=true (#170)
hannojg Apr 28, 2026
4320a37
Updated version to 0.81.4-discord-62
Apr 28, 2026
cfbb718
Fix italic font style on new arch ios (#171)
delekta Apr 28, 2026
f9f7133
Updated version to 0.81.4-discord-63
Apr 28, 2026
b03e255
Add useTraitHiddenOnIOS feature flag
SudoPlz Apr 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/actions/build-hermes-macos/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ runs:
steps:
- name: Setup xcode
uses: ./.github/actions/setup-xcode
- name: Setup node.js
uses: ./.github/actions/setup-node
- name: Restore Hermes workspace
uses: ./.github/actions/restore-hermes-workspace
- name: Restore Cached Artifacts
Expand Down Expand Up @@ -45,6 +43,8 @@ runs:
echo "ARTIFACTS_EXIST=true" >> $GITHUB_ENV
echo "ARTIFACTS_EXIST=true" >> $GITHUB_OUTPUT
fi
- name: Setup node.js
uses: ./.github/actions/setup-node
- name: Yarn- Install Dependencies
if: ${{ steps.check_if_apple_artifacts_are_there.outputs.ARTIFACTS_EXIST != 'true' }}
uses: ./.github/actions/yarn-install
Expand Down
16 changes: 8 additions & 8 deletions .github/actions/build-hermesc-windows/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,23 @@ runs:
uses: actions/download-artifact@v4
with:
name: hermes-workspace
path: 'D:\tmp\hermes'
path: 'C:\tmp\hermes'
- name: Set up workspace
shell: powershell
run: |
mkdir -p D:\tmp\hermes\osx-bin
mkdir -p C:\tmp\hermes\osx-bin
mkdir -p .\packages\react-native\sdks\hermes
cp -r -Force D:\tmp\hermes\hermes\* .\packages\react-native\sdks\hermes\.
cp -r -Force C:\tmp\hermes\hermes\* .\packages\react-native\sdks\hermes\.
cp -r -Force .\packages\react-native\sdks\hermes-engine\utils\* .\packages\react-native\sdks\hermes\.
- name: Windows cache
uses: actions/cache@v4
with:
key: v3-hermes-${{ github.job }}-windows-${{ inputs.hermes-version }}-${{ inputs.react-native-version }}
path: |
D:\tmp\hermes\win64-bin\
D:\tmp\hermes\hermes\icu\
D:\tmp\hermes\hermes\deps\
D:\tmp\hermes\hermes\build_release\
C:\tmp\hermes\win64-bin\
C:\tmp\hermes\hermes\icu\
C:\tmp\hermes\hermes\deps\
C:\tmp\hermes\hermes\build_release\
- name: setup-msbuild
uses: microsoft/setup-msbuild@v1.3.2
- name: Set up workspace
Expand Down Expand Up @@ -83,4 +83,4 @@ runs:
uses: actions/upload-artifact@v4.3.4
with:
name: hermes-win64-bin
path: D:\tmp\hermes\win64-bin\
path: C:\tmp\hermes\win64-bin\
4 changes: 2 additions & 2 deletions .github/actions/build-npm-package/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,12 +116,12 @@ runs:
- name: Print Artifacts Directory
shell: bash
run: ls -lR ./packages/react-native/ReactAndroid/external-artifacts/artifacts/
- name: Setup node.js
uses: ./.github/actions/setup-node
- name: Setup gradle
uses: ./.github/actions/setup-gradle
with:
cache-encryption-key: ${{ inputs.gradle-cache-encryption-key }}
- name: Setup node.js
uses: ./.github/actions/setup-node
- name: Install dependencies
uses: ./.github/actions/yarn-install
- name: Build packages
Expand Down
2 changes: 2 additions & 0 deletions .github/actions/create-release/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ inputs:
runs:
using: composite
steps:
- name: Setup node.js
uses: ./.github/actions/setup-node
- name: Yarn install
uses: ./.github/actions/yarn-install
- name: Configure Git
Expand Down
2 changes: 2 additions & 0 deletions .github/actions/maestro-ios/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ runs:
with:
java-version: '17'
distribution: 'zulu'
- name: Setup node.js
uses: ./.github/actions/setup-node
- name: Run yarn install
uses: ./.github/actions/yarn-install
- name: Start Metro in Debug
Expand Down
5 changes: 2 additions & 3 deletions .github/actions/prepare-hermes-workspace/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@ outputs:
runs:
using: composite
steps:
- name: Setup node.js
uses: ./.github/actions/setup-node

- name: Setup hermes version
shell: bash
id: hermes-version
Expand Down Expand Up @@ -67,6 +64,8 @@ runs:
echo "HERMES_CACHED=true" >> "$GITHUB_OUTPUT"
fi

- name: Setup node.js
uses: ./.github/actions/setup-node
- name: Yarn- Install Dependencies
if: ${{ steps.meaningful-cache.outputs.HERMES_CACHED != 'true' }}
uses: ./.github/actions/yarn-install
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/setup-node/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ inputs:
node-version:
description: 'The node.js version to use'
required: false
default: '22'
default: '22.14.0'
runs:
using: "composite"
steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/test-ios-helloworld/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ runs:
uses: ./.github/actions/setup-xcode
- name: Setup node.js
uses: ./.github/actions/setup-node
- name: Run yarn install
uses: ./.github/actions/yarn-install
- name: Create Hermes folder
shell: bash
run: mkdir -p "$HERMES_WS_DIR"
Expand All @@ -34,8 +36,6 @@ runs:
- name: Print Downloaded hermes
shell: bash
run: ls -lR "$HERMES_WS_DIR"
- name: Run yarn
uses: ./.github/actions/yarn-install
- name: Setup ruby
uses: ruby/setup-ruby@v1
with:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ describe('#verifyArtifactsAreOnMaven', () => {

expect(mockSleep).toHaveBeenCalledTimes(1);
expect(mockFetch).toHaveBeenCalledWith(
'https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/0.78.1',
'https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/0.78.1/react-native-artifacts-0.78.1.pom',
);
});

Expand All @@ -55,7 +55,7 @@ describe('#verifyArtifactsAreOnMaven', () => {

expect(mockSleep).toHaveBeenCalledTimes(1);
expect(mockFetch).toHaveBeenCalledWith(
'https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/0.78.1',
'https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/0.78.1/react-native-artifacts-0.78.1.pom',
);
});

Expand All @@ -67,7 +67,7 @@ describe('#verifyArtifactsAreOnMaven', () => {

expect(mockSleep).toHaveBeenCalledTimes(0);
expect(mockFetch).toHaveBeenCalledWith(
'https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/0.78.1',
'https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/0.78.1/react-native-artifacts-0.78.1.pom',
);
});

Expand All @@ -81,7 +81,7 @@ describe('#verifyArtifactsAreOnMaven', () => {
expect(mockSleep).toHaveBeenCalledTimes(90);
expect(mockExit).toHaveBeenCalledWith(1);
expect(mockFetch).toHaveBeenCalledWith(
'https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/0.78.1',
'https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/0.78.1/react-native-artifacts-0.78.1.pom',
);
});
});
3 changes: 2 additions & 1 deletion .github/workflow-scripts/verifyArtifactsAreOnMaven.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,14 @@ const SLEEP_S = 60; // 1 minute
const MAX_RETRIES = 90; // 90 attempts. Waiting between attempt: 1 min. Total time: 90 min.
const ARTIFACT_URL =
'https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/';
const ARTIFACT_NAME = 'react-native-artifacts-';

async function verifyArtifactsAreOnMaven(version, retries = MAX_RETRIES) {
if (version.startsWith('v')) {
version = version.substring(1);
}

const artifactUrl = `${ARTIFACT_URL}${version}`;
const artifactUrl = `${ARTIFACT_URL}${version}/${ARTIFACT_NAME}${version}.pom`;
for (let currentAttempt = 1; currentAttempt <= retries; currentAttempt++) {
const response = await fetch(artifactUrl);

Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/bump-podfile-lock.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ jobs:
run: |
git config --local user.email "bot@reactnative.dev"
git config --local user.name "React Native Bot"
- name: Setup xcode
uses: ./.github/actions/setup-xcode
with:
xcode-version: '16.2.0'
- name: Extract branch name
run: |
TAG="${{ github.ref_name }}";
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,9 @@ jobs:
runs-on: windows-2025
needs: prepare_hermes_workspace
env:
HERMES_WS_DIR: 'D:\tmp\hermes'
HERMES_TARBALL_ARTIFACTS_DIR: 'D:\tmp\hermes\hermes-runtime-darwin'
HERMES_OSXBIN_ARTIFACTS_DIR: 'D:\tmp\hermes\osx-bin'
HERMES_WS_DIR: 'C:\tmp\hermes'
HERMES_TARBALL_ARTIFACTS_DIR: 'C:\tmp\hermes\hermes-runtime-darwin'
HERMES_OSXBIN_ARTIFACTS_DIR: 'C:\tmp\hermes\osx-bin'
ICU_URL: "https://github.com/unicode-org/icu/releases/download/release-64-2/icu4c-64_2-Win64-MSVC2017.zip"
MSBUILD_DIR: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin'
CMAKE_DIR: 'C:\Program Files\CMake\bin'
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/prebuild-ios-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
id: restore-ios-slice
uses: actions/cache/restore@v4
with:
key: v3-ios-core-${{ matrix.slice }}-${{ matrix.flavor }}-${{ hashFiles('packages/react-native/Package.swift') }}-${{ hashFiles('packages/react-native/scripts/ios-prebuild/setup.js') }}
key: v3-ios-core-${{ matrix.slice }}-${{ matrix.flavor }}-${{ hashFiles('packages/react-native/Package.swift', 'packages/react-native/scripts/ios-prebuild/*.js', 'packages/react-native/scripts/ios-prebuild.js', 'packages/react-native/React/**/*', 'packages/react-native/ReactCommon/**/*', 'packages/react-native/Libraries/**/*') }}
path: packages/react-native/
- name: Setup node.js
if: steps.restore-ios-slice.outputs.cache-hit != 'true'
Expand Down Expand Up @@ -83,7 +83,7 @@ jobs:
# Move the XCFramework in the destination directory
mv /tmp/third-party/packages/react-native/third-party/ReactNativeDependencies.xcframework packages/react-native/third-party/ReactNativeDependencies.xcframework

VERSION=$(jq -r '.version' package.json)
VERSION=$(jq -r '.version' packages/react-native/package.json)
echo "$VERSION-${{matrix.flavor}}" > "packages/react-native/third-party/version.txt"
cat "packages/react-native/third-party/version.txt"
# Check destination directory
Expand Down Expand Up @@ -117,7 +117,7 @@ jobs:
uses: actions/cache/save@v4
if: ${{ github.ref == 'refs/heads/main' }} # To avoid that the cache explode
with:
key: v3-ios-core-${{ matrix.slice }}-${{ matrix.flavor }}-${{ hashFiles('packages/react-native/Package.swift') }}-${{ hashFiles('packages/react-native/scripts/ios-prebuild/setup.js') }}
key: v3-ios-core-${{ matrix.slice }}-${{ matrix.flavor }}-${{ hashFiles('packages/react-native/Package.swift', 'packages/react-native/scripts/ios-prebuild/*.js', 'packages/react-native/scripts/ios-prebuild.js', 'packages/react-native/React/**/*', 'packages/react-native/ReactCommon/**/*', 'packages/react-native/Libraries/**/*') }}
path: |
packages/react-native/.build/output/spm/${{ matrix.flavor }}/Build/Products
packages/react-native/.build/headers
Expand All @@ -140,7 +140,7 @@ jobs:
uses: actions/cache/restore@v4
with:
path: packages/react-native/.build/output/xcframeworks
key: v2-ios-core-xcframework-${{ matrix.flavor }}-${{ hashFiles('packages/react-native/Package.swift') }}-${{ hashFiles('packages/react-native/scripts/ios-prebuild/setup.js') }}
key: v2-ios-core-xcframework-${{ matrix.flavor }}-${{ hashFiles('packages/react-native/Package.swift', 'packages/react-native/scripts/ios-prebuild/*.js', 'packages/react-native/scripts/ios-prebuild.js', 'packages/react-native/React/**/*', 'packages/react-native/ReactCommon/**/*', 'packages/react-native/Libraries/**/*') }}
- name: Setup node.js
if: steps.restore-ios-xcframework.outputs.cache-hit != 'true'
uses: ./.github/actions/setup-node
Expand Down Expand Up @@ -209,4 +209,4 @@ jobs:
path: |
packages/react-native/.build/output/xcframeworks/ReactCore${{matrix.flavor}}.xcframework.tar.gz
packages/react-native/.build/output/xcframeworks/ReactCore${{matrix.flavor}}.framework.dSYM.tar.gz
key: v2-ios-core-xcframework-${{ matrix.flavor }}-${{ hashFiles('packages/react-native/Package.swift') }}-${{ hashFiles('packages/react-native/scripts/ios-prebuild/setup.js') }}
key: v2-ios-core-xcframework-${{ matrix.flavor }}-${{ hashFiles('packages/react-native/Package.swift', 'packages/react-native/scripts/ios-prebuild/*.js', 'packages/react-native/scripts/ios-prebuild.js', 'packages/react-native/React/**/*', 'packages/react-native/ReactCommon/**/*', 'packages/react-native/Libraries/**/*') }}
5 changes: 3 additions & 2 deletions .github/workflows/prebuild-ios-dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -179,8 +179,9 @@ jobs:
- name: Compress and Rename dSYM
if: steps.restore-xcframework.outputs.cache-hit != 'true'
run: |
tar -cz -f packages/react-native/third-party/Symbols/ReactNativeDependencies${{ matrix.flavor }}.framework.dSYM.tar.gz \
packages/react-native/third-party/Symbols/ReactNativeDependencies.framework.dSYM
cd packages/react-native/third-party/Symbols/
tar -cz -f ../ReactNativeDependencies${{ matrix.flavor }}.framework.dSYM.tar.gz .
mv ../ReactNativeDependencies${{ matrix.flavor }}.framework.dSYM.tar.gz ./ReactNativeDependencies${{ matrix.flavor }}.framework.dSYM.tar.gz
- name: Upload XCFramework Artifact
uses: actions/upload-artifact@v4
with:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/publish-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,9 +125,9 @@ jobs:
runs-on: windows-2025
needs: prepare_hermes_workspace
env:
HERMES_WS_DIR: 'D:\tmp\hermes'
HERMES_TARBALL_ARTIFACTS_DIR: 'D:\tmp\hermes\hermes-runtime-darwin'
HERMES_OSXBIN_ARTIFACTS_DIR: 'D:\tmp\hermes\osx-bin'
HERMES_WS_DIR: 'C:\tmp\hermes'
HERMES_TARBALL_ARTIFACTS_DIR: 'C:\tmp\hermes\hermes-runtime-darwin'
HERMES_OSXBIN_ARTIFACTS_DIR: 'C:\tmp\hermes\osx-bin'
ICU_URL: "https://github.com/unicode-org/icu/releases/download/release-64-2/icu4c-64_2-Win64-MSVC2017.zip"
MSBUILD_DIR: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin'
CMAKE_DIR: 'C:\Program Files\CMake\bin'
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/test-all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -392,9 +392,9 @@ jobs:
runs-on: windows-2025
needs: prepare_hermes_workspace
env:
HERMES_WS_DIR: 'D:\tmp\hermes'
HERMES_TARBALL_ARTIFACTS_DIR: 'D:\tmp\hermes\hermes-runtime-darwin'
HERMES_OSXBIN_ARTIFACTS_DIR: 'D:\tmp\hermes\osx-bin'
HERMES_WS_DIR: 'C:\tmp\hermes'
HERMES_TARBALL_ARTIFACTS_DIR: 'C:\tmp\hermes\hermes-runtime-darwin'
HERMES_OSXBIN_ARTIFACTS_DIR: 'C:\tmp\hermes\osx-bin'
ICU_URL: "https://github.com/unicode-org/icu/releases/download/release-64-2/icu4c-64_2-Win64-MSVC2017.zip"
MSBUILD_DIR: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin'
CMAKE_DIR: 'C:\Program Files\CMake\bin'
Expand Down Expand Up @@ -593,7 +593,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node-version: ["24", "22"]
node-version: ["24.4.1", "22", "20.19.4"]
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

plugins {
alias(libs.plugins.nexus.publish)
alias(libs.plugins.android.library) apply false
id(libs.plugins.android.library.get().pluginId) version libs.plugins.android.library.get().version.requiredVersion apply false
alias(libs.plugins.android.application) apply false
alias(libs.plugins.download) apply false
alias(libs.plugins.kotlin.android) apply false
Expand Down
66 changes: 66 additions & 0 deletions discord/bump_version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#!/usr/bin/env python3

from pathlib import Path
from typing import List
import re
import subprocess
import sys


def check_output(args: List[str]) -> str:
return subprocess.check_output(args).decode('utf-8').strip()


VERSION_MATCHER = re.compile(r'^(.*)-discord-(\d*)$')

status = check_output(['git', 'status', '--porcelain'])
if status != '':
print('Detected changed files, please remove or commit them first.\n')
print(status)
sys.exit(1)


root = check_output(['git', 'rev-parse', '--show-toplevel'])
android_path = Path(root) / "ReactAndroid"
props_path = android_path / "gradle.properties"

version = None
property_lines = [line.strip() for line in props_path.read_text().splitlines()]
for line in property_lines:
if line.startswith("VERSION_NAME="):
version = line.split('=')[1]

assert version, "unable to find current version"

matches = VERSION_MATCHER.match(version)
assert matches, f'{version} did not match expected format, X.Y.Z-discord-N'

upstream = matches[1]
local = int(matches[2])

new_version = f'{upstream}-discord-{local + 1}'

with open(props_path, 'w') as f:
for line in property_lines:
if line.startswith("VERSION_NAME="):
f.write(f'VERSION_NAME={new_version}\n')
else:
f.write(f'{line}\n')


branch_name = check_output(['git', 'symbolic-ref', '--short', 'HEAD'])

subprocess.check_call(
['../gradlew', 'publishReleasePublicationToDiscordRepository'],
cwd=android_path.absolute()
)

subprocess.check_call(['git', 'add', props_path.absolute()])
subprocess.check_call(['git', 'commit', '-m', f'version bump: {new_version}'])
subprocess.check_call(['git', 'push', 'origin', branch_name])

new_commit = check_output(['git', 'rev-parse', 'HEAD'])


print(f'NEW TAGGED VERSION: {new_version}')
print(f'NEW COMMIT: {new_commit}')
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Loading
Loading