Ctrl K
ComunidadGuías…

README.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# 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-<version>-x86_64.AppImage` | Any Linux | `chmod +x` and run |
| `Sable-<version>-amd64.deb` | Debian / Ubuntu | `sudo apt install ./Sable-<version>-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-<version>-amd64.deb
```

### Any Linux (AppImage)

```bash
chmod +x Sable-<version>-x86_64.AppImage
./Sable-<version>-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<version> \
  Sablem/releases/Sable-<version>-x86_64.AppImage \
  Sablem/releases/Sable-<version>-amd64.deb \
  --repo AminulIslamSifat/Sable \
  --title "Sable <version>" \
  --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-<version>-x86_64.AppImage
    └── Sable-<version>-amd64.deb
```

***

<p align="center"><sub>packages only — source lives in <a href="https://github.com/AminulIslamSifat/Sable">Sable</a></sub></p>