fix: conform CFBundleVersion to documentation#167
Conversation
deansheather
left a comment
There was a problem hiding this comment.
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.
| <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
CFBundleVersionto the output ofgit describe --tags(vX.Y.ZorvX.Y.Z-N-gHASHfor preview builds).To support Sparkle, and potentially to avoid a breakage with macOS failing to update an installed
LaunchDaemonwhen it can't parseCFBundleVersion, we'll conform the string to the specification.Given that:
We set
CFBundleVersionto a value of the formX.Y.Z[.N]where N is the number of commits since theX.Y.Ztag (omitted if 0)Sparkle did previously allow you to supply a manual version comparator, but it was deprecated to help require
CFBundleVersionstart withX.Y.Zsparkle-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+1will 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.plistso we can continue to display it in the UI: