Skip to content

chore: prepare 3.0.0 rc2 - #1512

Open
piotr-iohk wants to merge 3 commits into
masterfrom
release-3.0.0
Open

piotr-iohk wants to merge 3 commits into
masterfrom
release-3.0.0

Conversation

@piotr-iohk

@piotr-iohk piotr-iohk commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

This PR prepares Bitkit 3.0.0 RC2, the final release candidate, at version 3.0.0 (build 193). The release branch is refreshed through master eb32cdd71, including payment guards/USDT feedback #1506, backup consistency #1507 and additional translations #1509. Supersedes #1473. The production candidate is built, verified and attached to the draft release; no candidate is signed off.

Twin release preparation: synonymdev/bitkit-ios#956.

Description

Design

N/A — no UI changes.

Preview

N/A

QA Notes

Journeys

No new journey is introduced by this release-preparation merge; #1506's merged journeys and tests are included unchanged.

Manual Tests

No runtime test was performed on this release head. Earlier PR-level device evidence, including the navigation retest and Piotr's German/Arabic checks, is supporting evidence, not final candidate validation.

Automated Checks

The release head is 19449fb0d729f51b9875eee2f66acfc0671e11da, with a follow-up commit enabling normal CI. This PR is ready for review. CI/unit, lint, local E2E, staging E2E and migration passed on the selected release cut. Native UI attempt 1 failed one funding-balance precondition before RBF (267 tests, 1 failed, 3 skipped); its evidence is retained. Attempt 2 passed on the unchanged cut, and its XML confirms testBumpFeeByRbf passed. The initial funding-visibility failure was intermittent; its root cause is not established.

Production-signed APK/AAB and matching native debug symbols are verified and uploaded to the RC2 draft release. All artifact checksums match GitHub/local verification, APK identities/version/signatures are correct and the signer matches RC1. Release build, on tag v3.0.0. The GitHub release stays draft.

Store notes: v3.0.0 Android, shared read-only with Synonym; focuses on Pubky profiles, Paykit and USDT.

Remaining release work

  • Include fix: preserve payment guards and usdt feedback #1506, fix: keep wallet backups consistent #1507 and chore: add translations for strings added after the 3.0.0 pass #1509; defer fix: pause paykit work during profile deletion #1510 to the next patch release.
  • Refresh the Android release branch and consolidate changelogs while retaining Ovi's corrections.
  • CI/unit, UI rerun, local/staging E2E and migration passed on the final selected revision; initial UI failure evidence is retained.
  • Start the authorized production build on the frozen tag.
  • Verify APK/AAB signing, checksums and matching native debug symbols, and attach verified artifacts to the draft release.
  • Complete focused candidate QA: upgrades from released wallets and RC1, payments/subscriptions, Shop checkout/link/request acceptance, USDT gateway/Core/live checks and recovery/hardware-wallet acceptance as applicable. Import scheduling evidence is not a completed-payment claim.
  • Confirm iOS counterpart inclusion and assess its observed reinstall/PIN startup issue before final sign-off; this Android preparation does not establish iOS readiness.
  • Create separate 3.0.0 tag/draft records and draft store notes.
  • Update store records and prepare the Slack announcement draft after both candidates are ready.

The residual iOS #868 latency investigation remains deferred to 3.0.5 under Ovi's scope. RC1 results and artifacts remain historical evidence.

@piotr-iohk
piotr-iohk marked this pull request as ready for review October 16, 2026 08:47
@greptile-apps

greptile-apps Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Low impact] The preparation changes appear safe to merge after the stated release gates are complete.

Summary

Prepares version 3.0.0, build 193, and consolidates 108 release-note fragments into CHANGELOG.md.

  • Android builds now identify as 3.0.0, with the release notes in one dated entry.

Acknowledged release work from piotr-iohk: final candidate checks, production artifacts, and the 3.0.0 tag remain pending. Profile-deletion follow-ups are intentionally deferred under the stated cut decision.

Reviews (1) · Last reviewed commit: "chore: validate android rc2 preparation" · Reviewed by Greptile

@ovitrif
ovitrif requested review from a team, ben-kaufman and pwltr and removed request for a team October 16, 2026 08:51
@piotr-iohk
piotr-iohk requested a review from ovitrif October 16, 2026 08:52
@github-actions

Copy link
Copy Markdown
Contributor

Regtest APK

Built from 19449fb (run).

Download bitkit-dev-debug universal APK (expires in 30 days).

@piotr-iohk

piotr-iohk commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator Author

Release validation/build runs for release-3.0.0 at 19449fb0d729f51b9875eee2f66acfc0671e11da (3.0.0, build 193):

Production artifacts built, verified and uploaded to the 3.0.0 RC2 draft release: four APKs, AAB, matching native-debug-symbols-193.zip and SHA256SUMS.txt. All six artifact checksums match locally and on GitHub; all APKs report to.bitkit, version 3.0.0 (193), non-debuggable, and the production signing certificate matches RC1. AAB signature verified; native symbols contain the four required Rust libraries for both production ARM ABIs.

The GitHub release remains draft. Pending runtime checks are not passing validation and no final-candidate sign-off is claimed. RC1 assets and v2.6.0 remain preserved.

iOS counterpart: iOS #956, now refreshed after iOS #948 merged, with production archive verified and upload to Apple completed; TestFlight processing/compliance remains to be confirmed. Profile-deletion fixes Android #1510 / iOS #954 are deferred to the next patch.

@jvsena42 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Reviewed as a release against v2.5.0, the last release tag on master's lineage. v2.5.1 is a hotfix side branch and v2.6.0 an unpublished RC1. No findings.

