Skip to content

Add codeberg to update mirrors #93

@maltfield

Description

@maltfield

Problem

Currently our in-app updates need to be able to access one of four websites:

  1. repo.buskill.in
  2. repo.michaelaltfield.net
  3. github.com
  4. 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:

  1. Copy the contents of gitlab to codeberg https://gitlab.com/buskill/buskill-app/
  2. 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
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions