Commit cc1cb343b1

cc1cb343b19b662ef59f9700702ed285e4591029

parent: e818eefdee

Unsigned

cmc <hello@cleberg.net> · 2026-07-25 05:31 UTC

chore: cut v5.0.0 release (version bump)

Bumps the app to 5.0.0 now that all four v5.0.0 workstreams have landed:

- AppVersion.current 4.9.0 -> 5.0.0
- MARKETING_VERSION 4.9.0 -> 5.0.0 across all targets (app, widget, share
  extension, and both test bundles)
- CURRENT_PROJECT_VERSION 44 -> 45 across all targets
- RELEASE_ROADMAP.md: v5.0.0 marked shipped, "Current version" -> v5.0.0

The three version sources are kept in lockstep, matching the v4.4.1 alignment
policy. App Store archive/submit remains a manual step outside the repo.

Layout: unified · split

DomainDig.xcodeproj/project.pbxproj +20 −20
@@ -563,11 +563,11 @@
563 BUNDLE_LOADER = "$(TEST_HOST)"; 563 BUNDLE_LOADER = "$(TEST_HOST)";
564 CLANG_ENABLE_OBJC_WEAK = NO; 564 CLANG_ENABLE_OBJC_WEAK = NO;
565 CODE_SIGN_STYLE = Automatic; 565 CODE_SIGN_STYLE = Automatic;
566 CURRENT_PROJECT_VERSION = 44; 566 CURRENT_PROJECT_VERSION = 45;
567 DEVELOPMENT_TEAM = ZCNAX3VL9D; 567 DEVELOPMENT_TEAM = ZCNAX3VL9D;
568 GENERATE_INFOPLIST_FILE = YES; 568 GENERATE_INFOPLIST_FILE = YES;
569 IPHONEOS_DEPLOYMENT_TARGET = 17.6; 569 IPHONEOS_DEPLOYMENT_TARGET = 17.6;
570 MARKETING_VERSION = 4.9.0; 570 MARKETING_VERSION = 5.0.0;
571 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDigTests; 571 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDigTests;
572 PRODUCT_NAME = "$(TARGET_NAME)"; 572 PRODUCT_NAME = "$(TARGET_NAME)";
573 SDKROOT = iphoneos; 573 SDKROOT = iphoneos;
@@ -710,7 +710,7 @@
710 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 710 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
711 CODE_SIGN_ENTITLEMENTS = DomainDig/DomainDig.entitlements; 711 CODE_SIGN_ENTITLEMENTS = DomainDig/DomainDig.entitlements;
712 CODE_SIGN_STYLE = Automatic; 712 CODE_SIGN_STYLE = Automatic;
713 CURRENT_PROJECT_VERSION = 44; 713 CURRENT_PROJECT_VERSION = 45;
714 DEVELOPMENT_TEAM = ZCNAX3VL9D; 714 DEVELOPMENT_TEAM = ZCNAX3VL9D;
715 ENABLE_PREVIEWS = YES; 715 ENABLE_PREVIEWS = YES;
716 GENERATE_INFOPLIST_FILE = YES; 716 GENERATE_INFOPLIST_FILE = YES;
@@ -727,7 +727,7 @@
727 "$(inherited)", 727 "$(inherited)",
728 "@executable_path/Frameworks", 728 "@executable_path/Frameworks",
729 ); 729 );
730 MARKETING_VERSION = 4.9.0; 730 MARKETING_VERSION = 5.0.0;
731 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig; 731 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig;
732 PRODUCT_NAME = "$(TARGET_NAME)"; 732 PRODUCT_NAME = "$(TARGET_NAME)";
733 STRING_CATALOG_GENERATE_SYMBOLS = YES; 733 STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -747,7 +747,7 @@
747 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 747 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
748 CODE_SIGN_ENTITLEMENTS = DomainDig/DomainDig.entitlements; 748 CODE_SIGN_ENTITLEMENTS = DomainDig/DomainDig.entitlements;
749 CODE_SIGN_STYLE = Automatic; 749 CODE_SIGN_STYLE = Automatic;
750 CURRENT_PROJECT_VERSION = 44; 750 CURRENT_PROJECT_VERSION = 45;
751 DEVELOPMENT_TEAM = ZCNAX3VL9D; 751 DEVELOPMENT_TEAM = ZCNAX3VL9D;
752 ENABLE_PREVIEWS = YES; 752 ENABLE_PREVIEWS = YES;
753 GENERATE_INFOPLIST_FILE = YES; 753 GENERATE_INFOPLIST_FILE = YES;
@@ -764,7 +764,7 @@
764 "$(inherited)", 764 "$(inherited)",
765 "@executable_path/Frameworks", 765 "@executable_path/Frameworks",
766 ); 766 );
767 MARKETING_VERSION = 4.9.0; 767 MARKETING_VERSION = 5.0.0;
768 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig; 768 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig;
769 PRODUCT_NAME = "$(TARGET_NAME)"; 769 PRODUCT_NAME = "$(TARGET_NAME)";
770 STRING_CATALOG_GENERATE_SYMBOLS = YES; 770 STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -783,7 +783,7 @@
783 APPLICATION_EXTENSION_API_ONLY = YES; 783 APPLICATION_EXTENSION_API_ONLY = YES;
784 CODE_SIGN_ENTITLEMENTS = DomainDigWidget/DomainDigWidget.entitlements; 784 CODE_SIGN_ENTITLEMENTS = DomainDigWidget/DomainDigWidget.entitlements;
785 CODE_SIGN_STYLE = Automatic; 785 CODE_SIGN_STYLE = Automatic;
786 CURRENT_PROJECT_VERSION = 44; 786 CURRENT_PROJECT_VERSION = 45;
787 DEVELOPMENT_TEAM = ZCNAX3VL9D; 787 DEVELOPMENT_TEAM = ZCNAX3VL9D;
788 GENERATE_INFOPLIST_FILE = NO; 788 GENERATE_INFOPLIST_FILE = NO;
789 INFOPLIST_FILE = DomainDigWidget/Info.plist; 789 INFOPLIST_FILE = DomainDigWidget/Info.plist;
@@ -794,7 +794,7 @@
794 "@executable_path/Frameworks", 794 "@executable_path/Frameworks",
795 "@executable_path/../../Frameworks", 795 "@executable_path/../../Frameworks",
796 ); 796 );
797 MARKETING_VERSION = 4.9.0; 797 MARKETING_VERSION = 5.0.0;
798 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig.DomainDigWidget; 798 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig.DomainDigWidget;
799 PRODUCT_NAME = "$(TARGET_NAME)"; 799 PRODUCT_NAME = "$(TARGET_NAME)";
800 SKIP_INSTALL = YES; 800 SKIP_INSTALL = YES;
@@ -812,7 +812,7 @@
812 APPLICATION_EXTENSION_API_ONLY = YES; 812 APPLICATION_EXTENSION_API_ONLY = YES;
813 CODE_SIGN_ENTITLEMENTS = DomainDigWidget/DomainDigWidget.entitlements; 813 CODE_SIGN_ENTITLEMENTS = DomainDigWidget/DomainDigWidget.entitlements;
814 CODE_SIGN_STYLE = Automatic; 814 CODE_SIGN_STYLE = Automatic;
815 CURRENT_PROJECT_VERSION = 44; 815 CURRENT_PROJECT_VERSION = 45;
816 DEVELOPMENT_TEAM = ZCNAX3VL9D; 816 DEVELOPMENT_TEAM = ZCNAX3VL9D;
817 GENERATE_INFOPLIST_FILE = NO; 817 GENERATE_INFOPLIST_FILE = NO;
818 INFOPLIST_FILE = DomainDigWidget/Info.plist; 818 INFOPLIST_FILE = DomainDigWidget/Info.plist;
@@ -823,7 +823,7 @@
823 "@executable_path/Frameworks", 823 "@executable_path/Frameworks",
824 "@executable_path/../../Frameworks", 824 "@executable_path/../../Frameworks",
825 ); 825 );
826 MARKETING_VERSION = 4.9.0; 826 MARKETING_VERSION = 5.0.0;
827 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig.DomainDigWidget; 827 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig.DomainDigWidget;
828 PRODUCT_NAME = "$(TARGET_NAME)"; 828 PRODUCT_NAME = "$(TARGET_NAME)";
829 SKIP_INSTALL = YES; 829 SKIP_INSTALL = YES;
@@ -841,7 +841,7 @@
841 APPLICATION_EXTENSION_API_ONLY = YES; 841 APPLICATION_EXTENSION_API_ONLY = YES;
842 CODE_SIGN_ENTITLEMENTS = DomainDigShareExtension/DomainDigShareExtension.entitlements; 842 CODE_SIGN_ENTITLEMENTS = DomainDigShareExtension/DomainDigShareExtension.entitlements;
843 CODE_SIGN_STYLE = Automatic; 843 CODE_SIGN_STYLE = Automatic;
844 CURRENT_PROJECT_VERSION = 44; 844 CURRENT_PROJECT_VERSION = 45;
845 DEVELOPMENT_TEAM = ZCNAX3VL9D; 845 DEVELOPMENT_TEAM = ZCNAX3VL9D;
846 GENERATE_INFOPLIST_FILE = NO; 846 GENERATE_INFOPLIST_FILE = NO;
847 INFOPLIST_FILE = DomainDigShareExtension/Info.plist; 847 INFOPLIST_FILE = DomainDigShareExtension/Info.plist;
@@ -852,7 +852,7 @@
852 "@executable_path/Frameworks", 852 "@executable_path/Frameworks",
853 "@executable_path/../../Frameworks", 853 "@executable_path/../../Frameworks",
854 ); 854 );
855 MARKETING_VERSION = 4.9.0; 855 MARKETING_VERSION = 5.0.0;
856 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig.DomainDigShareExtension; 856 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig.DomainDigShareExtension;
857 PRODUCT_NAME = "$(TARGET_NAME)"; 857 PRODUCT_NAME = "$(TARGET_NAME)";
858 SKIP_INSTALL = YES; 858 SKIP_INSTALL = YES;
@@ -870,7 +870,7 @@
870 APPLICATION_EXTENSION_API_ONLY = YES; 870 APPLICATION_EXTENSION_API_ONLY = YES;
871 CODE_SIGN_ENTITLEMENTS = DomainDigShareExtension/DomainDigShareExtension.entitlements; 871 CODE_SIGN_ENTITLEMENTS = DomainDigShareExtension/DomainDigShareExtension.entitlements;
872 CODE_SIGN_STYLE = Automatic; 872 CODE_SIGN_STYLE = Automatic;
873 CURRENT_PROJECT_VERSION = 44; 873 CURRENT_PROJECT_VERSION = 45;
874 DEVELOPMENT_TEAM = ZCNAX3VL9D; 874 DEVELOPMENT_TEAM = ZCNAX3VL9D;
875 GENERATE_INFOPLIST_FILE = NO; 875 GENERATE_INFOPLIST_FILE = NO;
876 INFOPLIST_FILE = DomainDigShareExtension/Info.plist; 876 INFOPLIST_FILE = DomainDigShareExtension/Info.plist;
@@ -881,7 +881,7 @@
881 "@executable_path/Frameworks", 881 "@executable_path/Frameworks",
882 "@executable_path/../../Frameworks", 882 "@executable_path/../../Frameworks",
883 ); 883 );
884 MARKETING_VERSION = 4.9.0; 884 MARKETING_VERSION = 5.0.0;
885 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig.DomainDigShareExtension; 885 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig.DomainDigShareExtension;
886 PRODUCT_NAME = "$(TARGET_NAME)"; 886 PRODUCT_NAME = "$(TARGET_NAME)";
887 SKIP_INSTALL = YES; 887 SKIP_INSTALL = YES;
@@ -897,11 +897,11 @@
897 isa = XCBuildConfiguration; 897 isa = XCBuildConfiguration;
898 buildSettings = { 898 buildSettings = {
899 CODE_SIGN_STYLE = Automatic; 899 CODE_SIGN_STYLE = Automatic;
900 CURRENT_PROJECT_VERSION = 44; 900 CURRENT_PROJECT_VERSION = 45;
901 DEVELOPMENT_TEAM = ZCNAX3VL9D; 901 DEVELOPMENT_TEAM = ZCNAX3VL9D;
902 GENERATE_INFOPLIST_FILE = YES; 902 GENERATE_INFOPLIST_FILE = YES;
903 IPHONEOS_DEPLOYMENT_TARGET = 17.6; 903 IPHONEOS_DEPLOYMENT_TARGET = 17.6;
904 MARKETING_VERSION = 4.9.0; 904 MARKETING_VERSION = 5.0.0;
905 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDigUITests; 905 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDigUITests;
906 PRODUCT_NAME = "$(TARGET_NAME)"; 906 PRODUCT_NAME = "$(TARGET_NAME)";
907 SWIFT_APPROACHABLE_CONCURRENCY = YES; 907 SWIFT_APPROACHABLE_CONCURRENCY = YES;
@@ -916,11 +916,11 @@
916 isa = XCBuildConfiguration; 916 isa = XCBuildConfiguration;
917 buildSettings = { 917 buildSettings = {
918 CODE_SIGN_STYLE = Automatic; 918 CODE_SIGN_STYLE = Automatic;
919 CURRENT_PROJECT_VERSION = 44; 919 CURRENT_PROJECT_VERSION = 45;
920 DEVELOPMENT_TEAM = ZCNAX3VL9D; 920 DEVELOPMENT_TEAM = ZCNAX3VL9D;
921 GENERATE_INFOPLIST_FILE = YES; 921 GENERATE_INFOPLIST_FILE = YES;
922 IPHONEOS_DEPLOYMENT_TARGET = 17.6; 922 IPHONEOS_DEPLOYMENT_TARGET = 17.6;
923 MARKETING_VERSION = 4.9.0; 923 MARKETING_VERSION = 5.0.0;
924 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDigUITests; 924 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDigUITests;
925 PRODUCT_NAME = "$(TARGET_NAME)"; 925 PRODUCT_NAME = "$(TARGET_NAME)";
926 SWIFT_APPROACHABLE_CONCURRENCY = YES; 926 SWIFT_APPROACHABLE_CONCURRENCY = YES;
@@ -937,11 +937,11 @@
937 BUNDLE_LOADER = "$(TEST_HOST)"; 937 BUNDLE_LOADER = "$(TEST_HOST)";
938 CLANG_ENABLE_OBJC_WEAK = NO; 938 CLANG_ENABLE_OBJC_WEAK = NO;
939 CODE_SIGN_STYLE = Automatic; 939 CODE_SIGN_STYLE = Automatic;
940 CURRENT_PROJECT_VERSION = 44; 940 CURRENT_PROJECT_VERSION = 45;
941 DEVELOPMENT_TEAM = ZCNAX3VL9D; 941 DEVELOPMENT_TEAM = ZCNAX3VL9D;
942 GENERATE_INFOPLIST_FILE = YES; 942 GENERATE_INFOPLIST_FILE = YES;
943 IPHONEOS_DEPLOYMENT_TARGET = 17.6; 943 IPHONEOS_DEPLOYMENT_TARGET = 17.6;
944 MARKETING_VERSION = 4.9.0; 944 MARKETING_VERSION = 5.0.0;
945 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDigTests; 945 PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDigTests;
946 PRODUCT_NAME = "$(TARGET_NAME)"; 946 PRODUCT_NAME = "$(TARGET_NAME)";
947 SDKROOT = iphoneos; 947 SDKROOT = iphoneos;
DomainDig/AppVersion.swift +1 −1
@@ -2,6 +2,6 @@ import Foundation
2 2
3enum AppVersion { 3enum AppVersion {
4 nonisolated static var current: String { 4 nonisolated static var current: String {
5 "4.9.0" 5 "5.0.0"
6 } 6 }
7} 7}
RELEASE_ROADMAP.md +7 −7
@@ -6,7 +6,7 @@ ports, geolocation, subdomains, availability). The next several releases invest
6in *reach and surfacing* — getting that data onto more iOS surfaces and into more 6in *reach and surfacing* — getting that data onto more iOS surfaces and into more
7workflows — rather than adding raw protocol checks. 7workflows — rather than adding raw protocol checks.
8 8
9Current version: `v4.9.0`. 9Current version: `v5.0.0`.
10 10
11## v4.4.1 Patch: Release Readiness — ✅ shipped 11## v4.4.1 Patch: Release Readiness — ✅ shipped
12 12
@@ -264,11 +264,11 @@ VoiceOver or Voice Control at all:
264The Liquid Glass (iOS 26+) runtime check is **done** — it ran on simulator 264The Liquid Glass (iOS 26+) runtime check is **done** — it ran on simulator
265alongside the classic-chrome floor. 265alongside the classic-chrome floor.
266 266
267## v5.0.0 Major: Contract Stabilization & Engineering Health — ✅ engineering complete (release cut pending) 267## v5.0.0 Major: Contract Stabilization & Engineering Health — ✅ shipped
268 268
269Goal: earn long-term compatibility promises — and pay down the debt the feature 269Goal: earn long-term compatibility promises — and pay down the debt the feature
270releases above accumulated. All four workstreams have landed on `main`; cutting 270releases above accumulated. All four workstreams landed on `main` behind the new
271the release itself (version bump and submission) is the only remaining step. 271test net.
272 272
273- **Deterministic-core test net — done first**, as the cross-cutting note below 273- **Deterministic-core test net — done first**, as the cross-cutting note below
274 required. Added `DomainDigTests`, the project's first XCTest unit target, 274 required. Added `DomainDigTests`, the project's first XCTest unit target,
@@ -306,9 +306,9 @@ the release itself (version bump and submission) is the only remaining step.
306 is a *design* change — extracting a collaborator object — not a mechanical move, 306 is a *design* change — extracting a collaborator object — not a mechanical move,
307 so it is deferred rather than forced through visibility promotions. 307 so it is deferred rather than forced through visibility promotions.
308 308
309Remaining to cut the release: bump `MARKETING_VERSION` 4.9.0 → 5.0.0 and 309Release cut: `MARKETING_VERSION` 4.9.0 → 5.0.0, `CURRENT_PROJECT_VERSION`
310increment `CURRENT_PROJECT_VERSION`, keep `AppVersion.current` in sync, and 31044 → 45, and `AppVersion.current` bumped in lockstep. App Store archive/submit is
311archive/submit. 311the only step left, and it is a manual action outside the repo.
312 312
313## Cross-cutting note 313## Cross-cutting note
314 314