Skip to content

feat(release): publish Linux snap to Snap Store on tag#146

Open
carvalab wants to merge 1 commit into
FreeOpenSourcePOS:mainfrom
carvalab:marketplace-publish-groovy-beaver
Open

feat(release): publish Linux snap to Snap Store on tag#146
carvalab wants to merge 1 commit into
FreeOpenSourcePOS:mainfrom
carvalab:marketplace-publish-groovy-beaver

Conversation

@carvalab

Copy link
Copy Markdown
Contributor

What's in this PR

Linux distribution publishing for Flo. One workflow, three architectures, two store-fronts ready to ship.

  • Snap Store: every v* tag publishes flocafe to latest/stable. I migrated the legacy build.snap block to build.snapcraft on core24 + GNOME extension. Mirrors the snapcrafters/signal-desktop recipe.
  • Multi-arch Linux release: AppImage, deb, rpm, snap all declare x64 and arm64 now. Release job is a matrix on ubuntu-22.04 + ubuntu-22.04-arm64; each entry builds and uploads its host-arch artifacts, and both publish their snap to Snap Store as a multi-arch revision. AppImageHub auto-discovers both.
  • AppImageHub compatibility: filename matches the catalog's auto-discovery regex (flocafe-<version>-<arch>.AppImage), and the AppStream metainfo is wired in at /usr/share/metainfo/.
  • AppStream metadata refresh: scripts/update-metainfo.js runs at release time and prepends a <release> block from package.json > version + CHANGELOG. Idempotent. The source file is rewritten but not auto-committed.

Bug fix I caught

The legacy snap config replaced electron-builder's default plug set, leaving the snap under strict confinement without home, x11, wayland, or network-bind. Result: the local Express server on 0.0.0.0:3001 and the KDS server on :3002 couldn't bind, and the renderer couldn't open a window. I extended the plug list with "default" and added network-bind + screen-inhibit-control explicitly.

Test plan

  • Review the single commit
  • After merge, push v2.0.5 (or any v*) and verify the .snap + AppImage land on the GitHub release with the correct filenames
  • Confirm https://snapcraft.io/flocafe shows the new revision and snap install flocafe works on Ubuntu 24.04

@carvalab
carvalab requested a review from itsbkm as a code owner July 23, 2026 19:19
@carvalab
carvalab force-pushed the marketplace-publish-groovy-beaver branch from de9b34f to 30d7838 Compare July 23, 2026 19:24
Modernizes the legacy `build.snap` block to `build.snapcraft`
targeting core24 with the GNOME extension (mirrors
snapcrafters/signal-desktop).

The legacy block replaced electron-builder's default plug set,
leaving the snap under strict confinement without `home`,
`x11`, `wayland`, or `network-bind` — the local Express
server on :3001 and KDS on :3002 couldn't bind, and the
renderer couldn't open a window. The new config extends
defaults via "default" and adds `network-bind` +
`screen-inhibit-control` explicitly.

`release.yml` builds AppImage + deb + rpm + snap in one
electron-builder call, self-registers the snap name on first
run (`snapcraft register`, idempotent), and uploads with
`--release=stable`. One-time setup is just the
`SNAPCRAFT_STORE_CREDENTIALS` repo secret — a snapcraft
macaroon from `snapcraft export-login`.

Snap name is `flocafe` (from `package.json > name`); the
runtime Electron `app.name` and on-disk user-data path stay
`flo-desktop` to preserve existing dev installs.
@carvalab
carvalab force-pushed the marketplace-publish-groovy-beaver branch from 30d7838 to 0b30575 Compare July 23, 2026 19:25
Comment thread package.json
{
"name": "flo-desktop",
"version": "2.0.4",
"name": "flocafe",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@khaira777 @itsbkm Is ok this rename? I ask to no have issues with other releases

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant