Skip to content

Adopt LumaControl bundle identity and start the 1.0.0 line - #3

Merged
shay2000 merged 2 commits into
mainfrom
migrate/lumacontrol-identity-v1
Sep 12, 2026
Merged

shay2000 merged 2 commits into
mainfrom
migrate/lumacontrol-identity-v1

Conversation

@shay2000

Copy link
Copy Markdown
Owner

What

Completes the LumaControl migration. The visible rename (README, UI strings, all localization files, install script, repo name, appcast) already landed in 542e00c / v0.3.0. What remained was the internal identity:

Before After
App bundle ID com.shay2000.XDRMonitorControl com.shay2000.LumaControl
Helper bundle ID com.shay2000.XDRMonitorControlHelper com.shay2000.LumaControlHelper
Tests bundle ID com.shay2000.XDRMonitorControlTests com.shay2000.LumaControlTests
Marketing version 0.3.0 1.0.0
Build number 39 1

The Helper suffix is load-bearing: MonitorControlHelper/main.swift strips "Helper" off its own bundle ID to find the app, and AppDelegate appends it when registering the login item. Both keep working with no code change.

Verified

xcodebuild test — TEST SUCCEEDED, 14/14. The built app reports com.shay2000.LumaControl / 1.0.0, with the helper embedded at Contents/Library/LoginItems/MonitorControlHelper.app and identifying as com.shay2000.LumaControlHelper.

Deliberately not changed

  • SUPublicEDKey — rotating it would permanently break Sparkle updates for every installed copy.
  • SUFeedURL — already points at shay2000/LumaControl.
  • MIT copyright and attribution in License.txt and NSHumanReadableCopyright — required by the license.
  • Dated historical records (HANDOFF.md, build14-changes.html, build21-permissions.html) and the comment in SettingsPanesTests.swift — these describe the app by the name it actually had at the time; rewriting them would falsify the record.

Reviewer notes

  • 29 inherited upstream release tags (v1.0 … v4.3.3) were deleted locally. They were never pushed, so origin is unaffected and still carries only v0.1.0, v0.2.0, v0.3.0.
  • Follow-up handled after merge, not in this diff: the Accessibility grant and the SMLoginItemSetEnabled login item must be re-established under the new bundle ID, and saved preferences move to the new defaults domain.

Finish the LumaControl migration by renaming the bundle identifiers and
starting a clean 1.x version line.

- PRODUCT_BUNDLE_IDENTIFIER: com.shay2000.XDRMonitorControl ->
  com.shay2000.LumaControl, for the app, Helper and Tests targets. The
  Helper target keeps its "Helper" suffix, which MonitorControlHelper/main.swift
  and AppDelegate derive at runtime by stripping/appending that suffix.
- MARKETING_VERSION 0.3.0 -> 1.0.0, CFBundleVersion 39 -> 1.
- Issue templates now reference v1.0.0.

Deliberately left alone:
- SUPublicEDKey is unchanged. Rotating it would permanently break updates
  for every installed copy.
- SUFeedURL already points at shay2000/LumaControl.
- MIT copyright and attribution in License.txt and NSHumanReadableCopyright.
- Dated historical records (HANDOFF.md, build14/build21 reports) still
  describe the app by the name it had at the time.
@greptile-apps

greptile-apps Bot commented Sep 12, 2026 •

Copy link
Copy Markdown

Greptile Summary

Updates the application, helper, and test bundle identifiers to the LumaControl identity and begins the 1.0.0 marketing-version line.

  • Changes app identity to com.shay2000.LumaControl.
  • Preserves the helper’s required Helper suffix and aligns test identity.
  • Sets both app and helper build numbers to 45, maintaining Sparkle’s monotonic version ordering.
  • Updates issue templates to request LumaControl v1.0.0 environment details.

Confidence Score: 5/5

The PR appears safe to merge because the bundle identities are consistently updated and the corrected build number preserves Sparkle update ordering.

No actionable new issue remains. The previous build-number thread was manually resolved without an explanatory reply, and the current value of 45 fully fixes the reported regression by remaining above published build 39.

Important Files Changed

Filename Overview
MonitorControl.xcodeproj/project.pbxproj Updates app, helper, and test bundle identifiers and sets app and helper marketing versions to 1.0.0.
MonitorControl/Info.plist Raises the application build number to 45, preserving update ordering.
MonitorControlHelper/Info.plist Keeps the helper build number aligned with the application at 45.
.github/ISSUE_TEMPLATE/bug_report.yml Updates the example reported application version to v1.0.0.
.github/ISSUE_TEMPLATE/monitor-issue.yml Updates the monitor issue template’s example application version to v1.0.0.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  App["LumaControl.app<br/>com.shay2000.LumaControl<br/>1.0.0 (45)"]
  Helper["MonitorControlHelper.app<br/>com.shay2000.LumaControlHelper<br/>1.0.0 (45)"]
  Tests["MonitorControlTests<br/>com.shay2000.LumaControlTests"]
  App -->|registers login item by appending Helper| Helper
  Helper -->|locates app by removing Helper| App
  Tests -->|tests| App
Loading

Reviews (2): Last reviewed commit: "Keep CFBundleVersion above every publish..." | Re-trigger Greptile

Comment thread MonitorControl/Info.plist Outdated
Greptile correctly flagged that resetting CFBundleVersion 39 -> 1 puts
1.0.0 below the published build 39, so Sparkle would treat it as older and
never offer the update: the release workflow copies CFBundleVersion into
<sparkle:version>, which is what Sparkle orders by.

Using 45 rather than the suggested 40 because the local dev install is
build 44, so anything <= 44 would still compare as not-newer. Marketing
version stays 1.0.0.
@shay2000

Copy link
Copy Markdown
Owner Author

Fixed in 3878bd1 — raised CFBundleVersion to 45 on both the app and the helper.

Greptile suggested 40, which is correct against the published build 39. I went to 45 because the local dev install is build 44, so anything ≤ 44 would still compare as not-newer and Sparkle would skip it. MARKETING_VERSION stays 1.0.0, so this is still version 1 as far as the tag and the UI are concerned.

@shay2000
shay2000 merged commit cb41655 into main Sep 12, 2026
3 checks passed
@shay2000
shay2000 deleted the migrate/lumacontrol-identity-v1 branch September 12, 2026 12:58
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.

1 participant