Skip to content

chore: prepare 3.0.0 rc2 - #956

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

piotr-iohk wants to merge 2 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 200). Refreshed through master eb3156abcdc1b33e093b0d4bf1b98c9b526ca64c, including USDT feedback #948, backup consistency #950 and additional translations #953. Supersedes #925.

Twin: Android #1512. The release head is 59278ad871381f8ac4b9d4d0f70953643d59243e, tagged v3.0.0. Piotr subsequently authorized the CLI archive and TestFlight upload. The production archive succeeded from this frozen revision with fresh DerivedData. Version/build, app signature and matching dSYM UUID were verified. CLI export failed because its credentials lack cloud-signing access and no local distribution identity exists; upload succeeded through Xcode Organizer using the existing account session. Xcode confirmed “Bitkit 3.0.0 (200) uploaded” and Organizer shows Uploaded to Apple. Piotr confirmed build 200 is available in TestFlight. Automated checks and final-candidate QA remain open.

Description

Design

N/A — no UI changes.

Preview

N/A

QA Notes

Journeys

The reviewed journeys from #948 are included unchanged. No new journey is introduced by release metadata/changelog consolidation.

Manual Tests

No final production-candidate QA is claimed. Earlier PR-level device checks, including backup validation and Piotr's German/Arabic translation checks, remain supporting evidence. The observed regtest reinstall/PIN state issue remains a separate unresolved QA finding; production impact is unconfirmed.

Automated Checks

  • Verified app code matches master eb3156ab exactly; only release metadata, consolidated changelog and consumed fragments differ.
  • Verified 76 unique changelog entries, fix: correct usdt request and bridge feedback #948 and fix: keep wallet backups consistent #950 once each, Ovi's correction unchanged, all previously published history byte-identical and no remaining next-release fragments.
  • Verified six version/build configurations, unchanged test-target versions, valid project-file syntax and clean diff whitespace.
  • Normal CI/unit, integration, local E2E, staging E2E and automatic migration have started on the release cut; pending checks are not passing evidence. See the run-links comment for current runs.

Store notes: v3.0.0 iOS, shared read-only with Synonym. Five-language drafts focus on Pubky profiles, Paykit and USDT.

Remaining release work

  • Include fix: correct usdt request and bridge feedback #948, fix: keep wallet backups consistent #950 and chore: add translations for strings added after the 3.0.0 pass #953; explicitly defer fix: pause paykit work during profile deletion #954 to the next patch.
  • Refresh release-3.0.0, consolidate changelog, undraft this PR, create separate v3.0.0 tag/draft and start validation.
  • Archive 3.0.0 (200), verify bundle/version/signature and matching dSYM, then upload through Xcode Organizer after CLI signing failed.
  • Piotr completed TestFlight setup and confirmed build 200 is available.
  • Finish final-revision CI/E2E/migration and classify any failures.
  • Complete focused production-candidate QA, including upgrades from released wallets/RC1, Shop checkout/link/request acceptance, USDT gateway/Core/live checks, payments/subscriptions and recovery/hardware wallets as applicable.
  • Prepare the combined Slack announcement as drafts only after both production candidates are built/uploaded. Do not send automatically.
  • Submit/publish stores and GitHub release only at the appropriate later milestone; merge this PR after store release.

Residual latency issue #868 remains deferred to 3.0.5. RC1 artifacts/results remain historical evidence.

@piotr-iohk
piotr-iohk marked this pull request as ready for review October 16, 2026 09:15
@ovitrif
ovitrif requested review from a team, ben-kaufman and pwltr and removed request for a team October 16, 2026 09:16
@piotr-iohk
piotr-iohk requested a review from ovitrif October 16, 2026 09:16
@piotr-iohk

piotr-iohk commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator Author

Release validation runs for release-3.0.0 at 59278ad871381f8ac4b9d4d0f70953643d59243e (3.0.0, build 200):

Pending runs are not passing validation. Piotr subsequently authorized CLI archive/upload of 3.0.0 (200). The archive succeeded from the frozen release head with fresh DerivedData. Bundle ID/version/build, signature and matching dSYM UUID were verified. CLI export failed on cloud-signing access; authorized distribution via Xcode’s existing account succeeded. Xcode confirmed “Bitkit 3.0.0 (200) uploaded” and Organizer shows Uploaded to Apple. Piotr confirmed build 200 is available in TestFlight. Remaining automated checks and final-candidate QA remain open.

Android counterpart: Android #1512. RC1 drafts/tags remain preserved. Profile-deletion #954 / Android #1510 are deferred to the next patch.

@greptile-apps

greptile-apps Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Low impact] The metadata changes appear safe to merge when the planned release checks are complete.

Summary

Prepares version 3.0.0, build 200, and collects 76 changelog fragments.

  • Bitkit's app, widgets, and notifications use version 3.0.0, build 200.
  • The changelog collects the 3.0.0 notes and clears their consumed fragments.

Acknowledged scope from piotr-iohk: builds and candidate QA have not run; skipping CI and leaving release tags for the final cut are intentional. The remaining #868 investigation is explicitly deferred to 3.0.5.

Reviews (1) · Last reviewed commit: "chore: refresh ios rc2 release preparati..." · Reviewed by Greptile

@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 preparation for 3.0.0 build 200: version bump in the six app, notification and widget configurations, 76 changelog.d/next fragments collected into a 3.0.0 section, and the 2.5.1 hotfix section carried over. Reviewed 59278ad, full tier (78 files, 76 of them one-line fragment deletions, every one checked).

What I checked, and 4 candidates I ruled out

