"Version X is available" in the top bar is now a button that opens an Update popup: - Update and restart gets the download link from the server (the redirect is not followed, as the Gitea link needs no token), downloads the new game next to the running one with a progress bar, checks it (complete, and an MZ or ELF file), swaps it in and restarts. The quiz is saved first and continues. On Windows the running .exe is renamed to .old, put back if the swap fails, and deleted at the next start. - Download in browser opens the .exe, the Linux package, or the release page on other platforms. - From the editor, an unwritable folder or another platform, only the browser download is offered, with the reason. The message now fits between the tabs and the buttons in every theme; in Nord and Christmas it ran into Sync. The macOS export preset is removed, and the unused download_client_* functions are replaced by fetch_client_download_url. Closes #13 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
42 lines
2.0 KiB
Markdown
42 lines
2.0 KiB
Markdown
# Releasing
|
|
|
|
Releases are made from the version in `project.godot`
|
|
(**Project > Project Settings > Application > Config > Version**). The game shows the
|
|
same version in the About window.
|
|
|
|
1. Bump the version, e.g. from `1.9.0` to `1.10.0`, and add a `WHATS_NEW` entry in
|
|
`popups/about_popup.gd`.
|
|
2. Merge to `main` and push.
|
|
|
|
The `Build` workflow (`.gitea/workflows/gitea-build.yaml`) then:
|
|
|
|
1. runs the tests,
|
|
2. exports the Windows and Linux builds, and packages Linux as
|
|
`MusicPlayer_<version>_linux.tar.gz` with the icon, an app menu entry and `install.sh`
|
|
(Linux programs can't carry their own icon the way a Windows .exe does),
|
|
3. if no tag exists for the version yet: uploads the builds to the package registry
|
|
under `MusicPlayer/<version>/`, and creates the `<version>` tag and Gitea release
|
|
with the builds attached.
|
|
|
|
Pushes that don't change the version, and pushes to `develop`, only test and export.
|
|
Don't create tags or `1.x.y` branches by hand; the workflow makes the tag.
|
|
|
|
## Installing on Linux
|
|
|
|
Unpack `MusicPlayer_<version>_linux.tar.gz` and run `./install.sh` inside the
|
|
`MusicPlayer` folder. It installs the game to `~/.local/bin` and adds it, with its icon,
|
|
to the app menu. The bare `MusicPlayer_<version>.x86_64` is still published for anyone
|
|
who just wants to run the file.
|
|
|
|
## Updating
|
|
|
|
When the server has a newer release, the top bar says "Version X is available". Clicking
|
|
it offers **Update and restart**: the game downloads its new file from the release
|
|
(`MusicPlayer_<version>.exe` on Windows, `MusicPlayer_<version>.x86_64` on Linux, through
|
|
the server's `/download/<platform>` routes), puts it in place of the running file and
|
|
starts it, and the quiz continues where it was. On Windows the old file is kept as
|
|
`<game>.old` until the next start. So keep the release file names as they are: the server
|
|
finds them by their ending. Where the game can't replace itself (run from the editor, a
|
|
folder it can't write to, or another platform), it opens the download in the browser
|
|
instead.
|