mirror of
https://github.com/ankitects/anki.git
synced 2026-05-16 05:41:12 -04:00
## Linked issue #4695 ## Summary This adds support for app upgrades for Briefcase/PyInstaller packages. This is done by downloading the latest GitHub release (stable or prerelease depending on the user's current version) and opening the installer. ## How to test 1. Change the `ALL_RELEASES_URL`/`LATEST_RELEASE_URL` constants defined in github.rs to reference my fork so you have some recent releases to test with: https://github.com/abdnh/anki/releases 2. Use _Tools > Check for Updates_ and confirm you're prompted to update to 26.04. 3. Accept the prompt and wait for the download to finish and installer to open. If you're on Linux, you'll be redirected to the direct download URL on your browser (extraction/installation is not handled for simplicity). 4. Change .version to `26.04b1` and check for updates again. Confirm you're prompted to update to 26.04b3. ### Checklist - [x] I ran `./ninja check` or an equivalent relevant check locally. - [ ] I added or updated tests when the change is non-trivial or behavior changed. ### Details - Anki's automatic update check is left untouched for now. It fetches the latest release from AnkiWeb, which might (intentionally) lag a few releases behind GitHub. - Updates are downloaded and cached to `updates` under the `AnkiProgramFiles` folder (used for the uv launcher). ## UI evidence The existing prompt is reused: <img width="281" height="182" alt="image" src="https://github.com/user-attachments/assets/d52900b7-645f-4b91-a195-9d5ce016b981" /> <img width="312" height="101" alt="image" src="https://github.com/user-attachments/assets/069f3eba-5f03-4de1-a962-59bbdc6c1e39" /> ## Scope - [x] This PR is focused on one change (no unrelated edits).
Protobuf files defining the interface the frontend and backend components use to talk to each other, and how Anki stores some of the data inside its SQLite database. These files are used to generate Rust, Python and TypeScript bindings.