Repository navigation
chore: bump version 3.1.0 - #1193
piotr-iohk wants to merge 2 commits into
Conversation
[Low impact] This metadata-only PR appears safe to merge under the stated post-release plan. SummaryPrepares version
Reviews (1) · Last reviewed commit: "chore: version 3.1.0" · Reviewed by Greptile |
|
Milestone 3.1.0: this is the 3.1.0 release version bump. |
talosmachina
left a comment
There was a problem hiding this comment.
No findings. Release prep for Bitkit iOS 3.1.0: MARKETING_VERSION 3.0.1 to 3.1.0 and CURRENT_PROJECT_VERSION 202 to 203 in all six app-target configurations (the four extension/test configurations stay at 1 / 1.0 as on master), and the changelog.d/next/ fragments collected into a dated [3.1.0] section. Reviewed 08faaf7, light tier, static (metadata-only diff; per the Bitkit track rules this box does not build the app branch, CI does).
What I checked, and 3 candidates I ruled out
Changed: Bitkit.xcodeproj/project.pbxproj, CHANGELOG.md, and 64 deleted fragments under changelog.d/next/ (only .gitkeep remains).
Changelog reproduced, not read: ran scripts/collect-changelog.sh --target next from master's own copy on a clean worktree of the base (master, the PR's merge base). It collected 64 entries; the only difference from this PR's CHANGELOG.md is the ## [3.1.0] - 2026-11-02 heading and the two link-reference lines ([Unreleased] now compares from v3.1.0, new [3.1.0] compares v3.0.1...v3.1.0). So every bullet, its category (6 Added, 7 Changed, 50 Fixed, 1 Security) and its #<n> suffix is exactly what the fragments produce, and no released section was touched (the diff's only removed line is the old [Unreleased] link).
Version: MARKETING_VERSION 3.0.1 to 3.1.0 and CURRENT_PROJECT_VERSION 202 to 203 in all six app-target configurations (the four extension/test configurations stay at 1 / 1.0 as on master); no other occurrence of the old marketing version left in the build file.
Ruled out
- Tag already exists:
v3.1.0points at08faaf7, the head of this PR, which is what Docs/RELEASE.md describes (tag the release branch, merge this PR after the store release). - Fragments lost: 64 fragments deleted, 64 bullets in the new section, each fragment's text found in its category.
- Hotfix fragments:
changelog.d/hotfix/holds only.gitkeepon both base and head, so nothing was skipped.
Merge confidence: 4/5, no findings, but CI is still running at the time of review (unit, integration, build-local and migration jobs pending), so the green row does not apply yet.
Reviewer model: claude-opus-5-5
Reasoning effort: Not exposed (the reviewer's session metadata names the model but carries no reasoning setting)
jvsena42
left a comment
There was a problem hiding this comment.
Code scan against v3.0.1, the last published release on this lineage. No findings. Approval waits for CI.
- Version: 3.1.0 (203) in all six app, widget and notification configs; 203 is above every published build (v3.0.1 202, v3.0.0 200).
- Changelog: all 64 fragments consumed; everything from
## [3.0.1]down is byte-identical to v3.0.1; the compare links are correct. Every user-facing PR merged since v3.0.1 has an entry, except #1144 (a shorter French empty-wallet prompt). No entry describes excluded work: #1021 is on master after the release base and is correctly absent. - Hotfixes: v3.0.0 (version and changelog only) has nothing to carry. The v2.5.1 Lightning 0.2.7 security backport is carried: ldk-node rc.78 still pins
lightning = 0.2.7. - Dependencies since v3.0.1: ldk-node rc.76 → rc.78, bitkit-core rc6 → rc11, paykit 0.1.0 → 0.1.1-rc2, vss 0.5.23 → 0.5.26-rc1. None needs a stored-state migration. All four match synonymdev/bitkit-android#1755.
- App data:
AppDataMigrations2 → 4. Migration 3 clearspaykitUiEnabled. Migration 4 turns off public publishing, queues public-endpoint cleanup and moves the legacy on-chain address. The new keychain keys and theUSDT_RECOVERYbackup category are additive. - Newly on by default since v3.0.1: Paykit UI and allowances. Geoblocking and the Blocktank order, CJIT and push paths are removed. Public Paykit payments default to off. Each of these is intended and has a changelog entry.
- Debug leaks: none in Release. Compilation conditions are inherited only, the network resolves to mainnet, the E2E endpoints sit behind
#if DEBUG || E2E_BUILD, andE2E_BUILDis not defined.
Notes for the release, nothing to change here:
- A send broadcast on 3.0.1 that is still unconfirmed at upgrade can't be boosted afterwards. ldk-node rc.78 has no broadcast record for it, so Boost shows "No broadcast record for this transaction". #1140 documents this. Store notes may want to mention it.
- With Blocktank push registration removed (#1127), the app is no longer woken for incoming Lightning payments while closed, including on existing channels. The changelog mentions only transfers and force close. Android does the same (synonymdev/bitkit-android#1696).
Device gate (partial): 6bcce8f — not run; the runtime evidence is CI. Pending at 6bcce8f: Run Tests, Integration Tests, e2e-tests-local, the four migration runs (native_upgrade and native_restore from 3.0.1, rn_upgrade and rn_restore from v1.1.6), and E2E Staging. I'll approve once they're green.
Replaced by a comment review: release PRs merge after the store release.
ovitrif
left a comment
There was a problem hiding this comment.
Verdict: 💬 No blocking findings. Posted as a comment, not an approval, so this release PR is not merged before the store release; version and changelog are correct, and the notes below are non-blocking.
Checked
MARKETING_VERSION3.1.0 andCURRENT_PROJECT_VERSION203 in all six shipping configs (app, widget, notification); test targets unchanged. 203 is above every tagged build (202 is the last). Info.plists read the build settings.v3.1.0points at08faaf7; this head adds only the #1140 link inCHANGELOG.md.- All 64
changelog.d/next/fragments are in the[3.1.0]section with the right category and number, and the folder is empty again. Compare links are correct. - The diff touches only
project.pbxproj,CHANGELOG.mdand the fragments. CI is green apart from the e2e runs, still in progress at review time.
Notes (non-blocking)
- Master now also has #1021 (news widget time at large text), merged after the cut, so it is not in
v3.1.0and its fragment stays inchangelog.d/next/after this merges. Build the store release from the tag; if 3.1.0 is rebuilt from master, that fix ships without a changelog entry. CHANGELOG.md:82-89: 7 blank lines before## [3.0.1].CHANGELOG.md:41(#1054) packs three unrelated fixes into one line.
jvsena42
left a comment
There was a problem hiding this comment.
Approving at 6bcce8f. The code scan in my partial review stands: no findings against v3.0.1.
Five candidates raised on the Android twin were checked here as well. Three reach this release unchanged, and each was intended or accepted in its own PR: paid but unopened Blocktank orders settled without a channel (#1127), the generic error when boosting a send from before the upgrade (#1140), and an allowance auto-payment left in the unknown state after an unclassified pre-send error. The other two are not introduced by this release:
- The pending-restore lockout already existed in v3.0.1, which had no Proceed path.
- The fee warning, the display and the broadcast all use the same rate.
CI at 6bcce8f is green:
- SwiftFormat, lint, build, unit and integration tests, and e2e-tests-local.
- All four migration runs:
native_upgradeandnative_restorefrom 3.0.1,rn_upgradeandrn_restorefrom v1.1.6. - E2E Staging run 41468161055: transfer, multi_address, pubky and ios_nightly_ui.
Device gate: no device check needed — the diff is version and changelog only; the shipped code's runtime evidence is the CI above.
Twin: synonymdev/bitkit-android#1755
This PR prepares version 3.1.0 (build 203) from master for release testing. Merge after the store release.
Description
4ac08000fd0ba277c472ae171d03c45751576c75.Design
N/A — no UI changes.
Preview
N/A
QA Notes
Setup
Release branch
release-3.1.0. Staging workflow uses regtest andsynonymdev/bitkit-e2e-testsbranchmain; completed staging/migration checkout logs resolve to611509ee2d6dc44094276b567ac51949d63760f9.Journeys
N/A — this PR changes version and changelog metadata only.
Manual Tests
N/A for the metadata changes. Release device sign-off remains separate.
Automated Checks
No test changes. Current release automation results and coverage caveats follow.
Automated test status
Final results checked 2026-11-02 17:56 CET on release commit
6bcce8f77d4077430d7183c40e8062b0a0326d67.settings_08, switch address types).multi_address_1(receive to each address type and send max combined) passed. E2E revision:611509ee2d6dc44094276b567ac51949d63760f9.All current-head test workflows have finished successfully. Local E2E, migration and Pubky/Paykit required retries; explicit skips remain coverage exclusions. No release sign-off is implied. No release sign-off is implied.
Evidence
Xcode 26.0.1 archived 3.1.0 (203) from the release commit; app and extension signatures/versions and the app dSYM UUID were verified. Build 203 is available in TestFlight.
Version/build consistency, changelog fragment preservation, unchanged released changelog history and
git diff --checkpassed. Independent metadata review found no actionable findings. Release commit signature verified locally and by GitHub.Gaps
All automated runs are finished. Nightly UI passed 28 tests on attempt 1 with
settings_08explicitly skipped. Local E2E passed on attempt 2 (13 total passed, 1 intentional hardware-wallet transfer skip). Pubky/Paykit passed all 6 tests on attempt 2 after a session-start timeout. Transfer and multi-address were intentionally skipped. Migration passed with retries. Manual release QA and allowance-specific runtime gaps remain outside these automation results.Release runs
Current release commit:
6bcce8f77d4077430d7183c40e8062b0a0326d67. The signedv3.1.0tag points here. All 3.1.0 changelog entries now have PR references; both draft release bodies contain the changelog. Earlier runs were cancelled after the changelog correction.Store release notes — shared with
synonym.to.Models used
gpt-6-astra(reasoning:high)gpt-6-astra(reasoning:high)gpt-6-astra(reasoning:high)