From a1cc1c5682e66f49f59582423f7cc93b1d03ee90 Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 2 Oct 2026 20:10:53 -0400 Subject: [PATCH] Link the Mac app and release flow to the project page Help > AppleNugs Website and a Credits.rtf in the About window open https://timvanbenschoten.com/code/applenugs. sparkle-appcast.sh passes --link with the same URL so new appcast items carry it, and DISTRIBUTION.md asks for a "Project page" line at the end of release notes. SUFeedURL, the EdDSA key and the existing appcast.xml are unchanged. Co-Authored-By: Claude Opus 5.5 --- AppleNugs/macOS/AppleNugsApp.swift | 7 +++++++ AppleNugs/macOS/Credits.rtf | 6 ++++++ DISTRIBUTION.md | 12 ++++++++++++ scripts/sparkle-appcast.sh | 4 ++++ 4 files changed, 29 insertions(+) create mode 100644 AppleNugs/macOS/Credits.rtf diff --git a/AppleNugs/macOS/AppleNugsApp.swift b/AppleNugs/macOS/AppleNugsApp.swift index b39ba1d..96832ef 100644 --- a/AppleNugs/macOS/AppleNugsApp.swift +++ b/AppleNugs/macOS/AppleNugsApp.swift @@ -128,6 +128,13 @@ struct AppleNugsApp: App { CommandGroup(before: .windowArrangement) { NowPlayingWindowMenuItem() } + // The default Help item only says "Help isn't available"; point it + // at the project page instead. + CommandGroup(replacing: .help) { + Button("AppleNugs Website") { + NSWorkspace.shared.open(URL(string: "https://timvanbenschoten.com/code/applenugs")!) + } + } } Window("Now Playing", id: NowPlayingWindow.id) { diff --git a/AppleNugs/macOS/Credits.rtf b/AppleNugs/macOS/Credits.rtf new file mode 100644 index 0000000..6adb30e --- /dev/null +++ b/AppleNugs/macOS/Credits.rtf @@ -0,0 +1,6 @@ +{\rtf1\ansi\ansicpg1252\cocoartf2822 +{\fonttbl\f0\fnil\fcharset0 .AppleSystemUIFont;} +\pard\qc + +\f0\fs22 Made by Tim VanBenschoten\ +{\field{\*\fldinst{HYPERLINK "https://timvanbenschoten.com/code/applenugs"}}{\fldrslt timvanbenschoten.com/code/applenugs}}} diff --git a/DISTRIBUTION.md b/DISTRIBUTION.md index 8882ee9..bc2060a 100644 --- a/DISTRIBUTION.md +++ b/DISTRIBUTION.md @@ -199,6 +199,18 @@ AppleNugs uses [Sparkle](https://sparkle-project.org) for in-app updates. The The feed must never point at a 404 — uploading the asset before pushing `appcast.xml` guarantees that. + End the GitHub Release notes with the project page line: + + ``` + Project page: https://timvanbenschoten.com/code/applenugs + ``` + + The script passes `--link` with the same URL, so each new appcast item + carries it too. To show notes in Sparkle's update window, put an + `AppleNugs-X.Y.html` file (an HTML fragment, no ``) next to the DMG in + `build/sparkle-enclosure/` and end it with + `

Project page: timvanbenschoten.com/code/applenugs

`. + 5. **Wait for the feed to resolve.** `appcast.xml` is served from `raw.githubusercontent.com`, which only resolves once the repo is **public**. GitHub's CDN caches raw content for approximately 5 minutes after a push, so diff --git a/scripts/sparkle-appcast.sh b/scripts/sparkle-appcast.sh index d3bb99f..02f9c96 100755 --- a/scripts/sparkle-appcast.sh +++ b/scripts/sparkle-appcast.sh @@ -14,8 +14,12 @@ TOOLS="${SPARKLE_TOOLS:-build/sparkle-tools/bin}" [ -x "$TOOLS/generate_appcast" ] || { echo "generate_appcast not found at $TOOLS (see Task 1)"; exit 1; } +# --link adds a to the new item: the project page, which Sparkle offers +# when it cannot install an update itself. A release-notes file named like the +# DMG (AppleNugs-X.Y.html) in the enclosure dir is embedded as the description. "$TOOLS/generate_appcast" \ --download-url-prefix "https://github.com/tsvb/applenugs/releases/download/${TAG}/" \ + --link "https://timvanbenschoten.com/code/applenugs" \ "$ENCLOSURE_DIR" cp "$ENCLOSURE_DIR/appcast.xml" appcast.xml