Skip to content

chore: prepare release 3.2.1 - #917

Merged
joaodordio merged 4 commits into
masterfrom
chore/prepare-release-3.2.1
Oct 9, 2026
Merged

joaodordio merged 4 commits into
masterfrom
chore/prepare-release-3.2.1

Conversation

@joaodordio

@joaodordio joaodordio commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

Prepare for Release 3.2.1

Summary

SDK Release Checklist

  • CHANGELOG.md has ## 3.2.1
  • Version bumped in package.json
  • src/itblBuildInfo.ts regenerated
  • iterable-docs PR linked
  • CI green

📚 Docs PR if applicable

https://github.com/Iterable/iterable-docs/pull/1601

Test plan

After 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), then git tag 3.2.1 && git push origin 3.2.1 and gh release create 3.2.1 with the ## 3.2.1 changelog section. Do not use yarn release (release-it would bump and rewrite the changelog).

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.
@joaodordio
joaodordio requested a review from a team as a code owner October 8, 2026 13:23
@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Lines Statements Branches Functions
Coverage: 72%
71.92% (579/805) 61.22% (229/374) 67.18% (174/259)

@qltysh

qltysh Bot commented Oct 8, 2026

Copy link
Copy Markdown

Qlty


Coverage Impact

This PR will not change total coverage.

🚦 See full report on Qlty Cloud »

🛟 Help
  • Diff Coverage: Coverage for added or modified lines of code (excludes deleted files). Learn more.

  • Total Coverage: Coverage for the whole repository, calculated as the sum of all File Coverage. Learn more.

  • File Coverage: Covered Lines divided by Covered Lines plus Missed Lines. (Excludes non-executable lines including blank lines and comments.)

    • Indirect Changes: Changes to File Coverage for files that were not modified in this PR. Learn more.

@jferrao-itrbl jferrao-itrbl left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread CHANGELOG.md Outdated
@@ -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`.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.
@joaodordio

Copy link
Copy Markdown
Member Author

Addressed the TSDoc point in 7d99695: IterableInAppManager.showMessage @returns now documents the Android null resolve on tap-outside, the rejection for an empty or unknown message id, and that the Promise may not settle when the message can't be displayed. The example now shows a .catch. Scoped to Android because the iOS rejection (#920) is not in 3.2.1. Lint (incl. TSDoc), typecheck and 585 tests pass.

@joaodordio
joaodordio merged commit 59b3d07 into master Oct 9, 2026
18 checks passed
@joaodordio
joaodordio deleted the chore/prepare-release-3.2.1 branch October 9, 2026 17:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants