Skip to content

Commit bf1c30a

Browse files
committed
Merge branch 'master' into release/2.3.0-beta
2 parents f3a6f5b + de793ec commit bf1c30a

21 files changed

Lines changed: 731 additions & 718 deletions

File tree

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Validate Release PR
2+
3+
on:
4+
pull_request:
5+
types: [labeled, opened, synchronize, edited]
6+
7+
permissions:
8+
contents: read
9+
pull-requests: read
10+
11+
jobs:
12+
validate:
13+
if: >-
14+
(github.event.action == 'labeled' && github.event.label.name == 'release') ||
15+
(github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'release'))
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Validate Release PR
21+
env:
22+
PR_BODY: ${{ github.event.pull_request.body }}
23+
run: |
24+
errors=()
25+
26+
# --- Extract version from source of truth ---
27+
version=$(node -p "require('./package.json').version")
28+
if [ -z "$version" ]; then
29+
echo "::error::Could not extract version from package.json"
30+
exit 1
31+
fi
32+
echo "Detected version: $version"
33+
34+
# --- Check: Docs PR linked ---
35+
if ! echo "$PR_BODY" | grep -qiP "github\.com/Iterable/iterable-docs/pull/\d+"; then
36+
errors+=("No docs PR link found in the PR description. Add a link to the iterable-docs PR (e.g. https://github.com/Iterable/iterable-docs/pull/123).")
37+
fi
38+
39+
# --- Check: CHANGELOG entry (RN uses ## X.Y.Z without brackets) ---
40+
if ! grep -qF "## $version" CHANGELOG.md; then
41+
errors+=("CHANGELOG.md is missing an entry for version $version.")
42+
fi
43+
44+
# --- Check: Version consistency ---
45+
build_info_ver=$(grep -oP "version:\s*'\K[^']+" src/itblBuildInfo.ts)
46+
47+
if [ "$build_info_ver" != "$version" ]; then
48+
errors+=("src/itblBuildInfo.ts version is '$build_info_ver', expected '$version'. Did you run 'yarn prepare'?")
49+
fi
50+
51+
# --- Report ---
52+
if [ ${#errors[@]} -gt 0 ]; then
53+
echo "::error::Release validation failed with ${#errors[@]} issue(s):"
54+
for err in "${errors[@]}"; do
55+
echo "::error:: - $err"
56+
done
57+
exit 1
58+
fi
59+
60+
echo "All release validations passed for version $version."

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v20.19.0
1+
v20.19.4

CHANGELOG.md

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,21 @@
1212
`Iterable.embeddedManager.pauseImpression(MESSAGE_ID])`
1313
- Handle embedded click with `Iterable.embeddedManager.handleClick(message, buttonId, action)`
1414

15-
## 2.2.0
15+
## 2.2.2
16+
### Updates
17+
- Added `baseline-browser-mapping`
18+
- Updated React Native library compatibility to 0.81
19+
20+
### Fixes
21+
- Added temporary fix for Xcode 26.4 compatibility
22+
([a7768d4](https://github.com/Iterable/react-native-sdk/commit/a7768d4)) in
23+
example app
1624

25+
## 2.2.1
26+
### Updates
27+
- Updated React Native library compatibility to 0.79.7
28+
29+
## 2.2.0
1730
### Updates
1831
- Updated Android SDK version to [3.6.2](https://github.com/Iterable/iterable-android-sdk/releases/tag/3.6.2)
1932
- Updated iOS SDK version to [6.6.3](https://github.com/Iterable/swift-sdk/releases/tag/6.6.3)
@@ -31,7 +44,7 @@
3144
### Fixes
3245
- Created a standalone `IterableLogger` to avoid circular dependencies
3346
- [SDK-151] Fixed "cannot read property authtoken of undefined" error
34-
- Fixed Android `retryInterval` not being updated on re-initialization.
47+
- Fixed Android `retryInterval` not being updated on re-initialization
3548

3649
## 2.1.0
3750
### Updates

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,12 @@ View the [API documentation](https://iterable-react-native-sdk.netlify.app).
6969

7070
## Architecture Support
7171

72-
Iterable's React Native SDK now fully supports [React Native's New Architecture](https://reactnative.dev/architecture/landing-page), including TurboModules and Fabric. You can use the SDK with either the legacy architecture or the New Architecture.
72+
Iterable's React Native SDK supports [React Native's New
73+
Architecture](https://reactnative.dev/architecture/landing-page), including
74+
TurboModules and Fabric.
75+
76+
**IMPORTANT**: Iterable's React Native SDK supports React Native's Legacy Architecture, but it
77+
is no longer actively maintained. Use at your own risk.
7378

7479
Notes:
7580

@@ -119,6 +124,8 @@ For quick reference, the following table lists the versions of the [Android SDK]
119124
120125
| RN SDK Version | Android SDK Version | iOS SDK Version |
121126
| --------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | --------------- |
127+
| [2.2.2](https://www.npmjs.com/package/@iterable/react-native-sdk/v/2.2.2) | [3.6.2](https://github.com/Iterable/iterable-android-sdk/releases/tag/3.6.2) | [6.6.3](https://github.com/Iterable/swift-sdk/releases/tag/6.6.3)
128+
| [2.2.1](https://www.npmjs.com/package/@iterable/react-native-sdk/v/2.2.1) | [3.6.2](https://github.com/Iterable/iterable-android-sdk/releases/tag/3.6.2) | [6.6.3](https://github.com/Iterable/swift-sdk/releases/tag/6.6.3)
122129
| [2.2.0](https://www.npmjs.com/package/@iterable/react-native-sdk/v/2.2.0) | [3.6.2](https://github.com/Iterable/iterable-android-sdk/releases/tag/3.6.2) | [6.6.3](https://github.com/Iterable/swift-sdk/releases/tag/6.6.3)
123130
| [2.1.0](https://www.npmjs.com/package/@iterable/react-native-sdk/v/2.1.0) | [3.5.2](https://github.com/Iterable/iterable-android-sdk/releases/tag/3.5.2) | [6.5.4](https://github.com/Iterable/swift-sdk/releases/tag/6.5.4)
124131
| [2.0.4](https://www.npmjs.com/package/@iterable/react-native-sdk/v/2.0.4) | [3.5.2](https://github.com/Iterable/iterable-android-sdk/releases/tag/3.5.2) | [6.5.4](https://github.com/Iterable/swift-sdk/releases/tag/6.5.4)

android/gradle.properties

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
RNIterable_kotlinVersion=2.0.21
1+
RNIterable_kotlinVersion=2.1.20
22
RNIterable_minSdkVersion=24
3-
RNIterable_targetSdkVersion=35
4-
RNIterable_compileSdkVersion=35
3+
RNIterable_targetSdkVersion=36
4+
RNIterable_compileSdkVersion=36
55
RNIterable_ndkversion=27.1.12297006
66
android.useAndroidX=true
77
android.enableJetifier=true

example/android/app/src/debug/AndroidManifest.xml

Lines changed: 0 additions & 9 deletions
This file was deleted.

example/android/app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
android:roundIcon="@mipmap/ic_launcher_round"
1818
android:allowBackup="false"
1919
android:theme="@style/AppTheme"
20+
android:usesCleartextTraffic="${usesCleartextTraffic}"
2021
android:supportsRtl="true">
2122
<activity
2223
android:name=".MainActivity"

example/android/app/src/main/java/iterable/reactnativesdk/example/MainApplication.kt

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,11 @@ import android.app.Application
44
import com.facebook.react.PackageList
55
import com.facebook.react.ReactApplication
66
import com.facebook.react.ReactHost
7+
import com.facebook.react.ReactNativeApplicationEntryPoint.loadReactNative
78
import com.facebook.react.ReactNativeHost
89
import com.facebook.react.ReactPackage
9-
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
1010
import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
1111
import com.facebook.react.defaults.DefaultReactNativeHost
12-
import com.facebook.react.soloader.OpenSourceMergedSoMapping
13-
import com.facebook.soloader.SoLoader
1412

1513
class MainApplication : Application(), ReactApplication {
1614

@@ -36,10 +34,6 @@ class MainApplication : Application(), ReactApplication {
3634

3735
override fun onCreate() {
3836
super.onCreate()
39-
SoLoader.init(this, OpenSourceMergedSoMapping)
40-
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
41-
// If you opted-in for the New Architecture, we load the native entry point for this app.
42-
load()
43-
}
37+
loadReactNative(this)
4438
}
4539
}

example/android/build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
buildscript {
22
ext {
3-
buildToolsVersion = "35.0.0"
3+
buildToolsVersion = "36.0.0"
44
minSdkVersion = 24
5-
compileSdkVersion = 35
6-
targetSdkVersion = 35
5+
compileSdkVersion = 36
6+
targetSdkVersion = 36
77
ndkVersion = "27.1.12297006"
8-
kotlinVersion = "2.0.21"
8+
kotlinVersion = "2.1.20"
99
}
1010
repositories {
1111
google()

example/android/gradle.properties

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
# Specifies the JVM arguments used for the daemon process.
1111
# The setting is particularly useful for tweaking memory settings.
1212
# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
13-
org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
13+
org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m
1414

1515
# When configured, Gradle will run in incubating parallel mode.
1616
# This option should only be used with decoupled projects. More details, visit
@@ -38,6 +38,11 @@ newArchEnabled=true
3838
# If set to false, you will be using JSC instead.
3939
hermesEnabled=true
4040

41+
# Use this property to enable edge-to-edge display support.
42+
# This allows your app to draw behind system bars for an immersive UI.
43+
# Note: Only works with ReactActivity and should not be used with custom Activity.
44+
edgeToEdgeEnabled=false
45+
4146
# Needed for react-native-webview
4247
# See: https://github.com/react-native-webview/react-native-webview/blob/HEAD/docs/Getting-Started.md
43-
android.enableJetifier=true
48+
android.enableJetifier=true

0 commit comments

Comments
 (0)