Menu
BifrOSt-Apps
publicLatest change a5b8f241ab7e08ba2740e980a5d90870a34b32fd - Add first-party Flatpak app template by Ólafur Búi Ólafsson
# BifrOSt Apps First-party, sandboxed desktop applications for the [BifrOSt operating system](https://github.com/olibuijr/BifrOSt). This repository owns application source, Flatpak manifests, application metadata, translations, tests, and unsigned release candidates. The operating-system repository owns the Update Assistant, embedded trust root, signed Flatpak catalog, signing policy, and publication tooling. ## Create an application Generate a complete Python, GTK 4, and Libadwaita application on the GNOME 50 Flatpak runtime: ```bash python3 scripts/new-app.py \ org.bifrost.Notes \ "BifrOSt Notes" \ --name-is "BifrOSt-glósur" \ --summary "Write focused local notes" \ --summary-is "Skrifaðu hnitmiðaðar staðbundnar glósur" \ --description "Create, organize, and search local notes in a focused desktop application designed for BifrOSt." \ --description-is "Búðu til, skipuleggðu og leitaðu í staðbundnum glósum með hnitmiðuðu BifrOSt-forriti." ``` The default destination is `apps/notes/`. The generated application is runnable rather than an empty scaffold. Before release, replace its generic icon and status page with the application's real workflow. The generator establishes these invariants: - an `org.bifrost.<PascalCaseName>` application ID; - matching executable, desktop, icon, AppStream, and gettext identities; - English and Icelandic desktop and AppStream metadata; - a `stable` Flatpak branch on the GNOME 50 runtime; - Wayland, fallback X11, and GPU access without home-directory or network access; - a local MIT project license and CC0 AppStream metadata license. ## Validate and build Run the generator contract tests: ```bash python3 -m unittest discover -s tests -v ``` For a generated application: ```bash desktop-file-validate apps/notes/data/org.bifrost.Notes.desktop appstreamcli validate --no-net apps/notes/data/org.bifrost.Notes.metainfo.xml flatpak-builder --user --install-deps-from=flathub --force-clean \ --default-branch=stable build/notes apps/notes/org.bifrost.Notes.yml ``` Install and launch only from a local test repository or bundle. Do not point development builds at the trusted production catalog. ## Release boundary Application CI may produce an unsigned `.flatpak` candidate plus its SHA-256 digest, source revision, manifest, and build log. It must not possess the BifrOSt application-release private key or publish to the trusted catalog. After review, a release operator uses [`dispatch-app-release.py`](https://github.com/olibuijr/BifrOSt/blob/main/dispatch-app-release.py) in the operating-system repository. That command stages the candidate, restricts refs to `org.bifrost.*`, signs commits and repository metadata, and publishes the catalog consumed by BifrOSt Update Assistant. See the operating-system repository's [application update documentation](https://github.com/olibuijr/BifrOSt#bifrost-application-updates) for the signing and publication command. ## What belongs here Keep independently installable, sandboxed end-user applications here. Keep the installer, Update Assistant, maintenance utility, welcome utility, privileged helpers, OS configuration, signing keys, and catalog publication code in [`olibuijr/BifrOSt`](https://github.com/olibuijr/BifrOSt). Start applications under `apps/`. Split one into its own repository only when it has a genuinely independent release cadence, contributor group, or access policy. ## License Application code and the generator are released under the MIT License. Generated AppStream metadata declares CC0-1.0 so software catalogs may redistribute it.