Skip to content

docs: point the README downloads at this repository's own releases - #3

Merged
Locutusque merged 2 commits into
mainfrom
claude/readme-fork-downloads
Aug 23, 2026
Merged

Locutusque merged 2 commits into
mainfrom
claude/readme-fork-downloads

Conversation

@Locutusque

Copy link
Copy Markdown
Owner

Which issue does this PR fix?

How to test

  1. Read the Install section of README.md — every Download link now goes to this repository's releases
  2. Confirm the guard split in release.yml: the checks/release/checksums/changelog jobs run here, while notify-discord, deploy-website, docker and update-flake stay pinned upstream
  3. On the next v* tag, the changelog job rewrites the table between the install-links markers with direct asset URLs under this repository

Checklist

  • Read CONTRIBUTING.md
  • Ran pnpm format && pnpm lint && pnpm test locally and it passes
  • I tested the changes myself by running the app locally
  • Updated translations in all locale files (if UI text changed)

AI usage (required)

Tick exactly one. Ticking neither, ticking both, or deleting this section closes the PR automatically.

  • I did not use AI for any part of this PR
  • I used AI, and here is what it did:

What this changes

The README download table is not hand-maintained: release.yml's changelog job regenerates everything between <!-- install-links-start --> and <!-- install-links-end --> on each v* tag, then opens and auto-merges a docs PR with the result.

Two things kept that from working here. The job hardcoded BASE="https://github.com/zhom/donutbrowser/releases/download/${TAG}", and it was gated on github.repository == 'zhom/donutbrowser' so it never ran. The table has therefore sat on v0.29.5 pointing at upstream.

  • BASE now comes from GITHUB_REPOSITORY.
  • The guards on the path that reaches it are opened: security-scan, lint-js, lint-rust, codeql, spellcheck (all needs: of release), plus release, checksums and changelog.

notify-discord, deploy-website, docker and update-flake stay pinned to upstream deliberately — they post to upstream's webhook, publish to upstream's host and registry, and rewrite flake.nix to point at upstream's AppImages. A comment above the job list records which guard a newly added job should take.

On the links in the table right now

They point at the releases page, not at pinned asset filenames, because this repository has published no release yet — a direct asset URL such as .../releases/download/v0.29.5/Donut_0.29.5_aarch64.dmg would be a guaranteed 404 here. The first tagged release replaces them with direct links via the generator.

Deliberately not touched

brew install --cask donut, curl -fsSL https://donutbrowser.com/install.sh | sh, the nix run github:zhom/donutbrowser line and the release badge all still resolve upstream. Each depends on infrastructure this repository does not have (a cask, a hosted install script, a maintained flake), so repointing them would break them rather than fix them.

Verification

  • Simulated the release-time rewrite locally with TAG=v0.30.0 and GITHUB_REPOSITORY=Locutusque/donutbrowser: the markers survive and the table is regenerated with correct direct asset URLs.
  • actionlint clean on release.yml; typos clean.
  • No application code is touched.

Generated by Claude Code

claude added 2 commits August 23, 2026 03:20
The download table is machine-written: release.yml's changelog job regenerates
everything between the install-links markers on each v* tag and merges the
result. It hardcoded upstream's repository in the asset URLs, so the links
described builds this repository never produced, and the job that would refresh
them was gated to upstream and never ran here. The table has sat on v0.29.5
since.

Take the repository from GITHUB_REPOSITORY rather than a literal, and open the
guards on the path that gets there: the checks, the release build, checksums
and the changelog job itself.

The remaining four jobs stay pinned to upstream on purpose, because they act on
upstream's behalf against services a fork has no business touching:
notify-discord posts to their webhook, deploy-website and docker publish to
their host and registry, and update-flake rewrites flake.nix to point at their
AppImages. A comment above the jobs records which guard a new job wants.

In the table itself the links now go to the releases page rather than to
pinned asset filenames, since this repository has published no release yet and
a direct asset URL would be a guaranteed 404. The first tagged release replaces
them with direct links.
@Locutusque
Locutusque merged commit c449fa9 into main Aug 23, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants