feat: add native SDK version validation + bump workflow (mirrors Flutter PR #1853)#1614
Open
ygit wants to merge 1 commit into
Open
feat: add native SDK version validation + bump workflow (mirrors Flutter PR #1853)#1614ygit wants to merge 1 commit into
ygit wants to merge 1 commit into
Conversation
Mirrors the Flutter repo's validation pattern (PR #1853). Three additions to the SDK updater work: 1. scripts/update-sdk-versions.js — adds native version validation: PRIMARY validator: HTTPS HEAD against the CocoaPods CDN for each pod (HMSSDK, HMSBroadcastExtensionSDK, HMSHLSPlayerSDK, HMSNoiseCancellationModels) and against Maven Central for the live.100ms artifacts (android-sdk, video-view, hls-player). Catches typo'd versions in ~200ms, fails the script before any npm install runs. SIDE-EFFECT refresh: after HTTP validation passes, runs `pod install --repo-update` in both iOS example dirs and `./gradlew :app:dependencies --refresh-dependencies` in both Android example dirs. These don't validate (pod install reuses the lockfile in this monorepo) but they refresh transitive lock entries. Also adds --legacy-peer-deps to the npm install step to tolerate the pre-existing react-native-video-plugin / react-native-hms peer-dep mismatch. Validation is gated on --no-install (skipping it when the user wants a fast, source-only run). 2. .github/workflows/bump-sdk-versions.yml — workflow_dispatch GitHub Action mirroring the Flutter equivalent. Runs the script with --no-install, then explicitly runs npm install and the HTTP HEAD validation in separate steps for visibility, then opens a PR via peter-evans/create-pull-request@v6. 3. .claude/skills/update-sdk-versions.md — updated to document the validation behavior so Claude walks the user through it. Verified with --ios-sdk 1.99.99 (nonexistent): ✗ HMSSDK 1.99.99 not found, exit 1. With --ios-sdk 1.17.1 (real): ✓ all four pods verified, continues to lock refresh. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
|
This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 10 days. |
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.
Summary
Brings the
100ms-react-nativeSDK updater up to parity with the equivalent shipped in100ms-flutterPR #1853. Three additions on top of the SDK updater script (commitc93fbfe5already ondev):npm installruns. The side-effect refresh (pod install --repo-update,./gradlew :app:dependencies --refresh-dependencies) runs after..github/workflows/bump-sdk-versions.yml— aworkflow_dispatchGitHub Action that exposes the script via the GitHub UI and opens a PR viapeter-evans/create-pull-request@v6..claude/skills/update-sdk-versions.mdnow documents the validation behavior so Claude can walk the user through it.Why HTTP HEAD instead of
pod installfor validationpod installreusesPodfile.lockwhen the lockfile is already satisfiable, so a Podspec change pointing at a non-existent HMSSDK version can be silently swallowed. The HTTP HEAD against CocoaPods CDN is the source of truth for "does this version exist on the registry". Same finding from Flutter PR #1853 — fully documented in the script's inline comment.Other changes
--legacy-peer-depson npm install to tolerate the pre-existingreact-native-video-plugin@1.1.3↔react-native-hms@1.12.xpeer mismatch in this monorepo. Without this, every bump that runs the peer-dep auto-correction would fail npm install on otherwise-fine state.Verification
Branching note
This PR is stacked on
chore/track-claude-skills(PR #1613) — it modifies.claude/skills/update-sdk-versions.mdwhich is added by that PR. Merge order: #1613 first, then this one. After #1613 merges todev, GitHub will automatically retarget this PR's base todev.Test plan
--ios-sdk 1.99.99(nonexistent) — script exits 1 with clear ✗/✓ matrix--ios-sdk 1.17.1(real latest) — script continues, refreshes Podfile.lock entries--no-installskips all native validation/refresh🤖 Generated with Claude Code