Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ PRs still in flight. Every row has a patch in `packages/` you can drop into your

| Package | Version | Fix | PR |
| :--- | :--- | :--- | :--- |
| [`react-native`](packages/react-native/) | `0.85.3` | Set `:always_out_of_date => "1"` on `hermes-engine.podspec`'s `[Hermes] Replace Hermes for the right configuration, if needed` script_phase. The phase had no declared outputs (overwrites the prebuilt Hermes binary in place per `$CONFIGURATION`), so Xcode 14+ was warning about it on every clean build of every project on the default prebuilt-release-tarball Hermes path. Matches the family pattern from `React-Core-prebuilt.podspec` ([#52133](https://github.com/facebook/react-native/pull/52133)) and `ReactNativeDependencies.podspec` ([#49812](https://github.com/facebook/react-native/pull/49812)). | [facebook/react-native#56912](https://github.com/facebook/react-native/pull/56912) |
| [`expo`](packages/expo/) | n/a | Close the fork-safety sweep started by [#45782](https://github.com/expo/expo/pull/45782) and [#45859](https://github.com/expo/expo/pull/45859). Gate 15 more workflows on `github.repository == 'expo/expo'` so fork CI stops red-checking on nightly jobs against org-published artifacts, hourly issue maintenance crons, the GCP publish path in `ios-prebuild-external-xcframeworks`, and Slack-notify steps that reference org-only webhooks. Covers `test-react-native-nightly`, `test-suite-nightly`, `lock`, `issue-stale`, `cli`, `create-expo-app`, `create-expo-module`, `fingerprint`, `sdk`, `ios-static-frameworks`, `ios-prebuild-external-xcframeworks`, `bare-diffs`, `native-component-list`, `test-suite`, `test-suite-macos`. Drops a redundant step-level repo check in `development-client-latest-e2e`. | [expo/expo#46050](https://github.com/expo/expo/pull/46050) |
| [`bun`](packages/oven-sh/bun/) | `1.3.14` | Drop the order-dependent peer-dep early-match block from `get_or_put_resolved_package` so `bun.lock` stops varying run to run. The block bound peers to whichever same-name resolution `package_index` held first, and `package_index` fills in thread-pool-completion order. Dedup and the "incorrect peer dependency" warning move into `Tree::hoist_dependency` where placement is deterministic. Rust port of Dylan's [#29804](https://github.com/oven-sh/bun/pull/29804). | [oven-sh/bun#30855](https://github.com/oven-sh/bun/pull/30855) |
| [`@react-native/babel-preset`](packages/@react-native/babel-preset/) | `0.85.3` | Three Babel plugins that rewrite source patterns Hermes V1 mishandles: `async ({a}) =>` (await resolves with `undefined` while the body keeps running), `class` inside `finally` (IR-cache contamination), and `super.x` in object-accessor identifier keys (segfaults at IR generation). Port of [@kitten](https://github.com/kitten)'s plugins from `babel-preset-expo` ([expo/expo#45601](https://github.com/expo/expo/pull/45601)) so bare RN consumers escape the bugs without `babel-preset-expo`. Root cause: [facebook/hermes#1761](https://github.com/facebook/hermes/issues/1761). | [facebook/react-native#56816](https://github.com/facebook/react-native/pull/56816) |
Expand Down
30 changes: 30 additions & 0 deletions packages/react-native/bun/react-native@0.85.3-pr56912.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
diff --git a/sdks/hermes-engine/hermes-engine.podspec b/sdks/hermes-engine/hermes-engine.podspec
index 6ef12a1f68a..96c9e53d6fd 100644
--- a/sdks/hermes-engine/hermes-engine.podspec
+++ b/sdks/hermes-engine/hermes-engine.podspec
@@ -83,7 +83,7 @@ Pod::Spec.new do |spec|
# We ignore this if we provide a specific tarball: the assumption here is that if you are providing a tarball, is because you want to
# test something specific for that tarball.
if source_type == HermesEngineSourceType::DOWNLOAD_PREBUILD_RELEASE_TARBALL
- spec.script_phase = {
+ script_phase = {
:name => "[Hermes] Replace Hermes for the right configuration, if needed",
:execution_position => :before_compile,
:script => <<-EOS
@@ -97,6 +97,15 @@ Pod::Spec.new do |spec|
"$NODE_BINARY" "$REACT_NATIVE_PATH/sdks/hermes-engine/utils/replace_hermes_version.js" -c "$CONFIG" -r "#{version}" -p "$PODS_ROOT"
EOS
}
+
+
+ # :always_out_of_date is only available in CocoaPods 1.13.0 and later
+ if Gem::Version.new(Pod::VERSION) >= Gem::Version.new('1.13.0')
+ # always run the script without warning
+ script_phase[:always_out_of_date] = "1"
+ end
+
+ spec.script_phase = script_phase
end

elsif HermesEngineSourceType::isFromSource(source_type) then

30 changes: 30 additions & 0 deletions packages/react-native/npm/react-native+0.85.3-pr56912.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
diff --git a/node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec b/node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec
index 6ef12a1f68a..96c9e53d6fd 100644
--- a/node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec
+++ b/node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec
@@ -83,7 +83,7 @@ Pod::Spec.new do |spec|
# We ignore this if we provide a specific tarball: the assumption here is that if you are providing a tarball, is because you want to
# test something specific for that tarball.
if source_type == HermesEngineSourceType::DOWNLOAD_PREBUILD_RELEASE_TARBALL
- spec.script_phase = {
+ script_phase = {
:name => "[Hermes] Replace Hermes for the right configuration, if needed",
:execution_position => :before_compile,
:script => <<-EOS
@@ -97,6 +97,15 @@ Pod::Spec.new do |spec|
"$NODE_BINARY" "$REACT_NATIVE_PATH/sdks/hermes-engine/utils/replace_hermes_version.js" -c "$CONFIG" -r "#{version}" -p "$PODS_ROOT"
EOS
}
+
+
+ # :always_out_of_date is only available in CocoaPods 1.13.0 and later
+ if Gem::Version.new(Pod::VERSION) >= Gem::Version.new('1.13.0')
+ # always run the script without warning
+ script_phase[:always_out_of_date] = "1"
+ end
+
+ spec.script_phase = script_phase
end

elsif HermesEngineSourceType::isFromSource(source_type) then

30 changes: 30 additions & 0 deletions packages/react-native/pnpm/react-native@0.85.3-pr56912.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
diff --git a/sdks/hermes-engine/hermes-engine.podspec b/sdks/hermes-engine/hermes-engine.podspec
index 6ef12a1f68a..96c9e53d6fd 100644
--- a/sdks/hermes-engine/hermes-engine.podspec
+++ b/sdks/hermes-engine/hermes-engine.podspec
@@ -83,7 +83,7 @@ Pod::Spec.new do |spec|
# We ignore this if we provide a specific tarball: the assumption here is that if you are providing a tarball, is because you want to
# test something specific for that tarball.
if source_type == HermesEngineSourceType::DOWNLOAD_PREBUILD_RELEASE_TARBALL
- spec.script_phase = {
+ script_phase = {
:name => "[Hermes] Replace Hermes for the right configuration, if needed",
:execution_position => :before_compile,
:script => <<-EOS
@@ -97,6 +97,15 @@ Pod::Spec.new do |spec|
"$NODE_BINARY" "$REACT_NATIVE_PATH/sdks/hermes-engine/utils/replace_hermes_version.js" -c "$CONFIG" -r "#{version}" -p "$PODS_ROOT"
EOS
}
+
+
+ # :always_out_of_date is only available in CocoaPods 1.13.0 and later
+ if Gem::Version.new(Pod::VERSION) >= Gem::Version.new('1.13.0')
+ # always run the script without warning
+ script_phase[:always_out_of_date] = "1"
+ end
+
+ spec.script_phase = script_phase
end

elsif HermesEngineSourceType::isFromSource(source_type) then