macos: populate the sparkle:channel element

This makes the update channel name available alongside the version,
data, etc., which we can use in our update view (on the Released line).
This commit is contained in:
Jon Parise
2025-12-14 16:24:50 -05:00
parent 2cc7341b08
commit 786dc93438
3 changed files with 14 additions and 2 deletions

View File

@@ -77,6 +77,8 @@ elem = ET.SubElement(item, "title")
elem.text = f"Build {build}"
elem = ET.SubElement(item, "pubDate")
elem.text = now.strftime(pubdate_format)
elem = ET.SubElement(item, "sparkle:channel")
elem.text = "stable"
elem = ET.SubElement(item, "sparkle:version")
elem.text = build
elem = ET.SubElement(item, "sparkle:shortVersionString")

View File

@@ -75,6 +75,8 @@ elem = ET.SubElement(item, "title")
elem.text = f"Build {build}"
elem = ET.SubElement(item, "pubDate")
elem.text = now.strftime(pubdate_format)
elem = ET.SubElement(item, "sparkle:channel")
elem.text = "tip"
elem = ET.SubElement(item, "sparkle:version")
elem.text = build
elem = ET.SubElement(item, "sparkle:shortVersionString")

View File

@@ -125,7 +125,15 @@ fileprivate struct UpdateAvailableView: View {
let dismiss: DismissAction
private let labelWidth: CGFloat = 60
private func releaseDateString(date: Date, channel: String?) -> String {
let dateString = date.formatted(date: .abbreviated, time: .omitted)
if let channel, !channel.isEmpty {
return "\(dateString) (\(channel))"
}
return dateString
}
var body: some View {
VStack(alignment: .leading, spacing: 0) {
VStack(alignment: .leading, spacing: 12) {
@@ -157,7 +165,7 @@ fileprivate struct UpdateAvailableView: View {
Text("Released:")
.foregroundColor(.secondary)
.frame(width: labelWidth, alignment: .trailing)
Text(date.formatted(date: .abbreviated, time: .omitted))
Text(releaseDateString(date: date, channel: update.appcastItem.channel))
}
.font(.system(size: 11))
}