Checked:

  • Version: 3.0.0 / 193, above v2.6.0 (192), v2.5.1 (191) and v2.5.0 (190). app/build.gradle.kts is the only version source. Outside CHANGELOG.md and changelog.d, the diff against master eb32cdd71 is the version bump alone.
  • Changelog: 108 fragments consumed, and changelog.d/next and hotfix hold only .gitkeep. I matched all 139 PRs merged since v2.5.0 against the 3.0.0 section. Each one has its own entry, an entry under its issue number, is chore/ci/test/docs, or was already listed under 2.5.0. With the 3.0.0 block removed, the file is byte-identical to v2.5.1's apart from the new [3.0.0] compare link, so the 2.5.1 section is preserved. #1510 is excluded and no bullet describes it. Default flips match their entries: Paykit PAYKIT_ENABLED_KEY ?: true (#1345), and USDT is still opt-in (usdtPreference defaults to UNDECIDED).
  • Dependencies since v2.5.0: bitkit-core 0.5.14 → 0.8.0-rc6, paykit rc51 → rc77, ldk-node rc.66 → rc.74, vss unchanged. The v2.5.1 hotfix's ldk-node rc.66.1 security fix is carried by rc.72 (#1475) and later. The release resolves core and paykit from the registry; mavenLocal and the local AAR are debug or opt-in only.
  • Release build: the new USDT defaults all point at https://bitkit.to/v1/usdt/..., and no localhost or staging host was added to app/src/main outside the E2E paths.
  • Twin parity with synonymdev/bitkit-ios#956: same bitkit-core, ldk-node, paykit and vss pins. Changelog differences are platform items, plus the iOS snapshot predating its #948/#950/#953 counterparts of #1506/#1507/#1509, as its body states.
  • Device: no runtime diff from master in this PR. CI's migration, e2e and upgrade jobs are the runtime evidence.

CI at 19449fb: unit, lint and migration (2.5.0 native upgrade/restore, v1.1.6 RN upgrade/restore) are green. E2E local shards lightning_security, onchain_boost_receive_widgets, send and multi_address_local are still pending, and E2E Staging and the UI tests are still running.

Device gate (partial): 19449fb — no device check needed; approval waits on the pending E2E shards above.

@talosmachina talosmachina left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

No findings. Release prep for 3.0.0 (build 193): version bump and 108 changelog fragments consolidated into CHANGELOG.md. Reviewed 19449fb, full tier, reasoned from the code and CI (no Bitkit branch build here).

What I checked, and 3 candidates I ruled out
  • App code matches master eb32cdd71: the only non-changelog change is app/build.gradle.kts (versionCode 193, versionName 3.0.0); 193 is above the tagged v2.6.0 (192) and v2.5.1 (191).
  • All 108 deleted changelog.d/next fragments appear in the 3.0.0 section (first 60 chars of each matched); no PR number is duplicated in it; changelog.d/next keeps only .gitkeep.
  • Released sections 2.5.0 and older are byte-identical apart from the compare-link footer; 2.5.1 matches its tag's text.
  • Ruled out: a trailing blank line added at EOF of both files (git diff --check), cosmetic.

CI: build, lint, detekt, migration-plan and four migration scenarios green; e2e-tests-local - onchain_boost_receive_widgets still running when reviewed.

Merge confidence: 4/5, e2e was not finished on this head.

@ovi-reviewer ovi-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Verdict: ✅ Approve

Posted as a comment: not every planned case passed.

Review: diff, 110 files, full review of this PR. I found no defects.

  • All 108 consumed fragments appear once each in the 3.0.0 section, word for word, with only the #1481 corrections; the 2.5.1 and older sections are unchanged.
  • @jvsena42's review at this head covers the version order, dependency pins and release hosts; I have nothing to add there.

QA for 19449fb:
No device case: the QA notes list none, and this PR changes no app code against master eb32cdd.

CI at this head:

  • E2E Migration passed: native upgrade and restore from 2.5.0, React Native upgrade and restore from v1.1.6.
  • Release build passed.
  • E2E passed on all shards.
  • UI Tests failed one test, TxBumpingTests.testBumpFeeByRbf: the regtest deposit was not visible after the test's fixed 15 s wait and single sync (balance 0 of 100000).
    • This PR cannot cause it: the same suite passed on master eb32cdd, which has identical app code.
    • Its sibling testAccelerateByCpfp failed the same funding check on master d7cf4ec.
  • E2E Staging passed.
  • No run covers an upgrade from 2.5.1, the latest public release; it stays open on this PR's release checklist.

Pair PR synonymdev/bitkit-ios#956 matches at synonymdev/bitkit-ios@59278ad: the same 3.0.0 cut, with the iOS pairs of the USDT, backup and translation fixes this PR includes, and the same deferral of the profile-deletion fix.

@jvsena42 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Approving at 19449fb. The code review from my earlier comment stands: no findings against v2.5.0, the v2.5.1 hotfix's ldk-node fix is carried by rc.74, the changelog is complete and history is preserved, and dependency pins match synonymdev/bitkit-ios#956.

CI at 19449fb: all seven E2E local shards, E2E Staging (dispatch), E2E Migration (2.5.0 native upgrade/restore, v1.1.6 RN upgrade/restore), CI, lint and the Release build are green. The dispatched UI Tests run was still in progress when I posted. Check its result before merge.

Device gate: 19449fb — no device check needed (no runtime diff from master; CI is the runtime evidence); perf: not relevant to this PR's diff; l10n: no UI text changed.

ovitrif

This comment was marked as duplicate.

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

utAck

This branch was successfully deployed

1 active deployment
release — 19449fb0 Deployed Oct 16, 2026 by piotr-iohk via build-release #15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants