Skip to content

chore: 2.6.0 rc1 preparation (replacement planned) - #925

Closed
piotr-iohk wants to merge 4 commits into
masterfrom
release-2.6.0
Closed

piotr-iohk wants to merge 4 commits into
masterfrom
release-2.6.0

Conversation

@piotr-iohk

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

Copy link
Copy Markdown
Collaborator

This PR records the original Bitkit 2.6.0 RC1 preparation on release-2.6.0. 3.0.0 RC2 will use a new release-3.0.0 branch and a replacement PR, created from current master after the agreed scope lands.

Replacement plan

  • Leave this PR and its branch unchanged while the required RC2 scope lands.
  • Create a fresh release-3.0.0 branch from current master in each app repository, then prepare version 3.0.0, a new build number and the consolidated changelog.
  • Open a new release PR for each platform and transfer the agreed scope and RC2 validation checklist below.
  • Once the replacement PR exists, add a “Superseded by #…” comment linking it and close this old PR without merging. Keep this PR open until then; replacement PR URLs are pending.
  • Preserve the existing RC1 GitHub draft release, assets and annotated v2.6.0 tag at their original revision. Create separate release records for 3.0.0 RC2.
  • Keep the new release PR open through RC2 testing and merge it into master after the 3.0.0 store release.
  • Historical counterpart: Android #1473.

Changelog corrections to carry forward

Before closing this PR, preserve Ovi's release-branch correction from #931, commit 6a50579:

Apply this correction to the consolidated 3.0.0 changelog after collecting master’s fragments, and verify it survives final generation. A fresh collection alone would not preserve this release-branch edit. Carry forward its content without bringing back the 2.6.0 version/build metadata, duplicating entries, or altering the preserved RC1 tag and artifacts.

Agreed RC2 scope

Per the team scope confirmation:

Design

N/A — no UI changes in the release preparation commits.

Preview

N/A

QA Notes

Journeys

Validate the final RC2 revisions and production candidates: upgrades from released wallets and RC1, USDT opt-in/send/receive and Paykit payments, first-time Shop seller import and resume, translations, subscriptions, Bitcoin/Lightning, hardware wallets and channel recovery. A pending HTLC force-close claim is not covered by the standard E2E suite.

Automated Checks

RC2 results are pending the new release branch and final preparation commits. Record the exact tested revisions and CI/unit, integration where applicable, local E2E, migration and Android UI results before declaring the candidate ready.

Test compatibility work includes E2E #280 and Android UI fixes #1496; verify their integration and results against the selected RC2 revisions.

Manual Tests

RC2 production builds, artifact verification and release acceptance are pending. Record the archive/upload, TestFlight build and production-build QA when available.

Release artifacts

  • RC2: 3.0.0; build number, commit, tag and draft release pending the final cut.
  • Historical RC1: keep the existing GitHub draft and annotated v2.6.0 tag at 3f1fe6f5f7902a60ed65392a5c0b6cf4a78cc46b as the original 2.6.0 RC1 (199) record. Preserve its assets and tag target when creating the replacement release branch.
  • Prepare a separate 3.0.0 draft/tag for the new cut; RC1 artifacts must not be presented as RC2.
  • Store notes and store records need updating for 3.0.0 with USDT and the agreed scope. The RC1 documents linked below remain historical until revised.
  • Announce RC2 availability after both platform artifacts and TestFlight are ready.
Historical RC1 preparation and validation (2.6.0; not RC2 evidence)

Prepare Bitkit 2.6.0 RC1 (build 199) from master, with the release changelog collected and a tagged GitHub draft.