Checked mechanically: every fragment deleted by this PR (76, against the merge base eb3156a) appears in the new CHANGELOG.md exactly once, by exact text match; the 3.0.0 section has 76 bullets with no PR number repeated, and none of them repeats a released entry; changelog.d/next is left with only .gitkeep.
Version: MARKETING_VERSION = 3.0.0 and CURRENT_PROJECT_VERSION = 200 on the six configurations that carried 2.5.0 (197); the four test-target configurations stay at 1.0 (1).
History: the only change outside the new section is the added 2.5.1 section, which matches the v2.5.1 tag's changelog word for word, and the compare links (v2.5.1...v3.0.0, Unreleased from v3.0.0).
CI: validate and Greptile green; unit-tests, integration-tests, e2e-tests and E2E Migration (iOS) were still running on this head when this was posted. The failed entries in the checks list are duplicate e2e-tests and E2E Migration (iOS) runs on this same head, cancelled in favour of the copies still running. iOS does not build on this machine, so this review is reasoned from the diff and from CI.

Ruled out

  • Fragments for #948, #950 and #953 missing: all three merged to master before 59278ad; the #948 and #950 fragments are collected, and #953 is translations-only (no fragment). #954 is still open, so it is correctly absent.
  • #532 filed under Changed though its fragment was 532.fixed.md: deliberate, per the correction the PR body cites.
  • Build number out of step with Android: iOS goes 197 to 200 and the twin bitkit-android#1512 goes 190 to 193, the same +3 on the platforms' existing offset.
  • Released sections edited: the diff touches no released section beyond inserting 2.5.1 above 2.5.0.

Merge confidence: 4/5, no findings and the change is metadata a test would not exercise, but CI on this head had not finished.

@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

@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

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

  • Talos's review at this head covers the fragment match, the six version configurations and the released history. I confirmed those and add:
    • scripts/collect-changelog.sh --target next run at master eb3156a produces the same 76 entries. The one difference is #532 under Changed, as the description says.
    • Build 200 follows the tagged builds 198 (v2.5.1) and 199 (v2.6.0 RC1). It is also above the 198 that the updater feed publishes, so 3.0.0 shows no update prompt.
    • The 2.5.1 LDK security fix reaches this cut through #928, and the head pins LDK Node 0.7.0-rc.74.
    • Every PR merged since v2.5.0 without its own fragment is CI, tests, docs, a chore or a build fix, or a fix whose fragment carries its issue number.

QA for 59278ad:
No device case: the QA notes list none, and this PR changes no app code against master eb3156a.

CI at this head when I reviewed:

  • Unit tests and integration tests passed.
  • E2E Migration passed the native upgrade and native restore from 2.5.0 to this build.
  • Still running:
  • The React Native v1.1.6 migrations did not run, which is why the run reads as failed. Preparing the restore wallet failed inside the legacy React Native app on Android, whose on-chain send never showed its swipe button, so the RN matrix was skipped. The 3.0.0 build is not involved in that step; a rerun of the failed jobs would cover the RN upgrade and restore.
  • The cancelled e2e-tests and E2E Migration (iOS) entries are duplicate runs on this head.
  • 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-android#1512 matches at synonymdev/bitkit-android@19449fb: the same 3.0.0 cut, with build 193 taking the same +3 step from 2.5.0 (190) as 197 to 200 here, and the same deferral of the profile-deletion fix.

@ovitrif

ovitrif commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

@piotr-iohk

@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 59278ad. 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: all six app, widget and notification configurations read MARKETING_VERSION = 3.0.0 / CURRENT_PROJECT_VERSION = 200. That is above v2.6.0 (199), v2.5.1 (198) and v2.5.0 (197); test targets are unchanged. The updater feed publishes 2.5.1 build 198 as critical, and AppUpdateService compares build numbers numerically (AppUpdateService.swift:44,64-71), so build 200 gets no forced-update prompt.
  • Changelog: each of the 76 deleted fragments appears once with its text and number. Only 532 moves to Changed, which is the #931 correction. changelog.d/next and hotfix hold only .gitkeep. The 2.5.1 section and everything from [2.5.0] down are byte-identical to the v2.5.1 tag. Compare links are v2.5.1...v3.0.0. Every merge since v2.5.0 without its own entry is CI/test/docs/chore or covered by its issue number. #954 is correctly absent.
  • Dependencies since v2.5.1: bitkit-core 0.5.14 → 0.8.0-rc6, ldk-node rc.66.1 → rc.74, paykit rc51 → rc77, vss 0.5.23 (revision refresh), CodeScanner removed. The pbxproj exactVersion requirements match the resolved pins. The v2.5.1 security fix is carried: rc.74 pins lightning, lightning-transaction-sync and lightning-liquidity 0.2.7, same as rc.66.1 (in via rc.72, listed under Security).
  • Release config: DEBUG stays on Debug only. Mainnet endpoints are production (api1.blocktank.to, bitkit.to, rgs.blocktank.to, homegate.pubky.app), the USDT URLs point at https://bitkit.to/v1/usdt/*, and the Trezor bridge/emulator paths are gated on isDebug || isE2E.
  • Twin parity with synonymdev/bitkit-android#1512: same 3.0.0 date, same bitkit-core, ldk-node, paykit and vss pins, same compare base, and #954 / #1510 deferred on both. Changelog differences are platform-specific entries.

CI at 59278ad: unit, integration, e2e (local), E2E Staging and E2E Migration (native 2.5.0 → 200 upgrade and restore, RN v1.1.6 upgrade and restore) are green. Translations validation is green. The cancelled rows are duplicate runs superseded by the passing copies.

Device gate: 59278ad — no device check needed (versions, changelog and fragment deletions only; CI is the runtime evidence); perf: not relevant; l10n: no UI text changed.

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