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).
pull/9906/head
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))
}