Description

  • Set version 2.6.0, build 199.
  • Finalize the 2026-10-14 changelog, consume next-release fragments, and preserve the 2.5.1 hotfix history from its tag.
  • Includes LDK Node 0.7.0-rc.74, Paykit 0.1.0-rc74 and Bitkit Core 0.5.18.
  • RC1 excludes USDT (Android #1432 / iOS feat: add usdt wallet and paykit payments #884) and the pending iOS one-swipe subscription fix (fix: pay first onchain subscription period in one swipe #881); later RCs may include them.
  • Keep this PR open through release testing; merge into master after the 2.6.0 store release per /release.

Design

N/A — no UI changes.

Preview

N/A

QA Notes

Journeys

The preparation commits change version metadata and changelog files only. Runtime testing of the RC binaries should cover upgrades, payments, Pubky/Paykit, hardware wallets and channel recovery. A pending HTLC force-close claim is not covered by the standard E2E suite.

Manual Tests

Piotr will archive and upload build 199 manually through Xcode. Main checkout is on release-2.6.0. TestFlight availability and device QA remain pending.

Automated Checks

Unit, integration, local E2E and migration passed on the app revision before the changelog-only commit.

The tagged RC1 revision adds only changelog consolidation after validated app revision 817843e8; release metadata and historical changelog checks passed. No new app-code edits were made during preparation.

Release artifacts

  • Tag: v2.6.0 at 3f1fe6f5 (RC1); GitHub release stays draft until store release.
  • Store release-note draft — five languages; shared read-only with Synonym.
  • Slack build announcement stays local until both Android artifacts and iOS TestFlight are available.

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

greptile-apps Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[Low impact] This metadata-only change appears safe to merge at the planned release stage.

Summary

Prepares Bitkit 2.6.0 (build 199) by changing only version metadata in Bitkit.xcodeproj/project.pbxproj.

  • Bitkit's app and extensions use version 2.6.0, build 199.

Intentional follow-ups acknowledged by piotr-iohk: the LDK update, changelog collection, release validation, tags, store notes, and uploads are deferred because this is draft release preparation.

Reviews (1) · Last reviewed commit: "chore: version 2.6.0" · 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. Bumps Bitkit iOS to 2.6.0 (build 199) in project.pbxproj. Reviewed 817843e, full tier, reasoned from the diff and the file at head (iOS does not build on this reviewer's host).

What I checked, and 2 candidates I ruled out

Read: every CURRENT_PROJECT_VERSION and MARKETING_VERSION in Bitkit.xcodeproj/project.pbxproj at head.
CI: unit-tests, integration-tests, e2e-tests build-local and E2E Migration still running at review time; Validate Translations green.

Ruled out

  • A target left on 2.5.0 / 197: all six app, widget and notification configurations (Debug and Release) read 2.6.0 / 199; only the test targets stay at 1.0 / 1, as on master.
  • Build number skips 198: 198 is taken by the 2.5.1 hotfix in #924 (release-2.5.1), so 199 keeps the build monotonic across both releases.

Merge confidence: 4/5, no findings and a config-only change, held below 5 because CI had not finished when this was reviewed.

jvsena42
jvsena42 previously approved these changes Oct 14, 2026

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

No findings at 817843e.

Checked: all six app, widget and notification configurations (Debug and Release) in project.pbxproj read MARKETING_VERSION = 2.6.0 and CURRENT_PROJECT_VERSION = 199; test targets are untouched. 198 is held by the 2.5.1 bump on release-2.5.1 (#924), so 199 keeps the build number monotonic.

CI at this head: build, build-local, Validate Translations and migration wallet prep are green; unit tests, integration tests, e2e and the migration runs were still pending when I approved. Nothing in a version-only change should fail them, but they need to be green before merge.

Device gate: no device check needed (version metadata only). perf: not relevant.

jvsena42
jvsena42 previously approved these changes Oct 14, 2026

@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 published Latest, 695 non-merge commits) and the v2.5.1 hotfix, not only the two prep commits, at 3f1fe6f. No findings.

Checked and clean:

  • Version: MARKETING_VERSION 2.6.0 and build 199 on all six app, widget and notification configurations, above v2.5.1 (198) and v2.5.0 (197).
  • Changelog:
    • Every user-facing PR merged since v2.5.0 has an entry. The ones without an entry are CI, test, docs or chore, and issue-numbered entries resolve to merged fixing PRs.
    • changelog.d/next and hotfix hold only .gitkeep, and the [2.5.1] section is preserved.
    • The [2.6.0] link v2.5.1...v2.6.0 renders v2.5.0..v2.6.0 through the merge base, the intended range.
    • #881 and USDT are absent, as the PR body says.
  • Dependencies: Package.resolved pins ldk-node 0.7.0-rc.74, bitkit-core 0.5.18, paykit-rs 0.1.0-rc74 and vss-rust-client-ffi 0.5.23, each revision matching its tag and matching Android synonymdev/bitkit-android#1473. rc.74 carries lightning 0.2.7, the 2.5.1 security fix. CodeScanner is removed cleanly.
  • Newly reachable by default: Paykit UI (uiEnabledByDefault = true, #818), as intended, and FEATURE_PAYKIT_UI_DISABLED is not set in Release. The new #if DEBUG blocks are UI-test fixtures and *ForTesting accessors. The only entitlement change is the pubky.shared keychain group, and mainnet hosts are unchanged.
  • CI at 3f1fe6f: unit, integration, build, e2e and migration from native 2.5.0 and RN 1.1.6 (upgrade and restore) are green. v2.5.1 differs from v2.5.0 only in the ldk-node patch, so the 2.5.0 baseline stands in for a 2.5.1 → 2.6.0 upgrade. The one path CI does not run is a TestFlight 198 → 199 upgrade, if 2.5.1 ships first.

Device gate: no device check needed for the prep commits; runtime evidence is the green e2e and migration runs, and device QA of the RC binary stays with the release owner. perf: not relevant.

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

@piotr-iohk, release-notes review of the iOS CHANGELOG.md 2.6.0 section at 3f1fe6f.

Fixed in #931, against release-2.6.0:

  • #532 (pull-to-refresh exchange rates) moves from Fixed to Changed, matching Android's #622.

Still for you:

  • 2.5.1 section: iOS 2.5.1 is still in App Store review, so this holds as long as 2.5.1 ships before 2.6.0.
  • Draft release body: it says RC1 and that USDT isn't included; edit before publishing.
  • Spending-confirm fix: #783 is listed as its own entry, while Android folds its twin into the order-on-confirm entry (#1247), because the regression was in an unreleased change. Worth one approach on both sides; here it would fold into #738.
  • iOS-only entries, worth confirming Android needs no twin:
    • #761
    • #847 (its PR text says a twin issue is needed)
  • Receive liquidity: Android has a follow-up (synonymdev/bitkit-android#1248) with no iOS counterpart.

chore: list pull-to-refresh rates under changed in the 2.6.0 changelog

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

Re-checked at d83bb52 after #931. The only change since my last review (3f1fe6f) is CHANGELOG.md, so the rest of that review stands.

Checked: #532 (Home pull-to-refresh feedback and on-demand exchange rates) moves from Fixed to Changed, matching its Android twin's placement. No other line changed. CI is green at this head.

Device gate: no device check needed (changelog only). perf: not relevant.

@piotr-iohk piotr-iohk changed the title chore: bump version 2.6.0 chore: prepare 3.0.0 rc2 Oct 15, 2026
@piotr-iohk piotr-iohk changed the title chore: prepare 3.0.0 rc2 chore: 2.6.0 rc1 preparation (replacement planned) Oct 15, 2026
@piotr-iohk piotr-iohk mentioned this pull request Oct 16, 2026
5 of 8 tasks

Copy link
Copy Markdown
Collaborator Author

Superseded by #956 (#956) on the fresh release-3.0.0 branch from master.

The replacement prepares 3.0.0 RC2 (build 200) and carries Ovi's changelog corrections from #931. Closing this historical preparation PR without merging, as agreed. The release-2.6.0 branch, annotated v2.6.0 tag, original RC1 draft release and assets remain preserved.

No RC2 build has been run; pending follow-ups and final release validation are tracked in the replacement PR.

@piotr-iohk piotr-iohk closed this Oct 16, 2026
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.

4 participants