spacedrive/docs/developers/technology/publishing-updates.mdx
2024-05-04 22:27:14 +00:00

40 lines
1.5 KiB
Plaintext

---
title: Publishing Updates
index: 11
---
# 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`, `.deb` 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 :)