Problem
Currently our in-app updates need to be able to access one of four websites:
- repo.buskill.in
- repo.michaelaltfield.net
- github.com
- gitlab.com
|
UPGRADE_MIRRORS = [ |
|
'https://raw.githubusercontent.com/BusKill/buskill-app/master/updates/v1/meta.json', |
|
'https://gitlab.com/buskill/buskill-app/-/raw/master/updates/v1/meta.json', |
|
'https://repo.buskill.in/buskill-app/v1/meta.json', |
|
'https://repo.michaelaltfield.net/buskill-app/v1/meta.json', |
|
] |
If all 4 of those sites went down, BusKill wouldn't be able to update itself.
Note that the software verifies signatures, randomizes the domains in the mirror list, and automatically tries all the mirrors if it fails. So we don't actually have to trust the publishing infrastructure, and only one mirror needs to be reachable.
Solution
We can further make this more resilient by adding a new contender to the forge space: Codeberg
How?
It's pretty simple to implement:
- Copy the contents of gitlab to codeberg https://gitlab.com/buskill/buskill-app/
- Update this repo's
src/packages/buskill/__init__.py file to include the repo's raw download URL for the updates/v1/meta.json file
- Update our documentation's
Update updates repo metadat section to include updating this file on the codeberg repo https://docs.buskill.in/buskill-app/en/stable/software_dev/release.html#update-updates-repo-metadata
Problem
Currently our in-app updates need to be able to access one of four websites:
buskill-app/src/packages/buskill/__init__.py
Lines 57 to 62 in 53f631d
If all 4 of those sites went down, BusKill wouldn't be able to update itself.
Note that the software verifies signatures, randomizes the domains in the mirror list, and automatically tries all the mirrors if it fails. So we don't actually have to trust the publishing infrastructure, and only one mirror needs to be reachable.
Solution
We can further make this more resilient by adding a new contender to the forge space: Codeberg
How?
It's pretty simple to implement:
src/packages/buskill/__init__.pyfile to include the repo's raw download URL for theupdates/v1/meta.jsonfileUpdate updates repo metadatsection to include updating this file on the codeberg repo https://docs.buskill.in/buskill-app/en/stable/software_dev/release.html#update-updates-repo-metadata