Skip to content

Cordial 0.5.1 — a Flatpak that actually builds, and an ID we own

Choose a tag to compare

@luohoa97 luohoa97 released this 05 Aug 10:01
· 440 commits to main since this release

The Flatpak builds for the first time on any machine, the remote exists, and
the application ID no longer claims a domain this project does not own.

The application ID is now io.github.luohoa97.Cordial

It was org.cordial.Cordial — a claim on cordial.org, a domain registered in
1999
and in active use by somebody else. Flathub requires an application ID
over a domain or forge account you demonstrably control, so the old one was
unsubmittable rather than merely untidy. The new one needs no domain, matches the
homepage, and is what <developer id="io.github.luohoa97"> in the metainfo had
been saying all along.

Done on the same day the remote went live, on purpose: a rename before a package
has users costs a git mv, and after it costs everyone their data.

Important

A Flatpak's data lives at ~/.var/app/<app-id>/. If you installed
org.cordial.Cordial during the ~40 minutes it existed, that install will
never update and its profiles, sign-in and extracted Roblox build stay behind
the old directory. flatpak uninstall --delete-data org.cordial.Cordial is the
whole of the fix.

The Flatpak had never built

The manifest asked for org.freedesktop.Platform, and the shell is GTK4 and
libadwaita end to end — that runtime carries neither. Every CI run had failed on
Package 'gtk4' not found: five in a row, unlooked at, under a commit titled
"A Flatpak that builds". Now org.gnome.Platform/org.gnome.Sdk 50.

That exposed a second thing immediately: the GNOME runtime is numbered 50 and the
freedesktop SDK extensions it inherits are numbered by the base runtime, 25.08.
Deriving all four refs from runtime-version asked for a rust-stable//50 that
does not exist.

The published remote definition could not be added

Both the workflow and cordial.flatpakrepo's own comment recorded that GPGKey=
with an empty value is how a .flatpakrepo states "unsigned", and that omitting
the line says the same thing only by accident. Backwards. Measured with
flatpak 1.18.0:

form result
GPGKey= error: Invalid gpg keyremote-add fails
omitted accepted; gpg-verify=false

Only a green run could expose this, because until one happened the generated file
had never existed to be added.

Everything else

  • GitHub Pages is enabled and the site is live at
    https://luohoa97.github.io/cordial/, sharing one deployment with the OSTree
    remote under /repo/.
  • Releases exist at all. v0.2.0 and v0.3.0 had been tagged and never
    published; v0.4.0 was a version bump that never got a tag.
    CHANGELOG.md is new.
  • The documentation table stopped at ADR-013 — ADR-014 through ADR-018 and
    HANDOVER.md were written and never listed.
  • unimplemented.rs's fallback log path skipped XDG_DATA_HOME, which inside a
    Flatpak names the real home the sandbox cannot write. It now matches every
    other path derivation in the tree.

Measured: remote-add accepted, remote-ls returning the application ref at
6.1 MB download and 16.1 MB installed, install placing both
cordial-shell and cordial-run in /app/bin, and cordial-run --help
answering from inside the sandbox. cargo test --workspace: 460 passed, 0
failed. appstreamcli validate: clean.

Not verified: that the installed shell opens a window. It exits 0 without one,
and the leading candidate is that GApplication with a fixed id is
single-instance by design and a development build already owned the name — but
the control has not been run, and this project does not report diagnoses it has
not tested.

Cordial ships no Roblox code, APK or assets — you supply the Android client
yourself.