You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## What?
- Adds `React Native` to workflow_dispatch for releases
- Performs validation on the semver tag compared to package json
- Creates a `react-native/X.Y.Z` tag
- Builds and Publishes that tag
- Updates the RN podspec source tag to use the `react-native/` namespace.
- Changed workflow dispatch to avoid confusion between draft and dry-run settings
Theres some scripts added to give us the ability to test tarbals of the release build against expo and react-native community cli installs, as well as with npm / yarn / bun / pnpm.
| Before | After |
| ------ | ----- |
| <img width="307" height="388" alt="image" src="https://github.com/user-attachments/assets/c8553f5d-dedc-467c-9ce0-b8dda7ba348a" /> | <img width="310" height="418" alt="image" src="https://github.com/user-attachments/assets/d62fdb72-3ef6-4f98-abce-d227ff104dfc" /> |
I also fixed some output on the release plan
<img width="445" height="355" alt="image" src="https://github.com/user-attachments/assets/e8ede813-43ab-41d4-a940-a14178ffc4a3" />
## Other
In order to produce react-native `4.0.0-alpha.1` I needed to update podspec and gradle to point to the swift/android `4.0.0-alpha.1` versions published last week
We have this awkward process for gradle, where the android sdk has to build and publish to `mavenLocal` for local dev, this is gated behind the `USE_LOCAL_SDK` flag
This could fail silently if mavenLocal didn't have a 4.0.0-alpha.1 version, so I added an exclusiveContent filter which ensures the checkout-kit library, when the `USE_LOCAL_SDK` flag is true, will fail to build, ensuring we don't accidentally false positive test against a published SDK in maven.
```gradle
if (useLocalSdk) {
exclusiveContent {
forRepository {
mavenLocal()
}
filter {
includeModule("com.shopify", "checkout-kit")
}
}
}
```
Copy file name to clipboardExpand all lines: .github/CONTRIBUTING.md
+21-4Lines changed: 21 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -126,8 +126,8 @@ Once merged, run the [Release package workflow](../../actions/workflows/release.
126
126
127
127
1. Select `iOS` as the platform.
128
128
2. Enter the expected version. The workflow reads the SDK version from the checked-in files and fails if the typed version does not match.
129
-
3.Leave `dry-run`enabled first to review the release plan.
130
-
4. Rerun with `dry-run` disabled. By default this creates a draft GitHub Release with the bare semver tag (e.g. `3.8.1`) for human review.
129
+
3.Select `Dry run` first to review the release plan without creating a release.
130
+
4. Rerun with `Draft release` to create a draft GitHub Release with the bare semver tag (e.g. `3.8.1`) for human review.
131
131
5. Publish the draft release when ready. Publishing the draft kicks off the [Swift publish workflow](../../actions/workflows/swift-publish.yml), which publishes the new version to CocoaPods.
132
132
133
133
---
@@ -174,8 +174,8 @@ Once merged, run the [Release package workflow](../../actions/workflows/release.
174
174
175
175
1. Select `Android` as the platform.
176
176
2. Enter the expected version. The workflow reads the SDK version from `platforms/android/lib/build.gradle` and fails if the typed version does not match.
177
-
3.Leave `dry-run`enabled first to review the release plan.
178
-
4. Rerun with `dry-run` disabled. By default this creates a draft GitHub Release with the `android/`-prefixed tag (e.g. `android/3.0.1`) for human review.
177
+
3.Select `Dry run` first to review the release plan without creating a release.
178
+
4. Rerun with `Draft release` to create a draft GitHub Release with the `android/`-prefixed tag (e.g. `android/3.0.1`) for human review.
179
179
5. Publish the draft release when ready. Publishing the draft kicks off the [Android publish workflow](../../actions/workflows/android-publish.yml). **A manual approval by a maintainer is required before publication to Maven Central.**
180
180
181
181
---
@@ -208,3 +208,20 @@ If your change intentionally modifies the public API:
208
208
3. Commit the updated `.api.md` file in the same PR.
209
209
210
210
If you did *not* intend to change public API and `api:check` is failing, the diff shows what your change inadvertently affected — treat it as a signal that something in your PR has consumer-visible impact.
211
+
212
+
### Releasing a new React Native version
213
+
214
+
Open a pull request with the following changes:
215
+
216
+
1. Bump the `version` in `platforms/react-native/modules/@shopify/checkout-kit-react-native/package.json`.
217
+
2. Add an entry to the React Native changelog.
218
+
219
+
Supported release versions are `X.Y.Z` and prerelease versions are `X.Y.Z-{alpha|beta|rc}.N`.
220
+
221
+
Once merged, run the [Release package workflow](../../actions/workflows/release.yml):
222
+
223
+
1. Select `React Native` as the platform.
224
+
2. Enter the expected version. The workflow reads the SDK version from `platforms/react-native/modules/@shopify/checkout-kit-react-native/package.json` and fails if the typed version does not match.
225
+
3. Select `Dry run` first to review the release plan without creating a release.
226
+
4. From the dry-run job summary, copy the generated `gh workflow run` command to create a `Draft release` without retyping the validated version. Running it creates a draft GitHub Release with the `react-native/`-prefixed tag (e.g. `react-native/4.0.1`) for human review.
227
+
5. Publish the draft release when ready. Publishing the draft kicks off the [React Native publish workflow](../../actions/workflows/rn-publish.yml), which publishes `@shopify/checkout-kit-react-native` to npm.
0 commit comments