AkurAI Build
Menu

BifrOSt-Apps

public
a5b8f241ab7e08ba2740e980a5d90870a34b32fd 1 commits 1 branches 0 tags
README.md

BifrOSt Apps

First-party, sandboxed desktop applications for the BifrOSt operating system.

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:

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:

python3 -m unittest discover -s tests -v

For a generated application:

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 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 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.

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.