-
Notifications
You must be signed in to change notification settings - Fork 3
fix: conform CFBundleVersion to documentation #167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We set CFBundleVersion to a value of the form X.Y.Z[.N] where N is the number of commits since the X.Y.Z tag (omitted if 0)
I think we should just always include the .0
.
@@ -33,5 +33,7 @@ | |||
</dict> | |||
<key>SUPublicEDKey</key> | |||
<string>Ae2oQLTcx89/a73XrpOt+IVvqdo+fMTjo3UKEm77VdA=</string> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<string>Ae2oQLTcx89/a73XrpOt+IVvqdo+fMTjo3UKEm77VdA=</string> | |
<string>Ae2oQLTcx89/a73XrpOt+IVvqdo+fMTjo3UKEm77VdA=</string> |
There's some other documentation on
This documentation might be outdated? I have no clue why it's documented twice, but I'm happy to just omit it if it's 0. I think what they've said here makes sense. |
Merge activity
|
Second PR for #47.
Previously, we were setting
CFBundleVersion
to the output ofgit describe --tags
(vX.Y.Z
orvX.Y.Z-N-gHASH
for preview builds).To support Sparkle, and potentially to avoid a breakage with macOS failing to update an installed
LaunchDaemon
when it can't parseCFBundleVersion
, we'll conform the string to the specification.Given that:
We set
CFBundleVersion
to a value of the formX.Y.Z[.N]
where N is the number of commits since theX.Y.Z
tag (omitted if 0)Sparkle did previously allow you to supply a manual version comparator, but it was deprecated to help require
CFBundleVersion
start withX.Y.Z
sparkle-project/Sparkle#2585That issue recommends instead putting marketing version information in
CFBundleShortVersionString
, but that actually has even stricter requirements: https://developer.apple.com/documentation/bundleresources/information-property-list/cfbundleshortversionstringThough not documented, from testing & reading the Sparkle source, I discovered that
X.Y.Z.N+1
will be deemed a later version thanX.Y.Z.N
, which is what we'll do for the preview stream of auto-updates.For non-preview builds (i.e. builds on a tag), both version strings will be
X.Y.Z
.Since we're no longer including the commit hash in a version string, we instead embed it separately in the

Info.plist
so we can continue to display it in the UI: