chore: bump version 2.5.0 - #740
Conversation
|
Co-authored-by: Cursor <cursoragent@cursor.com>
93253ef to
607f96d
Compare
jvsena42
left a comment
There was a problem hiding this comment.
Release mechanics check out. No findings — safe to ship from my side. Reviewed alongside the android twin (synonymdev/bitkit-android#1246).
Version: all six shipping build configs bumped together (app Debug/Release, notification extension Debug/Release, widget extension Debug/Release) — project.pbxproj:942/:969 → CURRENT_PROJECT_VERSION = 197, MARKETING_VERSION = 2.5.0, from 196 / 2.4.1 at the v2.4.1 tag.
I checked for a missed target rather than assuming six was the full set: the remaining MARKETING_VERSION = 1.0 / CURRENT_PROJECT_VERSION = 1 blocks (pbxproj ~1038-1108) are to.BitkitTests and to.BitkitUITests, which were also 1.0/1 at v2.4.1 — correct to leave alone. No xcconfig carries versions, and the Info.plists use $(MARKETING_VERSION)/$(CURRENT_PROJECT_VERSION) substitution, so nothing else needed touching.
Changelog consumption — all 27 fragments verified individually: 27 deleted, 27 bullets, each text found exactly once under a filename-matching heading, issue-ID sets identical, preamble unchanged, ## [2.4.1]-and-below byte-identical except the expected link-reference block, and changelog.d/hotfix/ holds only .gitkeep. Zero dropped, zero duplicated.
Stray changes: none — M project.pbxproj (12 insertions / 12 deletions, all version lines), M CHANGELOG.md, 27 fragment deletions.
Parity with android #1246: both ship 2.5.0. Build numbers differ (189 vs 197) but those are independent per-store monotonic counters that have been divergent across prior releases, so that's not a mismatch. Both pin paykit at 0.1.0-rc51. No parity finding.
One thing worth knowing before you publish, not a change request.
2.5.0 ships Paykit as reachable opt-in code rather than dead-but-linked code:
FEATURE_PAYKIT_UI_DISABLEDappears only atPaykitFeatureFlags.swift:7and is never defined in any config — ReleaseSWIFT_ACTIVE_COMPILATION_CONDITIONS(project.pbxproj:930) is"CHECK_GEOBLOCK $(inherited)"— soisUIAvailableis true in a Release build.- The user flag does default false (
PaykitFeatureFlags.swift:15) ✅ andshowDevSettingsdefaults toEnv.isDebug(SupportScreen.swift:48). - But the 5-tap handler at
SupportScreen.swift:168has no#if DEBUGguard — it just callsshowDevSettings.toggle()— so in a stock App Store build: Settings → About → tap version 5× → Advanced → Dev Settings → Enable Paykit UI → confirm, and the Paykit surface is live.
11 of the 27 bullets describe Paykit capability in plain "Bitkit can now…" voice with no gating qualifier. I considered filing that and decided against it — several are Fixed entries on Paykit internals where a gating suffix would be noise, there's no fastlane or store-metadata pipeline here so the blast radius is the GitHub release body, and the fragments were authored upstream in already-merged PRs and consumed mechanically by this one.
Cheapest fix if you want it: one sentence in the GitHub draft release description — "Paykit / subscription features are staged behind Dev Settings and off by default" — covering all 11 bullets with no code and no edits to merged fragments.
Please don't fix it by defining FEATURE_PAYKIT_UI_DISABLED for Release. That flips isUIAvailable false, which triggers enforceBuildAvailability() to tear down published state — clearing publishingEnabledKey/confirmedPreferenceKey, removing publicPaykitBolt11 plus its payment hash and expiry, and raising cleanup-pending flags. Shipping that untested inside a release cut would be worse than the thing it fixes.
Release 2.5.0.
Description
CURRENT_PROJECT_VERSIONto 197 andMARKETING_VERSIONto 2.5.0changelog.d/next/intoCHANGELOG.mdunder[2.5.0] - 2026-09-10Linked Issues/Tasks
N/A
Design
N/A — no UI changes.
Screenshot / Video
N/A