mirror of
https://github.com/nickustinov/itsytv-macos.git
synced 2026-04-26 12:35:56 +03:00
[PR #9] [CLOSED] Add Auto Update with Sparkle #32
Labels
No labels
bug
enhancement
pending appstore release
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/itsytv-macos#32
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/nickustinov/itsytv-macos/pull/9
Author: @donavanbecker
Created: 2/5/2026
Status: ❌ Closed
Base:
main← Head:main📝 Commits (2)
2716f6fAdd Auto Update with Sparkle5e64f2aAdd Auto Update with Sparkle📊 Changes
8 files changed (+392 additions, -2 deletions)
View changed files
➕
.github/workflows/generate-appcast.yml(+77 -0)➕
Tests/UpdateCheckerTests.swift(+92 -0)➕
docs/UPDATE-INSTRUCTIONS.md(+12 -0)📝
itsytv/Info.plist(+4 -0)➕
itsytv/Utilities/SparkleBridge.swift(+29 -0)📝
itsytv/Utilities/UpdateChecker.swift(+49 -2)📝
project.yml(+5 -0)➕
scripts/generate_appcast.py(+124 -0)📄 Description
Summary
This PR adds optional automatic updates via Sparkle, an appcast generator script, and a GitHub Actions workflow to publish the appcast to GitHub Pages. When Sparkle is not linked, the app falls back to a GitHub-release check UI.
Changes
Sparkle(SPM) inproject.yml.itsytv/Utilities/UpdateChecker.swiftnow prefers Sparkle (when available) and falls back to the existing GitHub-release behavior.itsytv/Utilities/SparkleBridge.swiftprovides a compile-time wrapper (no-op when Sparkle not present).scripts/generate_appcast.pybuilds a Sparkle-compatibleappcast.xmlfrom GitHub Releases..github/workflows/generate-appcast.ymlruns on release publish, generatesdocs/appcast.xml, and publishesdocs/togh-pagesviapeaceiris/actions-gh-pages.docs/UPDATE-INSTRUCTIONS.mdexplains SPM setup, feed URL configuration, and signing considerations.Testing / How to verify
xcodegen generatethen resolve packages in Xcode.https://nickustinov.github.io/itsytv-macos/appcast.xml) by settingSUFeedURLinInfo.plistor editingUpdateChecker.swift..zip,.dmg, or.pkg). The workflow will generatedocs/appcast.xmland publish togh-pages.UpdateChecker.check()— Sparkle should detect the appcast and present the update UI (or auto-download depending on Sparkle config).Deployment notes
gh-pagesbranch.Checklist
UpdateChecker.swiftorInfo.plistgh-pages)Next steps / suggestions
sparkle:edSignaturein the appcast.scripts/generate_appcast.pyto include signature attributes when signatures are available.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.