DevelopersTechnologyPublishing Updates
Technology

Publishing Updates

Release Workflow

  • Standalone binaries are published as Spacedrive-{Format}-{Target Triple}.zip
  • Updater binaries are published as Spacedrive-Updater-{Target Triple}.zip

Desktop Update API

  • Available at /api/releases/tauri/[version]/[target]/[arch]
  • Version should be specified via [version] or overridden in X-Spacedrive-Version
    • Exact versions should be specified as semantic versions, eg 0.1.0, 1.0.0-alpha.1
    • Release channels stable and alpha can also be specified
      • alpha will look for tags that contain the string alpha
      • stable will look for the release marked as Latest Release
  • Looks for assets named Spacedrive-Updater-{Target}-{Arch}.{Extension}
    • Target: darwin, linux, windows
    • Arch: x86_64, aarch64
  • Returns TauriResponse

Desktop Download API

  • Available at /api/releases/desktop/[version]/[target]/[arch]
  • Same version semantics as Desktop Update API
  • Looks for assets starting with Spacedrive-{Target}-{Arch} to allow for extensions like .dmg, .AppImage and .msi
  • Returns a redirect as it's intended to be invoked via <a> elements

Publishing a Release

  • Create tag that follows semver, eg. 0.1.0, 1.0.0-alpha.1
  • Update version number in apps/desktop/src-tauri/Cargo.toml
  • Create release - name does not matter, only the tag
  • Add assets that match the names expected by the Desktop Updater and Downloader APIs
  • Publish release :)