# Sablem > Release mirror for [Sable](https://github.com/AminulIslamSifat/Sable) — built packages live here. This repo holds the **AUR package source** and stages **built release artifacts** for Sable. It contains no application source. *** ## Packages Each release ships prebuilt desktop packages. No runtime installation, no Python, no `uv sync` — the app is self-contained. | Package | Platform | Install | |:--|:--|:--| | `Sable--x86_64.AppImage` | Any Linux | `chmod +x` and run | | `Sable--amd64.deb` | Debian / Ubuntu | `sudo apt install ./Sable--amd64.deb` | | `sable-bin` (AUR) | Arch Linux | `yay -S sable-bin` | *** ## Install ### Arch Linux (AUR) ```bash yay -S sable-bin ``` Installs the AppImage to `/opt/sable/`, adds `sable` to your `$PATH`, and registers the desktop entry and icon. ### Debian / Ubuntu ```bash sudo apt install ./Sable--amd64.deb ``` ### Any Linux (AppImage) ```bash chmod +x Sable--x86_64.AppImage ./Sable--x86_64.AppImage ``` The AppImage is portable — no install, no root. It carries its own server binary, so it does not need Python or any system runtime. *** ## Building a release Everything is driven by `build_app/build.py` in the Sable source repo: ```bash cd Sable-exp ./build_app/build.py --clean ``` By default this: 1. Applies source patches (idempotent) 2. Freezes the Python server with PyInstaller 3. Runs the verification gates (bundle contents, frozen-safe paths, `--run-script` dispatch) 4. Packages the Electron app as **AppImage + deb** 5. Stages both artifacts into `Sablem/releases/` 6. Regenerates `Sablem/aur/sable-bin/{PKGBUILD,.SRCINFO}` with a fresh `sha256` Useful flags: | Flag | Effect | |:--|:--| | `--target deb` | Build only the deb | | `--target AppImage` | Build only the AppImage | | `--no-sablem` | Don't stage into this repo | | `--no-aur` | Don't regenerate the PKGBUILD | | `--verify-only` | Re-run verification on an existing build | *** ## Publishing The build stages artifacts but never uploads. To publish a release: ```bash gh release create v \ Sablem/releases/Sable--x86_64.AppImage \ Sablem/releases/Sable--amd64.deb \ --repo AminulIslamSifat/Sable \ --title "Sable " \ --notes "..." ``` The tag **must** match `version` in Sable's `pyproject.toml` — the AUR `PKGBUILD` points at the release asset URL. > [!IMPORTANT] > `releases/` is gitignored. Artifacts belong on GitHub Releases, never in git history. Only `aur/` is tracked here. *** ## Layout ``` Sablem/ ├── README.md ├── aur/ │ └── sable-bin/ │ ├── PKGBUILD # generated by build.py │ └── .SRCINFO # generated by makepkg --printsrcinfo └── releases/ # gitignored — stage only, upload to GitHub Releases ├── Sable--x86_64.AppImage └── Sable--amd64.deb ``` ***

packages only — source lives in Sable