Repository navigation
chore: prepare release 3.2.1 - #917
Conversation
Bump package version and build info for the Android setRead crash fix and README min-version updates. Add GitHub Actions to open release PRs and publish to npm with provenance after master matches the target version.
|
Coverage Impact This PR will not change total coverage. 🚦 See full report on Qlty Cloud »🛟 Help
|
…and add README mapping row
jferrao-itrbl
left a comment
There was a problem hiding this comment.
Not changed by any of the commits, but in src/inApp/classes/IterableInAppManager.ts ~L93–94: Published TSDoc still describes only the success URL
What the code does: showMessage is declared Promise<string | null>. The TSDoc @returns says the promise resolves to the URL of the tapped button or link. The sample only uses .then.
What the spec says: ## 3.2.1 and docs PR 1601 say that on Android the promise can resolve null (tap outside) or reject (missing or empty id).
Why it conflicts: TypeDoc is generated from this TSDoc. After publish, the API reference will not mention the new rejection or the null resolve. validate-release.yml only requires an iterable-docs URL, and 1601 covers the support article. This file is not in the #917 diff; it ships because #918 is already on master.
Suggested action: Update this TSDoc and example so the generated API reference matches the 3.2.1 contract, or record that TypeDoc stays on the old wording until a follow-up.
| @@ -10,6 +10,10 @@ | |||
| - The promise now rejects when the message id is no longer in the native queue instead of crashing with a `NullPointerException`. | |||
There was a problem hiding this comment.
Empty message id rejection is only in the docs PR**
What the code does: showMessage rejects before the queue lookup when the id is null or empty ("messageId is null or empty"), and rejects with "Could not find message with id: …" when the id is not in the native queue (RNIterableAPIModuleImpl.java ~L290–297).
What the spec says: The 3.2.1 note says the promise rejects when the message id is no longer in the native queue. Docs PR 1601 also says it rejects when the id is empty.
Why it conflicts: The empty-id path ships in 3.2.1 and is tested, but the changelog sentence does not mention it. Support docs will. The GitHub release notes, taken from the changelog, will not.
Suggested action: Add the empty-id rejection to that 3.2.1 sub-bullet, or leave the changelog as the crash summary and accept that only the docs PR states the empty-id case.
There was a problem hiding this comment.
Done in 7d99695: the 3.2.1 sub-bullet now reads "rejects when the message id is empty or no longer in the native queue", so the GitHub release notes cover both reject paths.
…angelog The generated API reference only described the success URL. Document the Android null resolve on tap-outside and the rejection for an empty or unknown message id, and mention the empty-id case in the 3.2.1 changelog.
|
Addressed the TSDoc point in 7d99695: |

Prepare for Release 3.2.1
Summary
@iterable/react-native-sdkto 3.2.1 (package.json,src/itblBuildInfo.ts)## 3.2.1CHANGELOG covers both HelloFresh fixes already on master:setReadForMessageNPE (SDK-785, fix: skip setRead when the in-app message is no longer queued #916)showMessageIllegalStateExceptionoff the main thread, plus the Android module failing to compile against native 3.10.1 (SDK-789, [SDK-789] fix(android): show in-app messages on the main thread and compile against native 3.10.1 #918)SDK Release Checklist
## 3.2.1src/itblBuildInfo.tsregenerated📚 Docs PR if applicable
https://github.com/Iterable/iterable-docs/pull/1601
Test plan
yarn testlocallybuild-android,build-ios, Android bridge unit tests all greenAfter merge
From a clean
master:yarn prepare, verify the tarball (npm pack --dry-run),npm publish(no--provenance: it only works from CI, and 3.2.0 was published without it), thengit tag 3.2.1 && git push origin 3.2.1andgh release create 3.2.1with the## 3.2.1changelog section. Do not useyarn release(release-it would bump and rewrite the changelog).