-
Notifications
You must be signed in to change notification settings - Fork 24.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Yoga.podspec has unstable checksum #43220
Comments
I applied the following patch locally (with patch-package), and it seems to have made things more stable for me (with a new checksum diff --git a/node_modules/react-native/ReactCommon/yoga/Yoga.podspec b/node_modules/react-native/ReactCommon/yoga/Yoga.podspec
index 2288fbc..61bd492 100644
--- a/node_modules/react-native/ReactCommon/yoga/Yoga.podspec
+++ b/node_modules/react-native/ReactCommon/yoga/Yoga.podspec
@@ -59,6 +59,6 @@ Pod::Spec.new do |spec|
# Fabric must be able to access private headers (which should not be included in the umbrella header)
all_header_files = 'yoga/**/*.h'
all_header_files = File.join('ReactCommon/yoga', all_header_files) if ENV['INSTALL_YOGA_WITHOUT_PATH_OPTION']
- spec.private_header_files = Dir.glob(all_header_files) - Dir.glob(public_header_files)
+ spec.private_header_files = Dir.glob(all_header_files).sort_by(&:upcase) - Dir.glob(public_header_files).sort_by(&:upcase)
spec.preserve_paths = [all_header_files]
end
|
Related to #31121 I recall that @cipolleschi fixed this type of issues in the entire codebase. Perhaps we still have some absolute paths in the Yoga podspec? Also cc @NickGerleman |
To me it looks like this particular case is not related to absolute paths, but rather something with the ordering (The checksum is a sha1 calculated from the json representation of the podspec, so ordering of content in that file is also important). Checking for absolute paths was the first thing I looked for, though, given the history of this problem. |
I'll defer to the CocoaPods experts to answer here. |
Yeah, @stianjensen is right. I think that something changed in how |
Good point! Upgrading from 2.7.8, which I've been running locally, to 3.0.6, which is what is default on the GitHub actions runners did indeed make the checksums match up: With that PR I'm down to only the glog issue (which is because of a mismatch in Xcode version between locally and CI (over vs under Xcode 14.3 – that one may be more tricky to resolve, and I guess it's more fair to require all builds of your project to run on the same or similar Xcode version, for more reasons than this). |
Can you lionk the glog issue please? 😅 |
I haven't created one for that, yet, I actually just discovered that once I was setting up a reproduce repository for this issue! Not sure if it's reported by anyone else yet! I can create a new separate issue for that, though, with a link to a separate branch on my reproduce repo! |
I did mention the issue here: But that thread is a long list of several unrelated sources of unstable checksums, which may make it not very actionable anymore. (I don't know how that ended up in another repo than this issue, I'm pretty sure I just clicked 'new issue' in the same way as last week 🤷) |
Did you find a solution to the above issue? |
@Mutai-Gilbert there is no solution, sadly. We can't do that in React Native: we tried already but it created more problem than the one it solved. We can set a ruby version that is good for everyone that's using React Native. |
@Mutai-Gilbert feel free to contribute a PR which sorts |
I have the same issue with RN .74.3. Yoga checksum is different from GH Actions/my machine. Ruby, pod, and xcode versions are all the same. I'm at a loss of how to solve this |
This worked for me |
This worked for me too |
* Add `colors.scrim` to design system for bottom sheet backdrop component * Implement bottom sheet backdrop, top safe area, dynamic height/size * Add icon variant `subtle` for bottom sheet closing button style * Update the reaction detail types and display the reactions in the bottom sheet * Render the reactions drawer only when needed * Cleanup unused code * Auto-close reactions drawer when index reaches 0, add left and right padding to reactions ScrollView The reactions ScrollView did not scroll far enough to the right, hiding some of the reaction emojis. This commit adds a filler View with a fixed width of 64px as the last child of the ScrollView to ensure it can scroll all the way to the right, revealing the previously hidden content * refactor and fix modal * make cleaner * oop * remove background on scrollview since we have on bottom sheeet * Revert because Yoga.podspec has unstable checksum facebook/react-native#43220 * Fix typo and add accessibility * Use path alias, add comment on reaction types for clarity * Small fixes, add more accessiblity * Zustand logic update * fix: EAS Build Fixes (#1099) * remove testflight action * fix eas * oops * Set to remote * add platform checks * fixes * Expo is great --------- Co-authored-by: Thierry <[email protected]> * WIP implement `BottomSheetModal` * Add `BottomSheetModalProvider` * Make icon slightly smaller to fit figma's icon size * Move the bottom sheet modal provider at the app root, so it shows up on top of everything else * Dismiss keyboard when reactions drawer opens, better error handling * Refactor `MessageReactionsDrawer` component and zustand store for updated `RolledUpReactions` structure - Updated `RolledUpReactions` type definition to remove deprecated fields and add `count` in `DetailedReaction` - Fetch profile information for reactors - Modified `useMemo` logic in `MessageReactionsDrawer` to include `preview` with top reactions sorted by count - Adjusted `zustand` store initial state to match the updated `RolledUpReactions` structure - Fixed map error in component by ensuring `detailed` array has data before rendering * Fix android build config * Optimizing memo comparison The current memo comparison checks each field individually. Consider using a shallow comparison of the entire reactions object since it's already immutable (as evident from the Zustand store pattern mentioned in the PR summary) * Updated `RolledUpReactions` data model to include: - `preview` with counts for each reaction type - `detailed` as a sorted array, with user’s own reactions appearing first * Implement drawer logic and UI for filtered reactions view in `MessageReactionsDrawer` - Added filter functionality to display specific reactions based on selected content - Introduced "All" button in preview section to reset filter and show all reactions - Refactored `BottomSheetScrollView` to: - Display horizontal preview of all reactions with counts - Render detailed list of reactors for each reaction type - Apply filtering based on selected reaction type, with user’s own reactions highlighted at the top - Adjusted styling to indicate active filters, improving user interaction and readability * Reset reaction filter on dismiss, replace `ScrollView` with the one from `react-native-gesture-handler` * Reaction chips styling and UI states * Extract `ReactionPreview` type * Detailed reactions styling, fallback with `shortAddress$ if no username is set, simplify type * Small fixes * Memoizing the backgroundStyle array * Refactor MessageReactionsDrawer to improve scrolling behavior - Implement `FlashList` - Wrapped `FlashList` in `BottomSheetScrollView` to enhance scroll management - Enabled nested scrolling for FlashList to ensure smooth scrolling within BottomSheet - Adjusted `contentContainerStyle` to respect safe area insets * Resolve diff for android build * GestureHandlerRootView styling * Build config revert --------- Co-authored-by: Thierry <[email protected]> Co-authored-by: Alex Risch <[email protected]>
* Add `colors.scrim` to design system for bottom sheet backdrop component * Implement bottom sheet backdrop, top safe area, dynamic height/size * Add icon variant `subtle` for bottom sheet closing button style * Update the reaction detail types and display the reactions in the bottom sheet * Render the reactions drawer only when needed * Cleanup unused code * Auto-close reactions drawer when index reaches 0, add left and right padding to reactions ScrollView The reactions ScrollView did not scroll far enough to the right, hiding some of the reaction emojis. This commit adds a filler View with a fixed width of 64px as the last child of the ScrollView to ensure it can scroll all the way to the right, revealing the previously hidden content * refactor and fix modal * make cleaner * oop * remove background on scrollview since we have on bottom sheeet * Revert because Yoga.podspec has unstable checksum facebook/react-native#43220 * Fix typo and add accessibility * Use path alias, add comment on reaction types for clarity * Small fixes, add more accessiblity * Zustand logic update * fix: EAS Build Fixes (#1099) * remove testflight action * fix eas * oops * Set to remote * add platform checks * fixes * Expo is great --------- Co-authored-by: Thierry <[email protected]> * WIP implement `BottomSheetModal` * Add `BottomSheetModalProvider` * Make icon slightly smaller to fit figma's icon size * Move the bottom sheet modal provider at the app root, so it shows up on top of everything else * Dismiss keyboard when reactions drawer opens, better error handling * Refactor `MessageReactionsDrawer` component and zustand store for updated `RolledUpReactions` structure - Updated `RolledUpReactions` type definition to remove deprecated fields and add `count` in `DetailedReaction` - Fetch profile information for reactors - Modified `useMemo` logic in `MessageReactionsDrawer` to include `preview` with top reactions sorted by count - Adjusted `zustand` store initial state to match the updated `RolledUpReactions` structure - Fixed map error in component by ensuring `detailed` array has data before rendering * Fix android build config * Optimizing memo comparison The current memo comparison checks each field individually. Consider using a shallow comparison of the entire reactions object since it's already immutable (as evident from the Zustand store pattern mentioned in the PR summary) * Updated `RolledUpReactions` data model to include: - `preview` with counts for each reaction type - `detailed` as a sorted array, with user’s own reactions appearing first * Implement drawer logic and UI for filtered reactions view in `MessageReactionsDrawer` - Added filter functionality to display specific reactions based on selected content - Introduced "All" button in preview section to reset filter and show all reactions - Refactored `BottomSheetScrollView` to: - Display horizontal preview of all reactions with counts - Render detailed list of reactors for each reaction type - Apply filtering based on selected reaction type, with user’s own reactions highlighted at the top - Adjusted styling to indicate active filters, improving user interaction and readability * Reset reaction filter on dismiss, replace `ScrollView` with the one from `react-native-gesture-handler` * Reaction chips styling and UI states * Extract `ReactionPreview` type * Detailed reactions styling, fallback with `shortAddress$ if no username is set, simplify type * Small fixes * Memoizing the backgroundStyle array * Refactor MessageReactionsDrawer to improve scrolling behavior - Implement `FlashList` - Wrapped `FlashList` in `BottomSheetScrollView` to enhance scroll management - Enabled nested scrolling for FlashList to ensure smooth scrolling within BottomSheet - Adjusted `contentContainerStyle` to respect safe area insets * Resolve diff for android build * GestureHandlerRootView styling * Build config revert --------- Co-authored-by: Thierry <[email protected]> Co-authored-by: Alex Risch <[email protected]>
Old Version
0.72.10
New Version
0.73.5
Description
When perform an upgrade from 0.72.x to 0.73.x I get a difference in build output between my local build and the build we're running on our CI. The checksum for the Yoga.podspec is different (I have ran
pod update Yoga
locally to ensure this is not due to caching).After comparing the generated podspec json file for Yoga locally with the resolved one on CI I can see that the ordering of the elements of the
private_header_files
key is different. On my CI the file names are sorted alphabetically, while locally the order I've gotten seems sort of arbitrary.My local ruby version is:
ruby --version
ruby 2.7.8p225 (2023-03-30 revision 1f4d455848) [arm64-darwin22]
On CI we're running:
Default Ruby: 3.1.4
So the difference ruby versions may or may not be relevant here.
According to the ruby documentation, Dir.glob does not guarantee the order of its returned values:
https://ruby-doc.org/core-2.6.3/Dir.html#method-c-glob
Use of that was introduced in 33ebb5d, which first shipped as part of RN 0.73
Steps to reproduce
Run pod install in a fresh react native 0.73 repo locally and commit the lockfile.
When running on CI or another computer, you'll get a diff in the lockfile (or an error if you're running with the flag
--deployment
).Affected Platforms
Build - MacOS
Output of
npx react-native info
Stacktrace or Logs
Reproducer
https://github.com/stianjensen/test-rn-73-pod-install
(The reproduce also shows a diff in the glog spec. That is caused by GitHub actions CI running Xcode 14.2 while I'm running Xcode 15 locally. This difference affects the DEFINES_MODULE flag in the glog podspec)
Screenshots and Videos
No response
The text was updated successfully, but these errors were encountered: