Repository navigation
Move platform helpers into platforms/android, ios and react-native - #74
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ashirman
approved these changes
Oct 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Step 5 of the CLI restructuring (REV-142). Code is moved without behaviour changes.
New layout
What moved
react-native-utils,binary-utilsandexpo-utilsare gone; their code is split into the files above.utils/gradle-utils,ios-utils,hermes-utilsandsource-map-utilsmoved intoplatforms/.command-executortobundler.ts. The executor still runs the release.hermes→gradle→react-native-utils→hermes) is gone, because the small React Native project helpers now live in their own files.cli.ProjectVersionInfo.isValidVersionmoved tovalidation-utils, and the zip helper both binary readers share moved tofile-utils.hash-utilsandsignmoved toutils/. The ticket saidsdk/, but the API client doesn't use either of them.execSyncexport fromcommand-executor.spawninbundler.tsinstead of the executor.Verification against
mainrelease-react/release-exporuns (iOS and Android, all options, signing, error cases) through a fake SDK and bundler/nativereleaseupload.ipareader isn't covered by tests or by these checks. It was moved without edits.tsc,npm run lintandnpm run format:checkare clean.The review found some existing bugs: the bundler treats being killed by a signal as success, has no spawn error handler, and passes a blank
CODE_PUSH_NODE_ARGSthrough as an empty argument; hermesc also receivesCODE_PUSH_NODE_ARGS. I didn't fix them here, to keep this a pure move. They're tracked in REV-144.🤖 Generated with Claude Code