hunk.code_window: import { useMatch } from 'react-router';
   import { RadixCheckbox, Select, SelectOption, Slider, tw, z } from '@sd/ui';
   import { getExplorerLayoutStore, useExplorerLayoutStore } from '~/../packages/client/src';
   import { SortOrderSchema } from '~/app/route-schemas';
  
hunk.labels: replace keep keep keep
hunk.file_path: interface/app/$libraryId/Explorer/OptionsPanel.tsx
hunk.type: replace
file: ---
  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`, `.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 :)
  