From b086760c7aed108e7f0b87b72e247933df5e895b Mon Sep 17 00:00:00 2001 From: Adam Borbas Date: Tue, 7 Jul 2026 21:14:22 +0200 Subject: [PATCH 1/3] Prepare release 1.2 Drop CHANGELOG.md references from the release process; the changelog was removed from the repo and is no longer maintained. Co-Authored-By: Claude Opus 4.7 --- RELEASING.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index af0125a..dbd8413 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -8,16 +8,14 @@ Hemera uses release branches to allow development to continue on `main` while a ```bash git checkout -b release/1.0.0 main ``` -2. In `CHANGELOG.md`, rename `## [Unreleased]` → `## [1.0.0] - YYYY-MM-DD` -3. Bump the marketing version in Xcode project settings if needed -4. Commit: `"Prepare release 1.0.0"` -5. Push and submit to Apple for review +2. Bump the marketing version in Xcode project settings if needed +3. Commit: `"Prepare release 1.0.0"` +4. Push and submit to Apple for review ## Fixing issues during review 1. Create a fix branch from `release/1.0.0` (not from `main`) 2. Open a PR targeting `release/1.0.0` -3. Update the changelog under `[1.0.0]` in the same PR ## Shipping @@ -30,7 +28,7 @@ Once Apple approves: ``` 2. Create a GitHub release from the tag: ```bash - gh release create v1.0.0 --title "1.0.0" --notes "See CHANGELOG.md for details." + gh release create v1.0.0 --title "1.0.0" --notes "Release 1.0.0" ``` ## Merging back to main @@ -40,7 +38,7 @@ git checkout main git merge release/1.0.0 --no-ff -m "Merge release/1.0.0 back to main" ``` -Resolve the changelog conflict by keeping both the `[Unreleased]` section (with any new entries added to `main`) and the `[1.0.0]` section below it. Then delete the release branch: +Then delete the release branch: ```bash git branch -d release/1.0.0 From ccf8520dfae1e152254cedb55e559a7d4ffd519b Mon Sep 17 00:00:00 2001 From: Adam Borbas Date: Tue, 7 Jul 2026 21:19:09 +0200 Subject: [PATCH 2/3] Centralize version numbers in Shared.xcconfig Move MARKETING_VERSION and CURRENT_PROJECT_VERSION out of the six per-target build configs into Shared.xcconfig so each release bumps the version in one place. Targets inherit the values via the project's base configuration. Co-Authored-By: Claude Opus 4.7 --- Config/Shared.xcconfig | 4 ++++ Hemera.xcodeproj/project.pbxproj | 12 ------------ 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/Config/Shared.xcconfig b/Config/Shared.xcconfig index eba75cd..194cbf0 100644 --- a/Config/Shared.xcconfig +++ b/Config/Shared.xcconfig @@ -1,3 +1,7 @@ #include? "Local.xcconfig" CODE_SIGN_STYLE = Automatic + +// Version numbers — bump these once per release; all targets inherit them. +MARKETING_VERSION = 1.2 +CURRENT_PROJECT_VERSION = 1 diff --git a/Hemera.xcodeproj/project.pbxproj b/Hemera.xcodeproj/project.pbxproj index 4da98b2..31c2854 100644 --- a/Hemera.xcodeproj/project.pbxproj +++ b/Hemera.xcodeproj/project.pbxproj @@ -453,7 +453,6 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CURRENT_PROJECT_VERSION = 1; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Hemera/Info.plist; @@ -467,7 +466,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.2; PRODUCT_BUNDLE_IDENTIFIER = com.adborbas.hemera.app; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -486,7 +484,6 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CURRENT_PROJECT_VERSION = 1; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Hemera/Info.plist; @@ -500,7 +497,6 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.2; PRODUCT_BUNDLE_IDENTIFIER = com.adborbas.hemera.app; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -518,9 +514,7 @@ isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.2; PRODUCT_BUNDLE_IDENTIFIER = com.adborbas.hemera.app.tests; PRODUCT_NAME = "$(TARGET_NAME)"; STRING_CATALOG_GENERATE_SYMBOLS = NO; @@ -537,9 +531,7 @@ isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.2; PRODUCT_BUNDLE_IDENTIFIER = com.adborbas.hemera.app.tests; PRODUCT_NAME = "$(TARGET_NAME)"; STRING_CATALOG_GENERATE_SYMBOLS = NO; @@ -556,9 +548,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.2; PRODUCT_BUNDLE_IDENTIFIER = com.adborbas.hemera.app.uitests; PRODUCT_NAME = "$(TARGET_NAME)"; STRING_CATALOG_GENERATE_SYMBOLS = NO; @@ -575,9 +565,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.2; PRODUCT_BUNDLE_IDENTIFIER = com.adborbas.hemera.app.uitests; PRODUCT_NAME = "$(TARGET_NAME)"; STRING_CATALOG_GENERATE_SYMBOLS = NO; From e6432f5705a0baf02a98bf9b040d7d6956e46172 Mon Sep 17 00:00:00 2001 From: Adam Borbas Date: Tue, 7 Jul 2026 21:19:41 +0200 Subject: [PATCH 3/3] Document version bumping via Shared.xcconfig in release process Co-Authored-By: Claude Opus 4.7 --- RELEASING.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/RELEASING.md b/RELEASING.md index dbd8413..add031f 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -8,7 +8,7 @@ Hemera uses release branches to allow development to continue on `main` while a ```bash git checkout -b release/1.0.0 main ``` -2. Bump the marketing version in Xcode project settings if needed +2. Bump `MARKETING_VERSION` in `Config/Shared.xcconfig` to match the release (e.g. `1.0.0`). All targets inherit it from there. 3. Commit: `"Prepare release 1.0.0"` 4. Push and submit to Apple for review @@ -16,6 +16,7 @@ Hemera uses release branches to allow development to continue on `main` while a 1. Create a fix branch from `release/1.0.0` (not from `main`) 2. Open a PR targeting `release/1.0.0` +3. If re-uploading to App Store Connect, bump `CURRENT_PROJECT_VERSION` in `Config/Shared.xcconfig` — the build number must be unique per marketing version. ## Shipping